pvr: Fixed creation of waits in queue submission

Waits were not previously being created for job dependencies in
pvr_driver_queue_submit() because the pvr_stage_mask() was being called in place
of pvr_stage_mask_dst(), and the former does not handle the top-of-pipe bit.

Signed-off-by: Donald Robson <donald.robson@imgtec.com>
Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31679>
This commit is contained in:
Donald Robson
2023-09-22 13:53:14 +01:00
committed by Marge Bot
parent f29ddf4817
commit a324a028a9
+3 -1
View File
@@ -891,8 +891,10 @@ static VkResult pvr_process_queue_waits(struct pvr_queue *queue,
uint32_t stage_wait_count = 0;
for (uint32_t wait_idx = 0; wait_idx < wait_count; wait_idx++) {
if (!(pvr_stage_mask(waits[wait_idx].stage_mask) & BITFIELD_BIT(i)))
if (!(pvr_stage_mask_dst(waits[wait_idx].stage_mask) &
BITFIELD_BIT(i))) {
continue;
}
stage_waits[stage_wait_count++] = (struct vk_sync_wait){
.sync = waits[wait_idx].sync,