vkd3d-shader: Describe the resource data types of samplers as NONE.

It used to be UINT before, but it doesn't make any sense.
This commit is contained in:
Giovanni Mascellani
2025-03-28 11:36:33 +01:00
committed by Henri Verbeet
parent f02ea94c42
commit 869e6ef583
Notes: Henri Verbeet 2025-04-16 16:52:04 +02:00
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1447
2 changed files with 13 additions and 2 deletions

View File

@@ -2076,6 +2076,11 @@ enum vkd3d_shader_resource_type
*/
enum vkd3d_shader_resource_data_type
{
/**
* The descriptor has no relevant data type. This value is returned for
* samplers. \since 1.16
*/
VKD3D_SHADER_RESOURCE_DATA_NONE = 0x0,
/** Unsigned normalized integer. */
VKD3D_SHADER_RESOURCE_DATA_UNORM = 0x1,
/** Signed normalized integer. */

View File

@@ -1111,7 +1111,7 @@ static void vkd3d_shader_scan_sampler_declaration(struct vkd3d_shader_scan_conte
struct vkd3d_shader_descriptor_info1 *d;
if (!(d = vkd3d_shader_scan_add_descriptor(context, VKD3D_SHADER_DESCRIPTOR_TYPE_SAMPLER,
&sampler->src.reg, &sampler->range, VKD3D_SHADER_RESOURCE_NONE, VKD3D_DATA_UINT)))
&sampler->src.reg, &sampler->range, VKD3D_SHADER_RESOURCE_NONE, VKD3D_DATA_UNUSED)))
return;
if (instruction->flags & VKD3DSI_SAMPLER_COMPARISON_MODE)
@@ -1122,7 +1122,7 @@ static void vkd3d_shader_scan_combined_sampler_declaration(
struct vkd3d_shader_scan_context *context, const struct vkd3d_shader_semantic *semantic)
{
vkd3d_shader_scan_add_descriptor(context, VKD3D_SHADER_DESCRIPTOR_TYPE_SAMPLER, &semantic->resource.reg.reg,
&semantic->resource.range, VKD3D_SHADER_RESOURCE_NONE, VKD3D_DATA_UINT);
&semantic->resource.range, VKD3D_SHADER_RESOURCE_NONE, VKD3D_DATA_UNUSED);
vkd3d_shader_scan_add_descriptor(context, VKD3D_SHADER_DESCRIPTOR_TYPE_SRV, &semantic->resource.reg.reg,
&semantic->resource.range, semantic->resource_type, VKD3D_DATA_FLOAT);
}
@@ -1520,6 +1520,8 @@ static enum vkd3d_shader_resource_data_type vkd3d_resource_data_type_from_data_t
return VKD3D_SHADER_RESOURCE_DATA_DOUBLE;
case VKD3D_DATA_CONTINUED:
return VKD3D_SHADER_RESOURCE_DATA_CONTINUED;
case VKD3D_DATA_UNUSED:
return VKD3D_SHADER_RESOURCE_DATA_NONE;
default:
ERR("Invalid resource data type %#x.\n", data_type);
return VKD3D_SHADER_RESOURCE_DATA_FLOAT;
@@ -1547,6 +1549,10 @@ static enum vkd3d_result convert_descriptor_info(struct vkd3d_shader_scan_contex
dst->flags = src->flags;
dst->count = src->count;
if (context->api_version <= VKD3D_SHADER_API_VERSION_1_15
&& dst->type == VKD3D_SHADER_DESCRIPTOR_TYPE_SAMPLER)
dst->resource_data_type = VKD3D_SHADER_RESOURCE_DATA_UINT;
if (context->api_version < VKD3D_SHADER_API_VERSION_1_3
&& dst->resource_data_type >= VKD3D_SHADER_RESOURCE_DATA_MIXED)
{