radv: fix handling ViewportIndex with GPL
When the fragment shader reads the viewport index as input and the last pre-rasterization stage doesn't export it, it should be implicitly zero (ie. first viewport). When the next stage is known, it's already lowered in NIR, but with GPL we can't because we don't know if the FS reads it. To fix this use AC_EXP_PARAM_DEFAULT_VAL_000. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Timur Kristóf <timur.kristof@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18699>
This commit is contained in:

committed by
Marge Bot

parent
515847b2a7
commit
630bb53e68
@@ -5456,7 +5456,7 @@ radv_pipeline_emit_ps_inputs(struct radeon_cmdbuf *ctx_cs,
|
||||
|
||||
if (ps->info.ps.viewport_index_input && !mesh)
|
||||
single_slot_to_ps_input(outinfo, VARYING_SLOT_VIEWPORT, ps_input_cntl, &ps_offset,
|
||||
false, false, true);
|
||||
false, true, true);
|
||||
|
||||
if (ps->info.ps.has_pcoord)
|
||||
ps_input_cntl[ps_offset++] = S_028644_PT_SPRITE_TEX(1) | S_028644_OFFSET(0x20);
|
||||
@@ -5485,7 +5485,7 @@ radv_pipeline_emit_ps_inputs(struct radeon_cmdbuf *ctx_cs,
|
||||
|
||||
if (ps->info.ps.viewport_index_input && mesh)
|
||||
single_slot_to_ps_input(outinfo, VARYING_SLOT_VIEWPORT, ps_input_cntl, &ps_offset,
|
||||
false, false, false);
|
||||
false, true, false);
|
||||
|
||||
input_mask_to_ps_inputs(outinfo, ps, ps->info.ps.input_per_primitive_mask,
|
||||
ps_input_cntl, &ps_offset);
|
||||
|
Reference in New Issue
Block a user