environment: BUILD_SUBMITTER: dalligi CI: "true" CI_API_GRAPHQL_URL: https://gitlab.freedesktop.org/api/graphql CI_API_V4_URL: https://gitlab.freedesktop.org/api/v4 CI_COMMIT_AUTHOR: Simon Ser CI_COMMIT_BEFORE_SHA: dd7e28a4b287b4b439c50beedc1d79bd827df134 CI_COMMIT_BRANCH: release-source-buffer CI_COMMIT_DESCRIPTION: |4- We were signaling the release timeline point when the wlr_client_buffer was released. However, the wlr_client_buffer isn't necessarily released at the same time as the underlying source wlr_buffer. For instance, with wl_shm the source buffer is released before the wlr_client_buffer, and with linux-dmabuf-v1 the source buffer is released after the wlr_client_buffer. However, we want to signal the release timeline point exactly at the same time we send the wl_buffer.release event to the client. Use surface->buffer->source instead of &surface->buffer->base to fix this. linux-drm-syncobj-v1 can only be used with DMA-BUFs, and wlr_client_buffer.texture will keep the source locked, so surface->buffer->source is guaranteed to be non-NULL and unreleased. Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3940 CI_COMMIT_MESSAGE: | scene/surface: use source buffer to signal release timeline point We were signaling the release timeline point when the wlr_client_buffer was released. However, the wlr_client_buffer isn't necessarily released at the same time as the underlying source wlr_buffer. For instance, with wl_shm the source buffer is released before the wlr_client_buffer, and with linux-dmabuf-v1 the source buffer is released after the wlr_client_buffer. However, we want to signal the release timeline point exactly at the same time we send the wl_buffer.release event to the client. Use surface->buffer->source instead of &surface->buffer->base to fix this. linux-drm-syncobj-v1 can only be used with DMA-BUFs, and wlr_client_buffer.texture will keep the source locked, so surface->buffer->source is guaranteed to be non-NULL and unreleased. Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3940 CI_COMMIT_REF_NAME: release-source-buffer CI_COMMIT_REF_PROTECTED: "false" CI_COMMIT_REF_SLUG: release-source-buffer CI_COMMIT_SHA: 59f88e9fce5b2c87b2e76d2d0f0f9d87fe25fb7b CI_COMMIT_SHORT_SHA: 59f88e9f CI_COMMIT_TIMESTAMP: "2025-03-13T17:04:50+01:00" CI_COMMIT_TITLE: 'scene/surface: use source buffer to signal release timeline point' CI_CONFIG_PATH: .gitlab-ci.yml CI_DEFAULT_BRANCH: master CI_JOB_ID: "72852575" CI_JOB_NAME: freebsd CI_JOB_NAME_SLUG: freebsd CI_JOB_STAGE: test CI_JOB_STARTED_AT: "2025-03-13T16:05:12Z" CI_JOB_URL: https://gitlab.freedesktop.org/emersion/wlroots/-/jobs/72852575 CI_NODE_TOTAL: "1" CI_PAGES_DOMAIN: pages.freedesktop.org CI_PAGES_HOSTNAME: emersion.pages.freedesktop.org CI_PAGES_URL: https://emersion.pages.freedesktop.org/wlroots CI_PIPELINE_CREATED_AT: "2025-03-13T16:05:06Z" CI_PIPELINE_ID: "1383685" CI_PIPELINE_IID: "2027" CI_PIPELINE_NAME: "" CI_PIPELINE_SOURCE: push CI_PIPELINE_URL: https://gitlab.freedesktop.org/emersion/wlroots/-/pipelines/1383685 CI_PROJECT_CLASSIFICATION_LABEL: "" CI_PROJECT_DESCRIPTION: A modular Wayland compositor library CI_PROJECT_ID: "12106" CI_PROJECT_NAME: wlroots CI_PROJECT_NAMESPACE: emersion CI_PROJECT_NAMESPACE_ID: "2001" CI_PROJECT_PATH: emersion/wlroots CI_PROJECT_PATH_SLUG: emersion-wlroots CI_PROJECT_REPOSITORY_LANGUAGES: c,meson,makefile,glsl CI_PROJECT_ROOT_NAMESPACE: emersion CI_PROJECT_TITLE: wlroots CI_PROJECT_URL: https://gitlab.freedesktop.org/emersion/wlroots CI_PROJECT_VISIBILITY: public CI_REGISTRY: registry.freedesktop.org CI_REGISTRY_USER: gitlab-ci-token CI_RUNNER_DESCRIPTION: dalligi SourceHut bridge CI_RUNNER_ID: "2241" CI_RUNNER_TAGS: '["dalligi"]' CI_SERVER_FQDN: gitlab.freedesktop.org CI_SERVER_HOST: gitlab.freedesktop.org CI_SERVER_NAME: GitLab CI_SERVER_PORT: "443" CI_SERVER_PROTOCOL: https CI_SERVER_REVISION: 3ddc2ace157 CI_SERVER_SHELL_SSH_HOST: ssh.gitlab.freedesktop.org CI_SERVER_SHELL_SSH_PORT: "22" CI_SERVER_URL: https://gitlab.freedesktop.org CI_SERVER_VERSION: 17.9.2 CI_SERVER_VERSION_MAJOR: "17" CI_SERVER_VERSION_MINOR: "9" CI_SERVER_VERSION_PATCH: "2" CI_TEMPLATE_REGISTRY_HOST: registry.gitlab.com GITLAB_CI: "true" GITLAB_FEATURES: "" GITLAB_USER_EMAIL: contact@emersion.fr GITLAB_USER_ID: "1798" GITLAB_USER_LOGIN: emersion GITLAB_USER_NAME: Simon Ser image: freebsd/latest packages: - devel/evdev-proto - devel/libudev-devd - devel/meson - devel/pkgconf - graphics/glslang - graphics/lcms2 - graphics/libdrm - graphics/libliftoff - graphics/mesa-libs - graphics/vulkan-headers - graphics/vulkan-loader - graphics/wayland - graphics/wayland-protocols - x11/libinput - x11/libxcb - x11/libxkbcommon - x11/pixman - x11/xcb-util-errors - x11/xcb-util-renderutil - x11/xcb-util-wm - x11-servers/xwayland - sysutils/libdisplay-info - sysutils/seatd - hwdata sources: - https://gitlab-ci-token:glcbt-64_83mDSxpVhBG6Ah1-ezTx@gitlab.freedesktop.org/emersion/wlroots.git#59f88e9fce5b2c87b2e76d2d0f0f9d87fe25fb7b tasks: - wlroots: | cd wlroots meson setup build --fatal-meson-warnings -Dauto_features=enabled -Dallocators=gbm ninja -C build sudo ninja -C build install - tinywl: | cd wlroots/tinywl make