static INLINE void trace_context_set_vertex_buffers(struct pipe_context *_pipe, unsigned num_buffers, const struct pipe_vertex_buffer *buffers) { struct trace_context *tr_ctx = trace_context(_pipe); struct pipe_context *pipe = tr_ctx->pipe; unsigned i; for(i = 0; i < num_buffers; ++i) trace_screen_user_buffer_update(_pipe->screen, buffers[i].buffer); trace_dump_call_begin("pipe_context", "set_vertex_buffers"); trace_dump_arg(ptr, pipe); trace_dump_arg(uint, num_buffers); trace_dump_arg_begin("buffers"); trace_dump_struct_array(vertex_buffer, buffers, num_buffers); trace_dump_arg_end(); if (num_buffers) { struct pipe_vertex_buffer *_buffers = malloc(num_buffers * sizeof(*_buffers)); memcpy(_buffers, buffers, num_buffers * sizeof(*_buffers)); for (i = 0; i < num_buffers; i++) _buffers[i].buffer = trace_buffer_unwrap(tr_ctx, buffers[i].buffer); pipe->set_vertex_buffers(pipe, num_buffers, _buffers); free(_buffers); } else { pipe->set_vertex_buffers(pipe, num_buffers, NULL); } trace_dump_call_end(); }
static INLINE void trace_context_set_constant_buffer(struct pipe_context *_pipe, uint shader, uint index, const struct pipe_constant_buffer *buffer) { struct trace_context *tr_ctx = trace_context(_pipe); struct pipe_context *pipe = tr_ctx->pipe; if (buffer) trace_screen_user_buffer_update(_pipe->screen, buffer->buffer); trace_dump_call_begin("pipe_context", "set_constant_buffer"); trace_dump_arg(ptr, pipe); trace_dump_arg(uint, shader); trace_dump_arg(uint, index); trace_dump_arg(constant_buffer, buffer); if (buffer) { struct pipe_constant_buffer _buffer; _buffer.buffer = trace_buffer_unwrap(tr_ctx, buffer->buffer); pipe->set_constant_buffer(pipe, shader, index, &_buffer); } else { pipe->set_constant_buffer(pipe, shader, index, buffer); } trace_dump_call_end(); }