diff options
author | Marek Olšák <[email protected]> | 2011-12-17 23:12:45 +0100 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2012-01-15 07:28:35 +0100 |
commit | 2449695e822421fdcaf1c66dffc12d7d705ea69d (patch) | |
tree | e1866c15d7fc3749ea6240fe0f519970448c5b0b /src/gallium/drivers/trace | |
parent | faa90abfe0b6f55ab69768eb930b4ab5ef21cb06 (diff) |
gallium: improve the pipe_stream_output_info struct (v2)
There are 3 changes:
1) stride is specified for each buffer, not just one, so that drivers don't
have to derive it from the outputs
2) new per-output property dst_offset, which specifies the offset
into the buffer in dwords where the output should be stored,
so that drivers don't have to compute the offsets manually;
this will also be useful for gl_SkipComponents
from ARB_transform_feedback3
3) register_mask is removed, instead, there is start_component
and num_components; register_mask with non-consecutive 1s
doesn't make much sense (some hardware cannot do packing of components)
Christoph Bumiller: fixed nvc0.
v2: resolve merge conflicts in Draw and clean it up
Diffstat (limited to 'src/gallium/drivers/trace')
-rw-r--r-- | src/gallium/drivers/trace/tr_dump_state.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/gallium/drivers/trace/tr_dump_state.c b/src/gallium/drivers/trace/tr_dump_state.c index 8af084c2769..fb8683adba5 100644 --- a/src/gallium/drivers/trace/tr_dump_state.c +++ b/src/gallium/drivers/trace/tr_dump_state.c @@ -274,14 +274,16 @@ void trace_dump_shader_state(const struct pipe_shader_state *state) trace_dump_member_begin("stream_output"); trace_dump_struct_begin("pipe_stream_output_info"); trace_dump_member(uint, &state->stream_output, num_outputs); - trace_dump_member(uint, &state->stream_output, stride); + trace_dump_array(uint, state->stream_output.stride, PIPE_MAX_SO_BUFFERS); trace_dump_array_begin(); for(i = 0; i < state->stream_output.num_outputs; ++i) { trace_dump_elem_begin(); trace_dump_struct_begin(""); /* anonymous */ trace_dump_member(uint, &state->stream_output.output[i], register_index); - trace_dump_member(uint, &state->stream_output.output[i], register_mask); + trace_dump_member(uint, &state->stream_output.output[i], start_component); + trace_dump_member(uint, &state->stream_output.output[i], num_components); trace_dump_member(uint, &state->stream_output.output[i], output_buffer); + trace_dump_member(uint, &state->stream_output.output[i], dst_offset); trace_dump_struct_end(); trace_dump_elem_end(); } |