mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-06 06:40:08 +01:00
pvr: Fix occlusion query unaccounted for user fences
User provided fences can never have a source stage for occlusion queries as the occlusion query job is internal to the driver. So at vkQueueSubmit the user's VkFence could be signalled before the queries had completed. Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com> Reviewed-by: Frank Binns <frank.binns@imgtec.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24209>
This commit is contained in:
parent
2b685fb09e
commit
a4bdf2de0f
1 changed files with 8 additions and 2 deletions
|
|
@ -847,8 +847,14 @@ static VkResult pvr_process_queue_signals(struct pvr_queue *queue,
|
|||
uint32_t wait_count = 0;
|
||||
|
||||
for (uint32_t i = 0; i < PVR_JOB_TYPE_MAX; i++) {
|
||||
if (!(signal_stage_src & BITFIELD_BIT(i)) ||
|
||||
!queue->last_job_signal_sync[i])
|
||||
/* Exception for occlusion query jobs since that's something internal,
|
||||
* so the user provided syncs won't ever have it as a source stage.
|
||||
*/
|
||||
if (!(signal_stage_src & BITFIELD_BIT(i)) &&
|
||||
i != PVR_JOB_TYPE_OCCLUSION_QUERY)
|
||||
continue;
|
||||
|
||||
if (!queue->last_job_signal_sync[i])
|
||||
continue;
|
||||
|
||||
signal_waits[wait_count++] = (struct vk_sync_wait){
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue