mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-01-28 13:05:02 -08:00
vkd3d-shader: Scan combined sampler declarations.
This does not handle 1.x samplers yet.
This commit is contained in:
parent
7a4ae434df
commit
bd9eae6c22
Notes:
Alexandre Julliard
2023-10-09 23:10:55 +02:00
Approved-by: Henri Verbeet (@hverbeet) Approved-by: Alexandre Julliard (@julliard) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/394
@ -837,6 +837,15 @@ static void vkd3d_shader_scan_sampler_declaration(struct vkd3d_shader_scan_conte
|
||||
d->flags |= VKD3D_SHADER_DESCRIPTOR_INFO_FLAG_SAMPLER_COMPARISON_MODE;
|
||||
}
|
||||
|
||||
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_SHADER_RESOURCE_DATA_UINT);
|
||||
vkd3d_shader_scan_add_descriptor(context, VKD3D_SHADER_DESCRIPTOR_TYPE_SRV, &semantic->resource.reg.reg,
|
||||
&semantic->resource.range, semantic->resource_type, VKD3D_SHADER_RESOURCE_DATA_FLOAT);
|
||||
}
|
||||
|
||||
static void vkd3d_shader_scan_resource_declaration(struct vkd3d_shader_scan_context *context,
|
||||
const struct vkd3d_shader_resource *resource, enum vkd3d_shader_resource_type resource_type,
|
||||
enum vkd3d_shader_resource_data_type resource_data_type,
|
||||
@ -945,6 +954,12 @@ static int vkd3d_shader_scan_instruction(struct vkd3d_shader_scan_context *conte
|
||||
vkd3d_shader_scan_sampler_declaration(context, instruction);
|
||||
break;
|
||||
case VKD3DSIH_DCL:
|
||||
if (instruction->declaration.semantic.resource.reg.reg.type == VKD3DSPR_COMBINED_SAMPLER)
|
||||
{
|
||||
vkd3d_shader_scan_combined_sampler_declaration(context, &instruction->declaration.semantic);
|
||||
break;
|
||||
}
|
||||
/* fall through */
|
||||
case VKD3DSIH_DCL_UAV_TYPED:
|
||||
vkd3d_shader_scan_typed_resource_declaration(context, instruction);
|
||||
break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user