X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Fdrivers%2Fsoftpipe%2Fsp_state_vertex.c;h=2aee700fec28282ddd568a9e937ce9268193fde8;hb=a788be19e5bb65432b7701f6d663501f3484151c;hp=5f4d661abde74ed6cb0297ed69caacf4fe7bcda0;hpb=9032d2a13ecd019206a48767d9205c0aafa7cca2;p=mesa.git diff --git a/src/gallium/drivers/softpipe/sp_state_vertex.c b/src/gallium/drivers/softpipe/sp_state_vertex.c index 5f4d661abde..2aee700fec2 100644 --- a/src/gallium/drivers/softpipe/sp_state_vertex.c +++ b/src/gallium/drivers/softpipe/sp_state_vertex.c @@ -33,7 +33,9 @@ #include "sp_state.h" #include "util/u_memory.h" +#include "util/u_helpers.h" #include "util/u_inlines.h" +#include "util/u_transfer.h" #include "draw/draw_context.h" @@ -78,20 +80,20 @@ softpipe_delete_vertex_elements_state(struct pipe_context *pipe, void *velems) static void softpipe_set_vertex_buffers(struct pipe_context *pipe, - unsigned count, + unsigned start_slot, unsigned count, const struct pipe_vertex_buffer *buffers) { struct softpipe_context *softpipe = softpipe_context(pipe); assert(count <= PIPE_MAX_ATTRIBS); - util_copy_vertex_buffers(softpipe->vertex_buffer, - &softpipe->num_vertex_buffers, - buffers, count); + util_set_vertex_buffers_count(softpipe->vertex_buffer, + &softpipe->num_vertex_buffers, + buffers, start_slot, count); softpipe->dirty |= SP_NEW_VERTEX; - draw_set_vertex_buffers(softpipe->draw, count, buffers); + draw_set_vertex_buffers(softpipe->draw, start_slot, count, buffers); } @@ -105,8 +107,6 @@ softpipe_set_index_buffer(struct pipe_context *pipe, memcpy(&softpipe->index_buffer, ib, sizeof(softpipe->index_buffer)); else memset(&softpipe->index_buffer, 0, sizeof(softpipe->index_buffer)); - - draw_set_index_buffer(softpipe->draw, ib); }