diff options
author | Rob Clark <robclark@freedesktop.org> | 2016-05-03 16:54:21 -0400 |
---|---|---|
committer | Rob Clark <robclark@freedesktop.org> | 2016-05-04 11:25:55 -0400 |
commit | 291ac872a445f3edebd668b27e910a79e1de5a00 (patch) | |
tree | c4cefb296120ee62f1a9e61a29f1048c59818443 /src/gallium/drivers/freedreno/ir3 | |
parent | a48cccacf3c7d655bbca42b51193100b43eeff6e (diff) |
freedreno: move shader-stage dirty bits to global dirty flag
This was always a bit overly complicated, and had some issues (like
ctx->prog.dirty not getting reset at the end of the batch). It also
required some special hacks to avoid resetting dirty state on binning
pass. So just move it all into ctx->dirty (leaving some free bits
for future shader stages), and make FD_DIRTY_PROG just be the union
of all FD_SHADER_DIRTY_*.
Signed-off-by: Rob Clark <robclark@freedesktop.org>
Diffstat (limited to 'src/gallium/drivers/freedreno/ir3')
-rw-r--r-- | src/gallium/drivers/freedreno/ir3/ir3_shader.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/gallium/drivers/freedreno/ir3/ir3_shader.c b/src/gallium/drivers/freedreno/ir3/ir3_shader.c index 8019a1286c..4062ca989f 100644 --- a/src/gallium/drivers/freedreno/ir3/ir3_shader.c +++ b/src/gallium/drivers/freedreno/ir3/ir3_shader.c @@ -647,10 +647,10 @@ ir3_emit_consts(const struct ir3_shader_variant *v, struct fd_ringbuffer *ring, if (v->type == SHADER_VERTEX) { constbuf = &ctx->constbuf[PIPE_SHADER_VERTEX]; - shader_dirty = !!(ctx->prog.dirty & FD_SHADER_DIRTY_VP); + shader_dirty = !!(dirty & FD_SHADER_DIRTY_VP); } else if (v->type == SHADER_FRAGMENT) { constbuf = &ctx->constbuf[PIPE_SHADER_FRAGMENT]; - shader_dirty = !!(ctx->prog.dirty & FD_SHADER_DIRTY_FP); + shader_dirty = !!(dirty & FD_SHADER_DIRTY_FP); } else { unreachable("bad shader type"); return; |