broadcom/compiler: needs_quad_helper_invocation enable PER_QUAD TMU access
We take advantage of the needs_quad_helper_invocation information to only enable the PER_QUAD TMU access on Fragment Shaders when it is needed. PER_QUAD access is also disabled on stages different to fragment shader. Being enabled was causing MMU errors when TMU was doing indexed by vertexid reads on disabled lanes on vertex stage. This problem was exercised by some shaders from the GTK new GSK_RENDERER=ngl that were accessing a constant buffer offset[6], but having PER_QUAD enabled on the TMU access by VertexID was doing hidden incorrect access to not existing vertex 6 and 7 as TMU was accessing the full quad. cc: mesa-stable Reviewed-by: Iago Toral Quiroga <itoral@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28740>
This commit is contained in:
committed by
Marge Bot
parent
d2b9e21689
commit
97f5721bfc
@@ -656,6 +656,8 @@ ntq_emit_tmu_general(struct v3d_compile *c, nir_intrinsic_instr *instr,
|
||||
*/
|
||||
uint32_t perquad =
|
||||
is_load && !vir_in_nonuniform_control_flow(c) &&
|
||||
c->s->info.stage == MESA_SHADER_FRAGMENT &&
|
||||
c->s->info.fs.needs_quad_helper_invocations &&
|
||||
!c->emitted_discard ?
|
||||
GENERAL_TMU_LOOKUP_PER_QUAD :
|
||||
GENERAL_TMU_LOOKUP_PER_PIXEL;
|
||||
|
||||
Reference in New Issue
Block a user