[PATCH vkd3d 1/3] vkd3d-shader: Add shader_dump_to_buffer helper function.

Henri Verbeet hverbeet at gmail.com
Thu Sep 24 07:50:47 CDT 2020


On Wed, 23 Sep 2020 at 11:23, Isabella Bosia <ibosia at codeweavers.com> wrote:
> -void vkd3d_shader_trace(void *data)
> +void vkd3d_shader_dump_to_buffer(void *data, struct vkd3d_string_buffer *buffer)
>  {
>      struct vkd3d_shader_version shader_version;
> -    struct vkd3d_string_buffer buffer;
> -    const char *p, *q;
>      const DWORD *ptr;
>
> -    if (!vkd3d_string_buffer_init(&buffer))
> -    {
> -        ERR("Failed to initialize string buffer.\n");
> -        return;
> -    }
> -
>      shader_sm4_read_header(data, &ptr, &shader_version);
> -    shader_addline(&buffer, "%s_%u_%u\n",
> +    shader_addline(buffer, "%s_%u_%u\n",
>              shader_get_type_prefix(shader_version.type), shader_version.major, shader_version.minor);
>
>      while (!shader_sm4_is_end(data, &ptr))
> @@ -1582,13 +1574,27 @@ void vkd3d_shader_trace(void *data)
>          if (ins.handler_idx == VKD3DSIH_INVALID)
>          {
>              WARN("Skipping unrecognized instruction.\n");
> -            shader_addline(&buffer, "<unrecognized instruction>\n");
> +            shader_addline(buffer, "<unrecognized instruction>\n");
>              continue;
>          }
>
> -        shader_dump_instruction(&buffer, &ins, &shader_version);
> +        shader_dump_instruction(buffer, &ins, &shader_version);
> +    }
> +}
> +
I would prefer the helper to look like this:

    int vkd3d_dxbc_binary_to_text(void *data, struct vkd3d_shader_code *out)
    {
        ...
    }

I.e., outputting to a vkd3d_shader_code structure, analogous to
vkd3d_spirv_binary_to_text(). That would also avoid the
vkd3d_string_buffer_init() call in the second patch in this series.



More information about the wine-devel mailing list