summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2017-12-19 14:23:06 -0800
committerEric Anholt <[email protected]>2017-12-19 15:55:14 -0800
commit22ceb1f99b5ae62d23200f4fecea8b62ab745318 (patch)
treeeb688be057277b668e54dbd59439b63171d71354
parent200562ad0121c6723100ae8df5b28d0d75df4a8f (diff)
broadcom/vc5: Add missing setting of the UIF XOR disable flag in textures.
Most piglit textures happened to work out by RGBW not changing in that bit, but it did cause failures in RGBA16F fbo-generatemipmap-formats.
-rw-r--r--src/broadcom/cle/v3d_packet_v33.xml1
-rw-r--r--src/gallium/drivers/vc5/vc5_state.c3
2 files changed, 4 insertions, 0 deletions
diff --git a/src/broadcom/cle/v3d_packet_v33.xml b/src/broadcom/cle/v3d_packet_v33.xml
index 7633ff6f3b0..8d1ff2cf3b3 100644
--- a/src/broadcom/cle/v3d_packet_v33.xml
+++ b/src/broadcom/cle/v3d_packet_v33.xml
@@ -817,6 +817,7 @@
</struct>
<struct name="Texture Shader State">
+ <field name="UIF XOR disable" size="1" start="255" type="bool"/>
<field name="Level 0 is strictly UIF" size="1" start="254" type="bool"/>
<field name="Level 0 XOR enable" size="1" start="252" type="bool"/>
<field name="Level 0 UB_PAD" size="4" start="248" type="uint"/>
diff --git a/src/gallium/drivers/vc5/vc5_state.c b/src/gallium/drivers/vc5/vc5_state.c
index 6a90a78e2e5..d022aa84e42 100644
--- a/src/gallium/drivers/vc5/vc5_state.c
+++ b/src/gallium/drivers/vc5/vc5_state.c
@@ -693,6 +693,9 @@ vc5_create_sampler_view(struct pipe_context *pctx, struct pipe_resource *prsc,
tex.swizzle_a = translate_swizzle(PIPE_SWIZZLE_W);
}
+ tex.uif_xor_disable = (rsc->slices[0].tiling ==
+ VC5_TILING_UIF_NO_XOR);
+
/* Since other platform devices may produce UIF images even
* when they're not big enough for V3D to assume they're UIF,
* we force images with level 0 as UIF to be always treated