broadcom/vc5: Add missing setting of the UIF XOR disable flag in textures.
authorEric Anholt <eric@anholt.net>
Tue, 19 Dec 2017 22:23:06 +0000 (14:23 -0800)
committerEric Anholt <eric@anholt.net>
Tue, 19 Dec 2017 23:55:14 +0000 (15:55 -0800)
Most piglit textures happened to work out by RGBW not changing in that
bit, but it did cause failures in RGBA16F fbo-generatemipmap-formats.

src/broadcom/cle/v3d_packet_v33.xml
src/gallium/drivers/vc5/vc5_state.c

index 7633ff6f3b03c26bc40200a20d3f4965939d9676..8d1ff2cf3b32831515714d346f60d3bf7a36b4f4 100644 (file)
   </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"/>
index 6a90a78e2e588d77a83de5b87c754aa4f967c7ca..d022aa84e42836f0bbf990f9a278016189e317f6 100644 (file)
@@ -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