mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-06-19 10:38:30 +02:00
freedreno/a6xx: disable unused groups
Don't leave vsconst/fsconst group enabled if we switch to shader with no
uniforms.
Fixes: abcdf5627a freedreno/a6xx: move const emit to state group
Signed-off-by: Rob Clark <robdclark@gmail.com>
This commit is contained in:
parent
d53074d3f1
commit
3c402d0dc2
2 changed files with 13 additions and 6 deletions
|
|
@ -954,10 +954,19 @@ fd6_emit_state(struct fd_ringbuffer *ring, struct fd6_emit *emit)
|
|||
struct fd6_state_group *g = &emit->groups[i];
|
||||
unsigned n = fd_ringbuffer_size(g->stateobj) / 4;
|
||||
|
||||
OUT_RING(ring, CP_SET_DRAW_STATE__0_COUNT(n) |
|
||||
CP_SET_DRAW_STATE__0_ENABLE_MASK(g->enable_mask) |
|
||||
CP_SET_DRAW_STATE__0_GROUP_ID(g->group_id));
|
||||
OUT_RB(ring, g->stateobj);
|
||||
if (n == 0) {
|
||||
OUT_RING(ring, CP_SET_DRAW_STATE__0_COUNT(0) |
|
||||
CP_SET_DRAW_STATE__0_DISABLE |
|
||||
CP_SET_DRAW_STATE__0_ENABLE_MASK(g->enable_mask) |
|
||||
CP_SET_DRAW_STATE__0_GROUP_ID(g->group_id));
|
||||
OUT_RING(ring, 0x00000000);
|
||||
OUT_RING(ring, 0x00000000);
|
||||
} else {
|
||||
OUT_RING(ring, CP_SET_DRAW_STATE__0_COUNT(n) |
|
||||
CP_SET_DRAW_STATE__0_ENABLE_MASK(g->enable_mask) |
|
||||
CP_SET_DRAW_STATE__0_GROUP_ID(g->group_id));
|
||||
OUT_RB(ring, g->stateobj);
|
||||
}
|
||||
|
||||
fd_ringbuffer_del(g->stateobj);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -110,8 +110,6 @@ fd6_emit_add_group(struct fd6_emit *emit, struct fd_ringbuffer *stateobj,
|
|||
enum fd6_state_id group_id, unsigned enable_mask)
|
||||
{
|
||||
debug_assert(emit->num_groups < ARRAY_SIZE(emit->groups));
|
||||
if (fd_ringbuffer_size(stateobj) == 0)
|
||||
return;
|
||||
struct fd6_state_group *g = &emit->groups[emit->num_groups++];
|
||||
g->stateobj = fd_ringbuffer_ref(stateobj);
|
||||
g->group_id = group_id;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue