void trace_dump_blend_state(const struct pipe_blend_state *state) { unsigned valid_entries = 1; if (!trace_dumping_enabled_locked()) return; if(!state) { trace_dump_null(); return; } trace_dump_struct_begin("pipe_blend_state"); trace_dump_member(bool, state, dither); trace_dump_member(bool, state, logicop_enable); trace_dump_member(uint, state, logicop_func); trace_dump_member(bool, state, independent_blend_enable); trace_dump_member_begin("rt"); if (state->independent_blend_enable) valid_entries = PIPE_MAX_COLOR_BUFS; trace_dump_struct_array(rt_blend_state, state->rt, valid_entries); trace_dump_member_end(); trace_dump_struct_end(); }
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_vertex_elements(struct pipe_context *_pipe, unsigned num_elements, const struct pipe_vertex_element *elements) { struct trace_context *tr_ctx = trace_context(_pipe); struct pipe_context *pipe = tr_ctx->pipe; trace_dump_call_begin("pipe_context", "set_vertex_elements"); trace_dump_arg(ptr, pipe); trace_dump_arg(uint, num_elements); trace_dump_arg_begin("elements"); trace_dump_struct_array(vertex_element, elements, num_elements); trace_dump_arg_end(); pipe->set_vertex_elements(pipe, num_elements, elements); trace_dump_call_end(); }