summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLionel Landwerlin <lionel.g.landwerlin@intel.com>2021-02-11 17:38:11 +0200
committerDylan Baker <dylan.c.baker@intel.com>2021-02-18 12:59:38 -0800
commit9948a0f15499b8a90991fd96f66b8ca570516ba9 (patch)
tree0a494085ef07dc5735f8262ebbb265d9755a775f
parent37c4ed461f801788861d7ed82c82a79e428220f7 (diff)
anv: discard all timeline wait/signal value=0
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Fixes: 34f32a6d664807 ("anv: implement VK_KHR_timeline_semaphore") Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4277 Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8987> (cherry picked from commit 6673c40011c0183953718f45bf0b9b4cba06bee5)
-rw-r--r--.pick_status.json2
-rw-r--r--src/intel/vulkan/anv_queue.c20
2 files changed, 17 insertions, 5 deletions
diff --git a/.pick_status.json b/.pick_status.json
index 5c2a2d28e89..89c178f4a4a 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -3991,7 +3991,7 @@
"description": "anv: discard all timeline wait/signal value=0",
"nominated": true,
"nomination_type": 1,
- "resolution": 0,
+ "resolution": 1,
"master_sha": null,
"because_sha": "34f32a6d6648073e2fda3fb78377124fb32bb288"
},
diff --git a/src/intel/vulkan/anv_queue.c b/src/intel/vulkan/anv_queue.c
index 7d52d74cfc2..1b0f7d732e2 100644
--- a/src/intel/vulkan/anv_queue.c
+++ b/src/intel/vulkan/anv_queue.c
@@ -993,18 +993,24 @@ anv_queue_submit(struct anv_queue *queue,
}
case ANV_SEMAPHORE_TYPE_TIMELINE:
+ assert(in_values);
+ if (in_values[i] == 0)
+ break;
result = anv_queue_submit_add_timeline_wait(submit, device,
&impl->timeline,
- in_values ? in_values[i] : 0);
+ in_values[i]);
if (result != VK_SUCCESS)
goto error;
break;
case ANV_SEMAPHORE_TYPE_DRM_SYNCOBJ_TIMELINE:
+ assert(in_values);
+ if (in_values[i] == 0)
+ break;
result = anv_queue_submit_add_syncobj(submit, device,
impl->syncobj,
I915_EXEC_FENCE_WAIT,
- in_values ? in_values[i] : 0);
+ in_values[i]);
if (result != VK_SUCCESS)
goto error;
break;
@@ -1057,17 +1063,23 @@ anv_queue_submit(struct anv_queue *queue,
}
case ANV_SEMAPHORE_TYPE_TIMELINE:
+ assert(out_values);
+ if (out_values[i] == 0)
+ break;
result = anv_queue_submit_add_timeline_signal(submit, device,
&impl->timeline,
- out_values ? out_values[i] : 0);
+ out_values[i]);
if (result != VK_SUCCESS)
goto error;
break;
case ANV_SEMAPHORE_TYPE_DRM_SYNCOBJ_TIMELINE:
+ assert(out_values);
+ if (out_values[i] == 0)
+ break;
result = anv_queue_submit_add_syncobj(submit, device, impl->syncobj,
I915_EXEC_FENCE_SIGNAL,
- out_values ? out_values[i] : 0);
+ out_values[i]);
if (result != VK_SUCCESS)
goto error;
break;