asahi: Disable tilebuffer write masking optimization

This seems to flake some dEQPs due to some kind of race/UB (which
doesn't even always cause the dEQPs to fail due to leeway in the image
comparison, since the problem is usually just a few pixels, but it's
there).

I spent a bunch of time trying other flags/things, and almost everything
changed the bad pixel pattern randomly but nothing fixed it. Let's
revisit this one later, since it looks like a pretty deep rabbit hole.

Signed-off-by: Asahi Lina <lina@asahilina.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22971>
This commit is contained in:
Asahi Lina
2023-05-10 15:11:36 +09:00
committed by Marge Bot
parent 6f57f952fc
commit 2e377190f5
+5 -1
View File
@@ -1379,7 +1379,11 @@ agx_compile_variant(struct agx_device *dev, struct agx_uncompiled_shader *so,
uint8_t colormasks[PIPE_MAX_COLOR_BUFS] = {0};
for (unsigned i = 0; i < PIPE_MAX_COLOR_BUFS; ++i) {
if (agx_tilebuffer_supports_mask(&tib, i)) {
/* TODO: Flakes some dEQPs, seems to invoke UB. Revisit later.
* dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.77
* dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.98
*/
if (0 /* agx_tilebuffer_supports_mask(&tib, i) */) {
colormasks[i] = key->blend.rt[i].colormask;
opts.rt[i].colormask = BITFIELD_MASK(4);
} else {