intel/compiler: fix loading of draw_id from task & mesh payload

Previously both destination and source were floats, so no casting was
performed, but with 7664c85b1d source register was reinterpreted as
unsigned integer, so MOV started casting that integer to float.

Fixes: 7664c85b1d ("intel/compiler: Create and use struct for TASK and MESH thread payloads")
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18886>
This commit is contained in:
Marcin Ślusarz 2022-09-29 16:47:32 +02:00 committed by Marge Bot
parent e5631add0d
commit 9bac88856d

View file

@ -1260,6 +1260,7 @@ fs_visitor::nir_emit_task_mesh_intrinsic(const fs_builder &bld,
}
case nir_intrinsic_load_draw_id:
dest = retype(dest, BRW_REGISTER_TYPE_UD);
bld.MOV(dest, payload.extended_parameter_0);
break;