Compare commits

..

13 Commits
v9.16 ... v9.17

Author SHA1 Message Date
Alistair Leslie-Hughes
27b121f293 Release v9.17 2024-09-07 09:32:33 +10:00
Alistair Leslie-Hughes
ab9df8f932 Updated vkd3d-latest patchset 2024-09-07 08:48:33 +10:00
Alistair Leslie-Hughes
4127a50f6b Rebase against 30c135fe8662e7bcbafaa187914f28fdf9c052ff. 2024-09-07 08:47:06 +10:00
Alistair Leslie-Hughes
deb7042324 Rebase against 8d2977ec12e234880199bc07daf49870d0aa64ec. 2024-09-03 07:34:49 +10:00
Alistair Leslie-Hughes
21a71e43b2 Updated odbc32-fixes patchset
Correct finding Environment Handle.
Check for error before converting type.
2024-08-31 13:44:42 +10:00
Elizabeth Figura
fdd5079133 Rebase against 055bddab4f14a1f73e887b88b86408d654382c2b. 2024-08-30 17:38:53 -05:00
Alistair Leslie-Hughes
acfbb64262 Updated vkd3d-latest patchset 2024-08-29 08:00:18 +10:00
Alistair Leslie-Hughes
041773cac4 Rebase against e3d2620bdf6f8e91a5ccf5904f256a55a5af137e. 2024-08-29 07:37:28 +10:00
Alistair Leslie-Hughes
f43640039b Updated odbc32-fixes patchset
Correct the convert of v3 to v2 for SQLColAttribute/W functions.
By default just pass the field id through.
2024-08-28 07:58:13 +10:00
Alistair Leslie-Hughes
8999a04fd6 Updated cmd-launch-association patchset
Re-enabled.
2024-08-27 08:01:53 +10:00
Alistair Leslie-Hughes
3c0ae5d07c Updated vkd3d-latest patchset
Squash and rebase to latest.
2024-08-27 07:57:01 +10:00
Alistair Leslie-Hughes
294e058f4b Updated odbc32-fixes patchset
There is only a small subset of columns fields that need converting
from 3 to 2.  Let all the other pass and we can deal with fallout later.
2024-08-27 07:55:14 +10:00
Alistair Leslie-Hughes
edbcee8c11 Rebase against b01131ce82ad8306d719f9919e6249af2db5322d. 2024-08-27 07:53:21 +10:00
24 changed files with 4745 additions and 20258 deletions

View File

@@ -1,15 +1,15 @@
From 6a4be6a3089d37ff825853d2644d826d80d59e4f Mon Sep 17 00:00:00 2001
From 601da0ae0c6b22f37d20e6e0f10558093277eca9 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Thu, 2 Oct 2014 19:44:31 +0200
Subject: [PATCH] ntdll: Print a warning message specifying the wine-staging
branch name and version.
---
dlls/ntdll/loader.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
dlls/ntdll/loader.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
index bad1492e138..6f80e7b3a28 100644
index 5f84ca7e23b..fabf394fbe5 100644
--- a/dlls/ntdll/loader.c
+++ b/dlls/ntdll/loader.c
@@ -43,6 +43,7 @@ WINE_DECLARE_DEBUG_CHANNEL(relay);
@@ -20,7 +20,7 @@ index bad1492e138..6f80e7b3a28 100644
#ifdef _WIN64
#define DEFAULT_SECURITY_COOKIE_64 (((ULONGLONG)0x00002b99 << 32) | 0x2ddfa232)
@@ -3823,6 +3824,7 @@ void WINAPI LdrShutdownProcess(void)
@@ -3828,6 +3829,7 @@ void WINAPI LdrShutdownProcess(void)
process_detach();
}
@@ -28,7 +28,7 @@ index bad1492e138..6f80e7b3a28 100644
/******************************************************************
* RtlExitUserProcess (NTDLL.@)
@@ -4317,6 +4319,9 @@ static void release_address_space(void)
@@ -4322,6 +4324,9 @@ static void release_address_space(void)
*/
void loader_init( CONTEXT *context, void **entry )
{
@@ -38,10 +38,13 @@ index bad1492e138..6f80e7b3a28 100644
static int attach_done;
NTSTATUS status;
ULONG_PTR cookie, port = 0;
@@ -4397,6 +4402,16 @@ void loader_init( CONTEXT *context, void **entry )
@@ -4407,7 +4412,18 @@ void loader_init( CONTEXT *context, void **entry )
arm64ec_thread_init();
#endif
wm = get_modref( NtCurrentTeb()->Peb->ImageBaseAddress );
+ /* This hunk occasionally applies in the wrong place;
+ * add a comment here to try to prevent that. */
}
+ RtlInitUnicodeString( &staging_event_string, L"\\__wine_staging_warn_event" );
+ InitializeObjectAttributes( &staging_event_attr, &staging_event_string, OBJ_OPENIF, NULL, NULL );
+ if (NtCreateEvent( &staging_event, EVENT_ALL_ACCESS, &staging_event_attr, NotificationEvent, FALSE ) == STATUS_SUCCESS)
@@ -51,10 +54,9 @@ index bad1492e138..6f80e7b3a28 100644
+ }
+ else
+ WARN_(winediag)("wine-staging %s is a testing version containing experimental patches.\n", wine_get_version());
+
RtlAcquirePebLock();
InsertHeadList( &tls_links, &NtCurrentTeb()->TlsLinks );
RtlReleasePebLock();
NtCurrentTeb()->FlsSlots = fls_alloc_data();
--
2.43.0
2.45.2

View File

@@ -1,197 +0,0 @@
From 0173ca4b3352506b76801619ae5a05f338d6ff6e Mon Sep 17 00:00:00 2001
From: Jason Edmeades <us@edmeades.me.uk>
Date: Tue, 16 Jul 2019 13:49:18 +1000
Subject: [PATCH] cmd: Support for launching programs based on file association
cmd already handles exe, cmd, bat etc but if you run a file with another extension,
then use the associations set in the registry (for example via ftype / assoc) to
launch a program. This enables you to run test.txt and notepad to pop up, or
fred.msi for msiexec to be launched.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=18154
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=36646
---
programs/cmd/wcmdmain.c | 139 +++++++++++++++++++++++++++++-----------
1 file changed, 102 insertions(+), 37 deletions(-)
diff --git a/programs/cmd/wcmdmain.c b/programs/cmd/wcmdmain.c
index ce48b16d7ec..2d20ee299fa 100644
--- a/programs/cmd/wcmdmain.c
+++ b/programs/cmd/wcmdmain.c
@@ -1541,8 +1541,10 @@ void WCMD_run_program (WCHAR *command, BOOL called)
/* 1. If extension supplied, see if that file exists */
if (extensionsupplied) {
- if (GetFileAttributesW(thisDir) != INVALID_FILE_ATTRIBUTES) {
+ DWORD attribs = GetFileAttributesW(thisDir);
+ if (attribs != INVALID_FILE_ATTRIBUTES && !(attribs&FILE_ATTRIBUTE_DIRECTORY)) {
found = TRUE;
+ WINE_TRACE("Found as file with extension as '%s'\n", wine_dbgstr_w(thisDir));
}
}
@@ -1572,6 +1574,7 @@ void WCMD_run_program (WCHAR *command, BOOL called)
}
if (GetFileAttributesW(thisDir) != INVALID_FILE_ATTRIBUTES) {
+ WINE_TRACE("Found via search and pathext as '%s'\n", wine_dbgstr_w(thisDir));
found = TRUE;
thisExt = NULL;
}
@@ -1595,6 +1598,7 @@ void WCMD_run_program (WCHAR *command, BOOL called)
RETURN_CODE return_code;
BOOL oldinteractive = interactive;
+ WINE_TRACE("Calling batch program\n");
interactive = FALSE;
return_code = WCMD_batch(thisDir, command, NULL, INVALID_HANDLE_VALUE);
interactive = oldinteractive;
@@ -1605,48 +1609,109 @@ void WCMD_run_program (WCHAR *command, BOOL called)
if (return_code != RETURN_CODE_ABORTED && return_code != RETURN_CODE_OLD_CHAINING)
errorlevel = return_code;
return;
- } else {
- DWORD exit_code;
- /* thisDir contains the file to be launched, but with what?
- eg. a.exe will require a.exe to be launched, a.html may be iexplore */
- hinst = FindExecutableW (thisDir, NULL, temp);
- if ((INT_PTR)hinst < 32)
- console = 0;
- else
- console = SHGetFileInfoW(temp, 0, &psfi, sizeof(psfi), SHGFI_EXETYPE);
-
- ZeroMemory (&st, sizeof(STARTUPINFOW));
- st.cb = sizeof(STARTUPINFOW);
- init_msvcrt_io_block(&st);
-
- /* Launch the process and if a CUI wait on it to complete
- Note: Launching internal wine processes cannot specify a full path to exe */
- status = CreateProcessW(thisDir,
- command, NULL, NULL, TRUE, 0, NULL, NULL, &st, &pe);
- free(st.lpReserved2);
- if ((opt_c || opt_k) && !opt_s && !status
- && GetLastError()==ERROR_FILE_NOT_FOUND && command[0]=='\"') {
- /* strip first and last quote WCHARacters and try again */
- WCMD_strip_quotes(command);
- opt_s = TRUE;
- WCMD_run_program(command, called);
+ }
+
+ /* Calculate what program will be launched, and whether it is a
+ console application or not. Note the program may be different
+ from the parameter (eg running a .txt file will launch notepad.exe) */
+ hinst = FindExecutableW (thisDir, NULL, temp);
+ if ((INT_PTR)hinst < 32)
+ console = 0; /* Assume not console app by default */
+ else
+ console = SHGetFileInfoW(temp, 0, &psfi, sizeof(psfi), SHGFI_EXETYPE);
+
+
+ /* If it is not a .com or .exe, try to launch through ShellExecuteExW
+ which takes into account the association for the extension. */
+ if (ext && (wcsicmp(ext, L".exe") && wcsicmp(ext, L".com"))) {
+
+ SHELLEXECUTEINFOW shexw;
+ BOOL rc;
+ WCHAR *rawarg;
+
+ WCMD_parameter(command, 1, &rawarg, FALSE, TRUE);
+ WINE_TRACE("Launching via ShellExecuteEx\n");
+ memset(&shexw, 0x00, sizeof(shexw));
+ shexw.cbSize = sizeof(SHELLEXECUTEINFOW);
+ shexw.fMask = SEE_MASK_NO_CONSOLE | /* Run in same console as currently using */
+ SEE_MASK_NOCLOSEPROCESS; /* We need a process handle to possibly wait on */
+ shexw.lpFile = thisDir;
+ shexw.lpParameters = rawarg;
+ shexw.nShow = SW_SHOWNORMAL;
+
+ /* Try to launch the binary or its associated program */
+ rc = ShellExecuteExW(&shexw);
+
+ if (rc && (INT_PTR)shexw.hInstApp >= 32) {
+
+ WINE_TRACE("Successfully launched\n");
+
+ /* It worked... Always wait when non-interactive (cmd /c or in
+ batch program), or for console applications */
+ if (!interactive || (console && !HIWORD(console))) {
+ WINE_TRACE("Waiting for process to end\n");
+ WaitForSingleObject (shexw.hProcess, INFINITE);
+ }
+
+ GetExitCodeProcess (shexw.hProcess, &errorlevel);
+ if (errorlevel == STILL_ACTIVE) {
+ WINE_TRACE("Process still running, but returning anyway\n");
+ errorlevel = 0;
+ } else {
+ WINE_TRACE("Process ended, errorlevel %ld\n", errorlevel);
+ }
+
+ CloseHandle(pe.hProcess);
return;
+
}
+ }
- if (!status)
- break;
+ /* If its a .exe or .com or the shellexecute failed due to no association,
+ CreateProcess directly */
+ ZeroMemory (&st, sizeof(STARTUPINFOW));
+ st.cb = sizeof(STARTUPINFOW);
+ init_msvcrt_io_block(&st);
+
+ /* Launch the process and if a CUI wait on it to complete
+ Note: Launching internal wine processes cannot specify a full path to exe */
+ WINE_TRACE("Launching via CreateProcess\n");
+ status = CreateProcessW(thisDir,
+ command, NULL, NULL, TRUE, 0, NULL, NULL, &st, &pe);
+ free(st.lpReserved2);
+ if ((opt_c || opt_k) && !opt_s && !status
+ && GetLastError()==ERROR_FILE_NOT_FOUND && command[0]=='\"') {
+ /* strip first and last quote WCHARacters and try again */
+ WCMD_strip_quotes(command);
+ opt_s = TRUE;
+ WCMD_run_program(command, called);
+ return;
+ }
- /* Always wait when non-interactive (cmd /c or in batch program),
- or for console applications */
- if (!interactive || (console && !HIWORD(console)))
- WaitForSingleObject (pe.hProcess, INFINITE);
- GetExitCodeProcess (pe.hProcess, &exit_code);
- errorlevel = (exit_code == STILL_ACTIVE) ? NO_ERROR : exit_code;
+ if (!status) {
+ WINE_TRACE("Failed to launch via CreateProcess, rc %d (%ld)\n",
+ status, GetLastError());
+ break;
+ }
- CloseHandle(pe.hProcess);
- CloseHandle(pe.hThread);
- return;
+ /* Always wait when non-interactive (cmd /c or in batch program),
+ or for console applications */
+ if (!interactive || (console && !HIWORD(console))) {
+ WINE_TRACE("Waiting for process to end\n");
+ WaitForSingleObject (pe.hProcess, INFINITE);
}
+
+ GetExitCodeProcess (pe.hProcess, &errorlevel);
+ if (errorlevel == STILL_ACTIVE) {
+ WINE_TRACE("Process still running, but returning anyway\n");
+ errorlevel = 0;
+ } else {
+ WINE_TRACE("Process ended, errorlevel %ld\n", errorlevel);
+ }
+
+ CloseHandle(pe.hProcess);
+ CloseHandle(pe.hThread);
+ return;
}
}
--
2.45.2

View File

@@ -1,79 +0,0 @@
From 2f9fa2d492521d297eb87e4b6709d8349818b9c6 Mon Sep 17 00:00:00 2001
From: Jason Edmeades <us@edmeades.me.uk>
Date: Tue, 16 Jul 2019 13:51:58 +1000
Subject: [PATCH] cmd: ftype failed to clear file associations
If a file association was set (e.g. ftype fred=xxx), ftype fred= needs to clear it,
but previously it failed to do so.
---
programs/cmd/builtins.c | 6 +++---
programs/cmd/tests/test_builtins.cmd | 9 +++++++++
programs/cmd/tests/test_builtins.cmd.exp | 5 ++++-
3 files changed, 16 insertions(+), 4 deletions(-)
diff --git a/programs/cmd/builtins.c b/programs/cmd/builtins.c
index 1c39c35ca78..f23f9ef2046 100644
--- a/programs/cmd/builtins.c
+++ b/programs/cmd/builtins.c
@@ -4101,11 +4101,11 @@ void WCMD_assoc (const WCHAR *args, BOOL assoc) {
/* If nothing after '=' then clear value - only valid for ASSOC */
if (*newValue == 0x00) {
- if (assoc) rc = RegDeleteKeyW(key, args);
- if (assoc && rc == ERROR_SUCCESS) {
+ rc = RegDeleteTreeW(key, args);
+ if (rc == ERROR_SUCCESS) {
WINE_TRACE("HKCR Key '%s' deleted\n", wine_dbgstr_w(args));
- } else if (assoc && rc != ERROR_FILE_NOT_FOUND) {
+ } else if (rc != ERROR_FILE_NOT_FOUND) {
WCMD_print_error();
errorlevel = ERROR_FILE_NOT_FOUND;
diff --git a/programs/cmd/tests/test_builtins.cmd b/programs/cmd/tests/test_builtins.cmd
index d5397560bc6..14666c85cac 100644
--- a/programs/cmd/tests/test_builtins.cmd
+++ b/programs/cmd/tests/test_builtins.cmd
@@ -2670,6 +2670,12 @@ echo echo +++>> tmp.cmd
echo ftype footype>> tmp.cmd
cmd /c tmp.cmd
+echo --- testing association
+ftype footype=cmd.exe /c "echo '%%1'"
+echo dummy>test.foo
+test.foo
+del test.foo
+
echo --- resetting association
assoc .foo=
@@ -2701,6 +2707,9 @@ echo .foo=footype
echo footype=foo_opencmd
echo +++
echo footype=foo_opencmd
+echo --- testing association
+echo footype=cmd.exe /c "echo '%%1'"
+echo Skipped as not enough permissions
echo --- resetting association
echo original value
diff --git a/programs/cmd/tests/test_builtins.cmd.exp b/programs/cmd/tests/test_builtins.cmd.exp
index 0102c3bcbc5..a6d97bc8248 100644
--- a/programs/cmd/tests/test_builtins.cmd.exp
+++ b/programs/cmd/tests/test_builtins.cmd.exp
@@ -1549,8 +1549,11 @@ footype=foo_opencmd
footype=foo_opencmd
+++
footype=foo_opencmd
+--- testing association
+footype=cmd.exe /c "echo '%1'"
+'@drive@@path@foobar\test.foo'@or_broken@Skipped as not enough permissions
--- resetting association
-@todo_wine@original value@or_broken@buggyXP@or_broken@!WINE_FOO!
+original value@or_broken@buggyXP@or_broken@!WINE_FOO!
------------ Testing CALL ------------
--- external script
foo@space@
--
2.43.0

View File

@@ -1,55 +0,0 @@
From 5d1a7ff33160080ad2aca22f689c5b4b446837d8 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Tue, 18 Jun 2024 09:14:56 +1000
Subject: [PATCH] cmd: Changed errorlevel type to DWORD
This stop the invalid type being passed to GetExitCodeProcess which is being reported
as an error with clang/mingw in the latest version.
---
programs/cmd/builtins.c | 2 +-
programs/cmd/wcmd.h | 2 +-
programs/cmd/wcmdmain.c | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/programs/cmd/builtins.c b/programs/cmd/builtins.c
index 1e92e88d191..9b8cfd389b9 100644
--- a/programs/cmd/builtins.c
+++ b/programs/cmd/builtins.c
@@ -442,7 +442,7 @@ RETURN_CODE WCMD_choice (const WCHAR * args)
SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), oldmode);
errorlevel = (ptr - opt_c) + 1;
- TRACE("answer: %d\n", errorlevel);
+ TRACE("answer: %ld\n", errorlevel);
free(my_command);
return errorlevel;
}
diff --git a/programs/cmd/wcmd.h b/programs/cmd/wcmd.h
index 6c76070338c..d750aca5572 100644
--- a/programs/cmd/wcmd.h
+++ b/programs/cmd/wcmd.h
@@ -336,7 +336,7 @@ void WCMD_set_for_loop_variable(int var_idx, const WCHAR *value);
* variables and batch parameters substitution already done.
*/
extern WCHAR quals[MAXSTRING], param1[MAXSTRING], param2[MAXSTRING];
-extern int errorlevel;
+extern DWORD errorlevel;
extern BATCH_CONTEXT *context;
extern FOR_CONTEXT *forloopcontext;
extern BOOL delayedsubst;
diff --git a/programs/cmd/wcmdmain.c b/programs/cmd/wcmdmain.c
index 2df0d7c53d3..095be784f2c 100644
--- a/programs/cmd/wcmdmain.c
+++ b/programs/cmd/wcmdmain.c
@@ -36,7 +36,7 @@ extern const WCHAR inbuilt[][10];
extern struct env_stack *pushd_directories;
BATCH_CONTEXT *context = NULL;
-int errorlevel;
+DWORD errorlevel;
WCHAR quals[MAXSTRING], param1[MAXSTRING], param2[MAXSTRING];
BOOL interactive;
FOR_CONTEXT *forloopcontext; /* The 'for' loop context */
--
2.43.0

View File

@@ -1,2 +0,0 @@
Fixes: [18154] cmd: Support for launching programs based on file association
Disabled: True

View File

@@ -1,4 +1,4 @@
From d3262875b2ce7d2a6746f2139ca00e3d0f13fb33 Mon Sep 17 00:00:00 2001
From 3b9e832890ad710eecf08f7901d708cfebb3520c Mon Sep 17 00:00:00 2001
From: Zebediah Figura <z.figura12@gmail.com>
Date: Wed, 13 Jun 2018 10:44:49 -0500
Subject: [PATCH] configure: Check for sys/eventfd.h, ppoll(), and shm_open().
@@ -12,10 +12,10 @@ Although perhaps we shouldn't since the server doesn't do this.
2 files changed, 17 insertions(+)
diff --git a/configure.ac b/configure.ac
index 3be31e40cf6..0a2cdc0dfcd 100644
index 4314be5553c..920d8343925 100644
--- a/configure.ac
+++ b/configure.ac
@@ -453,6 +453,7 @@ AC_CHECK_HEADERS(\
@@ -407,6 +407,7 @@ AC_CHECK_HEADERS(\
sys/cdio.h \
sys/epoll.h \
sys/event.h \
@@ -23,15 +23,15 @@ index 3be31e40cf6..0a2cdc0dfcd 100644
sys/extattr.h \
sys/filio.h \
sys/ipc.h \
@@ -2024,6 +2025,7 @@ AC_CHECK_FUNCS(\
@@ -2076,6 +2077,7 @@ AC_CHECK_FUNCS(\
port_create \
posix_fadvise \
posix_fallocate \
+ ppoll \
prctl \
proc_pidinfo \
sched_yield \
@@ -2049,6 +2051,12 @@ case $host_os in
renameat \
@@ -2100,6 +2102,12 @@ case $host_os in
;;
esac
@@ -45,10 +45,10 @@ index 3be31e40cf6..0a2cdc0dfcd 100644
AC_LINK_IFELSE([AC_LANG_PROGRAM(
[[#include <sched.h>]], [[sched_setaffinity(0, 0, 0);]])],[wine_cv_have_sched_setaffinity=yes],[wine_cv_have_sched_setaffinity=no]))
diff --git a/include/config.h.in b/include/config.h.in
index fe2fc36a914..8e8c57d711c 100644
index 096ecdf94ec..303fb7f2b69 100644
--- a/include/config.h.in
+++ b/include/config.h.in
@@ -309,6 +309,9 @@
@@ -312,6 +312,9 @@
/* Define to 1 if you have the `posix_fallocate' function. */
#undef HAVE_POSIX_FALLOCATE
@@ -58,7 +58,7 @@ index fe2fc36a914..8e8c57d711c 100644
/* Define to 1 if you have the `prctl' function. */
#undef HAVE_PRCTL
@@ -375,6 +378,9 @@
@@ -369,6 +372,9 @@
/* Define to 1 if `interface_id' is a member of `sg_io_hdr_t'. */
#undef HAVE_SG_IO_HDR_T_INTERFACE_ID
@@ -68,7 +68,7 @@ index fe2fc36a914..8e8c57d711c 100644
/* Define to 1 if `si_fd' is a member of `siginfo_t'. */
#undef HAVE_SIGINFO_T_SI_FD
@@ -510,6 +516,9 @@
@@ -498,6 +504,9 @@
/* Define to 1 if you have the <sys/epoll.h> header file. */
#undef HAVE_SYS_EPOLL_H
@@ -79,5 +79,5 @@ index fe2fc36a914..8e8c57d711c 100644
#undef HAVE_SYS_EVENT_H
--
2.39.0
2.45.2

View File

@@ -1,4 +1,4 @@
From 7b59a735bf21a4db50669c360666191493767909 Mon Sep 17 00:00:00 2001
From ee26472916e2196456c0c59fb8ca04ee362f148a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Mon, 3 Apr 2017 05:30:27 +0200
Subject: [PATCH] ntdll: Implement HashLinks field in LDR module data.
@@ -9,7 +9,7 @@ Subject: [PATCH] ntdll: Implement HashLinks field in LDR module data.
2 files changed, 117 insertions(+)
diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c
index 8f418ef09a9..30f089bd64f 100644
index 8b332e479e6..08cb3d3f8ce 100644
--- a/dlls/kernel32/tests/loader.c
+++ b/dlls/kernel32/tests/loader.c
@@ -28,6 +28,7 @@
@@ -20,7 +20,7 @@ index 8f418ef09a9..30f089bd64f 100644
#include "wine/test.h"
#include "delayloadhandler.h"
@@ -4205,6 +4206,79 @@ static void test_Wow64Transition(void)
@@ -4641,6 +4642,79 @@ static void test_Wow64Transition(void)
debugstr_wn(name->SectionFileName.Buffer, name->SectionFileName.Length / sizeof(WCHAR)));
}
@@ -100,7 +100,7 @@ index 8f418ef09a9..30f089bd64f 100644
START_TEST(loader)
{
int argc;
@@ -4286,6 +4360,7 @@ START_TEST(loader)
@@ -4723,6 +4797,7 @@ START_TEST(loader)
test_InMemoryOrderModuleList();
test_LoadPackagedLibrary();
test_wow64_redirection();
@@ -109,10 +109,10 @@ index 8f418ef09a9..30f089bd64f 100644
test_dll_file( "kernel32.dll" );
test_dll_file( "advapi32.dll" );
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
index 714d3f17ff0..415fcbb1aa6 100644
index 5f84ca7e23b..4da48a82d74 100644
--- a/dlls/ntdll/loader.c
+++ b/dlls/ntdll/loader.c
@@ -133,6 +133,9 @@ struct file_id
@@ -128,6 +128,9 @@ struct file_id
BYTE ObjectId[16];
};
@@ -122,7 +122,7 @@ index 714d3f17ff0..415fcbb1aa6 100644
/* internal representation of loaded modules */
typedef struct _wine_modref
{
@@ -548,6 +551,33 @@ static void call_ldr_notifications( ULONG reason, LDR_DATA_TABLE_ENTRY *module )
@@ -556,6 +559,33 @@ static void call_ldr_notifications( ULONG reason, LDR_DATA_TABLE_ENTRY *module )
}
}
@@ -156,7 +156,7 @@ index 714d3f17ff0..415fcbb1aa6 100644
/*************************************************************************
* get_modref
*
@@ -1528,7 +1558,12 @@ static WINE_MODREF *alloc_module( HMODULE hModule, const UNICODE_STRING *nt_name
@@ -1557,7 +1587,12 @@ static WINE_MODREF *alloc_module( HMODULE hModule, const UNICODE_STRING *nt_name
&wm->ldr.InLoadOrderLinks);
InsertTailList(&NtCurrentTeb()->Peb->LdrData->InMemoryOrderModuleList,
&wm->ldr.InMemoryOrderLinks);
@@ -169,7 +169,7 @@ index 714d3f17ff0..415fcbb1aa6 100644
if (!(nt->OptionalHeader.DllCharacteristics & IMAGE_DLLCHARACTERISTICS_NX_COMPAT))
{
@@ -2226,6 +2261,7 @@ static NTSTATUS build_module( LPCWSTR load_path, const UNICODE_STRING *nt_name,
@@ -2253,6 +2288,7 @@ static NTSTATUS build_module( LPCWSTR load_path, const UNICODE_STRING *nt_name,
/* the module has only be inserted in the load & memory order lists */
RemoveEntryList(&wm->ldr.InLoadOrderLinks);
RemoveEntryList(&wm->ldr.InMemoryOrderLinks);
@@ -177,7 +177,7 @@ index 714d3f17ff0..415fcbb1aa6 100644
/* FIXME: there are several more dangling references
* left. Including dlls loaded by this dll before the
@@ -3908,6 +3944,7 @@ static void free_modref( WINE_MODREF *wm )
@@ -3916,6 +3952,7 @@ static void free_modref( WINE_MODREF *wm )
RemoveEntryList(&wm->ldr.InLoadOrderLinks);
RemoveEntryList(&wm->ldr.InMemoryOrderLinks);
@@ -185,7 +185,7 @@ index 714d3f17ff0..415fcbb1aa6 100644
if (wm->ldr.InInitializationOrderLinks.Flink)
RemoveEntryList(&wm->ldr.InInitializationOrderLinks);
@@ -4263,6 +4300,7 @@ void loader_init( CONTEXT *context, void **entry )
@@ -4336,6 +4373,7 @@ void loader_init( CONTEXT *context, void **entry )
ANSI_STRING ctrl_routine = RTL_CONSTANT_STRING( "CtrlRoutine" );
WINE_MODREF *kernel32;
PEB *peb = NtCurrentTeb()->Peb;
@@ -193,9 +193,9 @@ index 714d3f17ff0..415fcbb1aa6 100644
peb->LdrData = &ldr;
peb->FastPebLock = &peb_lock;
@@ -4278,6 +4316,10 @@ void loader_init( CONTEXT *context, void **entry )
RtlSetBits( peb->TlsBitmap, 0, NtCurrentTeb()->WowTebOffset ? WOW64_TLS_MAX_NUMBER : 1 );
RtlSetBits( peb->TlsBitmap, NTDLL_TLS_ERRNO, 1 );
@@ -4354,6 +4392,10 @@ void loader_init( CONTEXT *context, void **entry )
if (!(tls_dirs = RtlAllocateHeap( GetProcessHeap(), HEAP_ZERO_MEMORY, tls_module_count * sizeof(*tls_dirs) )))
NtTerminateProcess( GetCurrentProcess(), STATUS_NO_MEMORY );
+ /* initialize hash table */
+ for (i = 0; i < HASH_MAP_SIZE; i++)
@@ -205,5 +205,5 @@ index 714d3f17ff0..415fcbb1aa6 100644
load_global_options();
version_init();
--
2.43.0
2.45.2

View File

@@ -1,4 +1,4 @@
From 4bc218280bf7e0d697b2386ea2f71d5562bc8867 Mon Sep 17 00:00:00 2001
From bdbc1c90697424373a5248cf6c2bda589785bd37 Mon Sep 17 00:00:00 2001
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
Date: Thu, 16 Jan 2014 20:56:49 -0700
Subject: [PATCH] ntdll: Add support for creating reparse points.
@@ -13,12 +13,12 @@ Signed-off-by: Erich E. Hoover <erich.e.hoover@gmail.com>
5 files changed, 451 insertions(+), 19 deletions(-)
diff --git a/configure.ac b/configure.ac
index 89bc831bb94..0138b5d3b9a 100644
index d380c66ff40..4314be5553c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2087,6 +2087,8 @@ AC_CHECK_FUNCS(\
@@ -2078,6 +2078,8 @@ AC_CHECK_FUNCS(\
posix_fallocate \
prctl \
proc_pidinfo \
sched_yield \
+ renameat \
+ renameat2 \
@@ -26,7 +26,7 @@ index 89bc831bb94..0138b5d3b9a 100644
setprogname \
sigprocmask \
diff --git a/dlls/ntdll/Makefile.in b/dlls/ntdll/Makefile.in
index e17e3f72b92..66cdf11423c 100644
index 37bd6c86e31..f9a15d28ed2 100644
--- a/dlls/ntdll/Makefile.in
+++ b/dlls/ntdll/Makefile.in
@@ -4,7 +4,7 @@ UNIXLIB = ntdll.so
@@ -231,7 +231,7 @@ index 7d3618a3804..148b6058cee 100644
+ test_mailslot_name();
}
diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c
index b8fb4f19e13..c52377264fe 100644
index ca95dd347eb..ac4de149455 100644
--- a/dlls/ntdll/unix/file.c
+++ b/dlls/ntdll/unix/file.c
@@ -36,6 +36,8 @@
@@ -389,7 +389,7 @@ index b8fb4f19e13..c52377264fe 100644
static BOOL fd_is_mount_point( int fd, const struct stat *st )
{
struct stat parent;
@@ -3420,6 +3540,181 @@ done:
@@ -3418,6 +3538,181 @@ done:
}
@@ -571,7 +571,7 @@ index b8fb4f19e13..c52377264fe 100644
/******************************************************************************
* lookup_unix_name
*
@@ -6266,6 +6561,13 @@ NTSTATUS WINAPI NtFsControlFile( HANDLE handle, HANDLE event, PIO_APC_ROUTINE ap
@@ -6249,6 +6544,13 @@ NTSTATUS WINAPI NtFsControlFile( HANDLE handle, HANDLE event, PIO_APC_ROUTINE ap
break;
}
@@ -602,5 +602,5 @@ index 980235abdc9..90248b4897c 100644
{
UCHAR DataBuffer[1];
--
2.43.0
2.45.2

View File

@@ -1,22 +1,37 @@
From ad0e5c8a6edd8f483ad3b2cd389b6ec5519b3891 Mon Sep 17 00:00:00 2001
From 2d897946980e67f742b9f39f5f548cf0e2340510 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Wed, 17 Jul 2024 21:55:20 +1000
Subject: [PATCH] odbc32: SQLGetData support ODBC v2.0
---
dlls/odbc32/proxyodbc.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
dlls/odbc32/proxyodbc.c | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c
index 1977e766950..b2bf2a7d58c 100644
index 3b3b198eaa8..c2748cd33d7 100644
--- a/dlls/odbc32/proxyodbc.c
+++ b/dlls/odbc32/proxyodbc.c
@@ -2368,7 +2368,20 @@ static SQLRETURN get_data_win32( struct statement *stmt, SQLUSMALLINT column, SQ
@@ -2450,11 +2450,35 @@ static SQLRETURN get_data_unix( struct statement *stmt, SQLUSMALLINT column, SQL
return ret;
}
+static struct object *find_object_type(SQLSMALLINT type, struct object *object)
+{
+ while (object && object->type != type)
+ {
+ object = object->parent;
+ }
+
+ return object;
+}
+
static SQLRETURN get_data_win32( struct statement *stmt, SQLUSMALLINT column, SQLSMALLINT type, SQLPOINTER value,
SQLLEN buflen, SQLLEN *retlen )
{
if (stmt->hdr.win32_funcs->SQLGetData)
+ {
+ if ( ((struct environment*)(stmt->hdr.parent))->attr_version == SQL_OV_ODBC2)
+ struct environment *env = (struct environment *)find_object_type(SQL_HANDLE_ENV, stmt->hdr.parent);
+ if (env && env->attr_version == SQL_OV_ODBC2)
+ {
+ if (type == SQL_C_TYPE_TIME)
+ type = SQL_C_TIME;
@@ -33,5 +48,5 @@ index 1977e766950..b2bf2a7d58c 100644
}
--
2.43.0
2.45.2

View File

@@ -27,8 +27,8 @@ index 71c853013fd..b5c0edb119e 100644
- return stmt->hdr.win32_funcs->SQLColAttributesW( stmt->hdr.win32_handle, col, field_id, char_attr, buflen,
+ ret = stmt->hdr.win32_funcs->SQLColAttributesW( stmt->hdr.win32_handle, col, field_id, char_attr, buflen,
retlen, num_attr );
+ /* Convert back for ODBC3 drivers */
+ if (num_attr && field_id == SQL_COLUMN_TYPE &&
+ /* Convert back for ODBC2 drivers */
+ if (SQL_SUCCEEDED(ret) && num_attr && field_id == SQL_COLUMN_TYPE &&
+ ((struct environment*)(stmt->hdr.parent))->attr_version == SQL_OV_ODBC2 &&
+ ((struct environment*)(stmt->hdr.parent))->driver_ver == SQL_OV_ODBC2)
+ {

View File

@@ -0,0 +1,33 @@
From 2e310f42d27c6b26631124bc3622a7fc6c80167e Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Wed, 28 Aug 2024 07:57:17 +1000
Subject: [PATCH] odbc32: SQLColAttributes/W fall throught for unknown field
ids
---
dlls/odbc32/proxyodbc.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c
index c2dcf76de07..4daa19140a3 100644
--- a/dlls/odbc32/proxyodbc.c
+++ b/dlls/odbc32/proxyodbc.c
@@ -1027,7 +1027,6 @@ static SQLRETURN col_attribute_win32_a( struct statement *stmt, SQLUSMALLINT col
default:
FIXME( "field id %u not handled\n", field_id );
- return SQL_ERROR;
}
return stmt->hdr.win32_funcs->SQLColAttributes( stmt->hdr.win32_handle, col, field_id, char_attr, buflen,
@@ -6270,7 +6269,6 @@ static SQLRETURN col_attribute_win32_w( struct statement *stmt, SQLUSMALLINT col
default:
FIXME( "field id %u not handled\n", field_id );
- return SQL_ERROR;
}
ret = stmt->hdr.win32_funcs->SQLColAttributesW( stmt->hdr.win32_handle, col, field_id, char_attr, buflen,
--
2.45.2

View File

@@ -1,23 +0,0 @@
From bc118983b67f87ed7858711d03cff34050b92770 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sun, 6 Aug 2017 02:50:23 +0200
Subject: [PATCH] packager: Prefer native version.
---
dlls/packager/Makefile.in | 1 +
1 file changed, 1 insertion(+)
diff --git a/dlls/packager/Makefile.in b/dlls/packager/Makefile.in
index 5fc89d807a8..3589b37be9c 100644
--- a/dlls/packager/Makefile.in
+++ b/dlls/packager/Makefile.in
@@ -1,5 +1,6 @@
MODULE = packager.dll
IMPORTS = uuid shell32 shlwapi user32
+EXTRADLLFLAGS = -Wb,--prefer-native
SOURCES = \
packager.rc \
--
2.42.0

View File

@@ -1 +0,0 @@
Fixes: [43472] Prefer native version of packager.dll

View File

@@ -1,204 +0,0 @@
From b43ca0b2d66c89b21388ee6b4427c5f681a8ced1 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Wed, 21 Aug 2024 06:59:06 +1000
Subject: [PATCH] Updated vkd3d to 738ecc9eb1ee65e426a4ea8186e4418377580984.
---
libs/vkd3d/include/private/vkd3d_memory.h | 2 +-
libs/vkd3d/libs/vkd3d-shader/spirv.c | 78 +++++++++++++----------
2 files changed, 47 insertions(+), 33 deletions(-)
diff --git a/libs/vkd3d/include/private/vkd3d_memory.h b/libs/vkd3d/include/private/vkd3d_memory.h
index e191dc11b73..b157fc07cb7 100644
--- a/libs/vkd3d/include/private/vkd3d_memory.h
+++ b/libs/vkd3d/include/private/vkd3d_memory.h
@@ -43,7 +43,7 @@ static inline void *vkd3d_realloc(void *ptr, size_t size)
static inline void *vkd3d_calloc(size_t count, size_t size)
{
void *ptr;
- VKD3D_ASSERT(count <= ~(size_t)0 / size);
+ VKD3D_ASSERT(!size || count <= ~(size_t)0 / size);
if (!(ptr = calloc(count, size)))
ERR("Out of memory.\n");
return ptr;
diff --git a/libs/vkd3d/libs/vkd3d-shader/spirv.c b/libs/vkd3d/libs/vkd3d-shader/spirv.c
index bc8a7a5b28c..36574e8b1e5 100644
--- a/libs/vkd3d/libs/vkd3d-shader/spirv.c
+++ b/libs/vkd3d/libs/vkd3d-shader/spirv.c
@@ -2156,6 +2156,8 @@ struct vkd3d_symbol_descriptor_array
unsigned int set;
unsigned int binding;
unsigned int push_constant_index;
+ bool write_only;
+ bool coherent;
};
struct vkd3d_symbol_register_data
@@ -2512,6 +2514,8 @@ static void spirv_compiler_destroy(struct spirv_compiler *compiler)
vkd3d_free(compiler->push_constants);
vkd3d_free(compiler->descriptor_offset_ids);
+ vkd3d_free(compiler->spirv_parameter_info);
+
vkd3d_spirv_builder_free(&compiler->spirv_builder);
rb_destroy(&compiler->symbol_table, vkd3d_symbol_free, NULL);
@@ -6076,6 +6080,26 @@ static void spirv_compiler_emit_push_constant_buffers(struct spirv_compiler *com
}
}
+static const struct vkd3d_shader_descriptor_info1 *spirv_compiler_get_descriptor_info(
+ struct spirv_compiler *compiler, enum vkd3d_shader_descriptor_type type,
+ const struct vkd3d_shader_register_range *range)
+{
+ const struct vkd3d_shader_scan_descriptor_info1 *descriptor_info = compiler->scan_descriptor_info;
+ unsigned int register_last = (range->last == ~0u) ? range->first : range->last;
+ const struct vkd3d_shader_descriptor_info1 *d;
+ unsigned int i;
+
+ for (i = 0; i < descriptor_info->descriptor_count; ++i)
+ {
+ d = &descriptor_info->descriptors[i];
+ if (d->type == type && d->register_space == range->space && d->register_index <= range->first
+ && (d->count == ~0u || d->count > register_last - d->register_index))
+ return d;
+ }
+
+ return NULL;
+}
+
struct vkd3d_descriptor_variable_info
{
const struct vkd3d_symbol *array_symbol;
@@ -6085,12 +6109,14 @@ struct vkd3d_descriptor_variable_info
static uint32_t spirv_compiler_build_descriptor_variable(struct spirv_compiler *compiler,
SpvStorageClass storage_class, uint32_t type_id, const struct vkd3d_shader_register *reg,
const struct vkd3d_shader_register_range *range, enum vkd3d_shader_resource_type resource_type,
- bool is_uav_counter, struct vkd3d_descriptor_variable_info *var_info)
+ bool is_uav, bool is_uav_counter, struct vkd3d_descriptor_variable_info *var_info)
{
struct vkd3d_spirv_builder *builder = &compiler->spirv_builder;
struct vkd3d_descriptor_binding_address binding_address;
struct vkd3d_shader_descriptor_binding binding;
+ const struct vkd3d_shader_descriptor_info1 *d;
uint32_t array_type_id, ptr_type_id, var_id;
+ bool write_only = false, coherent = false;
struct vkd3d_symbol symbol;
struct rb_entry *entry;
@@ -6116,6 +6142,14 @@ static uint32_t spirv_compiler_build_descriptor_variable(struct spirv_compiler *
array_type_id = vkd3d_spirv_get_op_type_runtime_array(builder, type_id);
ptr_type_id = vkd3d_spirv_get_op_type_pointer(builder, storage_class, array_type_id);
+ if (is_uav)
+ {
+ d = spirv_compiler_get_descriptor_info(compiler, VKD3D_SHADER_DESCRIPTOR_TYPE_UAV, range);
+ write_only = !(d->flags & VKD3D_SHADER_DESCRIPTOR_INFO_FLAG_UAV_READ);
+ /* ROVs are implicitly globally coherent. */
+ coherent = d->uav_flags & (VKD3DSUF_GLOBALLY_COHERENT | VKD3DSUF_RASTERISER_ORDERED_VIEW);
+ }
+
/* Declare one array variable per Vulkan binding, and use it for
* all array declarations which map to it. */
symbol.type = VKD3D_SYMBOL_DESCRIPTOR_ARRAY;
@@ -6124,6 +6158,8 @@ static uint32_t spirv_compiler_build_descriptor_variable(struct spirv_compiler *
symbol.key.descriptor_array.set = binding.set;
symbol.key.descriptor_array.binding = binding.binding;
symbol.key.descriptor_array.push_constant_index = binding_address.push_constant_index;
+ symbol.key.descriptor_array.write_only = write_only;
+ symbol.key.descriptor_array.coherent = coherent;
if ((entry = rb_get(&compiler->symbol_table, &symbol)))
{
var_info->array_symbol = RB_ENTRY_VALUE(entry, struct vkd3d_symbol, entry);
@@ -6135,6 +6171,11 @@ static uint32_t spirv_compiler_build_descriptor_variable(struct spirv_compiler *
spirv_compiler_emit_descriptor_binding(compiler, var_id, &binding);
spirv_compiler_emit_register_debug_name(builder, var_id, reg);
+ if (write_only)
+ vkd3d_spirv_build_op_decorate(builder, var_id, SpvDecorationNonReadable, NULL, 0);
+ if (coherent)
+ vkd3d_spirv_build_op_decorate(builder, var_id, SpvDecorationCoherent, NULL, 0);
+
symbol.id = var_id;
symbol.descriptor_array = NULL;
symbol.info.descriptor_array.storage_class = storage_class;
@@ -6190,7 +6231,7 @@ static void spirv_compiler_emit_cbv_declaration(struct spirv_compiler *compiler,
vkd3d_spirv_build_op_name(builder, struct_id, "cb%u_struct", size);
var_id = spirv_compiler_build_descriptor_variable(compiler, storage_class, struct_id,
- &reg, range, VKD3D_SHADER_RESOURCE_BUFFER, false, &var_info);
+ &reg, range, VKD3D_SHADER_RESOURCE_BUFFER, false, false, &var_info);
vkd3d_symbol_make_register(&reg_symbol, &reg);
vkd3d_symbol_set_register_info(&reg_symbol, var_id, storage_class,
@@ -6247,7 +6288,7 @@ static void spirv_compiler_emit_sampler_declaration(struct spirv_compiler *compi
type_id = vkd3d_spirv_get_op_type_sampler(builder);
var_id = spirv_compiler_build_descriptor_variable(compiler, storage_class, type_id, &reg,
- range, VKD3D_SHADER_RESOURCE_NONE, false, &var_info);
+ range, VKD3D_SHADER_RESOURCE_NONE, false, false, &var_info);
vkd3d_symbol_make_register(&reg_symbol, &reg);
vkd3d_symbol_set_register_info(&reg_symbol, var_id, storage_class,
@@ -6294,26 +6335,6 @@ static SpvImageFormat image_format_for_image_read(enum vkd3d_shader_component_ty
}
}
-static const struct vkd3d_shader_descriptor_info1 *spirv_compiler_get_descriptor_info(
- struct spirv_compiler *compiler, enum vkd3d_shader_descriptor_type type,
- const struct vkd3d_shader_register_range *range)
-{
- const struct vkd3d_shader_scan_descriptor_info1 *descriptor_info = compiler->scan_descriptor_info;
- unsigned int register_last = (range->last == ~0u) ? range->first : range->last;
- const struct vkd3d_shader_descriptor_info1 *d;
- unsigned int i;
-
- for (i = 0; i < descriptor_info->descriptor_count; ++i)
- {
- d = &descriptor_info->descriptors[i];
- if (d->type == type && d->register_space == range->space && d->register_index <= range->first
- && (d->count == ~0u || d->count > register_last - d->register_index))
- return d;
- }
-
- return NULL;
-}
-
static uint32_t spirv_compiler_get_image_type_id(struct spirv_compiler *compiler,
const struct vkd3d_shader_register *reg, const struct vkd3d_shader_register_range *range,
const struct vkd3d_spirv_resource_type *resource_type_info, enum vkd3d_shader_component_type data_type,
@@ -6492,7 +6513,7 @@ static void spirv_compiler_emit_resource_declaration(struct spirv_compiler *comp
}
var_id = spirv_compiler_build_descriptor_variable(compiler, storage_class, type_id, &reg,
- range, resource_type, false, &var_info);
+ range, resource_type, is_uav, false, &var_info);
if (is_uav)
{
@@ -6500,13 +6521,6 @@ static void spirv_compiler_emit_resource_declaration(struct spirv_compiler *comp
d = spirv_compiler_get_descriptor_info(compiler, VKD3D_SHADER_DESCRIPTOR_TYPE_UAV, range);
- if (!(d->flags & VKD3D_SHADER_DESCRIPTOR_INFO_FLAG_UAV_READ))
- vkd3d_spirv_build_op_decorate(builder, var_id, SpvDecorationNonReadable, NULL, 0);
-
- /* ROVs are implicitly globally coherent. */
- if (d->uav_flags & (VKD3DSUF_GLOBALLY_COHERENT | VKD3DSUF_RASTERISER_ORDERED_VIEW))
- vkd3d_spirv_build_op_decorate(builder, var_id, SpvDecorationCoherent, NULL, 0);
-
if (d->uav_flags & VKD3DSUF_RASTERISER_ORDERED_VIEW)
{
if (compiler->shader_type != VKD3D_SHADER_TYPE_PIXEL)
@@ -6549,7 +6563,7 @@ static void spirv_compiler_emit_resource_declaration(struct spirv_compiler *comp
}
counter_var_id = spirv_compiler_build_descriptor_variable(compiler, storage_class,
- type_id, &reg, range, resource_type, true, &counter_var_info);
+ type_id, &reg, range, resource_type, false, true, &counter_var_info);
}
}
--
2.43.0

View File

@@ -1,4 +1,4 @@
From 6d2e0b68dacbece60f35c2fb77effee0a6d8b07d Mon Sep 17 00:00:00 2001
From 2d72a65d874538ec1032adaf42a28940e6b6a375 Mon Sep 17 00:00:00 2001
From: Ken Thomases <ken@codeweavers.com>
Date: Tue, 22 Jun 2021 07:56:43 +1000
Subject: [PATCH] winemac.drv: No Flicker patch
@@ -10,7 +10,7 @@ Subject: [PATCH] winemac.drv: No Flicker patch
3 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/dlls/winemac.drv/macdrv.h b/dlls/winemac.drv/macdrv.h
index 5394a3f89fe..71ebfc9ff72 100644
index f9ada39d38a..89ffa0d5825 100644
--- a/dlls/winemac.drv/macdrv.h
+++ b/dlls/winemac.drv/macdrv.h
@@ -43,6 +43,7 @@
@@ -19,10 +19,10 @@ index 5394a3f89fe..71ebfc9ff72 100644
extern BOOL allow_software_rendering;
+extern BOOL force_backing_store;
extern const char* debugstr_cf(CFTypeRef t);
extern UINT64 app_icon_callback;
extern UINT64 app_quit_request_callback;
diff --git a/dlls/winemac.drv/macdrv_main.c b/dlls/winemac.drv/macdrv_main.c
index 009d9e694a5..3c9425e6f5f 100644
index ea556aef68d..e67f17f9f43 100644
--- a/dlls/winemac.drv/macdrv_main.c
+++ b/dlls/winemac.drv/macdrv_main.c
@@ -59,6 +59,7 @@ int use_precise_scrolling = TRUE;
@@ -31,9 +31,9 @@ index 009d9e694a5..3c9425e6f5f 100644
int enable_app_nap = FALSE;
+BOOL force_backing_store = FALSE;
CFDictionaryRef localized_strings;
@@ -373,6 +374,9 @@ static void setup_options(void)
UINT64 app_icon_callback = 0;
UINT64 app_quit_request_callback = 0;
@@ -379,6 +380,9 @@ static void setup_options(void)
if (!get_config_key(hkey, appkey, "EnableAppNap", buffer, sizeof(buffer)))
enable_app_nap = IS_OPTION_TRUE(buffer[0]);

Some files were not shown because too many files have changed in this diff Show More