mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 04:38:03 +02:00
freedreno/ir3: switch PIPE_CAP_TGSI_TEXCOORD
We don't really need the varying remapping, and it seems to somehow happen twice when shader-cache comes into the picture. But we can just choose not to have this problem. Now that everything is using the ir3_point_sprite() helper, we can flip this pipe cap without it being a massive flag-day. Signed-off-by: Rob Clark <robdclark@chromium.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5595>
This commit is contained in:
parent
e6d650353a
commit
3065c4bf92
3 changed files with 11 additions and 6 deletions
|
|
@ -70,6 +70,7 @@ static const nir_shader_compiler_options options = {
|
||||||
.lower_rotate = true,
|
.lower_rotate = true,
|
||||||
.lower_to_scalar = true,
|
.lower_to_scalar = true,
|
||||||
.has_imul24 = true,
|
.has_imul24 = true,
|
||||||
|
.lower_wpos_pntc = true,
|
||||||
};
|
};
|
||||||
|
|
||||||
/* we don't want to lower vertex_id to _zero_based on newer gpus: */
|
/* we don't want to lower vertex_id to _zero_based on newer gpus: */
|
||||||
|
|
@ -113,6 +114,7 @@ static const nir_shader_compiler_options options_a6xx = {
|
||||||
.lower_to_scalar = true,
|
.lower_to_scalar = true,
|
||||||
.has_imul24 = true,
|
.has_imul24 = true,
|
||||||
.max_unroll_iterations = 32,
|
.max_unroll_iterations = 32,
|
||||||
|
.lower_wpos_pntc = true,
|
||||||
};
|
};
|
||||||
|
|
||||||
const nir_shader_compiler_options *
|
const nir_shader_compiler_options *
|
||||||
|
|
|
||||||
|
|
@ -390,6 +390,7 @@ fd_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
|
||||||
case PIPE_CAP_STREAM_OUTPUT_PAUSE_RESUME:
|
case PIPE_CAP_STREAM_OUTPUT_PAUSE_RESUME:
|
||||||
case PIPE_CAP_STREAM_OUTPUT_INTERLEAVE_BUFFERS:
|
case PIPE_CAP_STREAM_OUTPUT_INTERLEAVE_BUFFERS:
|
||||||
case PIPE_CAP_TGSI_FS_POSITION_IS_SYSVAL:
|
case PIPE_CAP_TGSI_FS_POSITION_IS_SYSVAL:
|
||||||
|
case PIPE_CAP_TGSI_TEXCOORD:
|
||||||
if (is_ir3(screen))
|
if (is_ir3(screen))
|
||||||
return 1;
|
return 1;
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
||||||
|
|
@ -58,13 +58,15 @@ ir3_point_sprite(const struct ir3_shader_variant *fs, int i,
|
||||||
uint32_t sprite_coord_enable, bool *coord_mode)
|
uint32_t sprite_coord_enable, bool *coord_mode)
|
||||||
{
|
{
|
||||||
gl_varying_slot slot = fs->inputs[i].slot;
|
gl_varying_slot slot = fs->inputs[i].slot;
|
||||||
(void)coord_mode; /* this will be used later */
|
switch (slot) {
|
||||||
/* since we don't enable PIPE_CAP_TGSI_TEXCOORD: */
|
case VARYING_SLOT_PNTC:
|
||||||
if (slot >= VARYING_SLOT_VAR0) {
|
*coord_mode = true;
|
||||||
unsigned texmask = 1 << (slot - VARYING_SLOT_VAR0);
|
return true;
|
||||||
return !!(sprite_coord_enable & texmask);
|
case VARYING_SLOT_TEX0 ... VARYING_SLOT_TEX7:
|
||||||
|
return !!(sprite_coord_enable & BITFIELD_BIT(slot - VARYING_SLOT_TEX0));
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* IR3_GALLIUM_H_ */
|
#endif /* IR3_GALLIUM_H_ */
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue