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
Compare commits
8 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
e004127f41 | ||
|
5cba568c93 | ||
|
e2610f8a45 | ||
|
e250393ba4 | ||
|
ce66dea197 | ||
|
7cd95e9f79 | ||
|
c605cf204a | ||
|
a8f798fc3c |
@@ -1,50 +1,26 @@
|
||||
From d1d83243555801226876f651b6f3304d3e595ae4 Mon Sep 17 00:00:00 2001
|
||||
From 684fb32612284520e8e4b61cb015f546c8b5d218 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Mon, 1 Jul 2019 09:58:55 +1000
|
||||
Subject: [PATCH] loader: Add Keyboard Layouts registry enteries.
|
||||
|
||||
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
---
|
||||
loader/wine.inf.in | 209 +++++++++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 209 insertions(+)
|
||||
loader/wine.inf.in | 206 +++++++++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 206 insertions(+)
|
||||
|
||||
diff --git a/loader/wine.inf.in b/loader/wine.inf.in
|
||||
index d5f943861a8..b07843ff237 100644
|
||||
index f204c458511..62cc028a0d0 100644
|
||||
--- a/loader/wine.inf.in
|
||||
+++ b/loader/wine.inf.in
|
||||
@@ -63,6 +63,7 @@ AddReg=\
|
||||
Debugger,\
|
||||
@@ -64,6 +64,7 @@ AddReg=\
|
||||
DirectX,\
|
||||
Fonts,\
|
||||
LicenseInformation,\
|
||||
+ KeyboardLayouts,\
|
||||
MCI,\
|
||||
Misc,\
|
||||
OLE,\
|
||||
@@ -86,6 +87,7 @@ AddReg=\
|
||||
Debugger,\
|
||||
DirectX,\
|
||||
Fonts,\
|
||||
+ KeyboardLayouts,\
|
||||
MCI,\
|
||||
Misc,\
|
||||
OLE,\
|
||||
@@ -111,6 +113,7 @@ AddReg=\
|
||||
Debugger,\
|
||||
DirectX,\
|
||||
Fonts,\
|
||||
+ KeyboardLayouts,\
|
||||
MCI,\
|
||||
Misc,\
|
||||
OLE,\
|
||||
@@ -156,6 +159,7 @@ AddReg=\
|
||||
CurrentVersionWow64.ntx86,\
|
||||
Debugger,\
|
||||
DirectX,\
|
||||
+ KeyboardLayouts,\
|
||||
MCI,\
|
||||
Misc,\
|
||||
Tapi,\
|
||||
@@ -628,6 +632,211 @@ HKCU,Software\Microsoft\Windows\Shell\Associations\UrlAssociations\ftp\UserChoic
|
||||
@@ -632,6 +633,211 @@ HKCU,Software\Microsoft\Windows\Shell\Associations\UrlAssociations\ftp\UserChoic
|
||||
HKCU,Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice,"ProgId",,"http"
|
||||
HKCU,Software\Microsoft\Windows\Shell\Associations\UrlAssociations\https\UserChoice,"ProgId",,"https"
|
||||
|
||||
@@ -257,5 +233,5 @@ index d5f943861a8..b07843ff237 100644
|
||||
HKLM,"Software\Microsoft\OLE","EnableDCOM",,"Y"
|
||||
HKLM,"Software\Microsoft\OLE","EnableRemoteConnect",,"N"
|
||||
--
|
||||
2.39.2
|
||||
2.50.1
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From e1f8622b3b787ca19ca1cfc149492c517e5833c4 Mon Sep 17 00:00:00 2001
|
||||
From 034ac695e2f8f6bdd5f610f00b85e5bce08f86a4 Mon Sep 17 00:00:00 2001
|
||||
From: Paul Gofman <pgofman@codeweavers.com>
|
||||
Date: Tue, 20 Jun 2023 11:54:06 -0600
|
||||
Subject: [PATCH] ntdll: Implement NtFlushKey().
|
||||
@@ -10,7 +10,7 @@ Subject: [PATCH] ntdll: Implement NtFlushKey().
|
||||
3 files changed, 247 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/unix/registry.c b/dlls/ntdll/unix/registry.c
|
||||
index 88ad7e569a1..492dd00d67a 100644
|
||||
index e6b0d40c875..3b6bb9d817a 100644
|
||||
--- a/dlls/ntdll/unix/registry.c
|
||||
+++ b/dlls/ntdll/unix/registry.c
|
||||
@@ -29,6 +29,8 @@
|
||||
@@ -210,10 +210,10 @@ index 88ad7e569a1..492dd00d67a 100644
|
||||
}
|
||||
|
||||
diff --git a/server/protocol.def b/server/protocol.def
|
||||
index 1117e3b797a..910960285a0 100644
|
||||
index 4e3e2885240..6bed72d380c 100644
|
||||
--- a/server/protocol.def
|
||||
+++ b/server/protocol.def
|
||||
@@ -1834,6 +1834,18 @@ struct process_info
|
||||
@@ -2023,6 +2023,18 @@ struct process_info
|
||||
/* Flush a registry key */
|
||||
@REQ(flush_key)
|
||||
obj_handle_t hkey; /* handle to the key */
|
||||
@@ -233,7 +233,7 @@ index 1117e3b797a..910960285a0 100644
|
||||
|
||||
|
||||
diff --git a/server/registry.c b/server/registry.c
|
||||
index ec1ca27be80..6ec1202cf7a 100644
|
||||
index 73b75147850..dd6735fdce9 100644
|
||||
--- a/server/registry.c
|
||||
+++ b/server/registry.c
|
||||
@@ -90,6 +90,7 @@ struct key
|
||||
@@ -290,7 +290,7 @@ index ec1ca27be80..6ec1202cf7a 100644
|
||||
}
|
||||
|
||||
/* go through all the notifications and send them if necessary */
|
||||
@@ -1995,6 +2001,7 @@ void init_registry(void)
|
||||
@@ -2009,6 +2015,7 @@ void init_registry(void)
|
||||
/* save a registry branch to a file */
|
||||
static void save_all_subkeys( struct key *key, FILE *f )
|
||||
{
|
||||
@@ -298,7 +298,7 @@ index ec1ca27be80..6ec1202cf7a 100644
|
||||
fprintf( f, "WINE REGISTRY Version 2\n" );
|
||||
fprintf( f, ";; All keys relative to " );
|
||||
dump_path( key, NULL, f );
|
||||
@@ -2179,7 +2186,7 @@ static int save_branch( struct key *key, const char *filename )
|
||||
@@ -2193,7 +2200,7 @@ static int save_branch( struct key *key, const char *filename )
|
||||
}
|
||||
|
||||
done:
|
||||
@@ -307,8 +307,8 @@ index ec1ca27be80..6ec1202cf7a 100644
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -2227,6 +2234,36 @@ static int is_wow64_thread( struct thread *thread )
|
||||
return (is_machine_64bit( native_machine ) && !is_machine_64bit( thread->process->machine ));
|
||||
@@ -2235,6 +2242,36 @@ void flush_registry(void)
|
||||
if (fchdir( server_dir_fd ) == -1) fatal_error( "chdir to server dir: %s\n", strerror( errno ));
|
||||
}
|
||||
|
||||
+/* find all the branches inside the specified key or the branch containing the key */
|
||||
@@ -344,7 +344,7 @@ index ec1ca27be80..6ec1202cf7a 100644
|
||||
|
||||
/* create a registry key */
|
||||
DECL_HANDLER(create_key)
|
||||
@@ -2291,15 +2328,56 @@ DECL_HANDLER(delete_key)
|
||||
@@ -2303,15 +2340,56 @@ DECL_HANDLER(delete_key)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -406,5 +406,5 @@ index ec1ca27be80..6ec1202cf7a 100644
|
||||
|
||||
/* enumerate registry subkeys */
|
||||
--
|
||||
2.43.0
|
||||
2.50.1
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From fbd5deecb137fa6ef4b0161266d3fb4b157ad069 Mon Sep 17 00:00:00 2001
|
||||
From 3d9b1442bd52b7ca013f8af5f156446caeecde1c Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?R=C3=A9mi=20Bernon?= <rbernon@codeweavers.com>
|
||||
Date: Thu, 19 Dec 2019 22:34:44 +0100
|
||||
Subject: [PATCH] winex11: Keep track of mouse device and pointer button
|
||||
@@ -17,10 +17,10 @@ Original patch by Andrew Eikum <aeikum@codeweavers.com>.
|
||||
5 files changed, 114 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 1923499cf9c..3c4b09d61fb 100644
|
||||
index 2cc5398d178..5363c8b5e3d 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -1231,6 +1231,7 @@ then
|
||||
@@ -1258,6 +1258,7 @@ then
|
||||
|
||||
dnl *** All of the following tests require X11/Xlib.h
|
||||
AC_CHECK_HEADERS([X11/extensions/shape.h \
|
||||
@@ -29,10 +29,10 @@ index 1923499cf9c..3c4b09d61fb 100644
|
||||
X11/extensions/XShm.h \
|
||||
X11/extensions/Xfixes.h \
|
||||
diff --git a/dlls/winex11.drv/keyboard.c b/dlls/winex11.drv/keyboard.c
|
||||
index 8a5ef62f57d..24188e25d98 100644
|
||||
index 25836fe835d..d860f201c1e 100644
|
||||
--- a/dlls/winex11.drv/keyboard.c
|
||||
+++ b/dlls/winex11.drv/keyboard.c
|
||||
@@ -1825,11 +1825,7 @@ BOOL X11DRV_ActivateKeyboardLayout(HKL hkl, UINT flags)
|
||||
@@ -1835,11 +1835,7 @@ BOOL X11DRV_ActivateKeyboardLayout(HKL hkl, UINT flags)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ index 8a5ef62f57d..24188e25d98 100644
|
||||
{
|
||||
HWND hwnd;
|
||||
|
||||
@@ -1843,6 +1839,24 @@ BOOL X11DRV_MappingNotify( HWND dummy, XEvent *event )
|
||||
@@ -1853,6 +1849,24 @@ BOOL X11DRV_MappingNotify( HWND dummy, XEvent *event )
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -71,7 +71,7 @@ index 8a5ef62f57d..24188e25d98 100644
|
||||
/***********************************************************************
|
||||
* VkKeyScanEx (X11DRV.@)
|
||||
diff --git a/dlls/winex11.drv/mouse.c b/dlls/winex11.drv/mouse.c
|
||||
index cbf5835b75c..59a9835e9b4 100644
|
||||
index 63d76256202..3cb2553cb59 100644
|
||||
--- a/dlls/winex11.drv/mouse.c
|
||||
+++ b/dlls/winex11.drv/mouse.c
|
||||
@@ -31,6 +31,9 @@
|
||||
@@ -215,10 +215,10 @@ index cbf5835b75c..59a9835e9b4 100644
|
||||
|
||||
xinput2_available = XQueryExtension( gdi_display, "XInputExtension", &xinput2_opcode, &event, &error );
|
||||
diff --git a/dlls/winex11.drv/x11drv.h b/dlls/winex11.drv/x11drv.h
|
||||
index 75dd3c1711a..f48c3782e53 100644
|
||||
index c69c83e5dd9..17f0b3fc7bd 100644
|
||||
--- a/dlls/winex11.drv/x11drv.h
|
||||
+++ b/dlls/winex11.drv/x11drv.h
|
||||
@@ -719,6 +719,7 @@ extern void reapply_cursor_clipping(void);
|
||||
@@ -732,6 +732,7 @@ extern void reapply_cursor_clipping(void);
|
||||
extern void ungrab_clipping_window(void);
|
||||
extern void move_resize_window( HWND hwnd, int dir, POINT pos );
|
||||
extern void X11DRV_InitKeyboard( Display *display );
|
||||
@@ -227,17 +227,17 @@ index 75dd3c1711a..f48c3782e53 100644
|
||||
|
||||
typedef int (*x11drv_error_callback)( Display *display, XErrorEvent *event, void *arg );
|
||||
diff --git a/dlls/winex11.drv/x11drv_main.c b/dlls/winex11.drv/x11drv_main.c
|
||||
index e27202eb2bf..629c8fc172c 100644
|
||||
index 715a2444667..5df92db9f5a 100644
|
||||
--- a/dlls/winex11.drv/x11drv_main.c
|
||||
+++ b/dlls/winex11.drv/x11drv_main.c
|
||||
@@ -669,6 +669,7 @@ static NTSTATUS x11drv_init( void *arg )
|
||||
@@ -673,6 +673,7 @@ static NTSTATUS x11drv_init( void *arg )
|
||||
|
||||
XkbUseExtension( gdi_display, NULL, NULL );
|
||||
X11DRV_InitKeyboard( gdi_display );
|
||||
+ X11DRV_InitMouse( gdi_display );
|
||||
if (use_xim) use_xim = xim_init( input_style );
|
||||
|
||||
init_user_driver();
|
||||
init_icm_profile();
|
||||
--
|
||||
2.47.2
|
||||
2.50.1
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,102 @@
|
||||
From f54b809d2d0402064569abf7843cfc90b8761b2b 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 44fffee5e1331e1c7e10489d84723c3b9dad7e17.
|
||||
|
||||
---
|
||||
dlls/msado15/tests/msado15.c | 2 +-
|
||||
libs/vkd3d/include/private/vkd3d_common.h | 2 +-
|
||||
libs/vkd3d/include/private/vkd3d_version.h | 2 +-
|
||||
libs/vkd3d/libs/vkd3d-common/blob.c | 1 +
|
||||
libs/vkd3d/libs/vkd3d-shader/preproc.l | 1 +
|
||||
libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_main.c | 2 ++
|
||||
libs/vkd3d/libs/vkd3d-utils/vkd3d_utils_main.c | 2 ++
|
||||
7 files changed, 9 insertions(+), 3 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_common.h b/libs/vkd3d/include/private/vkd3d_common.h
|
||||
index 08341304eea..0501e6a06c2 100644
|
||||
--- a/libs/vkd3d/include/private/vkd3d_common.h
|
||||
+++ b/libs/vkd3d/include/private/vkd3d_common.h
|
||||
@@ -279,7 +279,7 @@ static inline unsigned int vkd3d_popcount(unsigned int v)
|
||||
{
|
||||
#ifdef _MSC_VER
|
||||
return __popcnt(v);
|
||||
-#elif defined(__MINGW32__)
|
||||
+#elif defined(HAVE_BUILTIN_POPCOUNT)
|
||||
return __builtin_popcount(v);
|
||||
#else
|
||||
v -= (v >> 1) & 0x55555555;
|
||||
diff --git a/libs/vkd3d/include/private/vkd3d_version.h b/libs/vkd3d/include/private/vkd3d_version.h
|
||||
index 0edc4428022..687751d6a5f 100644
|
||||
--- a/libs/vkd3d/include/private/vkd3d_version.h
|
||||
+++ b/libs/vkd3d/include/private/vkd3d_version.h
|
||||
@@ -1 +1 @@
|
||||
-#define VKD3D_VCS_ID " (Wine bundled)"
|
||||
+#define VKD3D_VCS_ID " (git a8ca1f95)"
|
||||
diff --git a/libs/vkd3d/libs/vkd3d-common/blob.c b/libs/vkd3d/libs/vkd3d-common/blob.c
|
||||
index f60ef7db769..c2c6ad67804 100644
|
||||
--- a/libs/vkd3d/libs/vkd3d-common/blob.c
|
||||
+++ b/libs/vkd3d/libs/vkd3d-common/blob.c
|
||||
@@ -20,6 +20,7 @@
|
||||
#define WIDL_C_INLINE_WRAPPERS
|
||||
#endif
|
||||
#define COBJMACROS
|
||||
+
|
||||
#define CONST_VTABLE
|
||||
#include "vkd3d.h"
|
||||
#include "vkd3d_blob.h"
|
||||
diff --git a/libs/vkd3d/libs/vkd3d-shader/preproc.l b/libs/vkd3d/libs/vkd3d-shader/preproc.l
|
||||
index a8c0db358bc..5c56fba0229 100644
|
||||
--- a/libs/vkd3d/libs/vkd3d-shader/preproc.l
|
||||
+++ b/libs/vkd3d/libs/vkd3d-shader/preproc.l
|
||||
@@ -20,6 +20,7 @@
|
||||
|
||||
%{
|
||||
|
||||
+#include "preproc.h"
|
||||
#include "preproc.tab.h"
|
||||
|
||||
#undef ERROR /* defined in wingdi.h */
|
||||
diff --git a/libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_main.c b/libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_main.c
|
||||
index 5fcc836aae1..d1992c9d446 100644
|
||||
--- a/libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_main.c
|
||||
+++ b/libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_main.c
|
||||
@@ -23,6 +23,8 @@
|
||||
#include <stdio.h>
|
||||
#include <math.h>
|
||||
|
||||
+/* VKD3D_DEBUG_ENV_NAME("VKD3D_SHADER_DEBUG"); */
|
||||
+
|
||||
static inline int char_to_int(char c)
|
||||
{
|
||||
if ('0' <= c && c <= '9')
|
||||
diff --git a/libs/vkd3d/libs/vkd3d-utils/vkd3d_utils_main.c b/libs/vkd3d/libs/vkd3d-utils/vkd3d_utils_main.c
|
||||
index f2967835b62..f804c1f0c24 100644
|
||||
--- a/libs/vkd3d/libs/vkd3d-utils/vkd3d_utils_main.c
|
||||
+++ b/libs/vkd3d/libs/vkd3d-utils/vkd3d_utils_main.c
|
||||
@@ -19,6 +19,8 @@
|
||||
#include "vkd3d_utils_private.h"
|
||||
#undef D3D12CreateDevice
|
||||
|
||||
+/* VKD3D_DEBUG_ENV_NAME("VKD3D_DEBUG"); */
|
||||
+
|
||||
static const char *debug_d3d_blob_part(D3D_BLOB_PART part)
|
||||
{
|
||||
switch (part)
|
||||
--
|
||||
2.50.1
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -1,135 +0,0 @@
|
||||
From 4874b0a352c091813dc9372412ac76e976b5eb64 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Thu, 17 Jul 2025 07:20:27 +1000
|
||||
Subject: [PATCH] Updated vkd3d to ba545669cd09682960f5da17b9131780642daf8e.
|
||||
|
||||
---
|
||||
libs/vkd3d/libs/vkd3d-shader/ir.c | 46 +++++++++++++++++++
|
||||
.../libs/vkd3d-shader/vkd3d_shader_private.h | 1 +
|
||||
libs/vkd3d/libs/vkd3d/state.c | 20 ++------
|
||||
3 files changed, 51 insertions(+), 16 deletions(-)
|
||||
|
||||
diff --git a/libs/vkd3d/libs/vkd3d-shader/ir.c b/libs/vkd3d/libs/vkd3d-shader/ir.c
|
||||
index fe7e8c54dfb..b060ccbb2bc 100644
|
||||
--- a/libs/vkd3d/libs/vkd3d-shader/ir.c
|
||||
+++ b/libs/vkd3d/libs/vkd3d-shader/ir.c
|
||||
@@ -10479,6 +10479,7 @@ static void vsir_validate_descriptors(struct validation_context *ctx)
|
||||
for (i = 0; i < descriptors->descriptor_count; ++i)
|
||||
{
|
||||
const struct vkd3d_shader_descriptor_info1 *descriptor = &descriptors->descriptors[i];
|
||||
+ uint32_t flags_mask = 0, uav_flags_mask = 0;
|
||||
|
||||
if (descriptor->type >= VKD3D_SHADER_DESCRIPTOR_TYPE_COUNT)
|
||||
validator_error(ctx, VKD3D_SHADER_ERROR_VSIR_INVALID_DESCRIPTOR_TYPE,
|
||||
@@ -10507,6 +10508,43 @@ static void vsir_validate_descriptors(struct validation_context *ctx)
|
||||
validator_error(ctx, VKD3D_SHADER_ERROR_VSIR_INVALID_DESCRIPTOR_COUNT,
|
||||
"Descriptor %u has invalid descriptor count %u starting at index %u.",
|
||||
i, descriptor->count, descriptor->register_index);
|
||||
+
|
||||
+ switch (descriptor->type)
|
||||
+ {
|
||||
+ case VKD3D_SHADER_DESCRIPTOR_TYPE_SRV:
|
||||
+ flags_mask = VKD3D_SHADER_DESCRIPTOR_INFO_FLAG_RAW_BUFFER;
|
||||
+ break;
|
||||
+
|
||||
+ case VKD3D_SHADER_DESCRIPTOR_TYPE_UAV:
|
||||
+ flags_mask = VKD3D_SHADER_DESCRIPTOR_INFO_FLAG_UAV_COUNTER
|
||||
+ | VKD3D_SHADER_DESCRIPTOR_INFO_FLAG_UAV_READ
|
||||
+ | VKD3D_SHADER_DESCRIPTOR_INFO_FLAG_UAV_ATOMICS
|
||||
+ | VKD3D_SHADER_DESCRIPTOR_INFO_FLAG_RAW_BUFFER;
|
||||
+ uav_flags_mask = VKD3DSUF_GLOBALLY_COHERENT
|
||||
+ | VKD3DSUF_RASTERISER_ORDERED_VIEW
|
||||
+ | VKD3DSUF_ORDER_PRESERVING_COUNTER;
|
||||
+ break;
|
||||
+
|
||||
+ case VKD3D_SHADER_DESCRIPTOR_TYPE_CBV:
|
||||
+ break;
|
||||
+
|
||||
+ case VKD3D_SHADER_DESCRIPTOR_TYPE_SAMPLER:
|
||||
+ flags_mask = VKD3D_SHADER_DESCRIPTOR_INFO_FLAG_SAMPLER_COMPARISON_MODE;
|
||||
+ break;
|
||||
+
|
||||
+ case VKD3D_SHADER_DESCRIPTOR_TYPE_FORCE_32BIT:
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ if (descriptor->flags & ~flags_mask)
|
||||
+ validator_error(ctx, VKD3D_SHADER_ERROR_VSIR_INVALID_FLAGS,
|
||||
+ "Descriptor %u of type %#x has invalid flags %#x.",
|
||||
+ i, descriptor->type, descriptor->flags);
|
||||
+
|
||||
+ if (descriptor->uav_flags & ~uav_flags_mask)
|
||||
+ validator_error(ctx, VKD3D_SHADER_ERROR_VSIR_INVALID_FLAGS,
|
||||
+ "Descriptor %u of type %#x has invalid UAV flags %#x.",
|
||||
+ i, descriptor->type, descriptor->uav_flags);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11441,6 +11479,14 @@ static const struct vsir_validator_instruction_desc vsir_validator_instructions[
|
||||
[VSIR_OP_IEQ] = {1, 2, vsir_validate_integer_comparison_operation},
|
||||
[VSIR_OP_IGE] = {1, 2, vsir_validate_integer_comparison_operation},
|
||||
[VSIR_OP_ILT] = {1, 2, vsir_validate_integer_comparison_operation},
|
||||
+ [VSIR_OP_IMAD] = {1, 3, vsir_validate_integer_elementwise_operation},
|
||||
+ [VSIR_OP_IMAX] = {1, 2, vsir_validate_integer_elementwise_operation},
|
||||
+ [VSIR_OP_IMIN] = {1, 2, vsir_validate_integer_elementwise_operation},
|
||||
+ [VSIR_OP_INE] = {1, 2, vsir_validate_integer_comparison_operation},
|
||||
+ [VSIR_OP_INEG] = {1, 1, vsir_validate_integer_elementwise_operation},
|
||||
+ [VSIR_OP_IREM] = {1, 2, vsir_validate_integer_elementwise_operation},
|
||||
+ [VSIR_OP_ISHL] = {1, 2, vsir_validate_integer_elementwise_operation},
|
||||
+ [VSIR_OP_ISHR] = {1, 2, vsir_validate_integer_elementwise_operation},
|
||||
[VSIR_OP_DCL_GS_INSTANCES] = {0, 0, vsir_validate_dcl_gs_instances},
|
||||
[VSIR_OP_DCL_HS_MAX_TESSFACTOR] = {0, 0, vsir_validate_dcl_hs_max_tessfactor},
|
||||
[VSIR_OP_DCL_INDEX_RANGE] = {0, 0, vsir_validate_dcl_index_range},
|
||||
diff --git a/libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_private.h b/libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_private.h
|
||||
index 5d7fc6e1209..978af0a2d17 100644
|
||||
--- a/libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_private.h
|
||||
+++ b/libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_private.h
|
||||
@@ -265,6 +265,7 @@ enum vkd3d_shader_error
|
||||
VKD3D_SHADER_ERROR_VSIR_INVALID_DESCRIPTOR_TYPE = 9024,
|
||||
VKD3D_SHADER_ERROR_VSIR_INVALID_RESOURCE_TYPE = 9025,
|
||||
VKD3D_SHADER_ERROR_VSIR_INVALID_DESCRIPTOR_COUNT = 9026,
|
||||
+ VKD3D_SHADER_ERROR_VSIR_INVALID_FLAGS = 9027,
|
||||
|
||||
VKD3D_SHADER_WARNING_VSIR_DYNAMIC_DESCRIPTOR_ARRAY = 9300,
|
||||
|
||||
diff --git a/libs/vkd3d/libs/vkd3d/state.c b/libs/vkd3d/libs/vkd3d/state.c
|
||||
index 0a5bd1122e3..9e9811bf922 100644
|
||||
--- a/libs/vkd3d/libs/vkd3d/state.c
|
||||
+++ b/libs/vkd3d/libs/vkd3d/state.c
|
||||
@@ -3232,17 +3232,6 @@ static HRESULT d3d12_pipeline_state_init_graphics(struct d3d12_pipeline_state *s
|
||||
uint32_t mask;
|
||||
HRESULT hr;
|
||||
|
||||
- static const DWORD default_ps_code[] =
|
||||
- {
|
||||
-#if 0
|
||||
- ps_4_0
|
||||
- ret
|
||||
-#endif
|
||||
- 0x43425844, 0x19cbf606, 0x18f562b9, 0xdaeed4db, 0xc324aa46, 0x00000001, 0x00000060, 0x00000003,
|
||||
- 0x0000002c, 0x0000003c, 0x0000004c, 0x4e475349, 0x00000008, 0x00000000, 0x00000008, 0x4e47534f,
|
||||
- 0x00000008, 0x00000000, 0x00000008, 0x52444853, 0x0000000c, 0x00000040, 0x00000003, 0x0100003e,
|
||||
- };
|
||||
- static const D3D12_SHADER_BYTECODE default_ps = {default_ps_code, sizeof(default_ps_code)};
|
||||
static const struct
|
||||
{
|
||||
enum VkShaderStageFlagBits stage;
|
||||
@@ -3401,11 +3390,10 @@ static HRESULT d3d12_pipeline_state_init_graphics(struct d3d12_pipeline_state *s
|
||||
|
||||
if (!desc->ps.pShaderBytecode)
|
||||
{
|
||||
- if (FAILED(hr = create_shader_stage(device, &graphics->stages[graphics->stage_count],
|
||||
- VK_SHADER_STAGE_FRAGMENT_BIT, &default_ps, NULL)))
|
||||
- goto fail;
|
||||
-
|
||||
- ++graphics->stage_count;
|
||||
+ for (i = 0; i < rt_count; i++)
|
||||
+ {
|
||||
+ graphics->blend_attachments[i].colorWriteMask = 0;
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
2.50.1
|
||||
|
@@ -0,0 +1,133 @@
|
||||
From 5bb958cb76891665aa91871e976007f0acc3a273 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
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,27 +0,0 @@
|
||||
From f6b63c8ce9c20192debbe97b2e9673e382842b89 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Fri, 25 Jul 2025 07:41:13 +1000
|
||||
Subject: [PATCH] Updated vkd3d to b3e367b099cb65d79c5b0044134a02e7e9c285a5.
|
||||
|
||||
---
|
||||
libs/vkd3d/libs/vkd3d-shader/tpf.c | 4 +---
|
||||
1 file changed, 1 insertion(+), 3 deletions(-)
|
||||
|
||||
diff --git a/libs/vkd3d/libs/vkd3d-shader/tpf.c b/libs/vkd3d/libs/vkd3d-shader/tpf.c
|
||||
index 2175298a0db..bdb2083e09a 100644
|
||||
--- a/libs/vkd3d/libs/vkd3d-shader/tpf.c
|
||||
+++ b/libs/vkd3d/libs/vkd3d-shader/tpf.c
|
||||
@@ -1434,9 +1434,7 @@ static void init_sm4_lookup_tables(struct vkd3d_sm4_lookup_tables *lookup)
|
||||
* i -> VSIR_DATA_I32
|
||||
* u -> VSIR_DATA_U32
|
||||
* O -> VSIR_DATA_OPAQUE
|
||||
- * R -> VKD3D_DATA_RESOURCE
|
||||
- * S -> VKD3D_DATA_SAMPLER
|
||||
- * U -> VKD3D_DATA_UAV
|
||||
+ * * -> VSIR_DATA_UNUSED
|
||||
*/
|
||||
static const struct vkd3d_sm4_opcode_info opcode_table[] =
|
||||
{
|
||||
--
|
||||
2.50.1
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,48 +0,0 @@
|
||||
From 31ab77ada15b692f5b37d8ddf15f65c375860def Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Thu, 31 Jul 2025 09:06:17 +1000
|
||||
Subject: [PATCH] Updated vkd3d to 75cb4336ec1a0455c347db05b22dc0fd76dd8b5f.
|
||||
|
||||
---
|
||||
libs/vkd3d/libs/vkd3d-shader/ir.c | 11 +++++++++--
|
||||
1 file changed, 9 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/libs/vkd3d/libs/vkd3d-shader/ir.c b/libs/vkd3d/libs/vkd3d-shader/ir.c
|
||||
index 1098e4d3950..4c324fef7cf 100644
|
||||
--- a/libs/vkd3d/libs/vkd3d-shader/ir.c
|
||||
+++ b/libs/vkd3d/libs/vkd3d-shader/ir.c
|
||||
@@ -444,7 +444,14 @@ bool vsir_program_init(struct vsir_program *program, const struct vkd3d_shader_c
|
||||
program->shader_version = *version;
|
||||
program->cf_type = cf_type;
|
||||
program->normalisation_level = normalisation_level;
|
||||
- return shader_instruction_array_init(&program->instructions, reserve);
|
||||
+ if (!shader_instruction_array_init(&program->instructions, reserve))
|
||||
+ {
|
||||
+ if (program->free_parameters)
|
||||
+ vkd3d_free((void *)program->parameters);
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+ return true;
|
||||
}
|
||||
|
||||
void vsir_program_cleanup(struct vsir_program *program)
|
||||
@@ -8744,6 +8751,7 @@ static void temp_allocator_set_dst(struct temp_allocator *allocator,
|
||||
enum vkd3d_result vsir_allocate_temp_registers(struct vsir_program *program,
|
||||
struct vkd3d_shader_message_context *message_context)
|
||||
{
|
||||
+ const unsigned int prev_temp_count = program->temp_count;
|
||||
struct temp_allocator allocator = {0};
|
||||
struct temp_allocator_reg *regs;
|
||||
struct liveness_tracker tracker;
|
||||
@@ -8766,7 +8774,6 @@ enum vkd3d_result vsir_allocate_temp_registers(struct vsir_program *program,
|
||||
for (unsigned int i = 0; i < program->ssa_count; ++i)
|
||||
{
|
||||
const struct liveness_tracker_reg *liveness_reg = &tracker.ssa_regs[i];
|
||||
- const unsigned int prev_temp_count = program->temp_count;
|
||||
struct temp_allocator_reg *reg = &allocator.ssa_regs[i];
|
||||
|
||||
if (temp_allocator_allocate(&allocator, &tracker, reg, liveness_reg, prev_temp_count))
|
||||
--
|
||||
2.50.1
|
||||
|
@@ -1,150 +0,0 @@
|
||||
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
|
||||
|
@@ -1,193 +0,0 @@
|
||||
From 1031928bdeb67d2a9f6af25ec7948dca4b24bd10 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Tue, 5 Aug 2025 13:30:41 +1000
|
||||
Subject: [PATCH] Updated vkd3d to 721859005f3edfb3d52bc0f810d1da4fe2e5174b.
|
||||
|
||||
---
|
||||
libs/vkd3d/libs/vkd3d-shader/dxil.c | 6 ++--
|
||||
libs/vkd3d/libs/vkd3d-shader/hlsl_codegen.c | 34 ++++++-------------
|
||||
libs/vkd3d/libs/vkd3d-shader/ir.c | 7 ++--
|
||||
libs/vkd3d/libs/vkd3d-shader/msl.c | 3 ++
|
||||
.../libs/vkd3d-shader/vkd3d_shader_main.c | 3 ++
|
||||
5 files changed, 26 insertions(+), 27 deletions(-)
|
||||
|
||||
diff --git a/libs/vkd3d/libs/vkd3d-shader/dxil.c b/libs/vkd3d/libs/vkd3d-shader/dxil.c
|
||||
index 02e72b28908..c448e000cf9 100644
|
||||
--- a/libs/vkd3d/libs/vkd3d-shader/dxil.c
|
||||
+++ b/libs/vkd3d/libs/vkd3d-shader/dxil.c
|
||||
@@ -3969,6 +3969,7 @@ static bool resolve_forward_zero_initialiser(size_t index, struct sm6_parser *sm
|
||||
|
||||
static enum vkd3d_result sm6_parser_globals_init(struct sm6_parser *sm6)
|
||||
{
|
||||
+ struct vsir_program_iterator it = vsir_program_iterator(&sm6->p.program->instructions);
|
||||
size_t i, count, base_value_idx = sm6->value_count;
|
||||
const struct dxil_block *block = &sm6->root_block;
|
||||
struct vkd3d_shader_instruction *ins;
|
||||
@@ -4028,9 +4029,8 @@ static enum vkd3d_result sm6_parser_globals_init(struct sm6_parser *sm6)
|
||||
}
|
||||
|
||||
/* Resolve initialiser forward references. */
|
||||
- for (i = 0; i < sm6->p.program->instructions.count; ++i)
|
||||
+ for (ins = vsir_program_iterator_head(&it); ins; ins = vsir_program_iterator_next(&it))
|
||||
{
|
||||
- ins = &sm6->p.program->instructions.elements[i];
|
||||
if (ins->opcode == VSIR_OP_DCL_INDEXABLE_TEMP && ins->declaration.indexable_temp.initialiser)
|
||||
{
|
||||
ins->declaration.indexable_temp.initialiser = resolve_forward_initialiser(
|
||||
@@ -4098,6 +4098,8 @@ static enum vkd3d_shader_register_type register_type_from_dxil_semantic_kind(
|
||||
|
||||
switch (sysval_semantic)
|
||||
{
|
||||
+ case VKD3D_SHADER_SV_PRIMITIVE_ID:
|
||||
+ return VKD3DSPR_PRIMID;
|
||||
/* VSIR does not use an I/O register for SV_SampleIndex, but its
|
||||
* signature element has a register index of UINT_MAX and it is
|
||||
* convenient to return a valid register type here to handle it. */
|
||||
diff --git a/libs/vkd3d/libs/vkd3d-shader/hlsl_codegen.c b/libs/vkd3d/libs/vkd3d-shader/hlsl_codegen.c
|
||||
index 0b28aa6fe80..5a11547e7a1 100644
|
||||
--- a/libs/vkd3d/libs/vkd3d-shader/hlsl_codegen.c
|
||||
+++ b/libs/vkd3d/libs/vkd3d-shader/hlsl_codegen.c
|
||||
@@ -8282,7 +8282,6 @@ static uint32_t generate_vsir_get_src_swizzle(uint32_t src_writemask, uint32_t d
|
||||
static void sm1_generate_vsir_constant_defs(struct hlsl_ctx *ctx, struct vsir_program *program,
|
||||
struct hlsl_block *block)
|
||||
{
|
||||
- struct vkd3d_shader_instruction_array *instructions = &program->instructions;
|
||||
struct vkd3d_shader_dst_param *dst_param;
|
||||
struct vkd3d_shader_src_param *src_param;
|
||||
struct vkd3d_shader_instruction *ins;
|
||||
@@ -8292,19 +8291,17 @@ static void sm1_generate_vsir_constant_defs(struct hlsl_ctx *ctx, struct vsir_pr
|
||||
{
|
||||
const struct hlsl_constant_register *constant_reg = &ctx->constant_defs.regs[i];
|
||||
|
||||
- if (!shader_instruction_array_reserve(instructions, instructions->count + 1))
|
||||
+ if (!(ins = vsir_program_append(program)))
|
||||
{
|
||||
ctx->result = VKD3D_ERROR_OUT_OF_MEMORY;
|
||||
return;
|
||||
}
|
||||
-
|
||||
- ins = &instructions->elements[instructions->count];
|
||||
if (!vsir_instruction_init_with_params(program, ins, &constant_reg->loc, VSIR_OP_DEF, 1, 1))
|
||||
{
|
||||
+ vsir_instruction_init(ins, &constant_reg->loc, VSIR_OP_NOP);
|
||||
ctx->result = VKD3D_ERROR_OUT_OF_MEMORY;
|
||||
return;
|
||||
}
|
||||
- ++instructions->count;
|
||||
|
||||
dst_param = &ins->dst[0];
|
||||
vsir_register_init(&dst_param->reg, VKD3DSPR_CONST, VSIR_DATA_F32, 1);
|
||||
@@ -8328,7 +8325,6 @@ static void sm1_generate_vsir_constant_defs(struct hlsl_ctx *ctx, struct vsir_pr
|
||||
static void sm1_generate_vsir_sampler_dcls(struct hlsl_ctx *ctx,
|
||||
struct vsir_program *program, struct hlsl_block *block)
|
||||
{
|
||||
- struct vkd3d_shader_instruction_array *instructions = &program->instructions;
|
||||
enum vkd3d_shader_resource_type resource_type;
|
||||
struct vkd3d_shader_register_range *range;
|
||||
struct vkd3d_shader_dst_param *dst_param;
|
||||
@@ -8375,20 +8371,13 @@ static void sm1_generate_vsir_sampler_dcls(struct hlsl_ctx *ctx,
|
||||
break;
|
||||
}
|
||||
|
||||
- if (!shader_instruction_array_reserve(instructions, instructions->count + 1))
|
||||
- {
|
||||
- ctx->result = VKD3D_ERROR_OUT_OF_MEMORY;
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- ins = &instructions->elements[instructions->count];
|
||||
- if (!vsir_instruction_init_with_params(program, ins, &var->loc, VSIR_OP_DCL, 0, 0))
|
||||
+ if (!(ins = vsir_program_append(program)))
|
||||
{
|
||||
ctx->result = VKD3D_ERROR_OUT_OF_MEMORY;
|
||||
return;
|
||||
}
|
||||
- ++instructions->count;
|
||||
|
||||
+ vsir_instruction_init(ins, &var->loc, VSIR_OP_DCL);
|
||||
semantic = &ins->declaration.semantic;
|
||||
semantic->resource_type = resource_type;
|
||||
|
||||
@@ -8438,26 +8427,25 @@ static enum vkd3d_shader_register_type sm4_get_semantic_register_type(enum vkd3d
|
||||
return VKD3DSPR_INPUT;
|
||||
}
|
||||
|
||||
-static struct vkd3d_shader_instruction *generate_vsir_add_program_instruction(
|
||||
- struct hlsl_ctx *ctx, struct vsir_program *program,
|
||||
- const struct vkd3d_shader_location *loc, enum vkd3d_shader_opcode opcode,
|
||||
- unsigned int dst_count, unsigned int src_count)
|
||||
+static struct vkd3d_shader_instruction *generate_vsir_add_program_instruction(struct hlsl_ctx *ctx,
|
||||
+ struct vsir_program *program, const struct vkd3d_shader_location *loc,
|
||||
+ enum vkd3d_shader_opcode opcode, unsigned int dst_count, unsigned int src_count)
|
||||
{
|
||||
- struct vkd3d_shader_instruction_array *instructions = &program->instructions;
|
||||
struct vkd3d_shader_instruction *ins;
|
||||
|
||||
- if (!shader_instruction_array_reserve(instructions, instructions->count + 1))
|
||||
+ if (!(ins = vsir_program_append(program)))
|
||||
{
|
||||
ctx->result = VKD3D_ERROR_OUT_OF_MEMORY;
|
||||
return NULL;
|
||||
}
|
||||
- ins = &instructions->elements[instructions->count];
|
||||
+
|
||||
if (!vsir_instruction_init_with_params(program, ins, loc, opcode, dst_count, src_count))
|
||||
{
|
||||
+ vsir_instruction_init(ins, loc, VSIR_OP_NOP);
|
||||
ctx->result = VKD3D_ERROR_OUT_OF_MEMORY;
|
||||
return NULL;
|
||||
}
|
||||
- ++instructions->count;
|
||||
+
|
||||
return ins;
|
||||
}
|
||||
|
||||
diff --git a/libs/vkd3d/libs/vkd3d-shader/ir.c b/libs/vkd3d/libs/vkd3d-shader/ir.c
|
||||
index 76eb62cfd6f..9d93936ac9e 100644
|
||||
--- a/libs/vkd3d/libs/vkd3d-shader/ir.c
|
||||
+++ b/libs/vkd3d/libs/vkd3d-shader/ir.c
|
||||
@@ -12064,8 +12064,11 @@ enum vkd3d_result vsir_program_transform(struct vsir_program *program, uint64_t
|
||||
vsir_transform(&ctx, vsir_program_materialise_phi_ssas_to_temps);
|
||||
vsir_transform(&ctx, vsir_program_lower_switch_to_selection_ladder);
|
||||
vsir_transform(&ctx, vsir_program_structurize);
|
||||
- vsir_transform(&ctx, vsir_program_flatten_control_flow_constructs);
|
||||
- vsir_transform(&ctx, vsir_program_materialize_undominated_ssas_to_temps);
|
||||
+ if (compile_info->target_type != VKD3D_SHADER_TARGET_MSL)
|
||||
+ {
|
||||
+ vsir_transform(&ctx, vsir_program_flatten_control_flow_constructs);
|
||||
+ vsir_transform(&ctx, vsir_program_materialize_undominated_ssas_to_temps);
|
||||
+ }
|
||||
}
|
||||
else
|
||||
{
|
||||
diff --git a/libs/vkd3d/libs/vkd3d-shader/msl.c b/libs/vkd3d/libs/vkd3d-shader/msl.c
|
||||
index d07608bd26f..c6e048adb20 100644
|
||||
--- a/libs/vkd3d/libs/vkd3d-shader/msl.c
|
||||
+++ b/libs/vkd3d/libs/vkd3d-shader/msl.c
|
||||
@@ -2196,6 +2196,9 @@ int msl_compile(struct vsir_program *program, uint64_t config_flags,
|
||||
if ((ret = vsir_program_transform(program, config_flags, compile_info, message_context)) < 0)
|
||||
return ret;
|
||||
|
||||
+ if ((ret = vsir_allocate_temp_registers(program, message_context)) < 0)
|
||||
+ return ret;
|
||||
+
|
||||
VKD3D_ASSERT(program->normalisation_level == VSIR_NORMALISED_SM6);
|
||||
VKD3D_ASSERT(program->has_descriptor_info);
|
||||
|
||||
diff --git a/libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_main.c b/libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_main.c
|
||||
index 2b73771d0a6..891a33d326f 100644
|
||||
--- a/libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_main.c
|
||||
+++ b/libs/vkd3d/libs/vkd3d-shader/vkd3d_shader_main.c
|
||||
@@ -2119,6 +2119,9 @@ const enum vkd3d_shader_target_type *vkd3d_shader_get_supported_target_types(
|
||||
VKD3D_SHADER_TARGET_SPIRV_TEXT,
|
||||
# endif
|
||||
VKD3D_SHADER_TARGET_D3D_ASM,
|
||||
+#ifdef VKD3D_SHADER_UNSUPPORTED_MSL
|
||||
+ VKD3D_SHADER_TARGET_MSL,
|
||||
+#endif
|
||||
};
|
||||
|
||||
static const enum vkd3d_shader_target_type fx_types[] =
|
||||
--
|
||||
2.50.1
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user