anv: fix check on pipeline mode to track buffer writes

We want to check the current mode of the pipeline, not the queue type
(since graphics can toggle between 3D & gpgpu modes).

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 455a13fb7f ("anv: limit ANV_PIPE_RENDER_TARGET_BUFFER_WRITES to blorp operations using 3D")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/11607
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30469>
(cherry picked from commit fafa0d5abb)
This commit is contained in:
Lionel Landwerlin 2024-08-01 14:29:03 +03:00 committed by Eric Engestrom
parent 327e37aad5
commit 807b8b7249
2 changed files with 6 additions and 2 deletions

View file

@ -6464,7 +6464,7 @@
"description": "anv: fix check on pipeline mode to track buffer writes",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "455a13fb7f170b0f4a55375ec3a6f006fc69f078",
"notes": null

View file

@ -796,8 +796,12 @@ anv_add_buffer_write_pending_bits(struct anv_cmd_buffer *cmd_buffer,
{
const struct intel_device_info *devinfo = cmd_buffer->device->info;
if (anv_cmd_buffer_is_blitter_queue(cmd_buffer))
return;
cmd_buffer->state.queries.buffer_write_bits |=
(cmd_buffer->queue_family->queueFlags & VK_QUEUE_GRAPHICS_BIT) == 0 ?
(cmd_buffer->state.current_pipeline ==
cmd_buffer->device->physical->gpgpu_pipeline_value) ?
ANV_QUERY_COMPUTE_WRITES_PENDING_BITS :
ANV_QUERY_RENDER_TARGET_WRITES_PENDING_BITS(devinfo);
}