Rebase against 8f443077416fd820375b1bc0d1276286d23348fc.

The pulseaudio patchset is temporarily disabled in this commit because the
upstream merge introduced several bugs. It will be reenabled in one of the
next commits.
This commit is contained in:
Sebastian Lackner 2015-11-03 17:04:15 +01:00
parent d5a263093f
commit 1d24dc8141
25 changed files with 71 additions and 769 deletions

View File

@ -175,7 +175,7 @@ for more details.*
* GetSecurityInfo returns NULL DACL for process object ([Wine Bug #15980](https://bugs.winehq.org/show_bug.cgi?id=15980))
* Globally invalidate key state on changes in other threads ([Wine Bug #29871](https://bugs.winehq.org/show_bug.cgi?id=29871))
* Graphical issues in Inquisitor ([Wine Bug #32490](https://bugs.winehq.org/show_bug.cgi?id=32490))
* IEnumSTATSTG::Next should zero out returned stats when enumeration ends
* ~~IEnumSTATSTG::Next should zero out returned stats when enumeration ends~~
* Implement AMStream GetMultiMediaStream functions ([Wine Bug #37090](https://bugs.winehq.org/show_bug.cgi?id=37090))
* Implement D3DXGetShaderOutputSemantics
* Implement DDENUMSURFACES_CANBECREATED in IDirectDraw7::EnumSurfaces ([Wine Bug #17233](https://bugs.winehq.org/show_bug.cgi?id=17233))
@ -194,7 +194,7 @@ for more details.*
* Implement exclusive mode in PulseAudio backend ([Wine Bug #37042](https://bugs.winehq.org/show_bug.cgi?id=37042))
* Implement general tab for file property dialog
* Implement hal.KeQueryPerformanceCounter ([Wine Bug #39500](https://bugs.winehq.org/show_bug.cgi?id=39500))
* Implement kernel32.GetConsoleFontSize
* ~~Implement kernel32.GetConsoleFontSize~~
* Implement locking and synchronization of key states ([Wine Bug #31899](https://bugs.winehq.org/show_bug.cgi?id=31899))
* Implement mscoree._CorValidateImage for mono runtime ([Wine Bug #38662](https://bugs.winehq.org/show_bug.cgi?id=38662))
* Implement ntoskrnl driver testing framework.

3
debian/changelog vendored
View File

@ -5,6 +5,9 @@ wine-staging (1.7.55) UNRELEASED; urgency=low
maintained).
* Remove disabled ntdll-FD_Cache patchset (only for PowerPC, no longer
necessary because Wine uses inline cmpxchg64 now when compiling with gcc).
* Removed patch to implement kernel32.GetConsoleFontSize (accepted upstream).
* Removed patch to zero out returned stats when IEnumSTATSTG::Next reaches end
of enumeration (accepted upstream).
-- Sebastian Lackner <sebastian@fds-team.de> Sun, 01 Nov 2015 01:06:20 +0100
wine-staging (1.7.54) unstable; urgency=low

View File

@ -1,4 +1,4 @@
From a871b5881c5e01ec46f49cb181d504c61765558d Mon Sep 17 00:00:00 2001
From 08d0f4fee02fa6c01308461b3cecea842439fd15 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sun, 22 Feb 2015 01:10:21 +0100
Subject: include: Add dxva.h header file.
@ -10,17 +10,17 @@ Subject: include: Add dxva.h header file.
create mode 100644 include/dxva.h
diff --git a/include/Makefile.in b/include/Makefile.in
index 02d5d88..2b7943a 100644
index 682072c..94a2b84 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -314,6 +314,7 @@ SRCDIR_INCLUDES = \
@@ -306,6 +306,7 @@ HEADER_SRCS = \
dxfile.h \
dxgiformat.h \
dxgitype.h \
+ dxva.h \
dyngraph.idl \
errorrep.h \
errors.h \
evcode.h \
diff --git a/include/dxva.h b/include/dxva.h
new file mode 100644
index 0000000..e311488
@ -243,5 +243,5 @@ index 0000000..e311488
+
+#endif /* __WINE_DXVA_H */
--
2.1.0
2.6.2

View File

@ -1,4 +1,4 @@
From aff30eb5ce44d1f62c9c0a1419a89ba076dd93b8 Mon Sep 17 00:00:00 2001
From e6ddf6fa378fc8e41535fb3d06daab9587fded2a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sun, 22 Feb 2015 01:25:20 +0100
Subject: dxva2: Initial implementation of MPEG2 decoder using vaapi backend.
@ -6,7 +6,7 @@ Subject: dxva2: Initial implementation of MPEG2 decoder using vaapi backend.
---
configure.ac | 16 +
dlls/dxva2/Makefile.in | 14 +-
dlls/dxva2/backend.idl | 94 ++++++
dlls/dxva2/backend.idl | 96 ++++++
dlls/dxva2/dxva2_private.h | 115 ++++++-
dlls/dxva2/genericdecoder.c | 432 +++++++++++++++++++++++++
dlls/dxva2/main.c | 70 +++-
@ -14,17 +14,17 @@ Subject: dxva2: Initial implementation of MPEG2 decoder using vaapi backend.
dlls/dxva2/vaapi-mpeg2.c | 753 +++++++++++++++++++++++++++++++++++++++++++
dlls/dxva2/vaapi.c | 767 ++++++++++++++++++++++++++++++++++++++++++++
dlls/dxva2/videoservices.c | 74 ++---
10 files changed, 2291 insertions(+), 67 deletions(-)
10 files changed, 2293 insertions(+), 67 deletions(-)
create mode 100644 dlls/dxva2/backend.idl
create mode 100644 dlls/dxva2/genericdecoder.c
create mode 100644 dlls/dxva2/vaapi-mpeg2.c
create mode 100644 dlls/dxva2/vaapi.c
diff --git a/configure.ac b/configure.ac
index fbcd3fb..324deba 100644
index 3473566..ff3b189 100644
--- a/configure.ac
+++ b/configure.ac
@@ -99,6 +99,8 @@ AC_ARG_WITH(xxf86vm, AS_HELP_STRING([--without-xxf86vm],[do not use XFree vide
@@ -100,6 +100,8 @@ AC_ARG_WITH(xxf86vm, AS_HELP_STRING([--without-xxf86vm],[do not use XFree vide
[if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_xf86vmode_h=no; ac_cv_header_X11_extensions_xf86vmproto_h=no; fi])
AC_ARG_WITH(zlib, AS_HELP_STRING([--without-zlib],[do not use Zlib (data compression)]),
[if test "x$withval" = "xno"; then ac_cv_header_zlib_h=no; fi])
@ -33,7 +33,7 @@ index fbcd3fb..324deba 100644
AC_ARG_WITH(wine-tools,AS_HELP_STRING([--with-wine-tools=DIR],[use Wine tools from directory DIR]))
AC_ARG_WITH(wine64, AS_HELP_STRING([--with-wine64=DIR],[use the 64-bit Wine in DIR for a Wow64 build]))
@@ -1265,6 +1267,20 @@ This probably prevents linking to OpenGL. Try deleting the file and restarting c
@@ -1261,6 +1263,20 @@ This probably prevents linking to OpenGL. Try deleting the file and restarting c
WINE_WARNING_WITH(opengl,[test -n "$opengl_msg"],[$opengl_msg
OpenGL and Direct3D won't be supported.])
@ -79,10 +79,10 @@ index 4af9dc0..afdefc3 100644
+ videoservices.c
diff --git a/dlls/dxva2/backend.idl b/dlls/dxva2/backend.idl
new file mode 100644
index 0000000..dd37695
index 0000000..8d48835
--- /dev/null
+++ b/dlls/dxva2/backend.idl
@@ -0,0 +1,94 @@
@@ -0,0 +1,96 @@
+/*
+ * Copyright (C) 2015 Michael Müller for Pipelight
+ *
@ -101,6 +101,8 @@ index 0000000..dd37695
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#pragma makedep header
+
+import "unknwn.idl";
+import "dxva2api.idl";
+
@ -2633,5 +2635,5 @@ index 46e431a..84222dc 100644
return E_NOINTERFACE;
}
--
2.6.1
2.6.2

View File

@ -1,41 +0,0 @@
From 303ff4b8e0235e7501776c15089effb16e02d904 Mon Sep 17 00:00:00 2001
From: Hugh McMaster <hugh.mcmaster@outlook.com>
Date: Thu, 29 Oct 2015 23:17:17 +1100
Subject: wineconsole: Add if check to determine whether a font attribute has
changed (v3)
This version uses a case insensitive comparison, as requested by Dmitry Timoshkov.
Patches two to six are unchanged.
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
---
programs/wineconsole/wineconsole.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/programs/wineconsole/wineconsole.c b/programs/wineconsole/wineconsole.c
index e1ee55b..eb07f6b 100644
--- a/programs/wineconsole/wineconsole.c
+++ b/programs/wineconsole/wineconsole.c
@@ -27,7 +27,7 @@
#include "winecon_private.h"
#include "winnls.h"
#include "winuser.h"
-
+#include "wine/unicode.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(wineconsole);
@@ -421,7 +421,8 @@ void WINECON_SetConfig(struct inner_data* data, const struct config_data* cf
}
data->curcfg.menu_mask = cfg->menu_mask;
data->curcfg.quick_edit = cfg->quick_edit;
- if (1 /* FIXME: font info has changed */)
+ if (strcmpiW(data->curcfg.face_name, cfg->face_name) || data->curcfg.cell_width != cfg->cell_width ||
+ data->curcfg.cell_height != cfg->cell_height || data->curcfg.font_weight != cfg->font_weight)
{
data->fnSetFont(data, cfg->face_name, cfg->cell_height, cfg->font_weight);
}
--
2.6.1

View File

@ -1,120 +0,0 @@
From 4d1cb95792e3183f1777df839cc5046f5c1395e6 Mon Sep 17 00:00:00 2001
From: Hugh McMaster <hugh.mcmaster@outlook.com>
Date: Thu, 29 Oct 2015 23:17:18 +1100
Subject: wineconsole: Pass font size information to wineserver
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
---
programs/wineconsole/wineconsole.c | 9 +++++++++
server/console.c | 16 ++++++++++++++++
server/protocol.def | 5 +++++
3 files changed, 30 insertions(+)
diff --git a/programs/wineconsole/wineconsole.c b/programs/wineconsole/wineconsole.c
index eb07f6b..d376535 100644
--- a/programs/wineconsole/wineconsole.c
+++ b/programs/wineconsole/wineconsole.c
@@ -425,6 +425,15 @@ void WINECON_SetConfig(struct inner_data* data, const struct config_data* cf
data->curcfg.cell_height != cfg->cell_height || data->curcfg.font_weight != cfg->font_weight)
{
data->fnSetFont(data, cfg->face_name, cfg->cell_height, cfg->font_weight);
+ SERVER_START_REQ(set_console_output_info)
+ {
+ req->handle = wine_server_obj_handle( data->hConOut );
+ req->mask = SET_CONSOLE_OUTPUT_INFO_FONT;
+ req->font_width = cfg->cell_width;
+ req->font_height = cfg->cell_height;
+ wine_server_call_err( req );
+ }
+ SERVER_END_REQ;
}
if (data->curcfg.def_attr != cfg->def_attr)
{
diff --git a/server/console.c b/server/console.c
index 389547d..a57b2fe 100644
--- a/server/console.c
+++ b/server/console.c
@@ -121,6 +121,12 @@ static const struct object_ops console_input_events_ops =
console_input_events_destroy /* destroy */
};
+struct font_info
+{
+ short int width;
+ short int height;
+};
+
struct screen_buffer
{
struct object obj; /* object header */
@@ -139,6 +145,7 @@ struct screen_buffer
unsigned short attr; /* default attribute for screen buffer */
rectangle_t win; /* current visible window on the screen buffer *
* as seen in wineconsole */
+ struct font_info font; /* console font information */
struct fd *fd; /* for bare console, attached output fd */
};
@@ -411,6 +418,8 @@ static struct screen_buffer *create_console_output( struct console_input *consol
screen_buffer->win.top = 0;
screen_buffer->win.bottom = screen_buffer->max_height - 1;
screen_buffer->data = NULL;
+ screen_buffer->font.width = 0;
+ screen_buffer->font.height = 0;
list_add_head( &screen_buffer_list, &screen_buffer->entry );
if (fd == -1)
@@ -1019,6 +1028,11 @@ static int set_console_output_info( struct screen_buffer *screen_buffer,
screen_buffer->max_width = req->max_width;
screen_buffer->max_height = req->max_height;
}
+ if (req->mask & SET_CONSOLE_OUTPUT_INFO_FONT)
+ {
+ screen_buffer->font.width = req->font_width;
+ screen_buffer->font.height = req->font_height;
+ }
return 1;
}
@@ -1676,6 +1690,8 @@ DECL_HANDLER(get_console_output_info)
reply->win_bottom = screen_buffer->win.bottom;
reply->max_width = screen_buffer->max_width;
reply->max_height = screen_buffer->max_height;
+ reply->font_width = screen_buffer->font.width;
+ reply->font_height = screen_buffer->font.height;
release_object( screen_buffer );
}
}
diff --git a/server/protocol.def b/server/protocol.def
index 5b45078..aa37c66 100644
--- a/server/protocol.def
+++ b/server/protocol.def
@@ -1495,6 +1495,8 @@ struct console_renderer_event
short int win_bottom;
short int max_width; /* maximum size (width x height) for the window */
short int max_height;
+ short int font_width; /* font size (width x height) */
+ short int font_height;
@END
#define SET_CONSOLE_OUTPUT_INFO_CURSOR_GEOM 0x01
#define SET_CONSOLE_OUTPUT_INFO_CURSOR_POS 0x02
@@ -1502,6 +1504,7 @@ struct console_renderer_event
#define SET_CONSOLE_OUTPUT_INFO_ATTR 0x08
#define SET_CONSOLE_OUTPUT_INFO_DISPLAY_WINDOW 0x10
#define SET_CONSOLE_OUTPUT_INFO_MAX_SIZE 0x20
+#define SET_CONSOLE_OUTPUT_INFO_FONT 0x40
/* Get info about a console (output only) */
@@ -1521,6 +1524,8 @@ struct console_renderer_event
short int win_bottom;
short int max_width; /* maximum size (width x height) for the window */
short int max_height;
+ short int font_width; /* font size (width x height) */
+ short int font_height;
@END
/* Add input records to a console input queue */
--
2.6.1

View File

@ -1,47 +0,0 @@
From 6047f0c7bc371f229c33bb4d7cefa1b2377c77c1 Mon Sep 17 00:00:00 2001
From: Hugh McMaster <hugh.mcmaster@outlook.com>
Date: Thu, 29 Oct 2015 23:17:20 +1100
Subject: kernel32: Implement GetNumberOfConsoleFonts (resend)
This function is called by GetConsoleFontSize and its tests.
Note that we only ever have one entry in the console font table.
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
---
dlls/kernel32/console.c | 5 +++++
dlls/kernel32/kernel32.spec | 2 +-
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/dlls/kernel32/console.c b/dlls/kernel32/console.c
index c32dc49..67627cc 100644
--- a/dlls/kernel32/console.c
+++ b/dlls/kernel32/console.c
@@ -3234,6 +3234,11 @@ BOOL WINAPI SetConsoleIcon(HICON icon)
return FALSE;
}
+DWORD WINAPI GetNumberOfConsoleFonts(void)
+{
+ return 1;
+}
+
BOOL WINAPI GetCurrentConsoleFont(HANDLE hConsole, BOOL maxwindow, LPCONSOLE_FONT_INFO fontinfo)
{
BOOL ret;
diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec
index d7eab83..9b2a131 100644
--- a/dlls/kernel32/kernel32.spec
+++ b/dlls/kernel32/kernel32.spec
@@ -753,7 +753,7 @@
@ stdcall GetNumberFormatA(long long str ptr ptr long)
# @ stub GetNumberFormatEx
@ stdcall GetNumberFormatW(long long wstr ptr ptr long)
-@ stub GetNumberOfConsoleFonts
+@ stdcall GetNumberOfConsoleFonts()
@ stdcall GetNumberOfConsoleInputEvents(long ptr)
@ stdcall GetNumberOfConsoleMouseButtons(ptr)
@ stdcall GetOEMCP()
--
2.6.1

View File

@ -1,78 +0,0 @@
From c311068247c68d5b6351b2384115c590028b0fcb Mon Sep 17 00:00:00 2001
From: Hugh McMaster <hugh.mcmaster@outlook.com>
Date: Thu, 29 Oct 2015 23:17:21 +1100
Subject: kernel32: Implement GetConsoleFontSize (v2, resend)
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
---
dlls/kernel32/console.c | 44 ++++++++++++++++++++++++++++----------------
1 file changed, 28 insertions(+), 16 deletions(-)
diff --git a/dlls/kernel32/console.c b/dlls/kernel32/console.c
index 67627cc..b1f8814 100644
--- a/dlls/kernel32/console.c
+++ b/dlls/kernel32/console.c
@@ -3265,32 +3265,44 @@ BOOL WINAPI GetCurrentConsoleFont(HANDLE hConsole, BOOL maxwindow, LPCONSOLE_FON
return ret;
}
+static COORD get_console_font_size(HANDLE hConsole, DWORD index)
+{
+ COORD c = {0,0};
+
+ if (index >= GetNumberOfConsoleFonts())
+ {
+ SetLastError(ERROR_INVALID_PARAMETER);
+ return c;
+ }
+
+ SERVER_START_REQ(get_console_output_info)
+ {
+ req->handle = console_handle_unmap(hConsole);
+ if (!wine_server_call_err(req))
+ {
+ c.X = reply->font_width;
+ c.Y = reply->font_height;
+ }
+ }
+ SERVER_END_REQ;
+ return c;
+}
+
#ifdef __i386__
#undef GetConsoleFontSize
-DWORD WINAPI GetConsoleFontSize(HANDLE hConsole, DWORD font)
+DWORD WINAPI GetConsoleFontSize(HANDLE hConsole, DWORD index)
{
union {
COORD c;
DWORD w;
} x;
- FIXME(": (%p, %d) stub!\n", hConsole, font);
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-
- x.c.X = 0;
- x.c.Y = 0;
+ x.c = get_console_font_size(hConsole, index);
return x.w;
}
-#endif /* defined(__i386__) */
-
-
-#ifndef __i386__
-COORD WINAPI GetConsoleFontSize(HANDLE hConsole, DWORD font)
+#else /* defined(__i386__) */
+COORD WINAPI GetConsoleFontSize(HANDLE hConsole, DWORD index)
{
- COORD c;
- c.X = 80;
- c.Y = 24;
- FIXME(": (%p, %d) stub!\n", hConsole, font);
- return c;
+ return get_console_font_size(hConsole, index);
}
#endif /* defined(__i386__) */
--
2.6.1

View File

@ -1,84 +0,0 @@
From a366dabe15b06c31edebf966c81d5e981b1d6e7d Mon Sep 17 00:00:00 2001
From: Hugh McMaster <hugh.mcmaster@outlook.com>
Date: Thu, 29 Oct 2015 23:17:22 +1100
Subject: kernel32/tests: Add tests for GetConsoleFontSize (v2, resend)
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
---
dlls/kernel32/tests/console.c | 55 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 55 insertions(+)
diff --git a/dlls/kernel32/tests/console.c b/dlls/kernel32/tests/console.c
index 454f963..240d9d8 100644
--- a/dlls/kernel32/tests/console.c
+++ b/dlls/kernel32/tests/console.c
@@ -2627,6 +2627,60 @@ static void test_GetCurrentConsoleFont(HANDLE std_output)
"got %d, expected %d\n", cfi.dwFontSize.Y, height);
}
+static void test_GetConsoleFontSize(HANDLE std_output)
+{
+ COORD c;
+ DWORD index = 0;
+ CONSOLE_FONT_INFO cfi;
+ RECT r;
+ CONSOLE_SCREEN_BUFFER_INFO csbi;
+ LONG font_width, font_height;
+ HMODULE hmod;
+ DWORD (WINAPI *pGetNumberOfConsoleFonts)(void);
+
+ memset(&c, 10, sizeof(COORD));
+ SetLastError(0xdeadbeef);
+ c = GetConsoleFontSize(NULL, index);
+ ok(GetLastError() == ERROR_INVALID_HANDLE, "got %u, expected 6\n", GetLastError());
+ ok(!c.X, "got %d, expected 0\n", c.X);
+ ok(!c.Y, "got %d, expected 0\n", c.Y);
+
+ memset(&c, 10, sizeof(COORD));
+ SetLastError(0xdeadbeef);
+ c = GetConsoleFontSize(GetStdHandle(STD_INPUT_HANDLE), index);
+ ok(GetLastError() == ERROR_INVALID_HANDLE, "got %u, expected 6\n", GetLastError());
+ ok(!c.X, "got %d, expected 0\n", c.X);
+ ok(!c.Y, "got %d, expected 0\n", c.Y);
+
+ GetCurrentConsoleFont(std_output, FALSE, &cfi);
+ memset(&c, 10, sizeof(COORD));
+ SetLastError(0xdeadbeef);
+ c = GetConsoleFontSize(std_output, cfi.nFont);
+ ok(GetLastError() == 0xdeadbeef, "got %u, expected 0xdeadbeef\n", GetLastError());
+ GetClientRect(GetConsoleWindow(), &r);
+ GetConsoleScreenBufferInfo(std_output, &csbi);
+ font_width = (r.right - r.left + 1) / csbi.srWindow.Right;
+ font_height = (r.bottom - r.top + 1) / csbi.srWindow.Bottom;
+ ok(c.X == font_width, "got %d, expected %d\n", c.X, font_width);
+ ok(c.Y == font_height, "got %d, expected %d\n", c.Y, font_height);
+
+ hmod = GetModuleHandleA("kernel32.dll");
+ pGetNumberOfConsoleFonts = (void *)GetProcAddress(hmod, "GetNumberOfConsoleFonts");
+ if (!pGetNumberOfConsoleFonts)
+ {
+ win_skip("GetNumberOfConsoleFonts is not available\n");
+ return;
+ }
+ index = pGetNumberOfConsoleFonts();
+
+ memset(&c, 10, sizeof(COORD));
+ SetLastError(0xdeadbeef);
+ c = GetConsoleFontSize(std_output, index);
+ ok(GetLastError() == ERROR_INVALID_PARAMETER, "got %u, expected 87\n", GetLastError());
+ ok(!c.X, "got %d, expected 0\n", c.X);
+ ok(!c.Y, "got %d, expected 0\n", c.Y);
+}
+
START_TEST(console)
{
static const char font_name[] = "Lucida Console";
@@ -2760,4 +2814,5 @@ START_TEST(console)
test_ReadConsoleOutputCharacterW(hConOut);
test_ReadConsoleOutputAttribute(hConOut);
test_GetCurrentConsoleFont(hConOut);
+ test_GetConsoleFontSize(hConOut);
}
--
2.6.1

View File

@ -1 +0,0 @@
Fixes: Implement kernel32.GetConsoleFontSize

View File

@ -1,2 +1 @@
Fixes: [35702] Add stub for SetConsoleKeyShortcuts
Depends: kernel32-GetConsoleFontSize

View File

@ -1,4 +1,4 @@
From c1ad46debbb821c842004cb723ba4d1b544fcae0 Mon Sep 17 00:00:00 2001
From 66042874f3555c96868051b6f84aa6110e342ab9 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sat, 3 Jan 2015 02:52:50 +0100
Subject: include: Add cuda.h.
@ -10,11 +10,11 @@ Subject: include: Add cuda.h.
create mode 100644 include/cuda.h
diff --git a/include/Makefile.in b/include/Makefile.in
index 40367eb..afd4a21 100644
index 682072c..e564a0d 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -196,6 +196,7 @@ SRCDIR_INCLUDES = \
crtrow.idl \
@@ -191,6 +191,7 @@ HEADER_SRCS = \
cpl.h \
cryptdlg.h \
cryptuiapi.h \
+ cuda.h \
@ -121,5 +121,5 @@ index 0000000..1f20f5b
+
+#endif /* __WINE_CUDA_H */
--
2.2.1
2.6.2

View File

@ -1,30 +0,0 @@
From 3c33f1f4e9c9e829226bb6bba9a42154f00a48ef Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@baikal.ru>
Date: Thu, 29 Oct 2015 15:41:02 +0800
Subject: dlls/ole32: Handle failure of reading directory entry in
IEnumSTATSTG::Next.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
---
dlls/ole32/storage32.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/dlls/ole32/storage32.c b/dlls/ole32/storage32.c
index bfef4a2..4d775b4 100644
--- a/dlls/ole32/storage32.c
+++ b/dlls/ole32/storage32.c
@@ -1036,9 +1036,10 @@ static HRESULT WINAPI IEnumSTATSTGImpl_Next(
/*
* Read the entry from the storage.
*/
- StorageBaseImpl_ReadDirEntry(This->parentStorage,
+ hr = StorageBaseImpl_ReadDirEntry(This->parentStorage,
currentSearchNode,
&currentEntry);
+ if (FAILED(hr)) break;
/*
* Copy the information to the return buffer.
--
2.6.1

View File

@ -1,29 +0,0 @@
From 9b77ae10308afc29ee408f42b4ae854b6ce0be92 Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@baikal.ru>
Date: Thu, 29 Oct 2015 15:41:15 +0800
Subject: dlls/ole32: Zero out returned stats when IEnumSTATSTG::Next reaches
end of enumeration.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
---
dlls/ole32/storage32.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/dlls/ole32/storage32.c b/dlls/ole32/storage32.c
index 4d775b4..f75e097 100644
--- a/dlls/ole32/storage32.c
+++ b/dlls/ole32/storage32.c
@@ -1031,7 +1031,10 @@ static HRESULT WINAPI IEnumSTATSTGImpl_Next(
hr = IEnumSTATSTGImpl_GetNextRef(This, &currentSearchNode);
if (FAILED(hr) || currentSearchNode == DIRENTRY_NULL)
+ {
+ memset(currentReturnStruct, 0, sizeof(*currentReturnStruct));
break;
+ }
/*
* Read the entry from the storage.
--
2.6.1

View File

@ -1,79 +0,0 @@
From 2c518d5f6fef54adbffac7be1d70da8236a9441b Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@baikal.ru>
Date: Thu, 29 Oct 2015 15:41:21 +0800
Subject: ole32/tests: Add the tests to show that IEnumSTATSTG::Next should
zero out returned stats when it reaches end of enumeration.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
---
dlls/ole32/tests/storage32.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/dlls/ole32/tests/storage32.c b/dlls/ole32/tests/storage32.c
index edd0b3f..afe9332 100644
--- a/dlls/ole32/tests/storage32.c
+++ b/dlls/ole32/tests/storage32.c
@@ -1224,6 +1224,7 @@ static void test_streamenum(void)
static const WCHAR stmname[] = { 'C','O','N','T','E','N','T','S',0 };
static const WCHAR stmname2[] = { 'A','B','C','D','E','F','G','H','I',0 };
static const WCHAR stmname3[] = { 'A','B','C','D','E','F','G','H','I','J',0 };
+ static const STATSTG stat_null;
STATSTG stat;
IEnumSTATSTG *ee = NULL;
ULONG count;
@@ -1269,10 +1270,12 @@ static void test_streamenum(void)
r = IStorage_DestroyElement(stg, stmname);
ok(r==S_OK, "IStorage->DestroyElement failed\n");
+ memset(&stat, 0xad, sizeof(stat));
count = 0xf00;
r = IEnumSTATSTG_Next(ee, 1, &stat, &count);
ok(r==S_FALSE, "IEnumSTATSTG->Next failed\n");
ok(count == 0, "count wrong\n");
+ ok(memcmp(&stat, &stat_null, sizeof(stat)) == 0, "stat is not zeroed\n");
/* reset and try again */
r = IEnumSTATSTG_Reset(ee);
@@ -2418,6 +2421,7 @@ static void test_fmtusertypestg(void)
static const WCHAR fileW[] = {'f','m','t','t','e','s','t',0};
static WCHAR userTypeW[] = {'S','t','g','U','s','r','T','y','p','e',0};
static const WCHAR strmNameW[] = {1,'C','o','m','p','O','b','j',0};
+ static const STATSTG statstg_null;
hr = StgCreateDocfile( fileW, STGM_CREATE | STGM_SHARE_EXCLUSIVE | STGM_READWRITE, 0, &stg);
ok(hr == S_OK, "should succeed, res=%x\n", hr);
@@ -2436,6 +2440,7 @@ static void test_fmtusertypestg(void)
BOOL found = FALSE;
STATSTG statstg;
DWORD got;
+ memset(&statstg, 0xad, sizeof(statstg));
while ((hr = IEnumSTATSTG_Next(stat, 1, &statstg, &got)) == S_OK && got == 1)
{
if (strcmp_ww(statstg.pwcsName, strmNameW) == 0)
@@ -2444,6 +2449,7 @@ static void test_fmtusertypestg(void)
ok(0, "found unexpected stream or storage\n");
CoTaskMemFree(statstg.pwcsName);
}
+ ok(memcmp(&statstg, &statstg_null, sizeof(statstg)) == 0, "statstg is not zeroed\n");
ok(found == TRUE, "expected storage to contain stream \\0001CompObj\n");
IEnumSTATSTG_Release(stat);
}
@@ -2460,6 +2466,7 @@ static void test_fmtusertypestg(void)
BOOL found = FALSE;
STATSTG statstg;
DWORD got;
+ memset(&statstg, 0xad, sizeof(statstg));
while ((hr = IEnumSTATSTG_Next(stat, 1, &statstg, &got)) == S_OK && got == 1)
{
if (strcmp_ww(statstg.pwcsName, strmNameW) == 0)
@@ -2468,6 +2475,7 @@ static void test_fmtusertypestg(void)
ok(0, "found unexpected stream or storage\n");
CoTaskMemFree(statstg.pwcsName);
}
+ ok(memcmp(&statstg, &statstg_null, sizeof(statstg)) == 0, "statstg is not zeroed\n");
ok(found == TRUE, "expected storage to contain stream \\0001CompObj\n");
IEnumSTATSTG_Release(stat);
}
--
2.6.1

View File

@ -1 +0,0 @@
Fixes: IEnumSTATSTG::Next should zero out returned stats when enumeration ends

View File

@ -52,7 +52,7 @@ usage()
# Get the upstream commit sha
upstream_commit()
{
echo "cbaab82d086e36dacaa22c6adf80f9114bb820fb"
echo "8f443077416fd820375b1bc0d1276286d23348fc"
}
# Show version information
@ -153,7 +153,6 @@ patch_enable_all ()
enable_kernel32_CompareStringEx="$1"
enable_kernel32_CopyFileEx="$1"
enable_kernel32_Cwd_Startup_Info="$1"
enable_kernel32_GetConsoleFontSize="$1"
enable_kernel32_GetFinalPathNameByHandle="$1"
enable_kernel32_GetLogicalProcessorInformationEx="$1"
enable_kernel32_LocaleNameToLCID="$1"
@ -224,7 +223,6 @@ patch_enable_all ()
enable_nvcuda_CUDA_Support="$1"
enable_nvcuvid_CUDA_Video_Support="$1"
enable_nvencodeapi_Video_Encoder="$1"
enable_ole32_IEnumSTATSTG="$1"
enable_openal32_EFX_Extension="$1"
enable_opengl32_Revert_Disable_Ext="$1"
enable_quartz_MediaSeeking_Positions="$1"
@ -311,7 +309,6 @@ patch_enable_all ()
enable_winedbg_Windows_Version="$1"
enable_winedevice_Fix_Relocation="$1"
enable_winemenubuilder_Desktop_Icon_Path="$1"
enable_winepulse_PulseAudio_Support="$1"
enable_winex11_CandidateWindowPos="$1"
enable_winex11_Clipboard_HTML="$1"
enable_winex11_Window_Groups="$1"
@ -562,9 +559,6 @@ patch_enable ()
kernel32-Cwd_Startup_Info)
enable_kernel32_Cwd_Startup_Info="$2"
;;
kernel32-GetConsoleFontSize)
enable_kernel32_GetConsoleFontSize="$2"
;;
kernel32-GetFinalPathNameByHandle)
enable_kernel32_GetFinalPathNameByHandle="$2"
;;
@ -775,9 +769,6 @@ patch_enable ()
nvencodeapi-Video_Encoder)
enable_nvencodeapi_Video_Encoder="$2"
;;
ole32-IEnumSTATSTG)
enable_ole32_IEnumSTATSTG="$2"
;;
openal32-EFX_Extension)
enable_openal32_EFX_Extension="$2"
;;
@ -1036,9 +1027,6 @@ patch_enable ()
winemenubuilder-Desktop_Icon_Path)
enable_winemenubuilder_Desktop_Icon_Path="$2"
;;
winepulse-PulseAudio_Support)
enable_winepulse_PulseAudio_Support="$2"
;;
winex11-CandidateWindowPos)
enable_winex11_CandidateWindowPos="$2"
;;
@ -1647,9 +1635,6 @@ if test "$enable_category_stable" -eq 1; then
if test "$enable_winemenubuilder_Desktop_Icon_Path" -gt 1; then
abort "Patchset winemenubuilder-Desktop_Icon_Path disabled, but category-stable depends on that."
fi
if test "$enable_winepulse_PulseAudio_Support" -gt 1; then
abort "Patchset winepulse-PulseAudio_Support disabled, but category-stable depends on that."
fi
if test "$enable_winex11_Window_Style" -gt 1; then
abort "Patchset winex11-Window_Style disabled, but category-stable depends on that."
fi
@ -1736,7 +1721,6 @@ if test "$enable_category_stable" -eq 1; then
enable_wined3d_resource_check_usage=1
enable_wined3d_wined3d_swapchain_present=1
enable_winemenubuilder_Desktop_Icon_Path=1
enable_winepulse_PulseAudio_Support=1
enable_winex11_Window_Style=1
enable_winex11_XEMBED=1
enable_winex11_wglShareLists=1
@ -1942,13 +1926,6 @@ if test "$enable_ntdll_CLI_Images" -eq 1; then
enable_mscoree_CorValidateImage=1
fi
if test "$enable_kernel32_SetConsoleKeyShortcuts" -eq 1; then
if test "$enable_kernel32_GetConsoleFontSize" -gt 1; then
abort "Patchset kernel32-GetConsoleFontSize disabled, but kernel32-SetConsoleKeyShortcuts depends on that."
fi
enable_kernel32_GetConsoleFontSize=1
fi
if test "$enable_kernel32_Named_Pipe" -eq 1; then
if test "$enable_rpcrt4_Pipe_Transport" -gt 1; then
abort "Patchset rpcrt4-Pipe_Transport disabled, but kernel32-Named_Pipe depends on that."
@ -3411,27 +3388,6 @@ if test "$enable_kernel32_Cwd_Startup_Info" -eq 1; then
) >> "$patchlist"
fi
# Patchset kernel32-GetConsoleFontSize
# |
# | Modified files:
# | * dlls/kernel32/console.c, dlls/kernel32/kernel32.spec, dlls/kernel32/tests/console.c, programs/wineconsole/wineconsole.c,
# | server/console.c, server/protocol.def
# |
if test "$enable_kernel32_GetConsoleFontSize" -eq 1; then
patch_apply kernel32-GetConsoleFontSize/0001-wineconsole-Add-if-check-to-determine-whether-a-font.patch
patch_apply kernel32-GetConsoleFontSize/0002-wineconsole-Pass-font-size-information-to-wineserver.patch
patch_apply kernel32-GetConsoleFontSize/0003-kernel32-Implement-GetNumberOfConsoleFonts-resend.patch
patch_apply kernel32-GetConsoleFontSize/0004-kernel32-Implement-GetConsoleFontSize-v2-resend.patch
patch_apply kernel32-GetConsoleFontSize/0005-kernel32-tests-Add-tests-for-GetConsoleFontSize-v2-r.patch
(
echo '+ { "Hugh McMaster", "wineconsole: Add if check to determine whether a font attribute has changed.", 3 },';
echo '+ { "Hugh McMaster", "wineconsole: Pass font size information to wineserver.", 1 },';
echo '+ { "Hugh McMaster", "kernel32: Implement GetNumberOfConsoleFonts.", 1 },';
echo '+ { "Hugh McMaster", "kernel32: Implement GetConsoleFontSize (v2, resend).", 1 },';
echo '+ { "Hugh McMaster", "kernel32/tests: Add tests for GetConsoleFontSize (v2, resend).", 1 },';
) >> "$patchlist"
fi
# Patchset kernel32-GetFinalPathNameByHandle
# |
# | This patchset fixes the following Wine bugs:
@ -3588,9 +3544,6 @@ fi
# Patchset kernel32-SetConsoleKeyShortcuts
# |
# | This patchset has the following (direct or indirect) dependencies:
# | * kernel32-GetConsoleFontSize
# |
# | This patchset fixes the following Wine bugs:
# | * [#35702] Add stub for SetConsoleKeyShortcuts
# |
@ -4649,22 +4602,6 @@ if test "$enable_nvencodeapi_Video_Encoder" -eq 1; then
) >> "$patchlist"
fi
# Patchset ole32-IEnumSTATSTG
# |
# | Modified files:
# | * dlls/ole32/storage32.c, dlls/ole32/tests/storage32.c
# |
if test "$enable_ole32_IEnumSTATSTG" -eq 1; then
patch_apply ole32-IEnumSTATSTG/0001-dlls-ole32-Handle-failure-of-reading-directory-entry.patch
patch_apply ole32-IEnumSTATSTG/0002-dlls-ole32-Zero-out-returned-stats-when-IEnumSTATSTG.patch
patch_apply ole32-IEnumSTATSTG/0003-ole32-tests-Add-the-tests-to-show-that-IEnumSTATSTG-.patch
(
echo '+ { "Dmitry Timoshkov", "dlls/ole32: Handle failure of reading directory entry in IEnumSTATSTG::Next.", 1 },';
echo '+ { "Dmitry Timoshkov", "dlls/ole32: Zero out returned stats when IEnumSTATSTG::Next reaches end of enumeration.", 1 },';
echo '+ { "Dmitry Timoshkov", "ole32/tests: Add the tests to show that IEnumSTATSTG::Next should zero out returned stats when it reaches end of enumeration.", 1 },';
) >> "$patchlist"
fi
# Patchset openal32-EFX_Extension
# |
# | This patchset fixes the following Wine bugs:
@ -5615,14 +5552,12 @@ fi
# | tools/widl/write_msft.c
# |
if test "$enable_widl_Typelib_Generator" -eq 1; then
patch_apply widl-Typelib_Generator/0001-widl-When-adding-an-interface-typedef-do-check-wheth.patch
patch_apply widl-Typelib_Generator/0002-widl-Ignore-assignment-of-a-duplicate-uuid.-Resend.patch
patch_apply widl-Typelib_Generator/0003-widl-Attribute-uuid-takes-precedence-over-hidden-.-R.patch
patch_apply widl-Typelib_Generator/0004-widl-Attributes-of-the-alias-are-supposed-to-replace.patch
patch_apply widl-Typelib_Generator/0005-widl-Avoid-generating-duplicate-typelib-entries-for-.patch
patch_apply widl-Typelib_Generator/0006-oleaut32-tests-Add-a-bunch-of-new-tests-for-typelib-.patch
patch_apply widl-Typelib_Generator/0001-widl-Ignore-assignment-of-a-duplicate-uuid.-Resend.patch
patch_apply widl-Typelib_Generator/0002-widl-Attribute-uuid-takes-precedence-over-hidden-.-R.patch
patch_apply widl-Typelib_Generator/0003-widl-Attributes-of-the-alias-are-supposed-to-replace.patch
patch_apply widl-Typelib_Generator/0004-widl-Avoid-generating-duplicate-typelib-entries-for-.patch
patch_apply widl-Typelib_Generator/0005-oleaut32-tests-Add-a-bunch-of-new-tests-for-typelib-.patch
(
echo '+ { "Sebastian Lackner", "widl: When adding an interface typedef do check whether it has been already added while resolving the parent interface.", 1 },';
echo '+ { "Dmitry Timoshkov", "widl: Ignore assignment of a duplicate uuid. Resend.", 1 },';
echo '+ { "Dmitry Timoshkov", "widl: Attribute uuid() takes precedence over '\''hidden'\''. Resend.", 1 },';
echo '+ { "Dmitry Timoshkov", "widl: Attributes of the alias are supposed to replace attributes of a tag in the typelib. Resend.", 1 },';
@ -6279,97 +6214,6 @@ if test "$enable_winemenubuilder_Desktop_Icon_Path" -eq 1; then
) >> "$patchlist"
fi
# Patchset winepulse-PulseAudio_Support
# |
# | This patchset fixes the following Wine bugs:
# | * [#10495] Support for PulseAudio backend for audio
# | * [#37042] Implement exclusive mode in PulseAudio backend
# |
# | Modified files:
# | * configure.ac, dlls/mmdevapi/main.c, dlls/mmdevapi/tests/render.c, dlls/winepulse.drv/Makefile.in,
# | dlls/winepulse.drv/mmdevdrv.c, dlls/winepulse.drv/winepulse.drv.spec
# |
if test "$enable_winepulse_PulseAudio_Support" -eq 1; then
patch_apply winepulse-PulseAudio_Support/0001-winepulse-Add-initial-stub-for-pulseaudio-support.patch
patch_apply winepulse-PulseAudio_Support/0002-winepulse-Add-format-and-period-probing.patch
patch_apply winepulse-PulseAudio_Support/0003-winepulse-Add-audioclient.patch
patch_apply winepulse-PulseAudio_Support/0004-winepulse-Add-IAudioRenderClient-and-IAudioCaptureCl.patch
patch_apply winepulse-PulseAudio_Support/0005-winepulse-Add-IAudioClock-and-IAudioClock2.patch
patch_apply winepulse-PulseAudio_Support/0006-winepulse-Add-audiostreamvolume.patch
patch_apply winepulse-PulseAudio_Support/0007-winepulse-Add-session-support.patch
patch_apply winepulse-PulseAudio_Support/0008-fix-fdels-trailing-whitespaces.patch
patch_apply winepulse-PulseAudio_Support/0009-winepulse-v12.patch
patch_apply winepulse-PulseAudio_Support/0010-winepulse-v15-Add-support-for-missing-formats-and-si.patch
patch_apply winepulse-PulseAudio_Support/0011-winepulse-v16-Add-official-warning-wine-doesn-t-want.patch
patch_apply winepulse-PulseAudio_Support/0012-winepulse-v17-Fix-winmm-tests.patch
patch_apply winepulse-PulseAudio_Support/0013-winepulse-v18-Latency-and-compilation-improvements.patch
patch_apply winepulse-PulseAudio_Support/0014-winepulse-API-Compatibility-with-1.5.2-onward-v2.patch
patch_apply winepulse-PulseAudio_Support/0015-winepulse-Fix-low-latency-support.patch
patch_apply winepulse-PulseAudio_Support/0016-winepulse-drop-realtime-priority-before-thread-destr.patch
patch_apply winepulse-PulseAudio_Support/0017-winepulse-remove-bogus-SetEvent-from-pulse_started_c.patch
patch_apply winepulse-PulseAudio_Support/0018-winepulse-disable-the-setevent-part-of-the-latency-h.patch
patch_apply winepulse-PulseAudio_Support/0019-winepulse-v20-fix-the-checks-in-IsFormatSupported.patch
patch_apply winepulse-PulseAudio_Support/0020-winepulse-fixup-IsFormatSupported-calls.patch
patch_apply winepulse-PulseAudio_Support/0021-winepulse-v21-return-early-if-padding-didn-t-update.patch
patch_apply winepulse-PulseAudio_Support/0022-winepulse-fix-unneeded-free-in-write.patch
patch_apply winepulse-PulseAudio_Support/0023-winepulse-v23-fixup-a-invalid-free-in-mmdevapi.patch
patch_apply winepulse-PulseAudio_Support/0024-winepulse-use-a-pi-mutex-for-serialization.patch
patch_apply winepulse-PulseAudio_Support/0025-winepulse-add-support-for-IMarshal.patch
patch_apply winepulse-PulseAudio_Support/0026-winepulse-handle-stream-create-failing-correctly.patch
patch_apply winepulse-PulseAudio_Support/0027-winepulse-Trivial-cleanups-and-changes-for-consisten.patch
patch_apply winepulse-PulseAudio_Support/0028-winepulse-Sync-default-channel-masks-with-other-driv.patch
patch_apply winepulse-PulseAudio_Support/0029-winepulse-In-Shared-mode-track-device-position-in-by.patch
patch_apply winepulse-PulseAudio_Support/0030-winepulse-Always-mute-buffer.patch
patch_apply winepulse-PulseAudio_Support/0031-winepulse-Remove-volume-support.patch
patch_apply winepulse-PulseAudio_Support/0032-winepulse-Forward-winmm-functions-to-winealsa.patch
patch_apply winepulse-PulseAudio_Support/0033-winepulse-expose-audio-devices-directly-to-programs.patch
patch_apply winepulse-PulseAudio_Support/0034-winepulse-implement-exclusive-mode.patch
patch_apply winepulse-PulseAudio_Support/0035-winepulse-fix-segfault-in-pulse_rd_loop.patch
patch_apply winepulse-PulseAudio_Support/0036-winepulse-implement-GetPropValue.patch
patch_apply winepulse-PulseAudio_Support/0037-winepulse-fetch-actual-program-name-if-possible.patch
patch_apply winepulse-PulseAudio_Support/0038-winepulse-return-PKEY_AudioEndpoint_PhysicalSpeakers.patch
(
echo '+ { "Maarten Lankhorst", "winepulse: Add initial stub for pulseaudio support.", 1 },';
echo '+ { "Maarten Lankhorst", "winepulse: Add format and period probing.", 1 },';
echo '+ { "Maarten Lankhorst", "winepulse: Add audioclient.", 1 },';
echo '+ { "Maarten Lankhorst", "winepulse: Add IAudioRenderClient and IAudioCaptureClient.", 1 },';
echo '+ { "Maarten Lankhorst", "winepulse: Add IAudioClock and IAudioClock2.", 1 },';
echo '+ { "Maarten Lankhorst", "winepulse: Add audiostreamvolume.", 1 },';
echo '+ { "Maarten Lankhorst", "winepulse: Add session support.", 1 },';
echo '+ { "Maarten Lankhorst", "fix fdels trailing whitespaces.", 1 },';
echo '+ { "Maarten Lankhorst", "winepulse.", 12 },';
echo '+ { "Maarten Lankhorst", "winepulse: Add support for missing formats, and silence an error for missing format tags.", 15 },';
echo '+ { "Maarten Lankhorst", "winepulse: Add official warning wine doesn'\''t want to support winepulse.", 16 },';
echo '+ { "Maarten Lankhorst", "winepulse: Fix winmm tests.", 17 },';
echo '+ { "Maarten Lankhorst", "winepulse: Latency and compilation improvements.", 18 },';
echo '+ { "Juergen Tretthahn", "winepulse: API Compatibility with 1.5.2 onward.", 2 },';
echo '+ { "Maarten Lankhorst", "winepulse: Fix low latency support.", 1 },';
echo '+ { "Maarten Lankhorst", "winepulse: drop realtime priority before thread destruction.", 1 },';
echo '+ { "Maarten Lankhorst", "winepulse: remove bogus SetEvent from pulse_started_callback.", 1 },';
echo '+ { "Maarten Lankhorst", "winepulse: disable the setevent part of the latency hack.", 1 },';
echo '+ { "Maarten Lankhorst", "winepulse: fix the checks in IsFormatSupported.", 20 },';
echo '+ { "Maarten Lankhorst", "winepulse: fixup IsFormatSupported calls.", 1 },';
echo '+ { "Maarten Lankhorst", "winepulse: return early if padding didn'\''t update.", 21 },';
echo '+ { "Maarten Lankhorst", "winepulse: fix unneeded free in write.", 1 },';
echo '+ { "Maarten Lankhorst", "winepulse: fixup a invalid free in mmdevapi.", 23 },';
echo '+ { "Maarten Lankhorst", "winepulse: use a pi-mutex for serialization.", 1 },';
echo '+ { "Maarten Lankhorst", "winepulse: add support for IMarshal.", 1 },';
echo '+ { "Mark Harmstone", "winepulse: handle stream create failing correctly.", 1 },';
echo '+ { "Andrew Eikum", "winepulse: Trivial cleanups and changes for consistency with other drivers.", 1 },';
echo '+ { "Andrew Eikum", "winepulse: Sync default channel masks with other drivers.", 1 },';
echo '+ { "Andrew Eikum", "winepulse: In Shared mode, track device position in bytes.", 1 },';
echo '+ { "Andrew Eikum", "winepulse: Always mute buffer.", 1 },';
echo '+ { "Andrew Eikum", "winepulse: Remove volume support.", 1 },';
echo '+ { "Maarten Lankhorst", "winepulse: Forward winmm functions to winealsa.", 1 },';
echo '+ { "Mark Harmstone", "winepulse: expose audio devices directly to programs.", 1 },';
echo '+ { "Mark Harmstone", "winepulse: implement exclusive mode.", 1 },';
echo '+ { "Mark Harmstone", "winepulse: fix segfault in pulse_rd_loop.", 1 },';
echo '+ { "Mark Harmstone", "winepulse: implement GetPropValue.", 1 },';
echo '+ { "Mark Harmstone", "winepulse: fetch actual program name if possible.", 1 },';
echo '+ { "Mark Harmstone", "winepulse: return PKEY_AudioEndpoint_PhysicalSpeakers device prop.", 1 },';
) >> "$patchlist"
fi
# Patchset winex11-CandidateWindowPos
# |
# | This patchset fixes the following Wine bugs:

View File

@ -1,37 +0,0 @@
From c87d5df626e5ea91bbdc167707715b43d4424d24 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sat, 31 Oct 2015 14:31:26 +0800
Subject: widl: When adding an interface typedef do check whether it has been
already added while resolving the parent interface.
This patch fixes a long standing bug that when an inherited interface gets
referenced by a parent interface definition then multiple definitions of an
inherited interface get added to a typelib.
This bug has been discovered by the patch that emits a warning for a duplicate
uuid. A test case for this problem is added in the last patch of the series.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
---
tools/widl/write_msft.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/tools/widl/write_msft.c b/tools/widl/write_msft.c
index fc0eae7..98081f2 100644
--- a/tools/widl/write_msft.c
+++ b/tools/widl/write_msft.c
@@ -2078,6 +2078,10 @@ static void add_interface_typeinfo(msft_typelib_t *typelib, type_t *interface)
add_interface_typeinfo(typelib, inherit);
}
+ /* check typelib_idx again, it could have been added while resolving the parent interface */
+ if (-1 < interface->typelib_idx)
+ return;
+
interface->typelib_idx = typelib->typelib_header.nrtypeinfos;
msft_typeinfo = create_msft_typeinfo(typelib, TKIND_INTERFACE, interface->name, interface->attrs);
msft_typeinfo->typeinfo->size = pointer_size;
--
2.6.1

View File

@ -3991,7 +3991,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
}
void CDECL wined3d_device_copy_resource(struct wined3d_device *device,
@@ -3931,7 +4360,17 @@
@@ -3933,7 +4362,17 @@
unsigned int depth_pitch)
{
struct wined3d_resource *sub_resource;
@ -4009,7 +4009,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
TRACE("device %p, resource %p, sub_resource_idx %u, box %p, data %p, row_pitch %u, depth_pitch %u.\n",
device, resource, sub_resource_idx, box, data, row_pitch, depth_pitch);
@@ -3948,7 +4387,14 @@
@@ -3950,7 +4389,14 @@
WARN("Invalid sub_resource_idx %u.\n", sub_resource_idx);
return;
}
@ -4024,7 +4024,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
if (box)
{
if (box->left >= box->right || box->right > sub_resource->width
@@ -3958,9 +4404,47 @@
@@ -3960,9 +4406,47 @@
box->left, box->top, box->front, box->right, box->bottom, box->back);
return;
}
@ -4072,7 +4072,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
}
HRESULT CDECL wined3d_device_clear_rendertarget_view(struct wined3d_device *device,
@@ -3991,8 +4475,14 @@
@@ -3993,8 +4477,14 @@
rect = &r;
}
@ -4087,7 +4087,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
}
struct wined3d_rendertarget_view * CDECL wined3d_device_get_rendertarget_view(const struct wined3d_device *device,
@@ -4006,6 +4496,7 @@
@@ -4008,6 +4498,7 @@
return NULL;
}
@ -4095,7 +4095,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
return device->state.fb.render_targets[view_idx];
}
@@ -4021,6 +4512,22 @@
@@ -4023,6 +4514,22 @@
{
struct wined3d_rendertarget_view *prev;
struct wined3d_fb_state *fb = &device->state.fb;
@ -4118,7 +4118,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
TRACE("device %p, view_idx %u, view %p, set_viewport %#x.\n",
device, view_idx, view, set_viewport);
@@ -4060,6 +4567,7 @@
@@ -4062,6 +4569,7 @@
}
@ -4126,7 +4126,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
prev = fb->render_targets[view_idx];
if (view == prev)
return WINED3D_OK;
@@ -4067,6 +4575,15 @@
@@ -4069,6 +4577,15 @@
if (view)
wined3d_rendertarget_view_incref(view);
fb->render_targets[view_idx] = view;
@ -4142,7 +4142,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
wined3d_cs_emit_set_rendertarget_view(device->cs, view_idx, view);
/* Release after the assignment, to prevent device_resource_released()
* from seeing the surface as still in use. */
@@ -4078,6 +4595,7 @@
@@ -4080,6 +4597,7 @@
void CDECL wined3d_device_set_depth_stencil_view(struct wined3d_device *device, struct wined3d_rendertarget_view *view)
{
@ -4150,7 +4150,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
struct wined3d_fb_state *fb = &device->state.fb;
struct wined3d_rendertarget_view *prev;
@@ -4095,6 +4613,66 @@
@@ -4097,6 +4615,66 @@
wined3d_cs_emit_set_depth_stencil_view(device->cs, view);
if (prev)
wined3d_rendertarget_view_decref(prev);
@ -4217,7 +4217,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
}
HRESULT CDECL wined3d_device_set_cursor_properties(struct wined3d_device *device,
@@ -4115,6 +4693,14 @@
@@ -4117,6 +4695,14 @@
cursor_image = surface_from_resource(sub_resource);
@ -4232,7 +4232,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
if (cursor_image->resource.format->id != WINED3DFMT_B8G8R8A8_UNORM)
{
WARN("Surface %p has an invalid format %s.\n",
@@ -4142,6 +4728,13 @@
@@ -4144,6 +4730,13 @@
* release it after setting the cursor image. Windows doesn't
* addref the set surface, so we can't do this either without
* creating circular refcount dependencies. */
@ -4246,7 +4246,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
if (cursor_image->resource.width == 32 && cursor_image->resource.height == 32)
{
@@ -4246,6 +4839,12 @@
@@ -4248,6 +4841,12 @@
else
SetCursor(NULL);
}
@ -4259,7 +4259,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
return oldVisible;
}
@@ -4256,8 +4855,10 @@
@@ -4258,8 +4857,10 @@
TRACE("device %p.\n", device);
@ -4270,7 +4270,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
LIST_FOR_EACH_ENTRY_SAFE(resource, cursor, &device->resources, struct wined3d_resource, resource_list_entry)
{
TRACE("Checking resource %p for eviction.\n", resource);
@@ -4265,6 +4866,7 @@
@@ -4267,6 +4868,7 @@
if (resource->pool == WINED3D_POOL_MANAGED && !resource->map_count)
{
TRACE("Evicting %p.\n", resource);
@ -4278,7 +4278,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
wined3d_cs_emit_evict_resource(device->cs, resource);
}
}
@@ -4283,6 +4885,37 @@
@@ -4285,6 +4887,37 @@
context = context_acquire(device, NULL);
gl_info = context->gl_info;
@ -4316,7 +4316,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
if (device->depth_blt_texture)
{
@@ -4303,6 +4936,7 @@
@@ -4305,6 +4938,7 @@
HeapFree(GetProcessHeap(), 0, swapchain->context);
swapchain->context = NULL;
@ -4324,7 +4324,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
swapchain->num_contexts = 0;
}
@@ -4322,6 +4956,14 @@
@@ -4324,6 +4958,14 @@
static HRESULT create_primary_opengl_context(struct wined3d_device *device, struct wined3d_swapchain *swapchain)
{
@ -4339,7 +4339,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
HRESULT hr;
if (FAILED(hr = device->shader_backend->shader_alloc_private(device,
@@ -4338,6 +4980,7 @@
@@ -4340,6 +4982,7 @@
return hr;
}
@ -4347,7 +4347,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
hr = wined3d_cs_emit_create_swapchain_context(device->cs, swapchain);
if (FAILED(hr))
{
@@ -4348,6 +4991,34 @@
@@ -4350,6 +4993,34 @@
}
wined3d_cs_emit_create_dummy_textures(device->cs);
@ -4382,7 +4382,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
return WINED3D_OK;
}
@@ -4366,9 +5037,11 @@
@@ -4368,9 +5039,11 @@
TRACE("device %p, swapchain_desc %p, mode %p, callback %p, reset_state %#x.\n",
device, swapchain_desc, mode, callback, reset_state);
@ -4394,7 +4394,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
if (!(swapchain = wined3d_device_get_swapchain(device, 0)))
{
ERR("Failed to get the first implicit swapchain.\n");
@@ -4383,9 +5056,21 @@
@@ -4385,9 +5058,21 @@
wined3d_texture_decref(device->logo_texture);
device->logo_texture = NULL;
}
@ -4416,7 +4416,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
{
for (i = 0; i < device->adapter->gl_info.limits.buffers; ++i)
{
@@ -4394,6 +5079,7 @@
@@ -4396,6 +5081,7 @@
}
wined3d_device_set_depth_stencil_view(device, NULL);
@ -4424,7 +4424,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
if (reset_state)
{
state_unbind_resources(&device->state);
@@ -4403,6 +5089,12 @@
@@ -4405,6 +5091,12 @@
{
wined3d_surface_decref(device->cs->onscreen_depth_stencil);
device->cs->onscreen_depth_stencil = NULL;
@ -4437,7 +4437,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
}
if (reset_state)
@@ -4415,6 +5107,7 @@
@@ -4417,6 +5109,7 @@
}
}
@ -4445,7 +4445,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
/* Free implicit resources and wait for the command stream before modifying
* swapchain parameters. After modifying the swapchain parameters a new GL
* context may be acquired by the worker thread. This causes problems in the
@@ -4436,6 +5129,7 @@
@@ -4438,6 +5131,7 @@
}
device->cs->ops->finish(device->cs);
@ -4453,7 +4453,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
TRACE("New params:\n");
TRACE("backbuffer_width %u\n", swapchain_desc->backbuffer_width);
TRACE("backbuffer_height %u\n", swapchain_desc->backbuffer_height);
@@ -4562,6 +5256,13 @@
@@ -4564,6 +5258,13 @@
swapchain_desc->multisample_type, swapchain_desc->multisample_quality)))
return hr;
@ -4467,7 +4467,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
if (swapchain->desc.enable_auto_depth_stencil)
{
struct wined3d_resource_desc texture_desc;
@@ -4604,6 +5305,13 @@
@@ -4606,6 +5307,13 @@
wined3d_device_set_depth_stencil_view(device, device->auto_depth_stencil_view);
}
@ -4481,7 +4481,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
if (swapchain->desc.backbuffer_count && FAILED(hr = wined3d_rendertarget_view_create_from_surface(
surface_from_resource(wined3d_texture_get_sub_resource(swapchain->back_buffers[0], 0)),
NULL, &wined3d_null_parent_ops, &device->back_buffer_view)))
@@ -4624,12 +5332,20 @@
@@ -4626,12 +5334,20 @@
}
wined3d_cs_emit_reset_state(device->cs);
state_cleanup(&device->state);
@ -4502,7 +4502,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
&device->adapter->d3d_info, WINED3D_STATE_INIT_DEFAULT)))
ERR("Failed to initialize device state, hr %#x.\n", hr);
device->update_state = &device->state;
@@ -4638,6 +5354,7 @@
@@ -4640,6 +5356,7 @@
}
else if (device->back_buffer_view)
{
@ -4510,7 +4510,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
struct wined3d_state *state = &device->state;
wined3d_device_set_rendertarget_view(device, 0, device->back_buffer_view, FALSE);
@@ -4653,6 +5370,24 @@
@@ -4655,6 +5372,24 @@
state->scissor_rect.left = 0;
state->scissor_rect.right = swapchain->desc.backbuffer_width;
state->scissor_rect.bottom = swapchain->desc.backbuffer_height;
@ -4535,7 +4535,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
wined3d_cs_emit_set_scissor_rect(device->cs, &state->scissor_rect);
}
@@ -4728,6 +5463,10 @@
@@ -4730,6 +5465,10 @@
TRACE("device %p, resource %p, type %s.\n", device, resource, debug_d3dresourcetype(type));
@ -4546,7 +4546,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
switch (type)
{
case WINED3D_RTYPE_SURFACE:
@@ -4738,6 +5477,7 @@
@@ -4740,6 +5479,7 @@
for (i = 0; i < device->adapter->gl_info.limits.buffers; ++i)
{
@ -4554,7 +4554,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
if (wined3d_rendertarget_view_get_surface(device->state.fb.render_targets[i]) == surface)
{
ERR("Surface %p is still in use as render target %u.\n", surface, i);
@@ -4749,6 +5489,19 @@
@@ -4751,6 +5491,19 @@
{
ERR("Surface %p is still in use as depth/stencil buffer.\n", surface);
device->state.fb.depth_stencil = NULL;
@ -4574,7 +4574,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
}
}
break;
@@ -4911,7 +5664,11 @@
@@ -4913,7 +5666,11 @@
device->blitter = adapter->blitter;
@ -4586,7 +4586,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
&adapter->d3d_info, WINED3D_STATE_INIT_DEFAULT)))
{
ERR("Failed to initialize device state, hr %#x.\n", hr);
@@ -5010,6 +5767,7 @@
@@ -5012,6 +5769,7 @@
else
return CallWindowProcA(proc, window, message, wparam, lparam);
}
@ -4594,7 +4594,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
/* Context activation is done by the caller */
struct wined3d_gl_bo *wined3d_device_get_bo(struct wined3d_device *device, UINT size, GLenum gl_usage,
@@ -5063,3 +5821,4 @@
@@ -5065,3 +5823,4 @@
wined3d_device_destroy_bo(device, context, bo);
}
@ -9733,7 +9733,7 @@ diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -5546,9 +5546,15 @@
@@ -5548,9 +5548,15 @@
DebugBreak();
}

View File

@ -6,3 +6,4 @@ Fixes: Add support for GetPropValue to PulseAudio backend
Fixes: Use actual program name if available to describe PulseAudio streams
Fixes: Expose PKEY_AudioEndpoint_PhysicalSpeakers device property in PulseAudio driver
Category: stable
Disabled: true