collect_tex_prefetches(ctx, ir);
if (so->type == MESA_SHADER_FRAGMENT &&
- ctx->s->info.fs.needs_quad_helper_invocations)
+ ctx->s->info.fs.needs_quad_helper_invocations) {
so->need_pixlod = true;
+ so->need_full_quad = true;
+ }
if ((ctx->so->type == MESA_SHADER_FRAGMENT) &&
!ctx->s->info.fs.early_fragment_tests)
struct ir3_instruction *op_p = ir3_instr_clone(n);
op_p->flags = IR3_INSTR_P;
- ctx->so->need_fine_derivatives = true;
+ ctx->so->need_full_quad = true;
}
}
/* do we need derivatives: */
bool need_pixlod;
- bool need_fine_derivatives;
+ bool need_full_quad;
/* do we need VS driver params? */
bool need_driver_params;
.branchstack = ir3_shader_branchstack_hw(xs),
.threadsize = thrsz,
.varying = xs->total_in != 0,
- .lodpixmask = xs->need_fine_derivatives,
+ .lodpixmask = xs->need_full_quad,
/* unknown bit, seems unnecessary */
.unk24 = true,
.pixlodenable = xs->need_pixlod,
ring,
A6XX_SP_FS_CTRL_REG0_THREADSIZE(fssz) |
COND(enable_varyings, A6XX_SP_FS_CTRL_REG0_VARYING) | 0x1000000 |
- COND(fs->need_fine_derivatives, A6XX_SP_FS_CTRL_REG0_LODPIXMASK) |
+ COND(fs->need_full_quad, A6XX_SP_FS_CTRL_REG0_LODPIXMASK) |
A6XX_SP_FS_CTRL_REG0_FULLREGFOOTPRINT(fs->info.max_reg + 1) |
A6XX_SP_FS_CTRL_REG0_HALFREGFOOTPRINT(fs->info.max_half_reg + 1) |
COND(fs->mergedregs, A6XX_SP_FS_CTRL_REG0_MERGEDREGS) |