gallium: interface changes necessary to implement transform feedback (v5)
[mesa.git] / src / gallium / drivers / trace / tr_dump_state.c
index cbe4cb6b8c4d286300d90ff3968a8594ca3cbe9a..b1fec2d3bf6aa5ad23fb1b76e77b31dfdf18eb84 100644 (file)
@@ -250,6 +250,7 @@ void trace_dump_clip_state(const struct pipe_clip_state *state)
 void trace_dump_shader_state(const struct pipe_shader_state *state)
 {
    static char str[8192];
+   unsigned i;
 
    if (!trace_dumping_enabled_locked())
       return;
@@ -267,6 +268,24 @@ void trace_dump_shader_state(const struct pipe_shader_state *state)
    trace_dump_string(str);
    trace_dump_member_end();
 
+   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_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], output_buffer);
+      trace_dump_struct_end();
+      trace_dump_elem_end();
+   }
+   trace_dump_array_end();
+   trace_dump_struct_end();
+   trace_dump_member_end();
+
    trace_dump_struct_end();
 }
 
@@ -660,5 +679,7 @@ void trace_dump_draw_info(const struct pipe_draw_info *state)
    trace_dump_member(uint, state, min_index);
    trace_dump_member(uint, state, max_index);
 
+   trace_dump_member(ptr, state, count_from_stream_output);
+
    trace_dump_struct_end();
 }