You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-09-12 18:50:20 -07:00
Updated vkd3d-latest patchset
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
From e8e77eb103448eaf3f4334f1e62d89ba83b97f78 Mon Sep 17 00:00:00 2001
|
||||
From 52953d19dee2161be20f9afb641e9b3d01cb8f2e Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Mon, 26 May 2025 07:03:34 +1000
|
||||
Subject: [PATCH] Updated vkd3d to 44fffee5e1331e1c7e10489d84723c3b9dad7e17.
|
||||
@@ -98,5 +98,5 @@ index f2967835b62..f804c1f0c24 100644
|
||||
{
|
||||
switch (part)
|
||||
--
|
||||
2.50.1
|
||||
2.51.0
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 1c686e92c185fcc9efa718e1a6ffe70a14a71a1e Mon Sep 17 00:00:00 2001
|
||||
From a299300b535557f8c54b066d082b1bb47ffce104 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Fri, 22 Aug 2025 07:26:18 +1000
|
||||
Subject: [PATCH] Updated vkd3d to 3b41d99fa9e80dda5844738a226f70f14f778c8b.
|
||||
@@ -1925,5 +1925,5 @@ index e758c16b3d4..b63c5785770 100644
|
||||
void vkd3d_shader_parser_warning(struct vkd3d_shader_parser *parser,
|
||||
enum vkd3d_shader_error error, const char *format, ...) VKD3D_PRINTF_FUNC(3, 4);
|
||||
--
|
||||
2.50.1
|
||||
2.51.0
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 53b2f2d25a1abd14e043e7c927ee16d8f454d970 Mon Sep 17 00:00:00 2001
|
||||
From 38b9415c7e850a1774d508232dd0e5e97e505eab Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Sat, 23 Aug 2025 07:27:59 +1000
|
||||
Subject: [PATCH] Updated vkd3d to d0098b0d5968d1969ec622b91fd360fd0aec2328.
|
||||
@@ -129,5 +129,5 @@ index c2832a61f67..2d0510e5456 100644
|
||||
if (flags)
|
||||
FIXME("Unrecognized flag(s) %#x.\n", flags);
|
||||
--
|
||||
2.50.1
|
||||
2.51.0
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From eb3e25c8b5d02a3402438ac83002eb936563e85f Mon Sep 17 00:00:00 2001
|
||||
From b62327e3e6fae6a2df820e0160b04c1c54dfb68a Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Sat, 30 Aug 2025 07:08:53 +1000
|
||||
Subject: [PATCH] Updated vkd3d to 158f8b3cf6ff528eb6897baf04db80f0db2b53f8.
|
||||
@@ -1755,5 +1755,5 @@ index 6bbd6533b74..b6055a50a99 100644
|
||||
|
||||
info.type = VKD3D_SHADER_STRUCTURE_TYPE_COMPILE_INFO;
|
||||
--
|
||||
2.50.1
|
||||
2.51.0
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 0834b82af4990aad006eb709f50090babb2bf1ee Mon Sep 17 00:00:00 2001
|
||||
From f6510f66601eba7d3dbe69168831429c930aa494 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Tue, 2 Sep 2025 07:37:13 +1000
|
||||
Subject: [PATCH] Updated vkd3d to 979d7e4b85f2fb8db60219f4a2673fc807142ebd.
|
||||
@@ -361,5 +361,5 @@ index 97c0d0e73a8..a57c42b167d 100644
|
||||
|
||||
spirv_compiler_emit_descriptor_declarations(compiler);
|
||||
--
|
||||
2.50.1
|
||||
2.51.0
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 923515f00841e6d45c1e91f8cf530bc5dabf7192 Mon Sep 17 00:00:00 2001
|
||||
From d6553ac0d36434c95def8553efc28663fb5f77a1 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Wed, 3 Sep 2025 08:08:18 +1000
|
||||
Subject: [PATCH] Updated vkd3d to d6bed4be377432e4c54e23abcd7863fefbef94aa.
|
||||
@@ -1753,5 +1753,5 @@ index 4102fe53e67..698ad541359 100644
|
||||
{
|
||||
return data_type == VSIR_DATA_I32 || data_type == VSIR_DATA_U8 || data_type == VSIR_DATA_U16
|
||||
--
|
||||
2.50.1
|
||||
2.51.0
|
||||
|
||||
|
@@ -0,0 +1,175 @@
|
||||
From 154bd7a2207e5046788c9b5bf9419147fb01b6bb Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Thu, 4 Sep 2025 07:55:34 +1000
|
||||
Subject: [PATCH] Updated vkd3d to 2aefcf5d99cfb4836c3c6178be74061277b9d15c.
|
||||
|
||||
---
|
||||
libs/vkd3d/libs/vkd3d-shader/d3d_asm.c | 6 ++---
|
||||
libs/vkd3d/libs/vkd3d-shader/dxil.c | 22 ++++++++++---------
|
||||
libs/vkd3d/libs/vkd3d-shader/hlsl.y | 10 ++++++++-
|
||||
.../libs/vkd3d-shader/vkd3d_shader_private.h | 2 +-
|
||||
4 files changed, 25 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/libs/vkd3d/libs/vkd3d-shader/d3d_asm.c b/libs/vkd3d/libs/vkd3d-shader/d3d_asm.c
|
||||
index 58135e71f30..897803ecb56 100644
|
||||
--- a/libs/vkd3d/libs/vkd3d-shader/d3d_asm.c
|
||||
+++ b/libs/vkd3d/libs/vkd3d-shader/d3d_asm.c
|
||||
@@ -834,7 +834,7 @@ static void shader_print_register(struct vkd3d_d3d_asm_compiler *compiler, const
|
||||
&& reg->type != VKD3DSPR_NULL
|
||||
&& reg->type != VKD3DSPR_DEPTHOUT)
|
||||
{
|
||||
- if (offset != ~0u)
|
||||
+ if (reg->idx_count)
|
||||
{
|
||||
bool is_sm_5_1 = vkd3d_shader_ver_ge(&compiler->shader_version, 5, 1);
|
||||
|
||||
@@ -862,10 +862,10 @@ static void shader_print_register(struct vkd3d_d3d_asm_compiler *compiler, const
|
||||
/* For descriptors in sm < 5.1 we move the reg->idx values up one slot
|
||||
* to normalise with 5.1.
|
||||
* Here we should ignore it if it's a descriptor in sm < 5.1. */
|
||||
- if (reg->idx[1].offset != ~0u && (!is_descriptor || is_sm_5_1))
|
||||
+ if (reg->idx_count > 1 && (!is_descriptor || is_sm_5_1))
|
||||
shader_print_subscript(compiler, reg->idx[1].offset, reg->idx[1].rel_addr);
|
||||
|
||||
- if (reg->idx[2].offset != ~0u)
|
||||
+ if (reg->idx_count > 2)
|
||||
shader_print_subscript(compiler, reg->idx[2].offset, reg->idx[2].rel_addr);
|
||||
}
|
||||
}
|
||||
diff --git a/libs/vkd3d/libs/vkd3d-shader/dxil.c b/libs/vkd3d/libs/vkd3d-shader/dxil.c
|
||||
index 172204f2226..1678128da83 100644
|
||||
--- a/libs/vkd3d/libs/vkd3d-shader/dxil.c
|
||||
+++ b/libs/vkd3d/libs/vkd3d-shader/dxil.c
|
||||
@@ -2475,7 +2475,7 @@ static void register_init_with_id(struct vkd3d_shader_register *reg,
|
||||
reg->idx[0].offset = id;
|
||||
}
|
||||
|
||||
-static enum vsir_data_type vsir_data_type_from_dxil(const struct sm6_type *type)
|
||||
+static enum vsir_data_type vsir_data_type_from_dxil(const struct sm6_type *type, struct sm6_parser *dxil)
|
||||
{
|
||||
if (type->class == TYPE_CLASS_INTEGER)
|
||||
{
|
||||
@@ -2492,7 +2492,8 @@ static enum vsir_data_type vsir_data_type_from_dxil(const struct sm6_type *type)
|
||||
case 64:
|
||||
return VSIR_DATA_U64;
|
||||
default:
|
||||
- FIXME("Unhandled width %u.\n", type->u.width);
|
||||
+ vkd3d_shader_parser_error(&dxil->p, VKD3D_SHADER_ERROR_DXIL_UNSUPPORTED,
|
||||
+ "Unhandled integer width %u.", type->u.width);
|
||||
return VSIR_DATA_U32;
|
||||
}
|
||||
}
|
||||
@@ -2507,12 +2508,14 @@ static enum vsir_data_type vsir_data_type_from_dxil(const struct sm6_type *type)
|
||||
case 64:
|
||||
return VSIR_DATA_F64;
|
||||
default:
|
||||
- FIXME("Unhandled width %u.\n", type->u.width);
|
||||
+ vkd3d_shader_parser_error(&dxil->p, VKD3D_SHADER_ERROR_DXIL_UNSUPPORTED,
|
||||
+ "Unhandled floating-point width %u.", type->u.width);
|
||||
return VSIR_DATA_F32;
|
||||
}
|
||||
}
|
||||
|
||||
- FIXME("Unhandled type %u.\n", type->class);
|
||||
+ vkd3d_shader_parser_error(&dxil->p, VKD3D_SHADER_ERROR_DXIL_UNSUPPORTED,
|
||||
+ "Unhandled type %#x.", type->class);
|
||||
return VSIR_DATA_U32;
|
||||
}
|
||||
|
||||
@@ -2599,7 +2602,7 @@ static void sm6_register_from_value(struct vkd3d_shader_register *reg, const str
|
||||
enum vsir_data_type data_type;
|
||||
|
||||
scalar_type = sm6_type_get_scalar_type(value->type, 0);
|
||||
- data_type = vsir_data_type_from_dxil(scalar_type);
|
||||
+ data_type = vsir_data_type_from_dxil(scalar_type, sm6);
|
||||
|
||||
switch (value->value_type)
|
||||
{
|
||||
@@ -3239,7 +3242,7 @@ static enum vkd3d_result value_allocate_constant_array(struct sm6_value *dst, co
|
||||
dst->u.data = icb;
|
||||
|
||||
icb->register_idx = sm6->icb_count++;
|
||||
- icb->data_type = vsir_data_type_from_dxil(elem_type);
|
||||
+ icb->data_type = vsir_data_type_from_dxil(elem_type, sm6);
|
||||
icb->element_count = type->u.array.count;
|
||||
icb->component_count = 1;
|
||||
icb->is_null = !operands;
|
||||
@@ -3693,7 +3696,7 @@ static void sm6_parser_declare_indexable_temp(struct sm6_parser *sm6, const stru
|
||||
unsigned int count, unsigned int alignment, bool has_function_scope, unsigned int init,
|
||||
struct vkd3d_shader_instruction *ins, struct sm6_value *dst)
|
||||
{
|
||||
- enum vsir_data_type data_type = vsir_data_type_from_dxil(elem_type);
|
||||
+ enum vsir_data_type data_type = vsir_data_type_from_dxil(elem_type, sm6);
|
||||
|
||||
if (ins)
|
||||
vsir_instruction_init(ins, &sm6->p.location, VSIR_OP_DCL_INDEXABLE_TEMP);
|
||||
@@ -4012,8 +4015,7 @@ static enum vkd3d_result sm6_parser_globals_init(struct sm6_parser *sm6)
|
||||
return VKD3D_ERROR_INVALID_SHADER;
|
||||
if ((version = record->operands[0]) != 1)
|
||||
{
|
||||
- FIXME("Unsupported format version %#"PRIx64".\n", version);
|
||||
- vkd3d_shader_parser_error(&sm6->p, VKD3D_SHADER_ERROR_DXIL_UNSUPPORTED_BITCODE_FORMAT,
|
||||
+ vkd3d_shader_parser_error(&sm6->p, VKD3D_SHADER_ERROR_DXIL_UNSUPPORTED,
|
||||
"Bitcode format version %#"PRIx64" is unsupported.", version);
|
||||
return VKD3D_ERROR_INVALID_SHADER;
|
||||
}
|
||||
@@ -5183,7 +5185,7 @@ static void sm6_parser_emit_dx_cbuffer_load(struct sm6_parser *sm6, enum dx_intr
|
||||
|
||||
type = sm6_type_get_scalar_type(dst->type, 0);
|
||||
VKD3D_ASSERT(type);
|
||||
- src_param->reg.data_type = vsir_data_type_from_dxil(type);
|
||||
+ src_param->reg.data_type = vsir_data_type_from_dxil(type, sm6);
|
||||
if (data_type_is_64_bit(src_param->reg.data_type))
|
||||
src_param->swizzle = vsir_swizzle_64_from_32(src_param->swizzle);
|
||||
else
|
||||
diff --git a/libs/vkd3d/libs/vkd3d-shader/hlsl.y b/libs/vkd3d/libs/vkd3d-shader/hlsl.y
|
||||
index e20a12bb42d..41aeb7f22f6 100644
|
||||
--- a/libs/vkd3d/libs/vkd3d-shader/hlsl.y
|
||||
+++ b/libs/vkd3d/libs/vkd3d-shader/hlsl.y
|
||||
@@ -4748,7 +4748,8 @@ static bool intrinsic_tex(struct hlsl_ctx *ctx, const struct parse_initializer *
|
||||
}
|
||||
|
||||
if (!strcmp(name, "tex2Dbias")
|
||||
- || !strcmp(name, "tex2Dlod"))
|
||||
+ || !strcmp(name, "tex2Dlod")
|
||||
+ || !strcmp(name, "texCUBEbias"))
|
||||
{
|
||||
struct hlsl_ir_node *lod, *c;
|
||||
|
||||
@@ -4900,6 +4901,12 @@ static bool intrinsic_texCUBE(struct hlsl_ctx *ctx,
|
||||
return intrinsic_tex(ctx, params, loc, "texCUBE", HLSL_SAMPLER_DIM_CUBE);
|
||||
}
|
||||
|
||||
+static bool intrinsic_texCUBEbias(struct hlsl_ctx *ctx,
|
||||
+ const struct parse_initializer *params, const struct vkd3d_shader_location *loc)
|
||||
+{
|
||||
+ return intrinsic_tex(ctx, params, loc, "texCUBEbias", HLSL_SAMPLER_DIM_CUBE);
|
||||
+}
|
||||
+
|
||||
static bool intrinsic_texCUBEgrad(struct hlsl_ctx *ctx,
|
||||
const struct parse_initializer *params, const struct vkd3d_shader_location *loc)
|
||||
{
|
||||
@@ -5375,6 +5382,7 @@ intrinsic_functions[] =
|
||||
{"tex3Dgrad", 4, false, intrinsic_tex3Dgrad},
|
||||
{"tex3Dproj", 2, false, intrinsic_tex3Dproj},
|
||||
{"texCUBE", -1, false, intrinsic_texCUBE},
|
||||
+ {"texCUBEbias", 2, false, intrinsic_texCUBEbias},
|
||||
{"texCUBEgrad", 4, false, intrinsic_texCUBEgrad},
|
||||
{"texCUBEproj", 2, false, intrinsic_texCUBEproj},
|
||||
{"transpose", 1, true, intrinsic_transpose},
|
||||
diff --git a/libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_private.h b/libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_private.h
|
||||
index 698ad541359..9bf196b1fe2 100644
|
||||
--- a/libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_private.h
|
||||
+++ b/libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_private.h
|
||||
@@ -213,7 +213,7 @@ enum vkd3d_shader_error
|
||||
VKD3D_SHADER_ERROR_DXIL_INVALID_OPERAND_COUNT = 8005,
|
||||
VKD3D_SHADER_ERROR_DXIL_INVALID_TYPE_TABLE = 8006,
|
||||
VKD3D_SHADER_ERROR_DXIL_INVALID_VALUE_SYMTAB = 8007,
|
||||
- VKD3D_SHADER_ERROR_DXIL_UNSUPPORTED_BITCODE_FORMAT = 8008,
|
||||
+ VKD3D_SHADER_ERROR_DXIL_UNSUPPORTED = 8008,
|
||||
VKD3D_SHADER_ERROR_DXIL_INVALID_FUNCTION_DCL = 8009,
|
||||
VKD3D_SHADER_ERROR_DXIL_INVALID_TYPE_ID = 8010,
|
||||
VKD3D_SHADER_ERROR_DXIL_INVALID_MODULE = 8011,
|
||||
--
|
||||
2.51.0
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,126 @@
|
||||
From 847e0c6da106b68aa30bf48575ad204f547b913a Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Tue, 9 Sep 2025 12:15:35 +1000
|
||||
Subject: [PATCH] Updated vkd3d to 6607b94ad7ce77907a912923f39e6371d23e339b.
|
||||
|
||||
---
|
||||
libs/vkd3d/libs/vkd3d-shader/d3d_asm.c | 17 +++++++++++++++++
|
||||
libs/vkd3d/libs/vkd3d-shader/dxil.c | 8 ++++++++
|
||||
libs/vkd3d/libs/vkd3d-shader/hlsl_codegen.c | 3 +--
|
||||
libs/vkd3d/libs/vkd3d-shader/msl.c | 6 ++++++
|
||||
.../libs/vkd3d-shader/vkd3d_shader_private.h | 6 ++++--
|
||||
5 files changed, 36 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/libs/vkd3d/libs/vkd3d-shader/d3d_asm.c b/libs/vkd3d/libs/vkd3d-shader/d3d_asm.c
|
||||
index 897803ecb56..e2fb8b12998 100644
|
||||
--- a/libs/vkd3d/libs/vkd3d-shader/d3d_asm.c
|
||||
+++ b/libs/vkd3d/libs/vkd3d-shader/d3d_asm.c
|
||||
@@ -957,6 +957,22 @@ static void shader_print_reg_type(struct vkd3d_d3d_asm_compiler *compiler,
|
||||
vkd3d_string_buffer_printf(buffer, ">%s", suffix);
|
||||
}
|
||||
|
||||
+static void shader_print_indexable_temp_data_type(struct vkd3d_d3d_asm_compiler *compiler,
|
||||
+ const struct vkd3d_shader_indexable_temp *t)
|
||||
+{
|
||||
+ struct vkd3d_string_buffer *buffer = &compiler->buffer;
|
||||
+
|
||||
+ if (!(compiler->flags & VSIR_ASM_FLAG_DUMP_TYPES))
|
||||
+ return;
|
||||
+
|
||||
+ if (t->component_count > 1)
|
||||
+ vkd3d_string_buffer_printf(buffer, " <v%u:", t->component_count);
|
||||
+ else
|
||||
+ vkd3d_string_buffer_printf(buffer, " <s:");
|
||||
+ shader_print_data_type(compiler, t->data_type);
|
||||
+ vkd3d_string_buffer_printf(buffer, ">");
|
||||
+}
|
||||
+
|
||||
static void shader_print_write_mask(struct vkd3d_d3d_asm_compiler *compiler,
|
||||
const char *prefix, uint32_t mask, const char *suffix)
|
||||
{
|
||||
@@ -1511,6 +1527,7 @@ static void shader_dump_instruction(struct vkd3d_d3d_asm_compiler *compiler,
|
||||
vkd3d_string_buffer_printf(buffer, " %sx%u%s", compiler->colours.reg,
|
||||
ins->declaration.indexable_temp.register_idx, compiler->colours.reset);
|
||||
shader_print_subscript(compiler, ins->declaration.indexable_temp.register_size, NULL);
|
||||
+ shader_print_indexable_temp_data_type(compiler, &ins->declaration.indexable_temp);
|
||||
shader_print_uint_literal(compiler, ", ", ins->declaration.indexable_temp.component_count, "");
|
||||
if (ins->declaration.indexable_temp.alignment)
|
||||
shader_print_uint_literal(compiler, ", align ", ins->declaration.indexable_temp.alignment, "");
|
||||
diff --git a/libs/vkd3d/libs/vkd3d-shader/dxil.c b/libs/vkd3d/libs/vkd3d-shader/dxil.c
|
||||
index 1678128da83..fb2cde4501a 100644
|
||||
--- a/libs/vkd3d/libs/vkd3d-shader/dxil.c
|
||||
+++ b/libs/vkd3d/libs/vkd3d-shader/dxil.c
|
||||
@@ -3698,6 +3698,14 @@ static void sm6_parser_declare_indexable_temp(struct sm6_parser *sm6, const stru
|
||||
{
|
||||
enum vsir_data_type data_type = vsir_data_type_from_dxil(elem_type, sm6);
|
||||
|
||||
+ if (!(sm6->program->global_flags & VKD3DSGF_FORCE_NATIVE_LOW_PRECISION))
|
||||
+ {
|
||||
+ if (data_type == VSIR_DATA_F16)
|
||||
+ data_type = VSIR_DATA_F32;
|
||||
+ else if (data_type == VSIR_DATA_U16)
|
||||
+ data_type = VSIR_DATA_U32;
|
||||
+ }
|
||||
+
|
||||
if (ins)
|
||||
vsir_instruction_init(ins, &sm6->p.location, VSIR_OP_DCL_INDEXABLE_TEMP);
|
||||
else
|
||||
diff --git a/libs/vkd3d/libs/vkd3d-shader/hlsl_codegen.c b/libs/vkd3d/libs/vkd3d-shader/hlsl_codegen.c
|
||||
index 9a682a7550d..ee21207a855 100644
|
||||
--- a/libs/vkd3d/libs/vkd3d-shader/hlsl_codegen.c
|
||||
+++ b/libs/vkd3d/libs/vkd3d-shader/hlsl_codegen.c
|
||||
@@ -8817,9 +8817,8 @@ static enum vsir_data_type vsir_data_type_from_hlsl_type(struct hlsl_ctx *ctx, c
|
||||
case HLSL_TYPE_DOUBLE:
|
||||
return VSIR_DATA_F64;
|
||||
case HLSL_TYPE_FLOAT:
|
||||
- return VSIR_DATA_F32;
|
||||
case HLSL_TYPE_HALF:
|
||||
- return VSIR_DATA_F16;
|
||||
+ return VSIR_DATA_F32;
|
||||
case HLSL_TYPE_INT:
|
||||
return VSIR_DATA_I32;
|
||||
case HLSL_TYPE_UINT:
|
||||
diff --git a/libs/vkd3d/libs/vkd3d-shader/msl.c b/libs/vkd3d/libs/vkd3d-shader/msl.c
|
||||
index fc8d482e08a..d9e22abdfc3 100644
|
||||
--- a/libs/vkd3d/libs/vkd3d-shader/msl.c
|
||||
+++ b/libs/vkd3d/libs/vkd3d-shader/msl.c
|
||||
@@ -1414,6 +1414,12 @@ static void msl_ret(struct msl_generator *gen, const struct vkd3d_shader_instruc
|
||||
static void msl_dcl_indexable_temp(struct msl_generator *gen, const struct vkd3d_shader_instruction *ins)
|
||||
{
|
||||
const char *type = ins->declaration.indexable_temp.component_count == 4 ? "vkd3d_vec4" : "vkd3d_scalar";
|
||||
+
|
||||
+ if (ins->declaration.indexable_temp.initialiser)
|
||||
+ msl_compiler_error(gen, VKD3D_SHADER_ERROR_MSL_INTERNAL,
|
||||
+ "Internal compiler error: Unhandled initialiser for indexable temporary %u.",
|
||||
+ ins->declaration.indexable_temp.register_idx);
|
||||
+
|
||||
msl_print_indent(gen->buffer, gen->indent);
|
||||
vkd3d_string_buffer_printf(gen->buffer, "%s x%u[%u];\n", type,
|
||||
ins->declaration.indexable_temp.register_idx,
|
||||
diff --git a/libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_private.h b/libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_private.h
|
||||
index 9bf196b1fe2..ae88d97f461 100644
|
||||
--- a/libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_private.h
|
||||
+++ b/libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_private.h
|
||||
@@ -1863,7 +1863,8 @@ static inline enum vkd3d_shader_component_type vkd3d_component_type_from_data_ty
|
||||
{
|
||||
case VSIR_DATA_BOOL:
|
||||
return VKD3D_SHADER_COMPONENT_BOOL;
|
||||
- case VSIR_DATA_F16: /* Minimum precision. TODO: native 16-bit */
|
||||
+ case VSIR_DATA_F16:
|
||||
+ return VKD3D_SHADER_COMPONENT_FLOAT16;
|
||||
case VSIR_DATA_F32:
|
||||
case VSIR_DATA_SNORM:
|
||||
case VSIR_DATA_UNORM:
|
||||
@@ -1872,7 +1873,8 @@ static inline enum vkd3d_shader_component_type vkd3d_component_type_from_data_ty
|
||||
return VKD3D_SHADER_COMPONENT_DOUBLE;
|
||||
case VSIR_DATA_I32:
|
||||
return VKD3D_SHADER_COMPONENT_INT;
|
||||
- case VSIR_DATA_U16: /* Minimum precision. TODO: native 16-bit */
|
||||
+ case VSIR_DATA_U16:
|
||||
+ return VKD3D_SHADER_COMPONENT_UINT16;
|
||||
case VSIR_DATA_U32:
|
||||
return VKD3D_SHADER_COMPONENT_UINT;
|
||||
case VSIR_DATA_U64:
|
||||
--
|
||||
2.51.0
|
||||
|
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user