summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorIlia Mirkin <[email protected]>2015-07-03 20:16:48 -0400
committerEmil Velikov <[email protected]>2015-09-06 19:08:22 +0100
commit747e1b03bfac3e32878a6f68002b5bb83194fad3 (patch)
tree95a2521764bdb1d9b264e22d7000b5538d66a639 /src
parentb85ec1e34b317accd7f69bb5f23bf9a7a8d84561 (diff)
nv50: rebind bo to bufctx when invalidating idxbuf storage
There is nothing to be done on a dirty idxbuf, but the bo may have changed, so we have to rebind it to the bufctx. Signed-off-by: Ilia Mirkin <[email protected]> Cc: [email protected] (cherry picked from commit 1f62d36ae21043c472fc182fd4b738ec1d54a2d2)
Diffstat (limited to 'src')
-rw-r--r--src/gallium/drivers/nouveau/nv50/nv50_context.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/gallium/drivers/nouveau/nv50/nv50_context.c b/src/gallium/drivers/nouveau/nv50/nv50_context.c
index f8d46db7c67..152c2ce1352 100644
--- a/src/gallium/drivers/nouveau/nv50/nv50_context.c
+++ b/src/gallium/drivers/nouveau/nv50/nv50_context.c
@@ -199,9 +199,13 @@ nv50_invalidate_resource_storage(struct nouveau_context *ctx,
}
}
- if (nv50->idxbuf.buffer == res)
+ if (nv50->idxbuf.buffer == res) {
+ /* Just rebind to the bufctx as there is no separate dirty bit */
+ nouveau_bufctx_reset(nv50->bufctx_3d, NV50_BIND_INDEX);
+ BCTX_REFN(nv50->bufctx_3d, INDEX, nv04_resource(res), RD);
if (!--ref)
return ref;
+ }
for (s = 0; s < 3; ++s) {
assert(nv50->num_textures[s] <= PIPE_MAX_SAMPLERS);