vkd3d-shader: Merge the vkd3d_shader_descriptor_type and vkd3d_shader_descriptor_range_type enumerations.

Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Henri Verbeet
2020-08-04 14:43:33 +04:30
committed by Alexandre Julliard
parent b2dcff0ecf
commit dae87cc1c0
3 changed files with 17 additions and 27 deletions

View File

@@ -88,11 +88,10 @@ struct vkd3d_shader_code
enum vkd3d_shader_descriptor_type enum vkd3d_shader_descriptor_type
{ {
VKD3D_SHADER_DESCRIPTOR_TYPE_UNKNOWN, VKD3D_SHADER_DESCRIPTOR_TYPE_SRV = 0x0, /* t# */
VKD3D_SHADER_DESCRIPTOR_TYPE_CBV, /* cb# */ VKD3D_SHADER_DESCRIPTOR_TYPE_UAV = 0x1, /* u# */
VKD3D_SHADER_DESCRIPTOR_TYPE_SRV, /* t# */ VKD3D_SHADER_DESCRIPTOR_TYPE_CBV = 0x2, /* cb# */
VKD3D_SHADER_DESCRIPTOR_TYPE_UAV, /* u# */ VKD3D_SHADER_DESCRIPTOR_TYPE_SAMPLER = 0x3, /* s# */
VKD3D_SHADER_DESCRIPTOR_TYPE_SAMPLER, /* s# */
VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_DESCRIPTOR_TYPE), VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_DESCRIPTOR_TYPE),
}; };
@@ -450,19 +449,9 @@ struct vkd3d_shader_static_sampler_desc
enum vkd3d_shader_visibility shader_visibility; enum vkd3d_shader_visibility shader_visibility;
}; };
enum vkd3d_shader_descriptor_range_type
{
VKD3D_SHADER_DESCRIPTOR_RANGE_TYPE_SRV = 0x0,
VKD3D_SHADER_DESCRIPTOR_RANGE_TYPE_UAV = 0x1,
VKD3D_SHADER_DESCRIPTOR_RANGE_TYPE_CBV = 0x2,
VKD3D_SHADER_DESCRIPTOR_RANGE_TYPE_SAMPLER = 0x3,
VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_DESCRIPTOR_RANGE_TYPE),
};
struct vkd3d_shader_descriptor_range struct vkd3d_shader_descriptor_range
{ {
enum vkd3d_shader_descriptor_range_type range_type; enum vkd3d_shader_descriptor_type range_type;
unsigned int descriptor_count; unsigned int descriptor_count;
unsigned int base_shader_register; unsigned int base_shader_register;
unsigned int register_space; unsigned int register_space;
@@ -558,7 +547,7 @@ enum vkd3d_shader_descriptor_range_flags
struct vkd3d_shader_descriptor_range1 struct vkd3d_shader_descriptor_range1
{ {
enum vkd3d_shader_descriptor_range_type range_type; enum vkd3d_shader_descriptor_type range_type;
unsigned int descriptor_count; unsigned int descriptor_count;
unsigned int base_shader_register; unsigned int base_shader_register;
unsigned int register_space; unsigned int register_space;

View File

@@ -3143,13 +3143,13 @@ static int validate_descriptor_table_v_1_0(const struct vkd3d_shader_root_descri
{ {
const struct vkd3d_shader_descriptor_range *r = &descriptor_table->descriptor_ranges[i]; const struct vkd3d_shader_descriptor_range *r = &descriptor_table->descriptor_ranges[i];
if (r->range_type == VKD3D_SHADER_DESCRIPTOR_RANGE_TYPE_SRV if (r->range_type == VKD3D_SHADER_DESCRIPTOR_TYPE_SRV
|| r->range_type == VKD3D_SHADER_DESCRIPTOR_RANGE_TYPE_UAV || r->range_type == VKD3D_SHADER_DESCRIPTOR_TYPE_UAV
|| r->range_type == VKD3D_SHADER_DESCRIPTOR_RANGE_TYPE_CBV) || r->range_type == VKD3D_SHADER_DESCRIPTOR_TYPE_CBV)
{ {
have_srv_uav_cbv = true; have_srv_uav_cbv = true;
} }
else if (r->range_type == VKD3D_SHADER_DESCRIPTOR_RANGE_TYPE_SAMPLER) else if (r->range_type == VKD3D_SHADER_DESCRIPTOR_TYPE_SAMPLER)
{ {
have_sampler = true; have_sampler = true;
} }
@@ -3184,13 +3184,13 @@ static int validate_descriptor_table_v_1_1(const struct vkd3d_shader_root_descri
{ {
const struct vkd3d_shader_descriptor_range1 *r = &descriptor_table->descriptor_ranges[i]; const struct vkd3d_shader_descriptor_range1 *r = &descriptor_table->descriptor_ranges[i];
if (r->range_type == VKD3D_SHADER_DESCRIPTOR_RANGE_TYPE_SRV if (r->range_type == VKD3D_SHADER_DESCRIPTOR_TYPE_SRV
|| r->range_type == VKD3D_SHADER_DESCRIPTOR_RANGE_TYPE_UAV || r->range_type == VKD3D_SHADER_DESCRIPTOR_TYPE_UAV
|| r->range_type == VKD3D_SHADER_DESCRIPTOR_RANGE_TYPE_CBV) || r->range_type == VKD3D_SHADER_DESCRIPTOR_TYPE_CBV)
{ {
have_srv_uav_cbv = true; have_srv_uav_cbv = true;
} }
else if (r->range_type == VKD3D_SHADER_DESCRIPTOR_RANGE_TYPE_SAMPLER) else if (r->range_type == VKD3D_SHADER_DESCRIPTOR_TYPE_SAMPLER)
{ {
have_sampler = true; have_sampler = true;
} }

View File

@@ -2364,7 +2364,6 @@ static struct vkd3d_shader_descriptor_binding vkd3d_dxbc_compiler_get_descriptor
struct vkd3d_shader_descriptor_binding binding; struct vkd3d_shader_descriptor_binding binding;
unsigned int i; unsigned int i;
descriptor_type = VKD3D_SHADER_DESCRIPTOR_TYPE_UNKNOWN;
if (reg->type == VKD3DSPR_CONSTBUFFER) if (reg->type == VKD3DSPR_CONSTBUFFER)
descriptor_type = VKD3D_SHADER_DESCRIPTOR_TYPE_CBV; descriptor_type = VKD3D_SHADER_DESCRIPTOR_TYPE_CBV;
else if (reg->type == VKD3DSPR_RESOURCE) else if (reg->type == VKD3DSPR_RESOURCE)
@@ -2378,6 +2377,7 @@ static struct vkd3d_shader_descriptor_binding vkd3d_dxbc_compiler_get_descriptor
FIXME("Unhandled register type %#x.\n", reg->type); FIXME("Unhandled register type %#x.\n", reg->type);
vkd3d_dxbc_compiler_error(compiler, VKD3D_SHADER_ERROR_SPV_INVALID_REGISTER_TYPE, vkd3d_dxbc_compiler_error(compiler, VKD3D_SHADER_ERROR_SPV_INVALID_REGISTER_TYPE,
"Encountered invalid/unhandled register type %#x.", reg->type); "Encountered invalid/unhandled register type %#x.", reg->type);
goto done;
} }
resource_type_flag = resource_type == VKD3D_SHADER_RESOURCE_BUFFER resource_type_flag = resource_type == VKD3D_SHADER_RESOURCE_BUFFER
@@ -2406,7 +2406,7 @@ static struct vkd3d_shader_descriptor_binding vkd3d_dxbc_compiler_get_descriptor
"Could not find descriptor binding for UAV counter %u, space %u.", reg_idx, register_space); "Could not find descriptor binding for UAV counter %u, space %u.", reg_idx, register_space);
} }
} }
else if (descriptor_type != VKD3D_SHADER_DESCRIPTOR_TYPE_UNKNOWN) else
{ {
for (i = 0; i < shader_interface->binding_count; ++i) for (i = 0; i < shader_interface->binding_count; ++i)
{ {
@@ -2432,6 +2432,7 @@ static struct vkd3d_shader_descriptor_binding vkd3d_dxbc_compiler_get_descriptor
} }
} }
done:
binding.set = 0; binding.set = 0;
binding.binding = compiler->binding_idx++; binding.binding = compiler->binding_idx++;
return binding; return binding;