mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-04-13 05:43:18 -07:00
vkd3d-shader: Factor out a vkd3d_shader_trace_text() helper and use it in vkd3d_spirv_dump() (Valgrind).
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
committed by
Alexandre Julliard
parent
155812b124
commit
75a1a24d63
@ -127,13 +127,7 @@ static void vkd3d_spirv_dump(const struct vkd3d_shader_code *spirv,
|
|||||||
|
|
||||||
if (!vkd3d_spirv_binary_to_text(spirv, environment, options, &text))
|
if (!vkd3d_spirv_binary_to_text(spirv, environment, options, &text))
|
||||||
{
|
{
|
||||||
const char *str, *current = text.code;
|
vkd3d_shader_trace_text(text.code, text.size);
|
||||||
while ((str = strchr(current, '\n')))
|
|
||||||
{
|
|
||||||
TRACE("%.*s\n", (int)(str - current), current);
|
|
||||||
current = str + 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
vkd3d_shader_free_shader_code(&text);
|
vkd3d_shader_free_shader_code(&text);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -98,12 +98,17 @@ int vkd3d_string_buffer_printf(struct vkd3d_string_buffer *buffer, const char *f
|
|||||||
|
|
||||||
void vkd3d_string_buffer_trace_(const struct vkd3d_string_buffer *buffer, const char *function)
|
void vkd3d_string_buffer_trace_(const struct vkd3d_string_buffer *buffer, const char *function)
|
||||||
{
|
{
|
||||||
const char *p, *q, *end = buffer->buffer + buffer->content_size;
|
vkd3d_shader_trace_text_(buffer->buffer, buffer->content_size, function);
|
||||||
|
}
|
||||||
|
|
||||||
|
void vkd3d_shader_trace_text_(const char *text, size_t size, const char *function)
|
||||||
|
{
|
||||||
|
const char *p, *q, *end = text + size;
|
||||||
|
|
||||||
if (!TRACE_ON())
|
if (!TRACE_ON())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
for (p = buffer->buffer; p < end; p = q)
|
for (p = text; p < end; p = q)
|
||||||
{
|
{
|
||||||
if (!(q = memchr(p, '\n', end - p)))
|
if (!(q = memchr(p, '\n', end - p)))
|
||||||
q = end;
|
q = end;
|
||||||
|
@ -984,6 +984,9 @@ void vkd3d_shader_vwarning(struct vkd3d_shader_message_context *context, const s
|
|||||||
|
|
||||||
void vkd3d_shader_dump_shader(enum vkd3d_shader_source_type source_type,
|
void vkd3d_shader_dump_shader(enum vkd3d_shader_source_type source_type,
|
||||||
enum vkd3d_shader_type shader_type, const struct vkd3d_shader_code *shader);
|
enum vkd3d_shader_type shader_type, const struct vkd3d_shader_code *shader);
|
||||||
|
void vkd3d_shader_trace_text_(const char *text, size_t size, const char *function);
|
||||||
|
#define vkd3d_shader_trace_text(text, size) \
|
||||||
|
vkd3d_shader_trace_text_(text, size, __FUNCTION__)
|
||||||
|
|
||||||
int shader_extract_from_dxbc(const void *dxbc, size_t dxbc_length,
|
int shader_extract_from_dxbc(const void *dxbc, size_t dxbc_length,
|
||||||
struct vkd3d_shader_message_context *message_context, const char *source_name, struct vkd3d_shader_desc *desc);
|
struct vkd3d_shader_message_context *message_context, const char *source_name, struct vkd3d_shader_desc *desc);
|
||||||
|
Reference in New Issue
Block a user