Rebase against 7dcdd7a6549793e8a6469816a5c25226e2d73e9c.

This commit is contained in:
Alistair Leslie-Hughes
2025-08-24 09:05:15 +10:00
parent 7cd95e9f79
commit ce66dea197
4 changed files with 154 additions and 28529 deletions

View File

@@ -1,14 +1,12 @@
From 9385c0987fde1070c8e9e1054c57fa16eeab2c7d Mon Sep 17 00:00:00 2001
From b2165faef0a403a805b21efd42f8769a1769b78a 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.
---
libs/vkd3d/include/vkd3d.h | 1 +
libs/vkd3d/include/vkd3d_shader.h | 24 ++
libs/vkd3d/include/vkd3d_shader.h | 23 ++
libs/vkd3d/libs/vkd3d-shader/d3dbc.c | 34 ++-
libs/vkd3d/libs/vkd3d-shader/dxil.c | 73 ++---
libs/vkd3d/libs/vkd3d-shader/fx.c | 2 +-
libs/vkd3d/libs/vkd3d-shader/glsl.c | 1 +
libs/vkd3d/libs/vkd3d-shader/hlsl.c | 70 +++++
libs/vkd3d/libs/vkd3d-shader/hlsl.h | 9 +
@@ -17,39 +15,16 @@ Subject: [PATCH] Updated vkd3d to 3b41d99fa9e80dda5844738a226f70f14f778c8b.
.../libs/vkd3d-shader/hlsl_constant_ops.c | 83 +-----
libs/vkd3d/libs/vkd3d-shader/ir.c | 208 ++++++-------
libs/vkd3d/libs/vkd3d-shader/msl.c | 1 +
libs/vkd3d/libs/vkd3d-shader/spirv.c | 2 +-
libs/vkd3d/libs/vkd3d-shader/tpf.c | 39 +--
.../libs/vkd3d-shader/vkd3d_shader_main.c | 15 +-
.../libs/vkd3d-shader/vkd3d_shader_private.h | 3 +-
.../vkd3d/libs/vkd3d-utils/vkd3d_utils_main.c | 6 +-
libs/vkd3d/libs/vkd3d/state.c | 6 +-
19 files changed, 640 insertions(+), 266 deletions(-)
14 files changed, 630 insertions(+), 258 deletions(-)
diff --git a/libs/vkd3d/include/vkd3d.h b/libs/vkd3d/include/vkd3d.h
index 2cb150dce16..8286f36f6ba 100644
--- a/libs/vkd3d/include/vkd3d.h
+++ b/libs/vkd3d/include/vkd3d.h
@@ -101,6 +101,7 @@ enum vkd3d_api_version
VKD3D_API_VERSION_1_14,
VKD3D_API_VERSION_1_15,
VKD3D_API_VERSION_1_16,
+ VKD3D_API_VERSION_1_17,
VKD3D_FORCE_32_BIT_ENUM(VKD3D_API_VERSION),
};
diff --git a/libs/vkd3d/include/vkd3d_shader.h b/libs/vkd3d/include/vkd3d_shader.h
index 0fd3c67b7e0..a1f85dbbd05 100644
index d82869e79ea..a1f85dbbd05 100644
--- a/libs/vkd3d/include/vkd3d_shader.h
+++ b/libs/vkd3d/include/vkd3d_shader.h
@@ -59,6 +59,7 @@ enum vkd3d_shader_api_version
VKD3D_SHADER_API_VERSION_1_14,
VKD3D_SHADER_API_VERSION_1_15,
VKD3D_SHADER_API_VERSION_1_16,
+ VKD3D_SHADER_API_VERSION_1_17,
VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_API_VERSION),
};
@@ -119,6 +120,11 @@ enum vkd3d_shader_structure_type
@@ -120,6 +120,11 @@ enum vkd3d_shader_structure_type
* \since 1.15
*/
VKD3D_SHADER_STRUCTURE_TYPE_SCAN_HULL_SHADER_TESSELLATION_INFO,
@@ -61,7 +36,7 @@ index 0fd3c67b7e0..a1f85dbbd05 100644
VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_STRUCTURE_TYPE),
};
@@ -2281,6 +2287,24 @@ struct vkd3d_shader_scan_hull_shader_tessellation_info
@@ -2282,6 +2287,24 @@ struct vkd3d_shader_scan_hull_shader_tessellation_info
enum vkd3d_shader_tessellator_partitioning partitioning;
};
@@ -546,19 +521,6 @@ index c448e000cf9..6a12dec14bf 100644
switch (program->shader_version.type)
{
diff --git a/libs/vkd3d/libs/vkd3d-shader/fx.c b/libs/vkd3d/libs/vkd3d-shader/fx.c
index 5b776108c95..676c501bb08 100644
--- a/libs/vkd3d/libs/vkd3d-shader/fx.c
+++ b/libs/vkd3d/libs/vkd3d-shader/fx.c
@@ -4205,7 +4205,7 @@ static void fx_parse_shader_blob(struct fx_parser *parser, enum vkd3d_shader_sou
static const struct vkd3d_shader_compile_option options[] =
{
- {VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_16},
+ {VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_17},
};
info.type = VKD3D_SHADER_STRUCTURE_TYPE_COMPILE_INFO;
diff --git a/libs/vkd3d/libs/vkd3d-shader/glsl.c b/libs/vkd3d/libs/vkd3d-shader/glsl.c
index dfe0a40ddf0..5988e7b3a30 100644
--- a/libs/vkd3d/libs/vkd3d-shader/glsl.c
@@ -1706,19 +1668,6 @@ index c6e048adb20..88d1160d4e8 100644
msl_relop(gen, ins, ">=");
break;
case VSIR_OP_IF:
diff --git a/libs/vkd3d/libs/vkd3d-shader/spirv.c b/libs/vkd3d/libs/vkd3d-shader/spirv.c
index a4990d982bc..97c0d0e73a8 100644
--- a/libs/vkd3d/libs/vkd3d-shader/spirv.c
+++ b/libs/vkd3d/libs/vkd3d-shader/spirv.c
@@ -38,7 +38,7 @@
#define VKD3D_SPIRV_VERSION_1_0 0x00010000
#define VKD3D_SPIRV_VERSION_1_3 0x00010300
#define VKD3D_SPIRV_GENERATOR_ID 18
-#define VKD3D_SPIRV_GENERATOR_VERSION 16
+#define VKD3D_SPIRV_GENERATOR_VERSION 17
#define VKD3D_SPIRV_GENERATOR_MAGIC vkd3d_make_u32(VKD3D_SPIRV_GENERATOR_VERSION, VKD3D_SPIRV_GENERATOR_ID)
#ifndef VKD3D_SHADER_UNSUPPORTED_SPIRV_PARSER
# define VKD3D_SHADER_UNSUPPORTED_SPIRV_PARSER 0
diff --git a/libs/vkd3d/libs/vkd3d-shader/tpf.c b/libs/vkd3d/libs/vkd3d-shader/tpf.c
index ea15c1a9ad5..e2123656557 100644
--- a/libs/vkd3d/libs/vkd3d-shader/tpf.c
@@ -1975,68 +1924,6 @@ index e758c16b3d4..b63c5785770 100644
struct vkd3d_shader_message_context *message_context, const char *source_name);
void vkd3d_shader_parser_warning(struct vkd3d_shader_parser *parser,
enum vkd3d_shader_error error, const char *format, ...) VKD3D_PRINTF_FUNC(3, 4);
diff --git a/libs/vkd3d/libs/vkd3d-utils/vkd3d_utils_main.c b/libs/vkd3d/libs/vkd3d-utils/vkd3d_utils_main.c
index c41f8bae806..f804c1f0c24 100644
--- a/libs/vkd3d/libs/vkd3d-utils/vkd3d_utils_main.c
+++ b/libs/vkd3d/libs/vkd3d-utils/vkd3d_utils_main.c
@@ -271,7 +271,7 @@ HRESULT WINAPI D3DCompile2VKD3D(const void *data, SIZE_T data_size, const char *
option = &options[0];
option->name = VKD3D_SHADER_COMPILE_OPTION_API_VERSION;
- option->value = VKD3D_SHADER_API_VERSION_1_16;
+ option->value = VKD3D_SHADER_API_VERSION_1_17;
compile_info.type = VKD3D_SHADER_STRUCTURE_TYPE_COMPILE_INFO;
compile_info.next = &preprocess_info;
@@ -435,7 +435,7 @@ HRESULT WINAPI D3DPreprocess(const void *data, SIZE_T size, const char *filename
static const struct vkd3d_shader_compile_option options[] =
{
- {VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_16},
+ {VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_17},
};
TRACE("data %p, size %"PRIuPTR", filename %s, macros %p, include %p, preprocessed_blob %p, messages_blob %p.\n",
@@ -981,7 +981,7 @@ HRESULT WINAPI D3DDisassemble(const void *data, SIZE_T data_size,
static const struct vkd3d_shader_compile_option options[] =
{
- {VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_16},
+ {VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_17},
};
TRACE("data %p, data_size %"PRIuPTR", flags %#x, comments %p, blob %p.\n",
diff --git a/libs/vkd3d/libs/vkd3d/state.c b/libs/vkd3d/libs/vkd3d/state.c
index 413892789ba..6bbd6533b74 100644
--- a/libs/vkd3d/libs/vkd3d/state.c
+++ b/libs/vkd3d/libs/vkd3d/state.c
@@ -2391,7 +2391,7 @@ static HRESULT create_shader_stage(struct d3d12_device *device,
const struct vkd3d_shader_compile_option options[] =
{
- {VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_16},
+ {VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_17},
{VKD3D_SHADER_COMPILE_OPTION_TYPED_UAV, typed_uav_compile_option(device)},
{VKD3D_SHADER_COMPILE_OPTION_WRITE_TESS_GEOM_POINT_SIZE, 0},
{VKD3D_SHADER_COMPILE_OPTION_FEATURE, feature_flags_compile_option(device)},
@@ -2456,7 +2456,7 @@ static int vkd3d_scan_dxbc(const struct d3d12_device *device, const D3D12_SHADER
const struct vkd3d_shader_compile_option options[] =
{
- {VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_16},
+ {VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_17},
{VKD3D_SHADER_COMPILE_OPTION_TYPED_UAV, typed_uav_compile_option(device)},
};
@@ -4135,7 +4135,7 @@ static int compile_hlsl_cs(const struct vkd3d_shader_code *hlsl, struct vkd3d_sh
static const struct vkd3d_shader_compile_option options[] =
{
- {VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_16},
+ {VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_17},
};
info.type = VKD3D_SHADER_STRUCTURE_TYPE_COMPILE_INFO;
--
2.50.1

View File

@@ -0,0 +1,133 @@
From 5881c4d692d2522ed93d5e39362eda5f0c8e647f 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.
---
libs/vkd3d/libs/vkd3d-shader/glsl.c | 9 +--------
libs/vkd3d/libs/vkd3d-shader/hlsl.l | 2 +-
libs/vkd3d/libs/vkd3d-shader/preproc.l | 12 ++----------
libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_main.c | 7 ++++++-
libs/vkd3d/libs/vkd3d/utils.c | 3 ++-
5 files changed, 12 insertions(+), 21 deletions(-)
diff --git a/libs/vkd3d/libs/vkd3d-shader/glsl.c b/libs/vkd3d/libs/vkd3d-shader/glsl.c
index 5988e7b3a30..acc30b998f6 100644
--- a/libs/vkd3d/libs/vkd3d-shader/glsl.c
+++ b/libs/vkd3d/libs/vkd3d-shader/glsl.c
@@ -2329,7 +2329,6 @@ static int vkd3d_glsl_generator_generate(struct vkd3d_glsl_generator *gen, struc
struct vkd3d_string_buffer *buffer = gen->buffer;
struct vkd3d_shader_instruction *ins;
struct vsir_program_iterator it;
- void *code;
MESSAGE("Generating a GLSL shader. This is unsupported; you get to keep all the pieces if it breaks.\n");
@@ -2358,13 +2357,7 @@ static int vkd3d_glsl_generator_generate(struct vkd3d_glsl_generator *gen, struc
if (gen->failed)
return VKD3D_ERROR_INVALID_SHADER;
- if ((code = vkd3d_malloc(buffer->buffer_size)))
- {
- memcpy(code, buffer->buffer, buffer->content_size);
- out->size = buffer->content_size;
- out->code = code;
- }
- else return VKD3D_ERROR_OUT_OF_MEMORY;
+ vkd3d_shader_code_from_string_buffer(out, buffer);
return VKD3D_OK;
}
diff --git a/libs/vkd3d/libs/vkd3d-shader/hlsl.l b/libs/vkd3d/libs/vkd3d-shader/hlsl.l
index 0cdebb8a657..da9f0d39136 100644
--- a/libs/vkd3d/libs/vkd3d-shader/hlsl.l
+++ b/libs/vkd3d/libs/vkd3d-shader/hlsl.l
@@ -346,7 +346,7 @@ while {return KW_WHILE; }
<pp>{ANY} {}
{ANY} {
- return yytext[0];
+ return (unsigned char)yytext[0];
}
%%
diff --git a/libs/vkd3d/libs/vkd3d-shader/preproc.l b/libs/vkd3d/libs/vkd3d-shader/preproc.l
index 5c56fba0229..f9b1d67ac36 100644
--- a/libs/vkd3d/libs/vkd3d-shader/preproc.l
+++ b/libs/vkd3d/libs/vkd3d-shader/preproc.l
@@ -824,7 +824,6 @@ int preproc_lexer_parse(const struct vkd3d_shader_compile_info *compile_info,
static const struct vkd3d_shader_preprocess_info default_preprocess_info = {0};
struct preproc_ctx ctx = {0};
char *source_name = NULL;
- void *output_code;
unsigned int i;
vkd3d_string_buffer_init(&ctx.buffer);
@@ -901,16 +900,9 @@ int preproc_lexer_parse(const struct vkd3d_shader_compile_info *compile_info,
return VKD3D_ERROR_INVALID_SHADER;
}
- if (!(output_code = vkd3d_malloc(ctx.buffer.content_size)))
- {
- vkd3d_string_buffer_cleanup(&ctx.buffer);
- return VKD3D_ERROR_OUT_OF_MEMORY;
- }
- memcpy(output_code, ctx.buffer.buffer, ctx.buffer.content_size);
- out->size = ctx.buffer.content_size;
- out->code = output_code;
vkd3d_string_buffer_trace(&ctx.buffer);
- vkd3d_string_buffer_cleanup(&ctx.buffer);
+
+ vkd3d_shader_code_from_string_buffer(out, &ctx.buffer);
return VKD3D_OK;
fail:
diff --git a/libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_main.c b/libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_main.c
index 75b7f9aa769..08450b4cf85 100644
--- a/libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_main.c
+++ b/libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_main.c
@@ -2266,6 +2266,7 @@ int vkd3d_shader_preprocess(const struct vkd3d_shader_compile_info *compile_info
struct vkd3d_shader_code *out, char **messages)
{
struct vkd3d_shader_message_context message_context;
+ struct shader_dump_data dump_data;
int ret;
TRACE("compile_info %p, out %p, messages %p.\n", compile_info, out, messages);
@@ -2278,7 +2279,11 @@ int vkd3d_shader_preprocess(const struct vkd3d_shader_compile_info *compile_info
vkd3d_shader_message_context_init(&message_context, compile_info->log_level);
- ret = preproc_lexer_parse(compile_info, out, &message_context);
+ fill_shader_dump_data(compile_info, &dump_data);
+ vkd3d_shader_dump_shader(&dump_data, compile_info->source.code, compile_info->source.size, SHADER_DUMP_TYPE_SOURCE);
+
+ if ((ret = preproc_lexer_parse(compile_info, out, &message_context)) >= 0)
+ vkd3d_shader_dump_shader(&dump_data, out->code, out->size, SHADER_DUMP_TYPE_PREPROC);
vkd3d_shader_message_context_trace_messages(&message_context);
if (!vkd3d_shader_message_context_copy_messages(&message_context, messages))
diff --git a/libs/vkd3d/libs/vkd3d/utils.c b/libs/vkd3d/libs/vkd3d/utils.c
index c2832a61f67..2d0510e5456 100644
--- a/libs/vkd3d/libs/vkd3d/utils.c
+++ b/libs/vkd3d/libs/vkd3d/utils.c
@@ -703,7 +703,7 @@ const char *debug_vk_extent_3d(VkExtent3D extent)
const char *debug_vk_queue_flags(VkQueueFlags flags)
{
- char buffer[191];
+ char buffer[222];
buffer[0] = '\0';
#define FLAG_TO_STR(f) if (flags & f) { strcat(buffer, " | "#f); flags &= ~f; }
@@ -716,6 +716,7 @@ const char *debug_vk_queue_flags(VkQueueFlags flags)
#define FLAG_TO_STR(f, n) if (flags & f) { strcat(buffer, " | "#n); flags &= ~f; }
FLAG_TO_STR(0x20, VK_QUEUE_VIDEO_DECODE_BIT_KHR)
FLAG_TO_STR(0x40, VK_QUEUE_VIDEO_ENCODE_BIT_KHR)
+ FLAG_TO_STR(0x100, VK_QUEUE_OPTICAL_FLOW_BIT_NV)
#undef FLAG_TO_STR
if (flags)
FIXME("Unrecognized flag(s) %#x.\n", flags);
--
2.50.1

View File

@@ -1 +1 @@
288a40d05c8cddf62d0b12524a90d2d4f5ce114d
7dcdd7a6549793e8a6469816a5c25226e2d73e9c