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
151 lines
6.4 KiB
Diff
151 lines
6.4 KiB
Diff
From 6d9b7b4891f5ed2c30b6d383fe289637bcc2c6d9 Mon Sep 17 00:00:00 2001
|
|
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
|
|
index 03eaab92b39..3f4b55d2916 100644
|
|
--- 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[] =
|
|
--
|
|
2.50.1
|
|
|