anv: Skip cmd_buffer_emit_bt_pool_base_address() in blitter and video engines

Blitter and video engines don't support PIPE_CONTROL and
3DSTATE_BINDING_TABLE_POOL_ALLOC.
I'm not 100% sure if something else should be called instead but this
is doing the same as cmd_buffer_emit_state_base_address() and this
fixes the test that was crashing in
unreachable("Trying to emit unsupported PIPE_CONTROL command.");

Fixes: dEQP-VK.pipeline.monolithic.timestamp.misc_tests.two_cmd_buffers_secondary_transfer_queue_with_availability_bit
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28053>
This commit is contained in:
José Roberto de Souza 2024-03-07 11:35:29 -08:00 committed by Marge Bot
parent cccb5e36f1
commit 7ea5d1ed7d
2 changed files with 10 additions and 0 deletions

View file

@ -3993,6 +3993,13 @@ anv_cmd_buffer_is_blitter_queue(const struct anv_cmd_buffer *cmd_buffer)
return queue_family->engine_class == INTEL_ENGINE_CLASS_COPY;
}
static inline bool
anv_cmd_buffer_is_render_or_compute_queue(const struct anv_cmd_buffer *cmd_buffer)
{
return anv_cmd_buffer_is_render_queue(cmd_buffer) ||
anv_cmd_buffer_is_compute_queue(cmd_buffer);
}
static inline struct anv_address
anv_cmd_buffer_dynamic_state_address(struct anv_cmd_buffer *cmd_buffer,
struct anv_state state)

View file

@ -402,6 +402,9 @@ genX(cmd_buffer_emit_state_base_address)(struct anv_cmd_buffer *cmd_buffer)
void
genX(cmd_buffer_emit_bt_pool_base_address)(struct anv_cmd_buffer *cmd_buffer)
{
if (!anv_cmd_buffer_is_render_or_compute_queue(cmd_buffer))
return;
/* If we are emitting a new state base address we probably need to re-emit
* binding tables.
*/