ir3: disable alias.rt pre-a750

Even though alias.tex is supported on all of a7xx, alias.rt is only
support from a750.

Signed-off-by: Job Noorman <jnoorman@igalia.com>
Fixes: 0aa9678d4d ("ir3: add support for alias.rt")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33184>
This commit is contained in:
Job Noorman 2025-01-23 12:50:51 +01:00 committed by Marge Bot
parent 9ea04a1a53
commit 41ae187003
5 changed files with 15 additions and 7 deletions

View file

@ -341,6 +341,9 @@ struct fd_dev_info {
/* a750-specific HW bug workaround for ray tracing */
bool has_rt_workaround;
/* Whether alias.rt is supported. */
bool has_alias_rt;
} a7xx;
};

View file

@ -912,6 +912,7 @@ a7xx_gen3 = A7XXProps(
has_ray_intersection = True,
has_sw_fuse = True,
has_rt_workaround = True,
has_alias_rt=True,
)
a730_magic_regs = dict(

View file

@ -152,7 +152,7 @@ alias_srcs(struct ir3_instruction *instr)
bool
ir3_create_alias_tex_regs(struct ir3 *ir)
{
if (!ir->compiler->has_alias)
if (!ir->compiler->has_alias_tex)
return false;
if (ir3_shader_debug & IR3_DBG_NOALIASTEX)
return false;
@ -620,7 +620,7 @@ has_alias_srcs(struct ir3_instruction *instr)
bool
ir3_insert_alias_tex(struct ir3 *ir)
{
if (!ir->compiler->has_alias)
if (!ir->compiler->has_alias_tex)
return false;
if (ir3_shader_debug & IR3_DBG_NOALIASTEX)
return false;
@ -747,7 +747,7 @@ create_output_aliases(struct ir3_shader_variant *v, struct ir3_instruction *end)
bool
ir3_create_alias_rt(struct ir3 *ir, struct ir3_shader_variant *v)
{
if (!ir->compiler->has_alias)
if (!ir->compiler->has_alias_rt)
return false;
if (ir3_shader_debug & IR3_DBG_NOALIASRT)
return false;

View file

@ -159,7 +159,7 @@ ir3_compiler_create(struct fd_device *dev, const struct fd_dev_id *dev_id,
compiler->bitops_can_write_predicates = false;
compiler->has_branch_and_or = false;
compiler->has_rpt_bary_f = false;
compiler->has_alias = false;
compiler->has_alias_tex = false;
if (compiler->gen >= 6) {
compiler->samgq_workaround = true;
@ -235,9 +235,10 @@ ir3_compiler_create(struct fd_device *dev, const struct fd_dev_id *dev_id,
compiler->has_shfl = true;
compiler->reading_shading_rate_requires_smask_quirk =
dev_info->a7xx.reading_shading_rate_requires_smask_quirk;
compiler->has_alias_rt = dev_info->a7xx.has_alias_rt;
if (compiler->gen >= 7) {
compiler->has_alias = true;
compiler->has_alias_tex = true;
}
} else {
compiler->max_const_pipeline = 512;

View file

@ -282,8 +282,11 @@ struct ir3_compiler {
/* True if (rptN) is supported for bary.f. */
bool has_rpt_bary_f;
/* True if alias.tex and alias.rt are supported. */
bool has_alias;
/* True if alias.tex is supported. */
bool has_alias_tex;
/* True if alias.rt is supported. */
bool has_alias_rt;
bool reading_shading_rate_requires_smask_quirk;
};