intel/compiler: user payload starts after TUE header & its padding

All data written by the user are offset by TUE header size.
Without this patch we copy the correct amount of user data, but both
"from" and "to" offsets are wrong.

Fixes: 37e78803d7 ("intel/compiler: use nir_lower_task_shader pass")

Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19409>
(cherry picked from commit db0e6f9a07)
This commit is contained in:
Marcin Ślusarz 2022-10-24 14:59:41 +02:00 committed by Eric Engestrom
parent 985a4ebab3
commit 2615b5a354
2 changed files with 5 additions and 1 deletions

View file

@ -5341,7 +5341,7 @@
"description": "intel/compiler: user payload starts after TUE header & its padding",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "37e78803d7b088afde8c79b7cf82ee29d4835651"
},

View file

@ -251,6 +251,10 @@ brw_compile_task(const struct brw_compiler *compiler,
nir_lower_task_shader_options lower_ts_opt = {
.payload_to_shared_for_atomics = true,
.payload_to_shared_for_small_types = true,
/* The actual payload data starts after the TUE header and padding,
* so skip those when copying.
*/
.payload_offset_in_bytes = prog_data->map.per_task_data_start_dw * 4,
};
NIR_PASS(_, nir, nir_lower_task_shader, lower_ts_opt);