rbug: unwrap index buffer resource
authorLucas Stach <l.stach@pengutronix.de>
Mon, 16 Sep 2019 12:55:13 +0000 (14:55 +0200)
committerLucas Stach <dev@lynxeye.de>
Fri, 18 Oct 2019 10:12:07 +0000 (10:12 +0000)
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 <l.stach@pengutronix.de>
src/gallium/auxiliary/driver_rbug/rbug_context.c

index adf3493aab5cdd74a1c8cb3b0259cb9680825d9d..436fd8bd83ed6d1f800cb59942c37529d74a5300 100644 (file)
@@ -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);