mirror of
https://github.com/hyprwm/Hyprland
synced 2024-12-18 22:49:48 +01:00
drm-timeline: Add check for conflicting acquire and release points (#8083)
Signed-off-by: Edgars Cirulis <edgarsciruliss@gmail.com>
This commit is contained in:
parent
7564b26b7d
commit
f5db483973
1 changed files with 7 additions and 2 deletions
|
@ -55,8 +55,13 @@ CDRMSyncobjSurfaceResource::CDRMSyncobjSurfaceResource(SP<CWpLinuxDrmSyncobjSurf
|
|||
return;
|
||||
}
|
||||
|
||||
if (!pending.acquireTimeline)
|
||||
return;
|
||||
if (pending.acquireTimeline && pending.releaseTimeline && pending.acquireTimeline == pending.releaseTimeline) {
|
||||
if (pending.acquirePoint >= pending.releasePoint) {
|
||||
resource->error(WP_LINUX_DRM_SYNCOBJ_SURFACE_V1_ERROR_CONFLICTING_POINTS, "Acquire and release points are on the same timeline, and acquire >= release");
|
||||
surface->pending.rejected = true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// wait for the acquire timeline to materialize
|
||||
auto materialized = pending.acquireTimeline->timeline->check(pending.acquirePoint, DRM_SYNCOBJ_WAIT_FLAGS_WAIT_AVAILABLE);
|
||||
|
|
Loading…
Reference in a new issue