[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