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

Author: Samuel Pitoiset <[email protected]>
Date:   Thu May 12 20:54:41 2016 +0200

nvc0: invalidate texture buffers for compute

This is a pretty rare situation but this can happen though.

Signed-off-by: Samuel Pitoiset <[email protected]>
Reviewed-by: Ilia Mirkin <[email protected]>

---

 src/gallium/drivers/nouveau/nvc0/nvc0_context.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_context.c 
b/src/gallium/drivers/nouveau/nvc0/nvc0_context.c
index 428b33d..d51e89d 100644
--- a/src/gallium/drivers/nouveau/nvc0/nvc0_context.c
+++ b/src/gallium/drivers/nouveau/nvc0/nvc0_context.c
@@ -263,13 +263,18 @@ nvc0_invalidate_resource_storage(struct nouveau_context 
*ctx,
             return ref;
       }
 
-      for (s = 0; s < 5; ++s) {
+      for (s = 0; s < 6; ++s) {
       for (i = 0; i < nvc0->num_textures[s]; ++i) {
          if (nvc0->textures[s][i] &&
              nvc0->textures[s][i]->texture == res) {
             nvc0->textures_dirty[s] |= 1 << i;
-            nvc0->dirty_3d |= NVC0_NEW_3D_TEXTURES;
-            nouveau_bufctx_reset(nvc0->bufctx_3d, NVC0_BIND_3D_TEX(s, i));
+            if (unlikely(s == 5)) {
+               nvc0->dirty_cp |= NVC0_NEW_CP_TEXTURES;
+               nouveau_bufctx_reset(nvc0->bufctx_cp, NVC0_BIND_CP_TEX(i));
+            } else {
+               nvc0->dirty_3d |= NVC0_NEW_3D_TEXTURES;
+               nouveau_bufctx_reset(nvc0->bufctx_3d, NVC0_BIND_3D_TEX(s, i));
+            }
             if (!--ref)
                return ref;
          }

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

Reply via email to