Files
wine-staging/patches/vkd3d-latest/0010-Updated-vkd3d-to-bd3d0f3495f6375901df9ca899accf8bc7a.patch

151 lines
6.4 KiB
Diff
Raw Permalink Normal View History

2025-08-15 08:07:30 +10:00
From 6d9b7b4891f5ed2c30b6d383fe289637bcc2c6d9 Mon Sep 17 00:00:00 2001
2025-08-01 07:19:16 +10:00
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Fri, 1 Aug 2025 07:18:27 +1000
Subject: [PATCH] Updated vkd3d to bd3d0f3495f6375901df9ca899accf8bc7a45345.
---
dlls/msado15/tests/msado15.c | 2 +-
.../include/private/vkd3d_shader_utils.h | 4 ----
libs/vkd3d/libs/vkd3d-shader/dxil.c | 1 +
libs/vkd3d/libs/vkd3d-shader/ir.c | 5 +----
libs/vkd3d/libs/vkd3d/command.c | 21 +++++++++++++------
libs/vkd3d/libs/vkd3d/state.c | 4 ++--
6 files changed, 20 insertions(+), 17 deletions(-)
diff --git a/dlls/msado15/tests/msado15.c b/dlls/msado15/tests/msado15.c
2025-08-07 07:20:57 +10:00
index 03eaab92b39..3f4b55d2916 100644
2025-08-01 07:19:16 +10:00
--- a/dlls/msado15/tests/msado15.c
+++ b/dlls/msado15/tests/msado15.c
@@ -2023,8 +2023,8 @@ START_TEST(msado15)
setup_database();
test_Connection();
- test_Connection_Open();
test_ConnectionPoint();
+ test_Connection_Open();
test_ADORecordsetConstruction(FALSE);
test_ADORecordsetConstruction(TRUE);
test_Fields();
diff --git a/libs/vkd3d/include/private/vkd3d_shader_utils.h b/libs/vkd3d/include/private/vkd3d_shader_utils.h
index 00052a89988..465734dfbff 100644
--- a/libs/vkd3d/include/private/vkd3d_shader_utils.h
+++ b/libs/vkd3d/include/private/vkd3d_shader_utils.h
@@ -21,10 +21,6 @@
#include "vkd3d_shader.h"
-#define TAG_DXIL VKD3D_MAKE_TAG('D', 'X', 'I', 'L')
-#define TAG_SHDR VKD3D_MAKE_TAG('S', 'H', 'D', 'R')
-#define TAG_SHEX VKD3D_MAKE_TAG('S', 'H', 'E', 'X')
-
static inline enum vkd3d_result vkd3d_shader_parse_dxbc_source_type(const struct vkd3d_shader_code *dxbc,
enum vkd3d_shader_source_type *type, char **messages)
{
diff --git a/libs/vkd3d/libs/vkd3d-shader/dxil.c b/libs/vkd3d/libs/vkd3d-shader/dxil.c
index 19e9f54edda..02e72b28908 100644
--- a/libs/vkd3d/libs/vkd3d-shader/dxil.c
+++ b/libs/vkd3d/libs/vkd3d-shader/dxil.c
@@ -8905,6 +8905,7 @@ static const enum vkd3d_shader_sysval_semantic sysval_semantic_table[] =
[SEMANTIC_KIND_INSTANCEID] = VKD3D_SHADER_SV_INSTANCE_ID,
[SEMANTIC_KIND_POSITION] = VKD3D_SHADER_SV_POSITION,
[SEMANTIC_KIND_RTARRAYINDEX] = VKD3D_SHADER_SV_RENDER_TARGET_ARRAY_INDEX,
+ [SEMANTIC_KIND_VIEWPORTARRAYINDEX] = VKD3D_SHADER_SV_VIEWPORT_ARRAY_INDEX,
[SEMANTIC_KIND_CLIPDISTANCE] = VKD3D_SHADER_SV_CLIP_DISTANCE,
[SEMANTIC_KIND_CULLDISTANCE] = VKD3D_SHADER_SV_CULL_DISTANCE,
[SEMANTIC_KIND_PRIMITIVEID] = VKD3D_SHADER_SV_PRIMITIVE_ID,
diff --git a/libs/vkd3d/libs/vkd3d-shader/ir.c b/libs/vkd3d/libs/vkd3d-shader/ir.c
index 4c324fef7cf..76eb62cfd6f 100644
--- a/libs/vkd3d/libs/vkd3d-shader/ir.c
+++ b/libs/vkd3d/libs/vkd3d-shader/ir.c
@@ -1752,14 +1752,11 @@ static enum vkd3d_result vsir_program_ensure_ret(struct vsir_program *program,
struct vkd3d_shader_instruction *ins;
ins = vsir_program_iterator_tail(&it);
-
if (ins && ins->opcode == VSIR_OP_RET)
return VKD3D_OK;
- if (!vsir_program_iterator_insert_after(&it, 1))
+ if (!(ins = vsir_program_append(program)))
return VKD3D_ERROR_OUT_OF_MEMORY;
-
- ins = vsir_program_iterator_next(&it);
vsir_instruction_init(ins, &no_loc, VSIR_OP_RET);
return VKD3D_OK;
diff --git a/libs/vkd3d/libs/vkd3d/command.c b/libs/vkd3d/libs/vkd3d/command.c
index e487ed0b9ad..074d8430585 100644
--- a/libs/vkd3d/libs/vkd3d/command.c
+++ b/libs/vkd3d/libs/vkd3d/command.c
@@ -4221,13 +4221,21 @@ static void STDMETHODCALLTYPE d3d12_command_list_RSSetViewports(ID3D12GraphicsCo
TRACE("iface %p, viewport_count %u, viewports %p.\n", iface, viewport_count, viewports);
if (viewport_count > ARRAY_SIZE(vk_viewports))
- {
FIXME("Viewport count %u > D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE.\n", viewport_count);
- viewport_count = ARRAY_SIZE(vk_viewports);
- }
- for (i = 0; i < viewport_count; ++i)
+ for (i = 0; i < ARRAY_SIZE(vk_viewports); ++i)
{
+ if (i >= viewport_count)
+ {
+ vk_viewports[i].x = 0.0f;
+ vk_viewports[i].y = 0.0f;
+ vk_viewports[i].width = 1.0f;
+ vk_viewports[i].height = 1.0f;
+ vk_viewports[i].minDepth = 0.0f;
+ vk_viewports[i].maxDepth = 0.0f;
+ continue;
+ }
+
vk_viewports[i].x = viewports[i].TopLeftX;
vk_viewports[i].y = viewports[i].TopLeftY + viewports[i].Height;
vk_viewports[i].width = viewports[i].Width;
@@ -4245,7 +4253,7 @@ static void STDMETHODCALLTYPE d3d12_command_list_RSSetViewports(ID3D12GraphicsCo
}
vk_procs = &list->device->vk_procs;
- VK_CALL(vkCmdSetViewport(list->vk_command_buffer, 0, viewport_count, vk_viewports));
+ VK_CALL(vkCmdSetViewport(list->vk_command_buffer, 0, ARRAY_SIZE(vk_viewports), vk_viewports));
}
static void STDMETHODCALLTYPE d3d12_command_list_RSSetScissorRects(ID3D12GraphicsCommandList6 *iface,
@@ -4264,6 +4272,7 @@ static void STDMETHODCALLTYPE d3d12_command_list_RSSetScissorRects(ID3D12Graphic
rect_count = ARRAY_SIZE(vk_rects);
}
+ memset(vk_rects, 0, sizeof(vk_rects));
for (i = 0; i < rect_count; ++i)
{
vk_rects[i].offset.x = rects[i].left;
@@ -4273,7 +4282,7 @@ static void STDMETHODCALLTYPE d3d12_command_list_RSSetScissorRects(ID3D12Graphic
}
vk_procs = &list->device->vk_procs;
- VK_CALL(vkCmdSetScissor(list->vk_command_buffer, 0, rect_count, vk_rects));
+ VK_CALL(vkCmdSetScissor(list->vk_command_buffer, 0, ARRAY_SIZE(vk_rects), vk_rects));
}
static void STDMETHODCALLTYPE d3d12_command_list_OMSetBlendFactor(ID3D12GraphicsCommandList6 *iface,
diff --git a/libs/vkd3d/libs/vkd3d/state.c b/libs/vkd3d/libs/vkd3d/state.c
index 9e9811bf922..413892789ba 100644
--- a/libs/vkd3d/libs/vkd3d/state.c
+++ b/libs/vkd3d/libs/vkd3d/state.c
@@ -3971,9 +3971,9 @@ VkPipeline d3d12_pipeline_state_get_or_create_pipeline(struct d3d12_pipeline_sta
.sType = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO,
.pNext = NULL,
.flags = 0,
- .viewportCount = 1,
+ .viewportCount = D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE,
.pViewports = NULL,
- .scissorCount = 1,
+ .scissorCount = D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE,
.pScissors = NULL,
};
static const VkDynamicState dynamic_states[] =
--
2025-08-15 08:07:30 +10:00
2.50.1
2025-08-01 07:19:16 +10:00