mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-04-13 05:43:18 -07:00
vkd3d-shader/dxbc: Decouple vkd3d_shader_desc from DXBC parsing.
This commit is contained in:
committed by
Alexandre Julliard
parent
5204b92fa0
commit
56dc0c9842
Notes:
Alexandre Julliard
2024-03-11 23:06:10 +01:00
Approved-by: Giovanni Mascellani (@giomasce) Approved-by: Francisco Casas (@fcasas) Approved-by: Henri Verbeet (@hverbeet) Approved-by: Alexandre Julliard (@julliard) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/680
@@ -488,7 +488,7 @@ int shader_parse_input_signature(const struct vkd3d_shader_code *dxbc,
|
||||
static int shdr_handler(const struct vkd3d_shader_dxbc_section_desc *section,
|
||||
struct vkd3d_shader_message_context *message_context, void *context)
|
||||
{
|
||||
struct vkd3d_shader_desc *desc = context;
|
||||
struct dxbc_shader_desc *desc = context;
|
||||
int ret;
|
||||
|
||||
switch (section->tag)
|
||||
@@ -553,6 +553,13 @@ static int shdr_handler(const struct vkd3d_shader_dxbc_section_desc *section,
|
||||
return VKD3D_OK;
|
||||
}
|
||||
|
||||
void free_dxbc_shader_desc(struct dxbc_shader_desc *desc)
|
||||
{
|
||||
shader_signature_cleanup(&desc->input_signature);
|
||||
shader_signature_cleanup(&desc->output_signature);
|
||||
shader_signature_cleanup(&desc->patch_constant_signature);
|
||||
}
|
||||
|
||||
void free_shader_desc(struct vkd3d_shader_desc *desc)
|
||||
{
|
||||
shader_signature_cleanup(&desc->input_signature);
|
||||
@@ -561,7 +568,7 @@ void free_shader_desc(struct vkd3d_shader_desc *desc)
|
||||
}
|
||||
|
||||
int shader_extract_from_dxbc(const struct vkd3d_shader_code *dxbc,
|
||||
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 dxbc_shader_desc *desc)
|
||||
{
|
||||
int ret;
|
||||
|
||||
@@ -572,7 +579,7 @@ int shader_extract_from_dxbc(const struct vkd3d_shader_code *dxbc,
|
||||
if (ret < 0)
|
||||
{
|
||||
WARN("Failed to parse shader, vkd3d result %d.\n", ret);
|
||||
free_shader_desc(desc);
|
||||
free_dxbc_shader_desc(desc);
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
Reference in New Issue
Block a user