mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-12-15 08:03:30 -08:00
vkd3d-shader/dxbc: Parse the SFI0 ROV requirement.
This commit is contained in:
committed by
Henri Verbeet
parent
b484288a82
commit
d9c4a257c2
Notes:
Henri Verbeet
2024-12-09 16:18:05 +01:00
Approved-by: Elizabeth Figura (@zfigura) Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1287
@@ -166,21 +166,6 @@ STATIC_ASSERT(SM4_MAX_SRC_COUNT <= SPIRV_MAX_SRC_COUNT);
|
||||
/* The shift that corresponds to the D3D_SIF_TEXTURE_COMPONENTS mask. */
|
||||
#define VKD3D_SM4_SIF_TEXTURE_COMPONENTS_SHIFT 2
|
||||
|
||||
#define VKD3D_SM4_REQUIRES_DOUBLES 0x00000001
|
||||
#define VKD3D_SM4_REQUIRES_EARLY_DEPTH_STENCIL 0x00000002
|
||||
#define VKD3D_SM4_REQUIRES_UAVS_AT_EVERY_STAGE 0x00000004
|
||||
#define VKD3D_SM4_REQUIRES_64_UAVS 0x00000008
|
||||
#define VKD3D_SM4_REQUIRES_MINIMUM_PRECISION 0x00000010
|
||||
#define VKD3D_SM4_REQUIRES_11_1_DOUBLE_EXTENSIONS 0x00000020
|
||||
#define VKD3D_SM4_REQUIRES_11_1_SHADER_EXTENSIONS 0x00000040
|
||||
#define VKD3D_SM4_REQUIRES_LEVEL_9_COMPARISON_FILTERING 0x00000080
|
||||
#define VKD3D_SM4_REQUIRES_TILED_RESOURCES 0x00000100
|
||||
#define VKD3D_SM4_REQUIRES_STENCIL_REF 0x00000200
|
||||
#define VKD3D_SM4_REQUIRES_INNER_COVERAGE 0x00000400
|
||||
#define VKD3D_SM4_REQUIRES_TYPED_UAV_LOAD_ADDITIONAL_FORMATS 0x00000800
|
||||
#define VKD3D_SM4_REQUIRES_ROVS 0x00001000
|
||||
#define VKD3D_SM4_REQUIRES_VIEWPORT_AND_RT_ARRAY_INDEX_FROM_ANY_SHADER_FEEDING_RASTERIZER 0x00002000
|
||||
|
||||
enum vkd3d_sm4_opcode
|
||||
{
|
||||
VKD3D_SM4_OP_ADD = 0x00,
|
||||
@@ -2917,6 +2902,7 @@ int tpf_parse(const struct vkd3d_shader_compile_info *compile_info, uint64_t con
|
||||
program->input_signature = dxbc_desc.input_signature;
|
||||
program->output_signature = dxbc_desc.output_signature;
|
||||
program->patch_constant_signature = dxbc_desc.patch_constant_signature;
|
||||
program->features = dxbc_desc.features;
|
||||
memset(&dxbc_desc, 0, sizeof(dxbc_desc));
|
||||
|
||||
/* DXBC stores used masks inverted for output signatures, for some reason.
|
||||
@@ -5006,7 +4992,7 @@ static void tpf_write_sfi0(struct tpf_compiler *tpf)
|
||||
for (unsigned int i = 0; i < extern_resources_count; ++i)
|
||||
{
|
||||
if (extern_resources[i].component_type && extern_resources[i].component_type->e.resource.rasteriser_ordered)
|
||||
*flags |= VKD3D_SM4_REQUIRES_ROVS;
|
||||
*flags |= DXBC_SFI0_REQUIRES_ROVS;
|
||||
}
|
||||
sm4_free_extern_resources(extern_resources, extern_resources_count);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user