ddebug: dump shader buffers and images
this was unimplemented Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
@@ -158,6 +158,9 @@ util_dump_surface(FILE *stream,
|
|||||||
void
|
void
|
||||||
util_dump_image_view(FILE *stream, const struct pipe_image_view *state);
|
util_dump_image_view(FILE *stream, const struct pipe_image_view *state);
|
||||||
|
|
||||||
|
void
|
||||||
|
util_dump_shader_buffer(FILE *stream, const struct pipe_shader_buffer *state);
|
||||||
|
|
||||||
void
|
void
|
||||||
util_dump_sampler_view(FILE *stream, const struct pipe_sampler_view *state);
|
util_dump_sampler_view(FILE *stream, const struct pipe_sampler_view *state);
|
||||||
|
|
||||||
|
@@ -735,6 +735,25 @@ util_dump_image_view(FILE *stream, const struct pipe_image_view *state)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
util_dump_shader_buffer(FILE *stream, const struct pipe_shader_buffer *state)
|
||||||
|
{
|
||||||
|
if (!state) {
|
||||||
|
util_dump_null(stream);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
util_dump_struct_begin(stream, "pipe_shader_buffer");
|
||||||
|
|
||||||
|
util_dump_member(stream, ptr, state, buffer);
|
||||||
|
util_dump_member(stream, uint, state, buffer_offset);
|
||||||
|
util_dump_member(stream, uint, state, buffer_size);
|
||||||
|
|
||||||
|
util_dump_struct_end(stream);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
util_dump_sampler_view(FILE *stream, const struct pipe_sampler_view *state)
|
util_dump_sampler_view(FILE *stream, const struct pipe_sampler_view *state)
|
||||||
{
|
{
|
||||||
|
@@ -313,8 +313,19 @@ dd_dump_draw_vbo(struct dd_draw_state *dstate, struct pipe_draw_info *info, FILE
|
|||||||
DUMP_M(resource, dstate->sampler_views[sh][i], texture);
|
DUMP_M(resource, dstate->sampler_views[sh][i], texture);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* TODO: print shader images */
|
for (i = 0; i < PIPE_MAX_SHADER_IMAGES; i++)
|
||||||
/* TODO: print shader buffers */
|
if (dstate->shader_images[sh][i].resource) {
|
||||||
|
DUMP_I(image_view, &dstate->shader_images[sh][i], i);
|
||||||
|
if (dstate->shader_images[sh][i].resource)
|
||||||
|
DUMP_M(resource, &dstate->shader_images[sh][i], resource);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < PIPE_MAX_SHADER_BUFFERS; i++)
|
||||||
|
if (dstate->shader_buffers[sh][i].buffer) {
|
||||||
|
DUMP_I(shader_buffer, &dstate->shader_buffers[sh][i], i);
|
||||||
|
if (dstate->shader_buffers[sh][i].buffer)
|
||||||
|
DUMP_M(resource, &dstate->shader_buffers[sh][i], buffer);
|
||||||
|
}
|
||||||
|
|
||||||
fprintf(f, COLOR_SHADER "end shader: %s" COLOR_RESET "\n\n", shader_str[sh]);
|
fprintf(f, COLOR_SHADER "end shader: %s" COLOR_RESET "\n\n", shader_str[sh]);
|
||||||
}
|
}
|
||||||
@@ -804,7 +815,20 @@ dd_copy_draw_state(struct dd_draw_state *dst, struct dd_draw_state *src)
|
|||||||
else
|
else
|
||||||
dst->sampler_states[i][j] = NULL;
|
dst->sampler_states[i][j] = NULL;
|
||||||
}
|
}
|
||||||
/* TODO: shader buffers & images */
|
|
||||||
|
for (j = 0; j < PIPE_MAX_SHADER_IMAGES; j++) {
|
||||||
|
pipe_resource_reference(&dst->shader_images[i][j].resource,
|
||||||
|
src->shader_images[i][j].resource);
|
||||||
|
memcpy(&dst->shader_images[i][j], &src->shader_images[i][j],
|
||||||
|
sizeof(src->shader_images[i][j]));
|
||||||
|
}
|
||||||
|
|
||||||
|
for (j = 0; j < PIPE_MAX_SHADER_BUFFERS; j++) {
|
||||||
|
pipe_resource_reference(&dst->shader_buffers[i][j].buffer,
|
||||||
|
src->shader_buffers[i][j].buffer);
|
||||||
|
memcpy(&dst->shader_buffers[i][j], &src->shader_buffers[i][j],
|
||||||
|
sizeof(src->shader_buffers[i][j]));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (src->velems)
|
if (src->velems)
|
||||||
|
Reference in New Issue
Block a user