mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 09:18:04 +02:00
v3d: add load_fep_w_v3d intrinsic
This intrinsic helps to read the W coordinate stored in the QPU register
when initializing the input data for the fragment shaders.
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28072>
(cherry picked from commit 62e1dff256)
This commit is contained in:
parent
ce73c8f829
commit
0aeacc0883
5 changed files with 10 additions and 1 deletions
|
|
@ -64,7 +64,7 @@
|
|||
"description": "v3d: add load_fep_w_v3d intrinsic",
|
||||
"nominated": false,
|
||||
"nomination_type": 3,
|
||||
"resolution": 4,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": null,
|
||||
"notes": null
|
||||
|
|
|
|||
|
|
@ -3444,6 +3444,10 @@ ntq_emit_intrinsic(struct v3d_compile *c, nir_intrinsic_instr *instr)
|
|||
vir_emit_tlb_color_read(c, instr);
|
||||
break;
|
||||
|
||||
case nir_intrinsic_load_fep_w_v3d:
|
||||
ntq_store_def(c, &instr->def, 0, vir_MOV(c, c->payload_w));
|
||||
break;
|
||||
|
||||
case nir_intrinsic_load_input:
|
||||
ntq_emit_load_input(c, instr);
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -143,6 +143,7 @@ visit_intrinsic(nir_shader *shader, nir_intrinsic_instr *instr)
|
|||
case nir_intrinsic_load_xfb_address:
|
||||
case nir_intrinsic_load_num_vertices:
|
||||
case nir_intrinsic_load_fb_layers_v3d:
|
||||
case nir_intrinsic_load_fep_w_v3d:
|
||||
case nir_intrinsic_load_tcs_num_patches_amd:
|
||||
case nir_intrinsic_load_ring_tess_factors_amd:
|
||||
case nir_intrinsic_load_ring_tess_offchip_amd:
|
||||
|
|
|
|||
|
|
@ -1714,6 +1714,9 @@ store("tlb_sample_color_v3d", [1], [BASE, COMPONENT, SRC_TYPE], [])
|
|||
# the target framebuffer
|
||||
intrinsic("load_fb_layers_v3d", dest_comp=1, flags=[CAN_ELIMINATE, CAN_REORDER])
|
||||
|
||||
# V3D-specific intrinsic to load W coordinate from the fragment shader payload
|
||||
intrinsic("load_fep_w_v3d", dest_comp=1, flags=[CAN_ELIMINATE, CAN_REORDER])
|
||||
|
||||
# Load a bindless sampler handle mapping a binding table sampler.
|
||||
intrinsic("load_sampler_handle_agx", [1], 1, [],
|
||||
flags=[CAN_ELIMINATE, CAN_REORDER],
|
||||
|
|
|
|||
|
|
@ -173,6 +173,7 @@ can_move_intrinsic(nir_intrinsic_instr *instr, opt_preamble_ctx *ctx)
|
|||
case nir_intrinsic_load_line_width:
|
||||
case nir_intrinsic_load_aa_line_width:
|
||||
case nir_intrinsic_load_fb_layers_v3d:
|
||||
case nir_intrinsic_load_fep_w_v3d:
|
||||
case nir_intrinsic_load_tcs_num_patches_amd:
|
||||
case nir_intrinsic_load_sample_positions_pan:
|
||||
case nir_intrinsic_load_pipeline_stat_query_enabled_amd:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue