mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-09-13 09:17:20 -07:00
Rebase against a8c1d5c108fc57e4d78e9db126f395c89083a83d.
This commit is contained in:
parent
a16b6b9c1e
commit
5088fc67ba
@ -1,4 +1,4 @@
|
||||
From f2401390227b40c68bb97983fc028d5060a70e8c Mon Sep 17 00:00:00 2001
|
||||
From f2fe168b2ca8099c7afd06873ec77daef2ddf243 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,18 +12,18 @@ 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 9683798b57b..b4465a98794 100644
|
||||
index fe6a773d1c3..3e8eaca6b7c 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -478,6 +478,7 @@ AC_CHECK_HEADERS(\
|
||||
@@ -467,6 +467,7 @@ AC_CHECK_HEADERS(\
|
||||
sys/cdio.h \
|
||||
sys/epoll.h \
|
||||
sys/event.h \
|
||||
+ sys/eventfd.h \
|
||||
sys/extattr.h \
|
||||
sys/filio.h \
|
||||
sys/ipc.h \
|
||||
sys/link.h \
|
||||
@@ -1991,6 +1992,7 @@ AC_CHECK_FUNCS(\
|
||||
@@ -2039,6 +2040,7 @@ AC_CHECK_FUNCS(\
|
||||
port_create \
|
||||
posix_fadvise \
|
||||
posix_fallocate \
|
||||
@ -31,7 +31,7 @@ index 9683798b57b..b4465a98794 100644
|
||||
prctl \
|
||||
proc_pidinfo \
|
||||
sched_yield \
|
||||
@@ -2033,6 +2035,12 @@ case $host_os in
|
||||
@@ -2078,6 +2080,12 @@ case $host_os in
|
||||
;;
|
||||
esac
|
||||
|
||||
@ -45,10 +45,10 @@ index 9683798b57b..b4465a98794 100644
|
||||
if test "x$with_ldap" != "xno"
|
||||
then
|
||||
diff --git a/include/config.h.in b/include/config.h.in
|
||||
index 197c3b97f09..13f822cb36c 100644
|
||||
index 3a06d36bd02..b29582c6029 100644
|
||||
--- a/include/config.h.in
|
||||
+++ b/include/config.h.in
|
||||
@@ -362,6 +362,9 @@
|
||||
@@ -344,6 +344,9 @@
|
||||
/* Define to 1 if you have the `posix_fallocate' function. */
|
||||
#undef HAVE_POSIX_FALLOCATE
|
||||
|
||||
@ -58,7 +58,7 @@ index 197c3b97f09..13f822cb36c 100644
|
||||
/* Define to 1 if you have the `prctl' function. */
|
||||
#undef HAVE_PRCTL
|
||||
|
||||
@@ -434,6 +437,9 @@
|
||||
@@ -416,6 +419,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 197c3b97f09..13f822cb36c 100644
|
||||
/* Define if sigaddset is supported */
|
||||
#undef HAVE_SIGADDSET
|
||||
|
||||
@@ -574,6 +580,9 @@
|
||||
@@ -565,6 +571,9 @@
|
||||
/* Define to 1 if you have the <sys/epoll.h> header file. */
|
||||
#undef HAVE_SYS_EPOLL_H
|
||||
|
||||
@ -79,5 +79,5 @@ index 197c3b97f09..13f822cb36c 100644
|
||||
#undef HAVE_SYS_EVENT_H
|
||||
|
||||
--
|
||||
2.33.0
|
||||
2.35.1
|
||||
|
||||
|
@ -1,116 +0,0 @@
|
||||
From 691c8c2dfe1c14d968cf91f2356d4fca0611d579 Mon Sep 17 00:00:00 2001
|
||||
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
|
||||
Date: Mon, 6 Oct 2014 14:26:24 -0600
|
||||
Subject: [PATCH] ntdll: Add support for FreeBSD style extended attributes.
|
||||
|
||||
---
|
||||
configure.ac | 2 +-
|
||||
dlls/ntdll/unix/file.c | 37 +++++++++++++++++++++++++++++++++++++
|
||||
2 files changed, 38 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 57f76f09b96..b99be0623b9 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -645,7 +645,7 @@ AC_CHECK_HEADERS([libprocstat.h],,,
|
||||
|
||||
if test "x$with_xattr" != "xno"
|
||||
then
|
||||
- AC_CHECK_HEADERS(attr/xattr.h, [HAVE_XATTR=1])
|
||||
+ AC_CHECK_HEADERS(attr/xattr.h sys/extattr.h, [HAVE_XATTR=1])
|
||||
AC_CHECK_HEADERS(sys/xattr.h, [HAVE_XATTR=1]
|
||||
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/xattr.h>]], [[getxattr("", "", "", 0, 0, 0);]])],
|
||||
[AC_DEFINE(XATTR_ADDITIONAL_OPTIONS, 1, [Define if xattr functions take additional arguments (Mac OS X)])])])
|
||||
diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c
|
||||
index d4cb708336c..63fff5f7697 100644
|
||||
--- a/dlls/ntdll/unix/file.c
|
||||
+++ b/dlls/ntdll/unix/file.c
|
||||
@@ -104,6 +104,10 @@
|
||||
#elif defined(HAVE_SYS_XATTR_H)
|
||||
#include <sys/xattr.h>
|
||||
#endif
|
||||
+#ifdef HAVE_SYS_EXTATTR_H
|
||||
+#undef XATTR_ADDITIONAL_OPTIONS
|
||||
+#include <sys/extattr.h>
|
||||
+#endif
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
|
||||
@@ -364,6 +368,21 @@ NTSTATUS errno_to_status( int err )
|
||||
#ifndef XATTR_USER_PREFIX
|
||||
#define XATTR_USER_PREFIX "user."
|
||||
#endif
|
||||
+#ifndef XATTR_USER_PREFIX_LEN
|
||||
+#define XATTR_USER_PREFIX_LEN (sizeof(XATTR_USER_PREFIX) - 1)
|
||||
+#endif
|
||||
+
|
||||
+#ifdef HAVE_SYS_EXTATTR_H
|
||||
+static inline int xattr_valid_namespace( const char *name )
|
||||
+{
|
||||
+ if (strncmp( XATTR_USER_PREFIX, name, XATTR_USER_PREFIX_LEN ) != 0)
|
||||
+ {
|
||||
+ errno = EPERM;
|
||||
+ return 0;
|
||||
+ }
|
||||
+ return 1;
|
||||
+}
|
||||
+#endif
|
||||
|
||||
static int xattr_fremove( int filedes, const char *name )
|
||||
{
|
||||
@@ -371,6 +390,9 @@ static int xattr_fremove( int filedes, const char *name )
|
||||
return fremovexattr( filedes, name, 0 );
|
||||
#elif defined(HAVE_SYS_XATTR_H) || defined(HAVE_ATTR_XATTR_H)
|
||||
return fremovexattr( filedes, name );
|
||||
+#elif defined(HAVE_SYS_EXTATTR_H)
|
||||
+ if (!xattr_valid_namespace( name )) return -1;
|
||||
+ return extattr_delete_fd( filedes, EXTATTR_NAMESPACE_USER, &name[XATTR_USER_PREFIX_LEN] );
|
||||
#else
|
||||
errno = ENOSYS;
|
||||
return -1;
|
||||
@@ -383,6 +405,10 @@ static int xattr_fset( int filedes, const char *name, void *value, size_t size )
|
||||
return fsetxattr( filedes, name, value, size, 0, 0 );
|
||||
#elif defined(HAVE_SYS_XATTR_H) || defined(HAVE_ATTR_XATTR_H)
|
||||
return fsetxattr( filedes, name, value, size, 0 );
|
||||
+#elif defined(HAVE_SYS_EXTATTR_H)
|
||||
+ if (!xattr_valid_namespace( name )) return -1;
|
||||
+ return extattr_set_fd( filedes, EXTATTR_NAMESPACE_USER, &name[XATTR_USER_PREFIX_LEN],
|
||||
+ value, size );
|
||||
#else
|
||||
errno = ENOSYS;
|
||||
return -1;
|
||||
@@ -395,6 +421,10 @@ static int xattr_get( const char *path, const char *name, void *value, size_t si
|
||||
return getxattr( path, name, value, size, 0, 0 );
|
||||
#elif defined(HAVE_SYS_XATTR_H) || defined(HAVE_ATTR_XATTR_H)
|
||||
return getxattr( path, name, value, size );
|
||||
+#elif defined(HAVE_SYS_EXTATTR_H)
|
||||
+ if (!xattr_valid_namespace( name )) return -1;
|
||||
+ return extattr_get_file( path, EXTATTR_NAMESPACE_USER, &name[XATTR_USER_PREFIX_LEN],
|
||||
+ value, size );
|
||||
#else
|
||||
errno = ENOSYS;
|
||||
return -1;
|
||||
@@ -407,6 +437,9 @@ static int xattr_remove( const char *path, const char *name )
|
||||
return removexattr( path, name, 0 );
|
||||
#elif defined(HAVE_SYS_XATTR_H) || defined(HAVE_ATTR_XATTR_H)
|
||||
return removexattr( path, name );
|
||||
+#elif defined(HAVE_SYS_EXTATTR_H)
|
||||
+ if (!xattr_valid_namespace( name )) return -1;
|
||||
+ return extattr_delete_file( path, EXTATTR_NAMESPACE_USER, &name[XATTR_USER_PREFIX_LEN] );
|
||||
#else
|
||||
errno = ENOSYS;
|
||||
return -1;
|
||||
@@ -419,6 +452,10 @@ static int xattr_set( const char *path, const char *name, void *value, size_t si
|
||||
return setxattr( path, name, value, size, 0, 0 );
|
||||
#elif defined(HAVE_SYS_XATTR_H) || defined(HAVE_ATTR_XATTR_H)
|
||||
return setxattr( path, name, value, size, 0 );
|
||||
+#elif defined(HAVE_SYS_EXTATTR_H)
|
||||
+ if (!xattr_valid_namespace( name )) return -1;
|
||||
+ return extattr_set_file( path, EXTATTR_NAMESPACE_USER, &name[XATTR_USER_PREFIX_LEN],
|
||||
+ value, size );
|
||||
#else
|
||||
errno = ENOSYS;
|
||||
return -1;
|
||||
--
|
||||
2.33.0
|
||||
|
@ -1,7 +1,7 @@
|
||||
From a3eedb8eb82f841ae48633d1e3c0416a362ccd34 Mon Sep 17 00:00:00 2001
|
||||
From beaeb1935534ce99aa19b8009184b07bd602a24c Mon Sep 17 00:00:00 2001
|
||||
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
|
||||
Date: Sat, 3 Sep 2022 11:23:31 -0600
|
||||
Subject: ntdll: Follow reparse points during path resolution.
|
||||
Subject: [PATCH] ntdll: Follow reparse points during path resolution.
|
||||
|
||||
Signed-off-by: Erich E. Hoover <erich.e.hoover@gmail.com>
|
||||
---
|
||||
@ -44,10 +44,10 @@ index 390768f557d..a0b84849490 100644
|
||||
ok(bret, "Failed to remove temporary reparse point directory!\n");
|
||||
bret = RemoveDirectoryW(target_path);
|
||||
diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c
|
||||
index 9ae5e194c6d..ba844e90272 100644
|
||||
index 9211c6964a6..e90670ffc71 100644
|
||||
--- a/dlls/ntdll/unix/file.c
|
||||
+++ b/dlls/ntdll/unix/file.c
|
||||
@@ -3516,6 +3516,35 @@ done:
|
||||
@@ -3548,6 +3548,35 @@ done:
|
||||
}
|
||||
|
||||
|
||||
@ -83,7 +83,7 @@ index 9ae5e194c6d..ba844e90272 100644
|
||||
/*
|
||||
* Retrieve the unix name corresponding to a file handle, remove that directory, and then symlink
|
||||
* the requested directory to the location of the old directory.
|
||||
@@ -3692,16 +3721,14 @@ cleanup:
|
||||
@@ -3724,16 +3753,14 @@ cleanup:
|
||||
|
||||
|
||||
/*
|
||||
@ -102,7 +102,7 @@ index 9ae5e194c6d..ba844e90272 100644
|
||||
char *encoded = NULL;
|
||||
int link_dir_fd = -1;
|
||||
NTSTATUS status;
|
||||
@@ -3709,9 +3736,6 @@ NTSTATUS get_reparse_point(HANDLE handle, REPARSE_DATA_BUFFER *buffer, ULONG *si
|
||||
@@ -3741,9 +3768,6 @@ NTSTATUS get_reparse_point(HANDLE handle, REPARSE_DATA_BUFFER *buffer, ULONG *si
|
||||
int depth;
|
||||
char *p;
|
||||
|
||||
@ -112,7 +112,7 @@ index 9ae5e194c6d..ba844e90272 100644
|
||||
ret = readlink( unix_name, link_path, sizeof(link_path) );
|
||||
if (ret < 0)
|
||||
{
|
||||
@@ -3811,12 +3835,76 @@ NTSTATUS get_reparse_point(HANDLE handle, REPARSE_DATA_BUFFER *buffer, ULONG *si
|
||||
@@ -3843,12 +3867,76 @@ NTSTATUS get_reparse_point(HANDLE handle, REPARSE_DATA_BUFFER *buffer, ULONG *si
|
||||
|
||||
cleanup:
|
||||
if (link_dir_fd != -1) close( link_dir_fd );
|
||||
@ -190,7 +190,7 @@ index 9ae5e194c6d..ba844e90272 100644
|
||||
/*
|
||||
* Retrieve the unix name corresponding to a file handle, remove that symlink, and then recreate
|
||||
* a directory at the location of the old filename.
|
||||
@@ -3910,15 +3998,25 @@ cleanup:
|
||||
@@ -3942,15 +4030,25 @@ cleanup:
|
||||
}
|
||||
|
||||
|
||||
@ -218,7 +218,7 @@ index 9ae5e194c6d..ba844e90272 100644
|
||||
NTSTATUS status;
|
||||
int ret;
|
||||
struct stat st;
|
||||
@@ -3975,6 +4073,8 @@ static NTSTATUS lookup_unix_name( const WCHAR *name, int name_len, char **buffer
|
||||
@@ -4007,6 +4105,8 @@ static NTSTATUS lookup_unix_name( const WCHAR *name, int name_len, char **buffer
|
||||
while (name_len)
|
||||
{
|
||||
const WCHAR *end, *next;
|
||||
@ -227,7 +227,7 @@ index 9ae5e194c6d..ba844e90272 100644
|
||||
|
||||
end = name;
|
||||
while (end < name + name_len && *end != '\\') end++;
|
||||
@@ -3994,8 +4094,31 @@ static NTSTATUS lookup_unix_name( const WCHAR *name, int name_len, char **buffer
|
||||
@@ -4026,8 +4126,31 @@ static NTSTATUS lookup_unix_name( const WCHAR *name, int name_len, char **buffer
|
||||
|
||||
status = find_file_in_dir( unix_name, pos, name, end - name, is_unix );
|
||||
|
||||
@ -260,7 +260,7 @@ index 9ae5e194c6d..ba844e90272 100644
|
||||
{
|
||||
if (status == STATUS_OBJECT_NAME_NOT_FOUND)
|
||||
{
|
||||
@@ -4034,12 +4157,12 @@ static NTSTATUS lookup_unix_name( const WCHAR *name, int name_len, char **buffer
|
||||
@@ -4066,12 +4189,12 @@ static NTSTATUS lookup_unix_name( const WCHAR *name, int name_len, char **buffer
|
||||
/******************************************************************************
|
||||
* nt_to_unix_file_name_no_root
|
||||
*/
|
||||
@ -275,7 +275,7 @@ index 9ae5e194c6d..ba844e90272 100644
|
||||
NTSTATUS status = STATUS_SUCCESS;
|
||||
const WCHAR *name;
|
||||
struct stat st;
|
||||
@@ -4129,7 +4252,7 @@ static NTSTATUS nt_to_unix_file_name_no_root( const UNICODE_STRING *nameW, char
|
||||
@@ -4161,7 +4284,7 @@ static NTSTATUS nt_to_unix_file_name_no_root( const UNICODE_STRING *nameW, char
|
||||
name += prefix_len;
|
||||
name_len -= prefix_len;
|
||||
|
||||
@ -284,17 +284,17 @@ index 9ae5e194c6d..ba844e90272 100644
|
||||
if (status == STATUS_SUCCESS || status == STATUS_NO_SUCH_FILE)
|
||||
{
|
||||
TRACE( "%s -> %s\n", debugstr_us(nameW), debugstr_a(unix_name) );
|
||||
@@ -4137,7 +4260,8 @@ static NTSTATUS nt_to_unix_file_name_no_root( const UNICODE_STRING *nameW, char
|
||||
@@ -4169,7 +4292,8 @@ static NTSTATUS nt_to_unix_file_name_no_root( const UNICODE_STRING *nameW, char
|
||||
}
|
||||
else
|
||||
{
|
||||
- TRACE( "%s not found in %s\n", debugstr_w(name), unix_name );
|
||||
- TRACE( "%s not found in %s\n", debugstr_w(name), debugstr_an(unix_name, pos) );
|
||||
+ if (status != STATUS_REPARSE)
|
||||
+ TRACE( "%s not found in %s\n", debugstr_w(name), unix_name );
|
||||
+ TRACE( "%s not found in %s\n", debugstr_w(name), debugstr_an(unix_name, pos) );
|
||||
free( unix_name );
|
||||
}
|
||||
return status;
|
||||
@@ -4155,18 +4279,30 @@ static NTSTATUS nt_to_unix_file_name_no_root( const UNICODE_STRING *nameW, char
|
||||
@@ -4187,18 +4311,30 @@ static NTSTATUS nt_to_unix_file_name_no_root( const UNICODE_STRING *nameW, char
|
||||
*/
|
||||
NTSTATUS nt_to_unix_file_name( const OBJECT_ATTRIBUTES *attr, char **name_ret, UINT disposition )
|
||||
{
|
||||
@ -329,7 +329,7 @@ index 9ae5e194c6d..ba844e90272 100644
|
||||
|
||||
if (name_len && name[0] == '\\') return STATUS_INVALID_PARAMETER;
|
||||
|
||||
@@ -4174,7 +4310,7 @@ NTSTATUS nt_to_unix_file_name( const OBJECT_ATTRIBUTES *attr, char **name_ret, U
|
||||
@@ -4206,7 +4342,7 @@ NTSTATUS nt_to_unix_file_name( const OBJECT_ATTRIBUTES *attr, char **name_ret, U
|
||||
if (!(unix_name = malloc( unix_len ))) return STATUS_NO_MEMORY;
|
||||
unix_name[0] = '.';
|
||||
|
||||
@ -338,7 +338,7 @@ index 9ae5e194c6d..ba844e90272 100644
|
||||
{
|
||||
if (type != FD_TYPE_DIR)
|
||||
{
|
||||
@@ -4186,7 +4322,8 @@ NTSTATUS nt_to_unix_file_name( const OBJECT_ATTRIBUTES *attr, char **name_ret, U
|
||||
@@ -4218,7 +4354,8 @@ NTSTATUS nt_to_unix_file_name( const OBJECT_ATTRIBUTES *attr, char **name_ret, U
|
||||
mutex_lock( &dir_mutex );
|
||||
if ((old_cwd = open( ".", O_RDONLY )) != -1 && fchdir( root_fd ) != -1)
|
||||
{
|
||||
@ -348,7 +348,7 @@ index 9ae5e194c6d..ba844e90272 100644
|
||||
if (fchdir( old_cwd ) == -1) chdir( "/" );
|
||||
}
|
||||
else status = errno_to_status( errno );
|
||||
@@ -4199,14 +4336,22 @@ NTSTATUS nt_to_unix_file_name( const OBJECT_ATTRIBUTES *attr, char **name_ret, U
|
||||
@@ -4231,14 +4368,22 @@ NTSTATUS nt_to_unix_file_name( const OBJECT_ATTRIBUTES *attr, char **name_ret, U
|
||||
|
||||
if (status == STATUS_SUCCESS || status == STATUS_NO_SUCH_FILE)
|
||||
{
|
||||
@ -373,5 +373,5 @@ index 9ae5e194c6d..ba844e90272 100644
|
||||
}
|
||||
|
||||
--
|
||||
2.17.1
|
||||
2.35.1
|
||||
|
||||
|
@ -51,7 +51,7 @@ usage()
|
||||
# Get the upstream commit sha
|
||||
upstream_commit()
|
||||
{
|
||||
echo "053ee2d23d825f800baa16e455a218834aa2dec0"
|
||||
echo "a8c1d5c108fc57e4d78e9db126f395c89083a83d"
|
||||
}
|
||||
|
||||
# Show version information
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 21c24cc9858431164dadf4882e83831c216defef Mon Sep 17 00:00:00 2001
|
||||
From 565e6c2d8207d6014bd8d22015419fc587329e0e Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?R=C3=A9mi=20Bernon?= <rbernon@codeweavers.com>
|
||||
Date: Thu, 25 Mar 2021 14:26:35 +0100
|
||||
Subject: [PATCH] user32: Support sending RIM_TYPEMOUSE through
|
||||
@ -10,10 +10,10 @@ Subject: [PATCH] user32: Support sending RIM_TYPEMOUSE through
|
||||
2 files changed, 9 insertions(+)
|
||||
|
||||
diff --git a/dlls/win32u/message.c b/dlls/win32u/message.c
|
||||
index 72b0e77fc6d..67926b79d89 100644
|
||||
index 60deeb38bce..0167c35b53b 100644
|
||||
--- a/dlls/win32u/message.c
|
||||
+++ b/dlls/win32u/message.c
|
||||
@@ -1932,6 +1932,12 @@ NTSTATUS send_hardware_message( HWND hwnd, const INPUT *input, const RAWINPUT *r
|
||||
@@ -2622,6 +2622,12 @@ NTSTATUS send_hardware_message( HWND hwnd, const INPUT *input, const RAWINPUT *r
|
||||
req->input.hw.rawinput.type = rawinput->header.dwType;
|
||||
switch (rawinput->header.dwType)
|
||||
{
|
||||
@ -27,10 +27,10 @@ index 72b0e77fc6d..67926b79d89 100644
|
||||
req->input.hw.rawinput.hid.device = HandleToUlong( rawinput->header.hDevice );
|
||||
req->input.hw.rawinput.hid.param = rawinput->header.wParam;
|
||||
diff --git a/server/queue.c b/server/queue.c
|
||||
index 950a2cdce22..46a7870d7d1 100644
|
||||
index bec57c85d1a..a7b8ce35347 100644
|
||||
--- a/server/queue.c
|
||||
+++ b/server/queue.c
|
||||
@@ -2101,6 +2101,9 @@ static void queue_custom_hardware_message( struct desktop *desktop, user_handle_
|
||||
@@ -2042,6 +2042,9 @@ static void queue_custom_hardware_message( struct desktop *desktop, user_handle_
|
||||
msg_data->size = sizeof(*msg_data) + report_size;
|
||||
msg_data->rawinput = input->hw.rawinput;
|
||||
|
||||
@ -38,8 +38,8 @@ index 950a2cdce22..46a7870d7d1 100644
|
||||
+ msg_data->flags = input->hw.lparam;
|
||||
+
|
||||
enum_processes( queue_rawinput_message, &raw_msg );
|
||||
|
||||
if (raw_msg.foreground) release_object( raw_msg.foreground );
|
||||
return;
|
||||
}
|
||||
--
|
||||
2.35.1
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 13edfeb4deb5766367080ff778d16d94b5afbabc Mon Sep 17 00:00:00 2001
|
||||
From e18ad6deca23d2e49f898692a3127f58fd5cc5d8 Mon Sep 17 00:00:00 2001
|
||||
From: Paul Gofman <gofmanp@gmail.com>
|
||||
Date: Mon, 25 Feb 2019 13:17:01 +0300
|
||||
Subject: [PATCH] wined3d: Use UBO for vertex shader float constants if
|
||||
@ -16,36 +16,36 @@ Subject: [PATCH] wined3d: Use UBO for vertex shader float constants if
|
||||
8 files changed, 148 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3d8/directx.c b/dlls/d3d8/directx.c
|
||||
index 3818cb79952..f5ae6af08ad 100644
|
||||
index 973c7fea779..3c2f270015e 100644
|
||||
--- a/dlls/d3d8/directx.c
|
||||
+++ b/dlls/d3d8/directx.c
|
||||
@@ -476,7 +476,7 @@ BOOL d3d8_init(struct d3d8 *d3d8)
|
||||
DWORD flags = WINED3D_LEGACY_DEPTH_BIAS | WINED3D_VIDMEM_ACCOUNTING
|
||||
| WINED3D_HANDLE_RESTORE | WINED3D_PIXEL_CENTER_INTEGER
|
||||
| WINED3D_LEGACY_UNBOUND_RESOURCE_COLOR | WINED3D_NO_PRIMITIVE_RESTART
|
||||
- | WINED3D_LEGACY_CUBEMAP_FILTERING;
|
||||
+ | WINED3D_LEGACY_CUBEMAP_FILTERING | WINED3D_LEGACY_SHADER_CONSTANTS;
|
||||
- | WINED3D_LEGACY_CUBEMAP_FILTERING | WINED3D_NO_DRAW_INDIRECT;
|
||||
+ | WINED3D_LEGACY_CUBEMAP_FILTERING | WINED3D_NO_DRAW_INDIRECT | WINED3D_LEGACY_SHADER_CONSTANTS;
|
||||
unsigned int adapter_idx, output_idx, adapter_count, output_count = 0;
|
||||
struct wined3d_adapter *wined3d_adapter;
|
||||
|
||||
diff --git a/dlls/d3d9/directx.c b/dlls/d3d9/directx.c
|
||||
index a1ebc986226..7ac9e9010ec 100644
|
||||
index 64291c586bb..cd76dfdcf74 100644
|
||||
--- a/dlls/d3d9/directx.c
|
||||
+++ b/dlls/d3d9/directx.c
|
||||
@@ -686,7 +686,7 @@ BOOL d3d9_init(struct d3d9 *d3d9, BOOL extended)
|
||||
@@ -685,7 +685,7 @@ BOOL d3d9_init(struct d3d9 *d3d9, BOOL extended)
|
||||
DWORD flags = WINED3D_PRESENT_CONVERSION | WINED3D_HANDLE_RESTORE | WINED3D_PIXEL_CENTER_INTEGER
|
||||
| WINED3D_SRGB_READ_WRITE_CONTROL | WINED3D_LEGACY_UNBOUND_RESOURCE_COLOR
|
||||
| WINED3D_NO_PRIMITIVE_RESTART | WINED3D_LEGACY_CUBEMAP_FILTERING
|
||||
- | WINED3D_NORMALIZED_DEPTH_BIAS;
|
||||
+ | WINED3D_NORMALIZED_DEPTH_BIAS | WINED3D_LEGACY_SHADER_CONSTANTS;
|
||||
- | WINED3D_NORMALIZED_DEPTH_BIAS | WINED3D_NO_DRAW_INDIRECT;
|
||||
+ | WINED3D_NORMALIZED_DEPTH_BIAS | WINED3D_NO_DRAW_INDIRECT | WINED3D_LEGACY_SHADER_CONSTANTS;
|
||||
unsigned int adapter_idx, output_idx, adapter_count, output_count = 0;
|
||||
struct wined3d_adapter *wined3d_adapter;
|
||||
|
||||
diff --git a/dlls/wined3d/adapter_gl.c b/dlls/wined3d/adapter_gl.c
|
||||
index 9328ae3d587..01a9cf990f9 100644
|
||||
index 60a168b5cef..02643b7b3fe 100644
|
||||
--- a/dlls/wined3d/adapter_gl.c
|
||||
+++ b/dlls/wined3d/adapter_gl.c
|
||||
@@ -3113,6 +3113,9 @@ static void wined3d_adapter_init_limits(struct wined3d_gl_info *gl_info)
|
||||
@@ -3095,6 +3095,9 @@ static void wined3d_adapter_init_limits(struct wined3d_gl_info *gl_info)
|
||||
gl_info->limits.uniform_blocks[WINED3D_SHADER_TYPE_VERTEX] = min(gl_max, WINED3D_MAX_CBS);
|
||||
TRACE("Max vertex uniform blocks: %u (%d).\n",
|
||||
gl_info->limits.uniform_blocks[WINED3D_SHADER_TYPE_VERTEX], gl_max);
|
||||
@ -56,10 +56,10 @@ index 9328ae3d587..01a9cf990f9 100644
|
||||
}
|
||||
if (gl_info->supported[ARB_TESSELLATION_SHADER])
|
||||
diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
|
||||
index adfbf60e726..c68a3ad3d55 100644
|
||||
index 40b5442ed04..3e3f9f79da0 100644
|
||||
--- a/dlls/wined3d/glsl_shader.c
|
||||
+++ b/dlls/wined3d/glsl_shader.c
|
||||
@@ -135,6 +135,10 @@ struct shader_glsl_priv
|
||||
@@ -132,6 +132,10 @@ struct shader_glsl_priv
|
||||
unsigned char *stack;
|
||||
UINT next_constant_version;
|
||||
|
||||
@ -70,7 +70,7 @@ index adfbf60e726..c68a3ad3d55 100644
|
||||
const struct wined3d_vertex_pipe_ops *vertex_pipe;
|
||||
const struct wined3d_fragment_pipe_ops *fragment_pipe;
|
||||
struct wine_rb_tree ffp_vertex_shaders;
|
||||
@@ -186,6 +190,7 @@ struct glsl_vs_program
|
||||
@@ -183,6 +187,7 @@ struct glsl_vs_program
|
||||
GLint pointsize_l_att_location;
|
||||
GLint pointsize_q_att_location;
|
||||
GLint clip_planes_location;
|
||||
@ -78,7 +78,7 @@ index adfbf60e726..c68a3ad3d55 100644
|
||||
};
|
||||
|
||||
struct glsl_hs_program
|
||||
@@ -283,6 +288,7 @@ struct glsl_context_data
|
||||
@@ -280,6 +285,7 @@ struct glsl_context_data
|
||||
struct glsl_shader_prog_link *glsl_program;
|
||||
GLenum vertex_color_clamp;
|
||||
BOOL rasterization_disabled;
|
||||
@ -86,7 +86,7 @@ index adfbf60e726..c68a3ad3d55 100644
|
||||
};
|
||||
|
||||
struct glsl_ps_compiled_shader
|
||||
@@ -1182,12 +1188,54 @@ static void walk_constant_heap_clamped(const struct wined3d_gl_info *gl_info,
|
||||
@@ -1179,12 +1185,54 @@ static void walk_constant_heap_clamped(const struct wined3d_gl_info *gl_info,
|
||||
checkGLcall("walk_constant_heap_clamped()");
|
||||
}
|
||||
|
||||
@ -142,7 +142,7 @@ index adfbf60e726..c68a3ad3d55 100644
|
||||
|
||||
/* 1.X pshaders have the constants clamped to [-1;1] implicitly. */
|
||||
if (shader->reg_maps.shader_version.major == 1
|
||||
@@ -1522,7 +1570,7 @@ static void shader_glsl_load_constants(void *shader_priv, struct wined3d_context
|
||||
@@ -1517,7 +1565,7 @@ static void shader_glsl_load_constants(void *shader_priv, struct wined3d_context
|
||||
{
|
||||
const struct wined3d_shader *vshader = state->shader[WINED3D_SHADER_TYPE_VERTEX];
|
||||
const struct wined3d_shader *pshader = state->shader[WINED3D_SHADER_TYPE_PIXEL];
|
||||
@ -151,7 +151,7 @@ index adfbf60e726..c68a3ad3d55 100644
|
||||
struct wined3d_context_gl *context_gl = wined3d_context_gl(context);
|
||||
struct glsl_shader_prog_link *prog = ctx_data->glsl_program;
|
||||
const struct wined3d_gl_info *gl_info = context_gl->gl_info;
|
||||
@@ -1539,9 +1587,32 @@ static void shader_glsl_load_constants(void *shader_priv, struct wined3d_context
|
||||
@@ -1534,9 +1582,32 @@ static void shader_glsl_load_constants(void *shader_priv, struct wined3d_context
|
||||
constant_version = prog->constant_version;
|
||||
update_mask = context->constant_update_mask & prog->constant_update_mask;
|
||||
|
||||
@ -185,7 +185,7 @@ index adfbf60e726..c68a3ad3d55 100644
|
||||
|
||||
if (update_mask & WINED3D_SHADER_CONST_VS_I)
|
||||
shader_glsl_load_constants_i(vshader, gl_info, state->vs_consts_i,
|
||||
@@ -1694,7 +1765,7 @@ static void shader_glsl_load_constants(void *shader_priv, struct wined3d_context
|
||||
@@ -1689,7 +1760,7 @@ static void shader_glsl_load_constants(void *shader_priv, struct wined3d_context
|
||||
|
||||
if (update_mask & WINED3D_SHADER_CONST_PS_F)
|
||||
shader_glsl_load_constants_f(pshader, gl_info, state->ps_consts_f,
|
||||
@ -194,7 +194,7 @@ index adfbf60e726..c68a3ad3d55 100644
|
||||
|
||||
if (update_mask & WINED3D_SHADER_CONST_PS_I)
|
||||
shader_glsl_load_constants_i(pshader, gl_info, state->ps_consts_i,
|
||||
@@ -1833,6 +1904,12 @@ static void shader_glsl_update_float_vertex_constants(struct wined3d_device *dev
|
||||
@@ -1828,6 +1899,12 @@ static void shader_glsl_update_float_vertex_constants(struct wined3d_device *dev
|
||||
struct constant_heap *heap = &priv->vconst_heap;
|
||||
UINT i;
|
||||
|
||||
@ -207,7 +207,7 @@ index adfbf60e726..c68a3ad3d55 100644
|
||||
for (i = start; i < count + start; ++i)
|
||||
{
|
||||
update_heap_entry(heap, i, priv->next_constant_version);
|
||||
@@ -1845,6 +1922,9 @@ static void shader_glsl_update_float_pixel_constants(struct wined3d_device *devi
|
||||
@@ -1840,6 +1917,9 @@ static void shader_glsl_update_float_pixel_constants(struct wined3d_device *devi
|
||||
struct constant_heap *heap = &priv->pconst_heap;
|
||||
UINT i;
|
||||
|
||||
@ -217,7 +217,7 @@ index adfbf60e726..c68a3ad3d55 100644
|
||||
for (i = start; i < count + start; ++i)
|
||||
{
|
||||
update_heap_entry(heap, i, priv->next_constant_version);
|
||||
@@ -2162,6 +2242,7 @@ static void shader_generate_glsl_declarations(const struct wined3d_context_gl *c
|
||||
@@ -2157,6 +2237,7 @@ static void shader_generate_glsl_declarations(const struct wined3d_context_gl *c
|
||||
const struct wined3d_shader_reg_maps *reg_maps, const struct shader_glsl_ctx_priv *ctx_priv)
|
||||
{
|
||||
const struct wined3d_shader_version *version = ®_maps->shader_version;
|
||||
@ -225,7 +225,7 @@ index adfbf60e726..c68a3ad3d55 100644
|
||||
const struct vs_compile_args *vs_args = ctx_priv->cur_vs_args;
|
||||
const struct ps_compile_args *ps_args = ctx_priv->cur_ps_args;
|
||||
const struct wined3d_gl_info *gl_info = context_gl->gl_info;
|
||||
@@ -2185,7 +2266,15 @@ static void shader_generate_glsl_declarations(const struct wined3d_context_gl *c
|
||||
@@ -2190,7 +2271,15 @@ static void shader_generate_glsl_declarations(const struct wined3d_context_gl *c
|
||||
}
|
||||
|
||||
/* Declare the constants (aka uniforms) */
|
||||
@ -242,7 +242,7 @@ index adfbf60e726..c68a3ad3d55 100644
|
||||
{
|
||||
unsigned max_constantsF;
|
||||
|
||||
@@ -2250,11 +2339,12 @@ static void shader_generate_glsl_declarations(const struct wined3d_context_gl *c
|
||||
@@ -2255,11 +2344,12 @@ static void shader_generate_glsl_declarations(const struct wined3d_context_gl *c
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -257,7 +257,7 @@ index adfbf60e726..c68a3ad3d55 100644
|
||||
}
|
||||
|
||||
/* Always declare the full set of constants, the compiler can remove the
|
||||
@@ -9933,17 +10023,36 @@ static struct glsl_ffp_fragment_shader *shader_glsl_find_ffp_fragment_shader(str
|
||||
@@ -9942,17 +10032,36 @@ static struct glsl_ffp_fragment_shader *shader_glsl_find_ffp_fragment_shader(str
|
||||
|
||||
|
||||
static void shader_glsl_init_vs_uniform_locations(const struct wined3d_gl_info *gl_info,
|
||||
@ -299,7 +299,7 @@ index adfbf60e726..c68a3ad3d55 100644
|
||||
|
||||
for (i = 0; i < WINED3D_MAX_CONSTS_I; ++i)
|
||||
{
|
||||
@@ -11021,6 +11130,7 @@ static HRESULT shader_glsl_alloc(struct wined3d_device *device, const struct win
|
||||
@@ -11024,6 +11133,7 @@ static HRESULT shader_glsl_alloc(struct wined3d_device *device, const struct win
|
||||
const struct wined3d_fragment_pipe_ops *fragment_pipe)
|
||||
{
|
||||
SIZE_T stack_size = wined3d_log2i(max(WINED3D_MAX_VS_CONSTS_F, WINED3D_MAX_PS_CONSTS_F)) + 1;
|
||||
@ -307,7 +307,7 @@ index adfbf60e726..c68a3ad3d55 100644
|
||||
struct fragment_caps fragment_caps;
|
||||
void *vertex_priv, *fragment_priv;
|
||||
struct shader_glsl_priv *priv;
|
||||
@@ -11028,6 +11138,8 @@ static HRESULT shader_glsl_alloc(struct wined3d_device *device, const struct win
|
||||
@@ -11031,6 +11141,8 @@ static HRESULT shader_glsl_alloc(struct wined3d_device *device, const struct win
|
||||
if (!(priv = heap_alloc_zero(sizeof(*priv))))
|
||||
return E_OUTOFMEMORY;
|
||||
|
||||
@ -316,7 +316,7 @@ index adfbf60e726..c68a3ad3d55 100644
|
||||
string_buffer_list_init(&priv->string_buffers);
|
||||
|
||||
if (!(vertex_priv = vertex_pipe->vp_alloc(&glsl_shader_backend, priv)))
|
||||
@@ -11082,6 +11194,8 @@ static HRESULT shader_glsl_alloc(struct wined3d_device *device, const struct win
|
||||
@@ -11085,6 +11197,8 @@ static HRESULT shader_glsl_alloc(struct wined3d_device *device, const struct win
|
||||
device->fragment_priv = fragment_priv;
|
||||
device->shader_priv = priv;
|
||||
|
||||
@ -325,7 +325,7 @@ index adfbf60e726..c68a3ad3d55 100644
|
||||
return WINED3D_OK;
|
||||
|
||||
fail:
|
||||
@@ -11109,6 +11223,13 @@ static void shader_glsl_free(struct wined3d_device *device, struct wined3d_conte
|
||||
@@ -11112,6 +11226,13 @@ static void shader_glsl_free(struct wined3d_device *device, struct wined3d_conte
|
||||
priv->fragment_pipe->free_private(device, context);
|
||||
priv->vertex_pipe->vp_free(device, context);
|
||||
|
||||
@ -340,10 +340,10 @@ index adfbf60e726..c68a3ad3d55 100644
|
||||
device->shader_priv = NULL;
|
||||
}
|
||||
diff --git a/dlls/wined3d/shader.c b/dlls/wined3d/shader.c
|
||||
index 957710dbd43..896e8d37690 100644
|
||||
index c2e77021bb3..3c22e01094e 100644
|
||||
--- a/dlls/wined3d/shader.c
|
||||
+++ b/dlls/wined3d/shader.c
|
||||
@@ -767,6 +767,8 @@ static BOOL shader_record_register_usage(struct wined3d_shader *shader, struct w
|
||||
@@ -765,6 +765,8 @@ static BOOL shader_record_register_usage(struct wined3d_shader *shader, struct w
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -353,10 +353,10 @@ index 957710dbd43..896e8d37690 100644
|
||||
}
|
||||
}
|
||||
diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
|
||||
index a39eefa4387..566404d7887 100644
|
||||
index ee3e083e812..0569eafd48f 100644
|
||||
--- a/dlls/wined3d/state.c
|
||||
+++ b/dlls/wined3d/state.c
|
||||
@@ -4569,6 +4569,11 @@ static void state_cb(struct wined3d_context *context, const struct wined3d_state
|
||||
@@ -4594,6 +4594,11 @@ static void state_cb(struct wined3d_context *context, const struct wined3d_state
|
||||
struct wined3d_bo_gl *bo_gl;
|
||||
|
||||
TRACE("context %p, state %p, state_id %#x.\n", context, state, state_id);
|
||||
@ -369,10 +369,10 @@ index a39eefa4387..566404d7887 100644
|
||||
if (STATE_IS_GRAPHICS_CONSTANT_BUFFER(state_id))
|
||||
shader_type = state_id - STATE_GRAPHICS_CONSTANT_BUFFER(0);
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index 08f5dc6b862..6503c6cd38a 100644
|
||||
index b7d3b579ed2..8b1ac25321f 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -1138,6 +1138,7 @@ struct wined3d_shader_reg_maps
|
||||
@@ -1217,6 +1217,7 @@ struct wined3d_shader_reg_maps
|
||||
struct wined3d_shader_tgsm *tgsm;
|
||||
SIZE_T tgsm_capacity;
|
||||
unsigned int tgsm_count;
|
||||
@ -380,7 +380,7 @@ index 08f5dc6b862..6503c6cd38a 100644
|
||||
};
|
||||
|
||||
/* Keeps track of details for TEX_M#x# instructions which need to maintain
|
||||
@@ -3259,6 +3260,7 @@ struct wined3d_gl_limits
|
||||
@@ -3355,6 +3356,7 @@ struct wined3d_gl_limits
|
||||
UINT glsl_varyings;
|
||||
UINT glsl_vs_float_constants;
|
||||
UINT glsl_ps_float_constants;
|
||||
@ -389,17 +389,17 @@ index 08f5dc6b862..6503c6cd38a 100644
|
||||
UINT arb_vs_float_constants;
|
||||
UINT arb_vs_native_constants;
|
||||
diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h
|
||||
index 9c17135570c..6c865929836 100644
|
||||
index a18dcda45be..14c89680771 100644
|
||||
--- a/include/wine/wined3d.h
|
||||
+++ b/include/wine/wined3d.h
|
||||
@@ -1343,6 +1343,7 @@ enum wined3d_pipeline
|
||||
#define WINED3D_NO_PRIMITIVE_RESTART 0x00000800
|
||||
@@ -1323,6 +1323,7 @@ enum wined3d_memory_segment_group
|
||||
#define WINED3D_LEGACY_CUBEMAP_FILTERING 0x00001000
|
||||
#define WINED3D_NORMALIZED_DEPTH_BIAS 0x00002000
|
||||
+#define WINED3D_LEGACY_SHADER_CONSTANTS 0x00004000
|
||||
#define WINED3D_NO_DRAW_INDIRECT 0x00004000
|
||||
+#define WINED3D_LEGACY_SHADER_CONSTANTS 0x00008000
|
||||
|
||||
#define WINED3D_RESZ_CODE 0x7fa05000
|
||||
|
||||
--
|
||||
2.33.0
|
||||
2.35.1
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 98ceaf4ecb3682152baebf2aa38d2de839ac7cea Mon Sep 17 00:00:00 2001
|
||||
From 1791ceee2e4f4c677ef65aef8dd79c85fb06d947 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Sat, 30 Jul 2022 18:08:00 +1000
|
||||
Subject: [PATCH] winspool.drv: Add more tracing to ClosePrinter
|
||||
@ -8,17 +8,17 @@ Subject: [PATCH] winspool.drv: Add more tracing to ClosePrinter
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/dlls/winspool.drv/info.c b/dlls/winspool.drv/info.c
|
||||
index e1cd0338207..0faced259e5 100644
|
||||
index 5a74cb29bd9..fe6782daf40 100644
|
||||
--- a/dlls/winspool.drv/info.c
|
||||
+++ b/dlls/winspool.drv/info.c
|
||||
@@ -2857,15 +2857,18 @@ BOOL WINAPI ClosePrinter(HANDLE hPrinter)
|
||||
@@ -2925,15 +2925,18 @@ BOOL WINAPI ClosePrinter(HANDLE hPrinter)
|
||||
LIST_FOR_EACH_SAFE(cursor, cursor2, &printer->queue->jobs)
|
||||
{
|
||||
job_t *job = LIST_ENTRY(cursor, job_t, entry);
|
||||
+ TRACE("Scheduling Job: %p\n", job);
|
||||
ScheduleJob(hPrinter, job->job_id);
|
||||
}
|
||||
HeapFree(GetProcessHeap(), 0, printer->queue);
|
||||
free(printer->queue);
|
||||
}
|
||||
|
||||
if (printer->backend_printer) {
|
||||
|
@ -1 +1 @@
|
||||
384b0b35c357ca31ccb080162e1f39f93ec70054
|
||||
a8c1d5c108fc57e4d78e9db126f395c89083a83d
|
||||
|
Loading…
Reference in New Issue
Block a user