Module: Mesa
Branch: master
Commit: e2fecf57e343961cd1db9251cef2c9eb95948d2f
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=e2fecf57e343961cd1db9251cef2c9eb95948d2f

Author: Dave Airlie <[email protected]>
Date:   Wed May  1 14:30:10 2019 +1000

r600: reset tex array override even when no view bound

If no view is bound we still should reset the override to 0
and array mode.

This should fix misrendering in firefox WebRender since
the pbo sampler was removed.

Fixes: 1250383e36 (st/mesa: remove sampler associated with buffer texture in 
pbo logic)

---

 src/gallium/drivers/r600/r600_state.c | 21 ++++++++++-----------
 1 file changed, 10 insertions(+), 11 deletions(-)

diff --git a/src/gallium/drivers/r600/r600_state.c 
b/src/gallium/drivers/r600/r600_state.c
index f86764f5220..96ffbf82927 100644
--- a/src/gallium/drivers/r600/r600_state.c
+++ b/src/gallium/drivers/r600/r600_state.c
@@ -1837,18 +1837,17 @@ static void r600_emit_sampler_states(struct 
r600_context *rctx,
 
                /* TEX_ARRAY_OVERRIDE must be set for array textures to disable
                 * filtering between layers.
-                * Don't update TEX_ARRAY_OVERRIDE if we don't have the sampler 
view.
                 */
-               if (rview) {
-                       enum pipe_texture_target target = 
rview->base.texture->target;
-                       if (target == PIPE_TEXTURE_1D_ARRAY ||
-                           target == PIPE_TEXTURE_2D_ARRAY) {
-                               rstate->tex_sampler_words[0] |= 
S_03C000_TEX_ARRAY_OVERRIDE(1);
-                               texinfo->is_array_sampler[i] = true;
-                       } else {
-                               rstate->tex_sampler_words[0] &= 
C_03C000_TEX_ARRAY_OVERRIDE;
-                               texinfo->is_array_sampler[i] = false;
-                       }
+               enum pipe_texture_target target = PIPE_BUFFER;
+               if (rview)
+                       target = rview->base.texture->target;
+               if (target == PIPE_TEXTURE_1D_ARRAY ||
+                   target == PIPE_TEXTURE_2D_ARRAY) {
+                       rstate->tex_sampler_words[0] |= 
S_03C000_TEX_ARRAY_OVERRIDE(1);
+                       texinfo->is_array_sampler[i] = true;
+               } else {
+                       rstate->tex_sampler_words[0] &= 
C_03C000_TEX_ARRAY_OVERRIDE;
+                       texinfo->is_array_sampler[i] = false;
                }
 
                radeon_emit(cs, PKT3(PKT3_SET_SAMPLER, 3, 0));

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to