mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-06-19 08:28:21 +02:00
intel: fix HW generated local-id with indirect compute walker
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Fixes:5e7f4ff97f("intel: Add driver support for hardware generated local invocation IDs") Reviewed-by: Rohan Garg <rohan.garg@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29473> (cherry picked from commita1ea0956b4)
This commit is contained in:
parent
15598aa49b
commit
ee3ed15b51
3 changed files with 12 additions and 1 deletions
|
|
@ -34,7 +34,7 @@
|
|||
"description": "intel: fix HW generated local-id with indirect compute walker",
|
||||
"nominated": true,
|
||||
"nomination_type": 1,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": "5e7f4ff97fb871376a828146ab3a276c1d3c4fcf",
|
||||
"notes": null
|
||||
|
|
|
|||
|
|
@ -8810,6 +8810,7 @@ static void iris_emit_execute_indirect_dispatch(struct iris_context *ice,
|
|||
const struct iris_screen *screen = batch->screen;
|
||||
struct iris_compiled_shader *shader =
|
||||
ice->shaders.prog[MESA_SHADER_COMPUTE];
|
||||
const struct iris_cs_data *cs_data = iris_cs_data(shader);
|
||||
const struct intel_cs_dispatch_info dispatch =
|
||||
iris_get_cs_dispatch_info(screen->devinfo, shader, grid->block);
|
||||
struct iris_bo *indirect = iris_resource_bo(grid->indirect);
|
||||
|
|
@ -8818,6 +8819,11 @@ static void iris_emit_execute_indirect_dispatch(struct iris_context *ice,
|
|||
struct GENX(COMPUTE_WALKER_BODY) body = {};
|
||||
body.SIMDSize = dispatch_size;
|
||||
body.MessageSIMD = dispatch_size;
|
||||
body.GenerateLocalID = cs_data->generate_local_id != 0;
|
||||
body.EmitLocal = cs_data->generate_local_id;
|
||||
body.WalkOrder = cs_data->walk_order;
|
||||
body.TileLayout = cs_data->walk_order == INTEL_WALK_ORDER_YXZ ?
|
||||
TileY32bpe : Linear;
|
||||
body.LocalXMaximum = grid->block[0] - 1;
|
||||
body.LocalYMaximum = grid->block[1] - 1;
|
||||
body.LocalZMaximum = grid->block[2] - 1;
|
||||
|
|
|
|||
|
|
@ -310,6 +310,11 @@ emit_indirect_compute_walker(struct anv_cmd_buffer *cmd_buffer,
|
|||
.MessageSIMD = dispatch_size,
|
||||
.IndirectDataStartAddress = comp_state->push_data.offset,
|
||||
.IndirectDataLength = comp_state->push_data.alloc_size,
|
||||
.GenerateLocalID = prog_data->generate_local_id != 0,
|
||||
.EmitLocal = prog_data->generate_local_id,
|
||||
.WalkOrder = prog_data->walk_order,
|
||||
.TileLayout = prog_data->walk_order == INTEL_WALK_ORDER_YXZ ?
|
||||
TileY32bpe : Linear,
|
||||
.LocalXMaximum = prog_data->local_size[0] - 1,
|
||||
.LocalYMaximum = prog_data->local_size[1] - 1,
|
||||
.LocalZMaximum = prog_data->local_size[2] - 1,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue