if (state)
memcpy(&ctx->blend_color, state, sizeof(*state));
- ctx->stage[PIPE_SHADER_FRAGMENT].dirty = ~0;
+ ctx->dirty |= AGX_DIRTY_BLEND_COLOR;
}
static void *
agx_update_descriptors(batch, ctx->vs, PIPE_SHADER_VERTEX);
agx_update_descriptors(batch, ctx->fs, PIPE_SHADER_FRAGMENT);
- if (IS_DIRTY(VS) || IS_DIRTY(FS))
+ if (IS_DIRTY(VS) || IS_DIRTY(FS) || IS_DIRTY(BLEND_COLOR))
agx_upload_uniforms(batch);
if (IS_DIRTY(VS)) {
if (agx_update_fs(batch))
ctx->dirty |= AGX_DIRTY_FS | AGX_DIRTY_FS_PROG;
- else if (ctx->stage[PIPE_SHADER_FRAGMENT].dirty)
+ else if (ctx->stage[PIPE_SHADER_FRAGMENT].dirty ||
+ (ctx->dirty & (AGX_DIRTY_BLEND_COLOR | AGX_DIRTY_SAMPLE_MASK)))
ctx->dirty |= AGX_DIRTY_FS;
agx_batch_add_bo(batch, ctx->vs->bo);
AGX_DIRTY_QUERY = BITFIELD_BIT(13),
AGX_DIRTY_XFB = BITFIELD_BIT(14),
AGX_DIRTY_SAMPLE_MASK = BITFIELD_BIT(15),
+ AGX_DIRTY_BLEND_COLOR = BITFIELD_BIT(16),
};
/* Maximum number of in-progress + under-construction GPU batches.