aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLucas Stach <[email protected]>2019-09-16 14:55:13 +0200
committerLucas Stach <[email protected]>2019-10-18 10:12:07 +0000
commita75eb888e0ceeaa61b3583668c05cc1f5f5786ce (patch)
treee080b55bcc7936dbac8ce46e96045e5f1ac9eb8c
parent6174cba748988d2187ea3ae682e7fc0c4a4b7d3e (diff)
rbug: unwrap index buffer resource
All resources passed to the drivers below rbug need to be unwrapped before being passed down. We missed to do this for the index buffer resource when this was made part of the draw_info structure. Fixes: 330d0607ed60 (gallium: remove pipe_index_buffer and set_index_buffer) Signed-off-by: Lucas Stach <[email protected]>
-rw-r--r--src/gallium/auxiliary/driver_rbug/rbug_context.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/gallium/auxiliary/driver_rbug/rbug_context.c b/src/gallium/auxiliary/driver_rbug/rbug_context.c
index adf3493aab5..436fd8bd83e 100644
--- a/src/gallium/auxiliary/driver_rbug/rbug_context.c
+++ b/src/gallium/auxiliary/driver_rbug/rbug_context.c
@@ -114,10 +114,15 @@ rbug_draw_block_locked(struct rbug_context *rb_pipe, int flag)
}
static void
-rbug_draw_vbo(struct pipe_context *_pipe, const struct pipe_draw_info *info)
+rbug_draw_vbo(struct pipe_context *_pipe, const struct pipe_draw_info *_info)
{
struct rbug_context *rb_pipe = rbug_context(_pipe);
struct pipe_context *pipe = rb_pipe->pipe;
+ struct pipe_draw_info info;
+
+ info = *_info;
+ if(_info->index_size && !_info->has_user_indices)
+ info.index.resource = rbug_resource_unwrap(_info->index.resource);
mtx_lock(&rb_pipe->draw_mutex);
rbug_draw_block_locked(rb_pipe, RBUG_BLOCK_BEFORE);
@@ -127,7 +132,7 @@ rbug_draw_vbo(struct pipe_context *_pipe, const struct pipe_draw_info *info)
if (!(rb_pipe->curr.shader[PIPE_SHADER_FRAGMENT] && rb_pipe->curr.shader[PIPE_SHADER_FRAGMENT]->disabled) &&
!(rb_pipe->curr.shader[PIPE_SHADER_GEOMETRY] && rb_pipe->curr.shader[PIPE_SHADER_GEOMETRY]->disabled) &&
!(rb_pipe->curr.shader[PIPE_SHADER_VERTEX] && rb_pipe->curr.shader[PIPE_SHADER_VERTEX]->disabled))
- pipe->draw_vbo(pipe, info);
+ pipe->draw_vbo(pipe, &info);
mtx_unlock(&rb_pipe->call_mutex);
rbug_draw_block_locked(rb_pipe, RBUG_BLOCK_AFTER);