The dirty bit will be flagged again when re-enbaled. Keeps us from
emitting blend state in CLs that never do blending.
- if (vc5->dirty & VC5_DIRTY_BLEND) {
+ if (vc5->dirty & VC5_DIRTY_BLEND && vc5->blend->rt[0].blend_enable) {
struct pipe_blend_state *blend = vc5->blend;
cl_emit(&job->bcl, BLEND_CONFIG, config) {
struct pipe_blend_state *blend = vc5->blend;
cl_emit(&job->bcl, BLEND_CONFIG, config) {
vc5_factor(rtblend->alpha_src_factor,
vc5->blend_dst_alpha_one);
}
vc5_factor(rtblend->alpha_src_factor,
vc5->blend_dst_alpha_one);
}
+ }
+
+ if (vc5->dirty & VC5_DIRTY_BLEND) {
+ struct pipe_blend_state *blend = vc5->blend;
cl_emit(&job->bcl, COLOUR_WRITE_MASKS, mask) {
if (blend->independent_blend_enable) {
cl_emit(&job->bcl, COLOUR_WRITE_MASKS, mask) {
if (blend->independent_blend_enable) {