Updated vkd3d-latest patchset

This commit is contained in:
Alistair Leslie-Hughes
2025-11-19 09:34:47 +11:00
parent 3bb1cddffc
commit 3e92d6c89c
5 changed files with 166 additions and 4 deletions

View File

@@ -1,4 +1,4 @@
From e3af0db8f4cb14ce0592fdbb9b3a2ec314daf7ef Mon Sep 17 00:00:00 2001
From a25a7eb8134bf1f6c060662e622facfaf18e6d83 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 39391230d27d58f4e7e8786ba32a0ca133b28fc0.

View File

@@ -1,4 +1,4 @@
From 82311f84ad8344655c3649f05d002092fb88df6b Mon Sep 17 00:00:00 2001
From 7061e3c9a573dde01a402de9ab32121b32d168a5 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Wed, 5 Nov 2025 10:32:36 +1100
Subject: [PATCH] Updated vkd3d to 74ebd4621f3177f45ce22512019ee968ec400f4d.

View File

@@ -1,4 +1,4 @@
From 96fcc9490766c82944e09eb5d549386679236bd9 Mon Sep 17 00:00:00 2001
From b582077d7b505c05312b523d03f2ac3581efc450 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Tue, 11 Nov 2025 08:00:39 +1100
Subject: [PATCH] Updated vkd3d to 1569bb3fb8c745d895ad555da1de5e6a2a846218.

View File

@@ -1,4 +1,4 @@
From 1c19b515adc2181cff5be945b742fbd357330bbe Mon Sep 17 00:00:00 2001
From c47787abcf2dc7c91ca0789a9024280ed88e9f39 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Fri, 14 Nov 2025 08:07:32 +1100
Subject: [PATCH] Updated vkd3d to 7f377879fc526dfb69966ed1672d3036e807235c.

View File

@@ -0,0 +1,162 @@
From fc2b1881245242d66bd74a20436083324bb01398 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Wed, 19 Nov 2025 09:13:43 +1100
Subject: [PATCH] Updated vkd3d to 06a503975f7808bcefff8bf2ca4e9605926e1ed9.
---
libs/vkd3d/include/vkd3d_shader.h | 12 ++++++++++
libs/vkd3d/libs/vkd3d-shader/hlsl.c | 35 ++++++++++++++++++++---------
libs/vkd3d/libs/vkd3d-shader/hlsl.h | 2 ++
libs/vkd3d/libs/vkd3d-shader/hlsl.y | 20 ++++++++---------
4 files changed, 48 insertions(+), 21 deletions(-)
diff --git a/libs/vkd3d/include/vkd3d_shader.h b/libs/vkd3d/include/vkd3d_shader.h
index 50bcf6b292b..2ae30b94207 100644
--- a/libs/vkd3d/include/vkd3d_shader.h
+++ b/libs/vkd3d/include/vkd3d_shader.h
@@ -2952,6 +2952,7 @@ VKD3D_SHADER_API const enum vkd3d_shader_target_type *vkd3d_shader_get_supported
* - vkd3d_shader_scan_descriptor_info
* - vkd3d_shader_scan_hull_shader_tessellation_info
* - vkd3d_shader_scan_signature_info
+ * - vkd3d_shader_scan_thread_group_size_info
* - vkd3d_shader_spirv_domain_shader_target_info
* - vkd3d_shader_spirv_target_info
* - vkd3d_shader_transform_feedback_info
@@ -3140,10 +3141,21 @@ VKD3D_SHADER_API int vkd3d_shader_convert_root_signature(struct vkd3d_shader_ver
* \param compile_info A chained structure containing scan parameters.
* \n
* The scanner supports the following chained structures:
+ * - vkd3d_shader_d3dbc_source_info
+ * - vkd3d_shader_descriptor_offset_info
+ * - vkd3d_shader_hlsl_source_info
+ * - vkd3d_shader_interface_info
+ * - vkd3d_shader_parameter_info
+ * - vkd3d_shader_preprocess_info
* - vkd3d_shader_scan_combined_resource_sampler_info
* - vkd3d_shader_scan_descriptor_info
* - vkd3d_shader_scan_hull_shader_tessellation_info
* - vkd3d_shader_scan_signature_info
+ * - vkd3d_shader_scan_thread_group_size_info
+ * - vkd3d_shader_spirv_domain_shader_target_info
+ * - vkd3d_shader_spirv_target_info
+ * - vkd3d_shader_transform_feedback_info
+ * - vkd3d_shader_varying_map_info
* \n
* Although the \a compile_info parameter is read-only, chained structures
* passed to this function need not be, and may serve as output parameters,
diff --git a/libs/vkd3d/libs/vkd3d-shader/hlsl.c b/libs/vkd3d/libs/vkd3d-shader/hlsl.c
index dc9886b5384..6558c4e9fb2 100644
--- a/libs/vkd3d/libs/vkd3d-shader/hlsl.c
+++ b/libs/vkd3d/libs/vkd3d-shader/hlsl.c
@@ -153,6 +153,25 @@ void hlsl_free_state_block(struct hlsl_state_block *state_block)
vkd3d_free(state_block);
}
+void hlsl_free_default_value(struct hlsl_default_value *value)
+{
+ vkd3d_free((void *)value->string);
+}
+
+void hlsl_free_default_values(struct hlsl_ir_var *decl)
+{
+ unsigned int component_count;
+
+ if (!decl->default_values)
+ return;
+
+ component_count = hlsl_type_component_count(decl->data_type);
+ for (size_t i = 0; i < component_count; ++i)
+ hlsl_free_default_value(&decl->default_values[i]);
+ vkd3d_free(decl->default_values);
+ decl->default_values = NULL;
+}
+
void hlsl_free_var(struct hlsl_ir_var *decl)
{
unsigned int k, i;
@@ -162,14 +181,7 @@ void hlsl_free_var(struct hlsl_ir_var *decl)
for (k = 0; k <= HLSL_REGSET_LAST_OBJECT; ++k)
vkd3d_free((void *)decl->objects_usage[k]);
- if (decl->default_values)
- {
- unsigned int component_count = hlsl_type_component_count(decl->data_type);
-
- for (k = 0; k < component_count; ++k)
- vkd3d_free((void *)decl->default_values[k].string);
- vkd3d_free(decl->default_values);
- }
+ hlsl_free_default_values(decl);
for (i = 0; i < decl->state_block_count; ++i)
hlsl_free_state_block(decl->state_blocks[i]);
@@ -2187,9 +2199,12 @@ static struct hlsl_ir_resource_load *hlsl_new_resource_load(struct hlsl_ctx *ctx
struct hlsl_ir_node *hlsl_block_add_resource_load(struct hlsl_ctx *ctx, struct hlsl_block *block,
const struct hlsl_resource_load_params *params, const struct vkd3d_shader_location *loc)
{
- struct hlsl_ir_resource_load *load = hlsl_new_resource_load(ctx, params, loc);
+ struct hlsl_ir_resource_load *load;
+
+ if (!(load = hlsl_new_resource_load(ctx, params, loc)))
+ return NULL;
- if (load && load->sampling_dim == HLSL_SAMPLER_DIM_STRUCTURED_BUFFER)
+ if (load->sampling_dim == HLSL_SAMPLER_DIM_STRUCTURED_BUFFER)
hlsl_src_from_node(&load->byte_offset, hlsl_block_add_uint_constant(ctx, block, 0, loc));
return append_new_instr(ctx, block, &load->node);
diff --git a/libs/vkd3d/libs/vkd3d-shader/hlsl.h b/libs/vkd3d/libs/vkd3d-shader/hlsl.h
index 0202d71cc23..e12915f9fe6 100644
--- a/libs/vkd3d/libs/vkd3d-shader/hlsl.h
+++ b/libs/vkd3d/libs/vkd3d-shader/hlsl.h
@@ -1675,6 +1675,8 @@ void hlsl_free_ir_switch_case(struct hlsl_ir_switch_case *c);
void hlsl_replace_node(struct hlsl_ir_node *old, struct hlsl_ir_node *new);
void hlsl_free_attribute(struct hlsl_attribute *attr);
+void hlsl_free_default_value(struct hlsl_default_value *value);
+void hlsl_free_default_values(struct hlsl_ir_var *decl);
void hlsl_free_instr(struct hlsl_ir_node *node);
void hlsl_free_instr_list(struct list *list);
void hlsl_free_state_block(struct hlsl_state_block *state_block);
diff --git a/libs/vkd3d/libs/vkd3d-shader/hlsl.y b/libs/vkd3d/libs/vkd3d-shader/hlsl.y
index 92bfd7040fc..e349029521a 100644
--- a/libs/vkd3d/libs/vkd3d-shader/hlsl.y
+++ b/libs/vkd3d/libs/vkd3d-shader/hlsl.y
@@ -2246,18 +2246,14 @@ static void initialize_var_components(struct hlsl_ctx *ctx, struct hlsl_block *i
if (src->type == HLSL_IR_COMPILE || src->type == HLSL_IR_SAMPLER_STATE)
{
- if (hlsl_is_numeric_type(dst_comp_type))
+ /* Default values are discarded if they contain an object
+ * literal expression for a numeric component. */
+ if (hlsl_is_numeric_type(dst_comp_type) && dst->default_values)
{
- /* Default values are discarded if they contain an object
- * literal expression for a numeric component. */
- if (dst->default_values)
- {
- hlsl_warning(ctx, &src->loc, VKD3D_SHADER_WARNING_HLSL_IGNORED_DEFAULT_VALUE,
- "Component %u in variable '%s' initializer is object literal. Default values discarded.",
- k, dst->name);
- vkd3d_free(dst->default_values);
- dst->default_values = NULL;
- }
+ hlsl_warning(ctx, &src->loc, VKD3D_SHADER_WARNING_HLSL_IGNORED_DEFAULT_VALUE,
+ "Component %u in variable '%s' initializer is object literal. Default values discarded.",
+ k, dst->name);
+ hlsl_free_default_values(dst);
}
}
else
@@ -2268,6 +2264,8 @@ static void initialize_var_components(struct hlsl_ctx *ctx, struct hlsl_block *i
if (dst->default_values)
dst->default_values[*store_index] = default_value;
+ else
+ hlsl_free_default_value(&default_value);
hlsl_block_cleanup(&block);
}
--
2.51.0