panfrost: Fix logic ops on Bifrost
opaque should not be set when logicops are enabled, that needs blending
even on Bifrost. Fixes is for when I believe the bug became possible to hit.
The logical error is older.
Fixes Piglit logicop tests again.
Fixes: d849d9779a ("panfrost: Avoid blend shader when not blending")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20685>
This commit is contained in:
committed by
Marge Bot
parent
fe4dc59e99
commit
41d99c10d1
@@ -4209,7 +4209,7 @@ panfrost_create_blend_state(struct pipe_context *pipe,
|
||||
const bool supports_2src = pan_blend_supports_2src(PAN_ARCH);
|
||||
so->info[c] = (struct pan_blend_info){
|
||||
.enabled = (equation.color_mask != 0),
|
||||
.opaque = pan_blend_is_opaque(equation),
|
||||
.opaque = !blend->logicop_enable && pan_blend_is_opaque(equation),
|
||||
.constant_mask = constant_mask,
|
||||
|
||||
/* TODO: check the dest for the logicop */
|
||||
|
||||
@@ -796,7 +796,8 @@ GENX(pan_blend_get_shader_locked)(const struct panfrost_device *dev,
|
||||
};
|
||||
|
||||
/* Blend shaders should only be used for blending on Bifrost onwards */
|
||||
assert(dev->arch <= 5 || !pan_blend_is_opaque(state->rts[rt].equation));
|
||||
assert(dev->arch <= 5 || state->logicop_enable ||
|
||||
!pan_blend_is_opaque(state->rts[rt].equation));
|
||||
assert(state->rts[rt].equation.color_mask != 0);
|
||||
|
||||
struct hash_entry *he =
|
||||
|
||||
Reference in New Issue
Block a user