brw: Implement URB handle intrinsics for task/mesh stages
(Split by Ken from a larger patch originally written by Lionel.) Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38918>
This commit is contained in:
committed by
Marge Bot
parent
d18423b116
commit
d3053fb3d2
@@ -5466,6 +5466,10 @@ brw_from_nir_emit_task_mesh_intrinsic(nir_to_brw_state &ntb, const brw_builder &
|
||||
dest = get_nir_def(ntb, instr->def);
|
||||
|
||||
switch (instr->intrinsic) {
|
||||
case nir_intrinsic_load_urb_output_handle_intel:
|
||||
bld.MOV(retype(dest, BRW_TYPE_UD), payload.urb_output);
|
||||
break;
|
||||
|
||||
case nir_intrinsic_load_draw_id:
|
||||
dest = retype(dest, BRW_TYPE_UD);
|
||||
bld.MOV(dest, payload.extended_parameter_0);
|
||||
@@ -5535,7 +5539,14 @@ brw_from_nir_emit_mesh_intrinsic(nir_to_brw_state &ntb,
|
||||
assert(s.stage == MESA_SHADER_MESH);
|
||||
const brw_task_mesh_thread_payload &payload = s.task_mesh_payload();
|
||||
|
||||
brw_reg dest;
|
||||
if (nir_intrinsic_infos[instr->intrinsic].has_dest)
|
||||
dest = get_nir_def(ntb, instr->def);
|
||||
|
||||
switch (instr->intrinsic) {
|
||||
case nir_intrinsic_load_urb_input_handle_intel:
|
||||
bld.MOV(retype(dest, BRW_TYPE_UD), payload.task_urb_input);
|
||||
break;
|
||||
case nir_intrinsic_store_per_primitive_output:
|
||||
case nir_intrinsic_store_per_vertex_output:
|
||||
case nir_intrinsic_store_output:
|
||||
|
||||
Reference in New Issue
Block a user