anv/blorp: add missing cs stall on compute pipe control

Cc: mesa-stable
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37715>
This commit is contained in:
Tapani Pälli
2025-10-06 14:13:10 +03:00
committed by Marge Bot
parent c15b8329fd
commit cb822a323f
3 changed files with 15 additions and 0 deletions

View File

@@ -149,6 +149,9 @@ enum blorp_batch_flags {
* Mostly for debug
*/
BLORP_BATCH_DISABLE_VF_DISTRIBUTION = BITFIELD_BIT(6),
/* Blorp is running on compute engine. */
BLORP_BATCH_COMPUTE_ENGINE = BITFIELD_BIT(7),
};
struct blorp_batch {

View File

@@ -1835,9 +1835,18 @@ blorp_exec_compute(struct blorp_batch *batch, const struct blorp_params *params)
/*
* TDOD: Add INTEL_NEEDS_WA_14025112257 check once HSD is propogated for all
* other impacted platforms.
*
* BSpec 47112 (xe), 56551 (xe2): Instruction_PIPE_CONTROL (ComputeCS):
* SW must follow below programming restrictions when programming
* PIPE_CONTROL command:
*
* "Command Streamer Stall Enable" must be always set.
* ...
*/
if (devinfo->ver >= 20) {
blorp_emit(batch, GENX(PIPE_CONTROL), pc) {
pc.CommandStreamerStallEnable =
batch->flags & BLORP_BATCH_COMPUTE_ENGINE;
pc.StateCacheInvalidationEnable = true;
}
}

View File

@@ -185,6 +185,9 @@ anv_blorp_batch_init(struct anv_cmd_buffer *cmd_buffer,
if (!cmd_buffer->device->physical->instance->enable_vf_distribution)
flags |= BLORP_BATCH_DISABLE_VF_DISTRIBUTION;
if (cmd_buffer->batch.engine_class == INTEL_ENGINE_CLASS_COMPUTE)
flags |= BLORP_BATCH_COMPUTE_ENGINE;
blorp_batch_init(&cmd_buffer->device->blorp.context, batch, cmd_buffer, flags);
}