mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-01-28 22:04:43 -08:00
Rebase against b6eada5e2f9e3c86c18df118cddd20e6212f64de.
This commit is contained in:
parent
123aed11ee
commit
4ff6ecc4ac
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,201 +0,0 @@
|
||||
From e0214af03df8d0b0212f99c79a961003ffc63ff6 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Fri, 24 May 2024 07:56:01 +1000
|
||||
Subject: [PATCH] Updated vkd3d to f090d1e80d8b6617b71f25dd422665b44759f3d0.
|
||||
|
||||
---
|
||||
libs/vkd3d/libs/vkd3d-shader/d3dbc.c | 11 ++++++-----
|
||||
libs/vkd3d/libs/vkd3d-shader/dxbc.c | 10 ++++++++--
|
||||
libs/vkd3d/libs/vkd3d-shader/dxil.c | 17 ++++++++++++++++-
|
||||
libs/vkd3d/libs/vkd3d-shader/hlsl_codegen.c | 2 +-
|
||||
libs/vkd3d/libs/vkd3d-shader/preproc.l | 2 +-
|
||||
.../libs/vkd3d-shader/vkd3d_shader_main.c | 18 +++++++++++++++++-
|
||||
6 files changed, 49 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/libs/vkd3d/libs/vkd3d-shader/d3dbc.c b/libs/vkd3d/libs/vkd3d-shader/d3dbc.c
|
||||
index 58f830dd887..bfd5b52b436 100644
|
||||
--- a/libs/vkd3d/libs/vkd3d-shader/d3dbc.c
|
||||
+++ b/libs/vkd3d/libs/vkd3d-shader/d3dbc.c
|
||||
@@ -559,7 +559,8 @@ static bool add_signature_element(struct vkd3d_shader_sm1_parser *sm1, bool outp
|
||||
element = &signature->elements[signature->element_count++];
|
||||
|
||||
memset(element, 0, sizeof(*element));
|
||||
- element->semantic_name = name;
|
||||
+ if (!(element->semantic_name = vkd3d_strdup(name)))
|
||||
+ return false;
|
||||
element->semantic_index = index;
|
||||
element->sysval_semantic = sysval;
|
||||
element->component_type = VKD3D_SHADER_COMPONENT_FLOAT;
|
||||
@@ -2050,7 +2051,7 @@ static void write_sm1_cast(struct hlsl_ctx *ctx, struct vkd3d_bytecode_buffer *b
|
||||
case HLSL_TYPE_BOOL:
|
||||
/* Casts to bool should have already been lowered. */
|
||||
default:
|
||||
- hlsl_fixme(ctx, &expr->node.loc, "SM1 cast from %s to %s.\n",
|
||||
+ hlsl_fixme(ctx, &expr->node.loc, "SM1 cast from %s to %s.",
|
||||
debug_hlsl_type(ctx, src_type), debug_hlsl_type(ctx, dst_type));
|
||||
break;
|
||||
}
|
||||
@@ -2458,7 +2459,7 @@ static void write_sm1_jump(struct hlsl_ctx *ctx, struct vkd3d_bytecode_buffer *b
|
||||
}
|
||||
|
||||
default:
|
||||
- hlsl_fixme(ctx, &jump->node.loc, "Jump type %s.\n", hlsl_jump_type_to_string(jump->type));
|
||||
+ hlsl_fixme(ctx, &jump->node.loc, "Jump type %s.", hlsl_jump_type_to_string(jump->type));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2546,7 +2547,7 @@ static void write_sm1_resource_load(struct hlsl_ctx *ctx, struct vkd3d_bytecode_
|
||||
break;
|
||||
|
||||
default:
|
||||
- hlsl_fixme(ctx, &instr->loc, "Resource load type %u\n", load->load_type);
|
||||
+ hlsl_fixme(ctx, &instr->loc, "Resource load type %u.", load->load_type);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -2578,7 +2579,7 @@ static void write_sm1_store(struct hlsl_ctx *ctx, struct vkd3d_bytecode_buffer *
|
||||
|
||||
if (store->lhs.var->data_type->class == HLSL_CLASS_MATRIX)
|
||||
{
|
||||
- hlsl_fixme(ctx, &instr->loc, "Lower matrix writemasks.\n");
|
||||
+ hlsl_fixme(ctx, &instr->loc, "Lower matrix writemasks.");
|
||||
return;
|
||||
}
|
||||
|
||||
diff --git a/libs/vkd3d/libs/vkd3d-shader/dxbc.c b/libs/vkd3d/libs/vkd3d-shader/dxbc.c
|
||||
index 8a1012d909b..4b9f67235aa 100644
|
||||
--- a/libs/vkd3d/libs/vkd3d-shader/dxbc.c
|
||||
+++ b/libs/vkd3d/libs/vkd3d-shader/dxbc.c
|
||||
@@ -360,7 +360,7 @@ static int shader_parse_signature(const struct vkd3d_shader_dxbc_section_desc *s
|
||||
uint32_t count, header_size;
|
||||
struct signature_element *e;
|
||||
const char *ptr = data;
|
||||
- unsigned int i;
|
||||
+ unsigned int i, j;
|
||||
|
||||
if (!require_space(0, 2, sizeof(uint32_t), section->data.size))
|
||||
{
|
||||
@@ -403,6 +403,7 @@ static int shader_parse_signature(const struct vkd3d_shader_dxbc_section_desc *s
|
||||
for (i = 0; i < count; ++i)
|
||||
{
|
||||
size_t name_offset;
|
||||
+ const char *name;
|
||||
uint32_t mask;
|
||||
|
||||
e[i].sort_index = i;
|
||||
@@ -413,9 +414,14 @@ static int shader_parse_signature(const struct vkd3d_shader_dxbc_section_desc *s
|
||||
e[i].stream_index = 0;
|
||||
|
||||
name_offset = read_u32(&ptr);
|
||||
- if (!(e[i].semantic_name = shader_get_string(data, section->data.size, name_offset)))
|
||||
+ if (!(name = shader_get_string(data, section->data.size, name_offset))
|
||||
+ || !(e[i].semantic_name = vkd3d_strdup(name)))
|
||||
{
|
||||
WARN("Invalid name offset %#zx (data size %#zx).\n", name_offset, section->data.size);
|
||||
+ for (j = 0; j < i; ++j)
|
||||
+ {
|
||||
+ vkd3d_free((void *)e[j].semantic_name);
|
||||
+ }
|
||||
vkd3d_free(e);
|
||||
return VKD3D_ERROR_INVALID_ARGUMENT;
|
||||
}
|
||||
diff --git a/libs/vkd3d/libs/vkd3d-shader/dxil.c b/libs/vkd3d/libs/vkd3d-shader/dxil.c
|
||||
index 4943a586680..73a8d8687c5 100644
|
||||
--- a/libs/vkd3d/libs/vkd3d-shader/dxil.c
|
||||
+++ b/libs/vkd3d/libs/vkd3d-shader/dxil.c
|
||||
@@ -9445,7 +9445,22 @@ static enum vkd3d_result sm6_parser_read_signature(struct sm6_parser *sm6, const
|
||||
}
|
||||
}
|
||||
|
||||
- vkd3d_free(s->elements);
|
||||
+ for (i = 0; i < operand_count; ++i)
|
||||
+ {
|
||||
+ if ((elements[i].semantic_name = vkd3d_strdup(elements[i].semantic_name)))
|
||||
+ continue;
|
||||
+
|
||||
+ vkd3d_shader_parser_error(&sm6->p, VKD3D_SHADER_ERROR_DXIL_OUT_OF_MEMORY,
|
||||
+ "Failed to allocate signature element semantic name.");
|
||||
+ for (j = 0; j < i; ++j)
|
||||
+ {
|
||||
+ vkd3d_free((void *)elements[j].semantic_name);
|
||||
+ }
|
||||
+ vkd3d_free(elements);
|
||||
+ return VKD3D_ERROR_OUT_OF_MEMORY;
|
||||
+ }
|
||||
+
|
||||
+ shader_signature_cleanup(s);
|
||||
s->elements = elements;
|
||||
s->element_count = operand_count;
|
||||
|
||||
diff --git a/libs/vkd3d/libs/vkd3d-shader/hlsl_codegen.c b/libs/vkd3d/libs/vkd3d-shader/hlsl_codegen.c
|
||||
index 27f16af51c5..bdb72a1fab9 100644
|
||||
--- a/libs/vkd3d/libs/vkd3d-shader/hlsl_codegen.c
|
||||
+++ b/libs/vkd3d/libs/vkd3d-shader/hlsl_codegen.c
|
||||
@@ -2988,7 +2988,7 @@ static bool lower_ternary(struct hlsl_ctx *ctx, struct hlsl_ir_node *instr, stru
|
||||
|
||||
if (cond->data_type->class > HLSL_CLASS_VECTOR || instr->data_type->class > HLSL_CLASS_VECTOR)
|
||||
{
|
||||
- hlsl_fixme(ctx, &instr->loc, "Lower ternary of type other than scalar or vector.\n");
|
||||
+ hlsl_fixme(ctx, &instr->loc, "Lower ternary of type other than scalar or vector.");
|
||||
return false;
|
||||
}
|
||||
|
||||
diff --git a/libs/vkd3d/libs/vkd3d-shader/preproc.l b/libs/vkd3d/libs/vkd3d-shader/preproc.l
|
||||
index 6fb61eff6c3..a3cdbe559a7 100644
|
||||
--- a/libs/vkd3d/libs/vkd3d-shader/preproc.l
|
||||
+++ b/libs/vkd3d/libs/vkd3d-shader/preproc.l
|
||||
@@ -66,7 +66,7 @@ static void update_location(struct preproc_ctx *ctx);
|
||||
%s LINE
|
||||
|
||||
NEWLINE \r?\n
|
||||
-WS [ \t]
|
||||
+WS [ \t\r]
|
||||
IDENTIFIER [A-Za-z_][A-Za-z0-9_]*
|
||||
INT_SUFFIX [uUlL]{0,2}
|
||||
|
||||
diff --git a/libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_main.c b/libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_main.c
|
||||
index b8dd0dba377..46c0da2a2d7 100644
|
||||
--- a/libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_main.c
|
||||
+++ b/libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_main.c
|
||||
@@ -657,7 +657,15 @@ static bool vkd3d_shader_signature_from_shader_signature(struct vkd3d_shader_sig
|
||||
struct vkd3d_shader_signature_element *d = &signature->elements[i];
|
||||
struct signature_element *e = &src->elements[i];
|
||||
|
||||
- d->semantic_name = e->semantic_name;
|
||||
+ if (!(d->semantic_name = vkd3d_strdup(e->semantic_name)))
|
||||
+ {
|
||||
+ for (unsigned int j = 0; j < i; ++j)
|
||||
+ {
|
||||
+ vkd3d_free((void *)signature->elements[j].semantic_name);
|
||||
+ }
|
||||
+ vkd3d_free(signature->elements);
|
||||
+ return false;
|
||||
+ }
|
||||
d->semantic_index = e->semantic_index;
|
||||
d->stream_index = e->stream_index;
|
||||
d->sysval_semantic = e->sysval_semantic;
|
||||
@@ -1763,6 +1771,10 @@ void vkd3d_shader_free_root_signature(struct vkd3d_shader_versioned_root_signatu
|
||||
|
||||
void shader_signature_cleanup(struct shader_signature *signature)
|
||||
{
|
||||
+ for (unsigned int i = 0; i < signature->element_count; ++i)
|
||||
+ {
|
||||
+ vkd3d_free((void *)signature->elements[i].semantic_name);
|
||||
+ }
|
||||
vkd3d_free(signature->elements);
|
||||
signature->elements = NULL;
|
||||
}
|
||||
@@ -1820,6 +1832,10 @@ void vkd3d_shader_free_shader_signature(struct vkd3d_shader_signature *signature
|
||||
{
|
||||
TRACE("signature %p.\n", signature);
|
||||
|
||||
+ for (unsigned int i = 0; i < signature->element_count; ++i)
|
||||
+ {
|
||||
+ vkd3d_free((void *)signature->elements[i].semantic_name);
|
||||
+ }
|
||||
vkd3d_free(signature->elements);
|
||||
signature->elements = NULL;
|
||||
}
|
||||
--
|
||||
2.43.0
|
||||
|
@ -1,79 +0,0 @@
|
||||
From 112fd3af5d768c38517cfd4462ae586cf40f13c2 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Tue, 28 May 2024 07:40:44 +1000
|
||||
Subject: [PATCH] Updated vkd3d to 9693271dcfb96e9cd8d44c181cf70044edbf6861.
|
||||
|
||||
---
|
||||
libs/vkd3d/include/vkd3d_shader.h | 6 +++++-
|
||||
libs/vkd3d/include/vkd3d_types.h | 2 +-
|
||||
libs/vkd3d/libs/vkd3d-shader/ir.c | 1 +
|
||||
libs/vkd3d/libs/vkd3d/resource.c | 6 ++++--
|
||||
4 files changed, 11 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/libs/vkd3d/include/vkd3d_shader.h b/libs/vkd3d/include/vkd3d_shader.h
|
||||
index 2b32b8a3e98..082f34179a3 100644
|
||||
--- a/libs/vkd3d/include/vkd3d_shader.h
|
||||
+++ b/libs/vkd3d/include/vkd3d_shader.h
|
||||
@@ -2059,8 +2059,12 @@ VKD3D_SHADER_API const enum vkd3d_shader_target_type *vkd3d_shader_get_supported
|
||||
* - VKD3D_SHADER_SOURCE_D3D_BYTECODE to VKD3D_SHADER_TARGET_SPIRV_TEXT
|
||||
* (if vkd3d was compiled with SPIRV-Tools)
|
||||
* - VKD3D_SHADER_SOURCE_D3D_BYTECODE to VKD3D_SHADER_TARGET_D3D_ASM
|
||||
- * - VKD3D_SHADER_SOURCE_HLSL to VKD3D_SHADER_TARGET_DXBC_TPF
|
||||
+ * - VKD3D_SHADER_SOURCE_HLSL to VKD3D_SHADER_TARGET_SPIRV_BINARY
|
||||
+ * - VKD3D_SHADER_SOURCE_HLSL to VKD3D_SHADER_TARGET_SPIRV_TEXT
|
||||
+ * (if vkd3d was compiled with SPIRV-Tools)
|
||||
+ * - VKD3D_SHADER_SOURCE_HLSL to VKD3D_SHADER_TARGET_D3D_ASM
|
||||
* - VKD3D_SHADER_SOURCE_HLSL to VKD3D_SHADER_TARGET_D3D_BYTECODE
|
||||
+ * - VKD3D_SHADER_SOURCE_HLSL to VKD3D_SHADER_TARGET_DXBC_TPF
|
||||
* - VKD3D_SHADER_SOURCE_HLSL to VKD3D_SHADER_TARGET_FX
|
||||
*
|
||||
* Supported transformations can also be detected at runtime with the functions
|
||||
diff --git a/libs/vkd3d/include/vkd3d_types.h b/libs/vkd3d/include/vkd3d_types.h
|
||||
index dc5a7c064ae..f5a10117c12 100644
|
||||
--- a/libs/vkd3d/include/vkd3d_types.h
|
||||
+++ b/libs/vkd3d/include/vkd3d_types.h
|
||||
@@ -41,7 +41,7 @@ enum vkd3d_result
|
||||
{
|
||||
/** Success. */
|
||||
VKD3D_OK = 0,
|
||||
- /** Success as a result of there being nothing to do. */
|
||||
+ /** Success as a result of there being nothing to do. \since 1.12 */
|
||||
VKD3D_FALSE = 1,
|
||||
/** An unspecified failure occurred. */
|
||||
VKD3D_ERROR = -1,
|
||||
diff --git a/libs/vkd3d/libs/vkd3d-shader/ir.c b/libs/vkd3d/libs/vkd3d-shader/ir.c
|
||||
index 37818d4dfad..b3b745fc1b2 100644
|
||||
--- a/libs/vkd3d/libs/vkd3d-shader/ir.c
|
||||
+++ b/libs/vkd3d/libs/vkd3d-shader/ir.c
|
||||
@@ -1886,6 +1886,7 @@ static enum vkd3d_result vsir_program_normalise_combined_samplers(struct vsir_pr
|
||||
srcs[1].reg.idx[1] = ins->src[1].reg.idx[0];
|
||||
srcs[1].reg.idx_count = 2;
|
||||
srcs[1].reg.data_type = VKD3D_DATA_RESOURCE;
|
||||
+ srcs[1].reg.dimension = VSIR_DIMENSION_VEC4;
|
||||
srcs[1].swizzle = VKD3D_SHADER_NO_SWIZZLE;
|
||||
|
||||
srcs[2].reg.type = VKD3DSPR_SAMPLER;
|
||||
diff --git a/libs/vkd3d/libs/vkd3d/resource.c b/libs/vkd3d/libs/vkd3d/resource.c
|
||||
index 7a2f464c98e..c897d9f2c5a 100644
|
||||
--- a/libs/vkd3d/libs/vkd3d/resource.c
|
||||
+++ b/libs/vkd3d/libs/vkd3d/resource.c
|
||||
@@ -4284,12 +4284,14 @@ static HRESULT d3d12_descriptor_heap_create_descriptor_set(struct d3d12_descript
|
||||
VkDescriptorSetVariableDescriptorCountAllocateInfoEXT set_size;
|
||||
VkDescriptorSetAllocateInfo set_desc;
|
||||
VkResult vr;
|
||||
+ HRESULT hr;
|
||||
|
||||
if (!device->vk_descriptor_heap_layouts[set].vk_set_layout)
|
||||
{
|
||||
/* Set 0 uses mutable descriptors, and this set is unused. */
|
||||
- if (!descriptor_heap->vk_descriptor_sets[0].vk_set)
|
||||
- d3d12_descriptor_heap_create_descriptor_set(descriptor_heap, device, 0);
|
||||
+ if (!descriptor_heap->vk_descriptor_sets[0].vk_set
|
||||
+ && FAILED(hr = d3d12_descriptor_heap_create_descriptor_set(descriptor_heap, device, 0)))
|
||||
+ return hr;
|
||||
descriptor_set->vk_set = descriptor_heap->vk_descriptor_sets[0].vk_set;
|
||||
descriptor_set->vk_type = device->vk_descriptor_heap_layouts[set].type;
|
||||
return S_OK;
|
||||
--
|
||||
2.43.0
|
||||
|
@ -1 +1 @@
|
||||
5f7b9a5b837a77a85754b3b55b974e39e199f817
|
||||
b6eada5e2f9e3c86c18df118cddd20e6212f64de
|
||||
|
Loading…
x
Reference in New Issue
Block a user