Rebase against 705c52691a4e8c6224cda5080fb88f257de5fd77.

This commit is contained in:
Sebastian Lackner 2016-12-06 21:52:20 +01:00
parent 5403b21e6a
commit 0d616d719e
18 changed files with 113 additions and 539 deletions

View File

@ -1,4 +1,4 @@
From eef0f09e4274a5c6b748386a2b1a99615d495460 Mon Sep 17 00:00:00 2001
From 08231829bbfa686e537a0c94f3aa4ede92a7817b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sun, 17 Jan 2016 17:12:45 +0100
Subject: ext-ms-win-appmodel-usercontext-l1-1-0: Add dll and add stub for
@ -15,17 +15,17 @@ Subject: ext-ms-win-appmodel-usercontext-l1-1-0: Add dll and add stub for
create mode 100644 dlls/ext-ms-win-appmodel-usercontext-l1-1-0/main.c
diff --git a/configure.ac b/configure.ac
index 8e44524..18b1d96 100644
index bdd390c..6264ede 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3009,6 +3009,7 @@ WINE_CONFIG_DLL(esent)
@@ -3020,6 +3020,7 @@ WINE_CONFIG_DLL(esent)
WINE_CONFIG_DLL(evr)
WINE_CONFIG_DLL(explorerframe,,[clean])
WINE_CONFIG_TEST(dlls/explorerframe/tests)
+WINE_CONFIG_DLL(ext-ms-win-appmodel-usercontext-l1-1-0)
WINE_CONFIG_DLL(ext-ms-win-domainjoin-netjoin-l1-1-0)
WINE_CONFIG_DLL(ext-ms-win-gdi-dc-create-l1-1-1)
WINE_CONFIG_DLL(ext-ms-win-gdi-dc-l1-2-0)
WINE_CONFIG_DLL(ext-ms-win-gdi-devcaps-l1-1-0)
diff --git a/dlls/ext-ms-win-appmodel-usercontext-l1-1-0/Makefile.in b/dlls/ext-ms-win-appmodel-usercontext-l1-1-0/Makefile.in
new file mode 100644
index 0000000..16eee75

View File

@ -1,4 +1,4 @@
From 3a9f17ff8dce1e9005b63fea1e9577a44b1089e8 Mon Sep 17 00:00:00 2001
From 3d0de5feeb0cf5863dd355e0e6f271de1665124c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 23 Jan 2016 21:05:14 +0100
Subject: api-ms-win-rtcore-ntuser-window-l1-1-0: Add dll
@ -13,12 +13,12 @@ Subject: api-ms-win-rtcore-ntuser-window-l1-1-0: Add dll
create mode 100644 dlls/api-ms-win-rtcore-ntuser-window-l1-1-0/api-ms-win-rtcore-ntuser-window-l1-1-0.spec
diff --git a/configure.ac b/configure.ac
index 0f011a8..8925496 100644
index e1dc9f2..82b112b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2791,6 +2791,7 @@ WINE_CONFIG_DLL(api-ms-win-eventing-provider-l1-1-0)
WINE_CONFIG_DLL(api-ms-win-eventlog-legacy-l1-1-0)
WINE_CONFIG_DLL(api-ms-win-ntuser-dc-access-l1-1-0)
@@ -2800,6 +2800,7 @@ WINE_CONFIG_DLL(api-ms-win-ntuser-dc-access-l1-1-0)
WINE_CONFIG_DLL(api-ms-win-power-base-l1-1-0)
WINE_CONFIG_DLL(api-ms-win-power-setting-l1-1-0)
WINE_CONFIG_DLL(api-ms-win-rtcore-ntuser-private-l1-1-0)
+WINE_CONFIG_DLL(api-ms-win-rtcore-ntuser-window-l1-1-0)
WINE_CONFIG_DLL(api-ms-win-security-audit-l1-1-1)
@ -119,10 +119,10 @@ index 0000000..b7575c6
+@ stdcall WaitMessage() user32.WaitMessage
+@ stdcall WindowFromPoint(int64) user32.WindowFromPoint
diff --git a/tools/make_specfiles b/tools/make_specfiles
index 787cadb..48f5be8 100755
index 0fd0420..89b311e 100755
--- a/tools/make_specfiles
+++ b/tools/make_specfiles
@@ -285,6 +285,7 @@ my @dll_groups =
@@ -302,6 +302,7 @@ my @dll_groups =
"api-ms-win-downlevel-user32-l1-1-0",
"api-ms-win-ntuser-dc-access-l1-1-0",
"api-ms-win-rtcore-ntuser-private-l1-1-0",

View File

@ -1,4 +1,4 @@
From 27fa802e9493edee0395b5de81a2e2b53ee41df3 Mon Sep 17 00:00:00 2001
From 3aa4751bd2cd9918733772e4a5a6c418bebfe560 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 23 Jan 2016 21:08:48 +0100
Subject: api-ms-win-rtcore-ntuser-draw-l1-1-0: Add dll.
@ -13,13 +13,13 @@ Subject: api-ms-win-rtcore-ntuser-draw-l1-1-0: Add dll.
create mode 100644 dlls/api-ms-win-rtcore-ntuser-draw-l1-1-0/api-ms-win-rtcore-ntuser-draw-l1-1-0.spec
diff --git a/configure.ac b/configure.ac
index ebe0713..c703f0f 100644
index 97dfa5e..cd145dd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2790,6 +2790,7 @@ WINE_CONFIG_DLL(api-ms-win-eventing-controller-l1-1-0)
WINE_CONFIG_DLL(api-ms-win-eventing-provider-l1-1-0)
WINE_CONFIG_DLL(api-ms-win-eventlog-legacy-l1-1-0)
@@ -2799,6 +2799,7 @@ WINE_CONFIG_DLL(api-ms-win-eventlog-legacy-l1-1-0)
WINE_CONFIG_DLL(api-ms-win-ntuser-dc-access-l1-1-0)
WINE_CONFIG_DLL(api-ms-win-power-base-l1-1-0)
WINE_CONFIG_DLL(api-ms-win-power-setting-l1-1-0)
+WINE_CONFIG_DLL(api-ms-win-rtcore-ntuser-draw-l1-1-0)
WINE_CONFIG_DLL(api-ms-win-rtcore-ntuser-private-l1-1-0)
WINE_CONFIG_DLL(api-ms-win-rtcore-ntuser-window-l1-1-0)
@ -39,10 +39,10 @@ index 0000000..59900a9
@@ -0,0 +1 @@
+@ stdcall RedrawWindow(long ptr long long) user32.RedrawWindow
diff --git a/tools/make_specfiles b/tools/make_specfiles
index e2e5463..ab70e99 100755
index a37666c..937a92f 100755
--- a/tools/make_specfiles
+++ b/tools/make_specfiles
@@ -284,6 +284,7 @@ my @dll_groups =
@@ -301,6 +301,7 @@ my @dll_groups =
"api-ms-win-core-string-l2-1-0",
"api-ms-win-downlevel-user32-l1-1-0",
"api-ms-win-ntuser-dc-access-l1-1-0",

View File

@ -1,110 +0,0 @@
From 45971b05a455960603d6565181e90d2025f37492 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Tue, 15 Nov 2016 06:59:13 +0000
Subject: dpnet: Header files cleanup
Also stops error of SOCKADDR being redefined on older compiliers
Fixes: https://bugs.winehq.org/show_bug.cgi?id=41705
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
---
dlls/dpnet/address.c | 1 -
dlls/dpnet/client.c | 1 -
dlls/dpnet/lobbiedapp.c | 2 --
dlls/dpnet/peer.c | 1 -
dlls/dpnet/server.c | 1 -
dlls/dpnet/threadpool.c | 1 -
include/dpaddr.h | 2 ++
7 files changed, 2 insertions(+), 7 deletions(-)
diff --git a/dlls/dpnet/address.c b/dlls/dpnet/address.c
index c5457eb..4d55caa 100644
--- a/dlls/dpnet/address.c
+++ b/dlls/dpnet/address.c
@@ -33,7 +33,6 @@
#include "wine/unicode.h"
#include "wine/debug.h"
-#include "dplay8.h"
#include "dpnet_private.h"
WINE_DEFAULT_DEBUG_CHANNEL(dpnet);
diff --git a/dlls/dpnet/client.c b/dlls/dpnet/client.c
index 9692e38..1fa825f 100644
--- a/dlls/dpnet/client.c
+++ b/dlls/dpnet/client.c
@@ -31,7 +31,6 @@
#include "objbase.h"
#include "wine/debug.h"
-#include "dplay8.h"
#include "dpnet_private.h"
WINE_DEFAULT_DEBUG_CHANNEL(dpnet);
diff --git a/dlls/dpnet/lobbiedapp.c b/dlls/dpnet/lobbiedapp.c
index 8ec9ad1..d041e63 100644
--- a/dlls/dpnet/lobbiedapp.c
+++ b/dlls/dpnet/lobbiedapp.c
@@ -31,8 +31,6 @@
#include "objbase.h"
#include "wine/debug.h"
-#include "dplay8.h"
-#include "dplobby8.h"
#include "dpnet_private.h"
WINE_DEFAULT_DEBUG_CHANNEL(dpnet);
diff --git a/dlls/dpnet/peer.c b/dlls/dpnet/peer.c
index fe62d59..d7144df 100644
--- a/dlls/dpnet/peer.c
+++ b/dlls/dpnet/peer.c
@@ -33,7 +33,6 @@
#include "objbase.h"
#include "wine/debug.h"
-#include "dplay8.h"
#include "dpnet_private.h"
WINE_DEFAULT_DEBUG_CHANNEL(dpnet);
diff --git a/dlls/dpnet/server.c b/dlls/dpnet/server.c
index d91822e..46d5fe2 100644
--- a/dlls/dpnet/server.c
+++ b/dlls/dpnet/server.c
@@ -32,7 +32,6 @@
#include "ocidl.h"
#include "wine/debug.h"
-#include "dplay8.h"
#include "dpnet_private.h"
typedef struct IDirectPlay8ServerImpl
diff --git a/dlls/dpnet/threadpool.c b/dlls/dpnet/threadpool.c
index 274789d..9e13ffb 100644
--- a/dlls/dpnet/threadpool.c
+++ b/dlls/dpnet/threadpool.c
@@ -32,7 +32,6 @@
#include "objbase.h"
#include "wine/debug.h"
-#include "dplay8.h"
#include "dpnet_private.h"
WINE_DEFAULT_DEBUG_CHANNEL(dpnet);
diff --git a/include/dpaddr.h b/include/dpaddr.h
index 576caaf..d47dd26 100644
--- a/include/dpaddr.h
+++ b/include/dpaddr.h
@@ -27,7 +27,9 @@ extern "C" {
#endif /* defined(__cplusplus) */
typedef REFIID DPNAREFIID;
+#ifndef _WINSOCK2API_
typedef struct sockaddr SOCKADDR;
+#endif
/*****************************************************************************
* DirectPlay8Addr defines
--
2.9.0

View File

@ -1,29 +0,0 @@
From 68a94ad2c728c00cc9f81b961b4d47dbe3ccb2f3 Mon Sep 17 00:00:00 2001
From: Christian Costa <titan.costa@gmail.com>
Date: Tue, 6 Sep 2016 00:10:09 +0200
Subject: msvcrt: Display noisy FIXME only once in pf_printf.
---
dlls/msvcrt/printf.h | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/dlls/msvcrt/printf.h b/dlls/msvcrt/printf.h
index 6c9eeeb..4e59f31 100644
--- a/dlls/msvcrt/printf.h
+++ b/dlls/msvcrt/printf.h
@@ -495,8 +495,10 @@ int FUNC_NAME(pf_printf)(FUNC_NAME(puts_clbk) pf_puts, void *puts_ctx, const API
} else if(flags.Format == 'c' || flags.Format == 'C') {
int ch = pf_args(args_ctx, pos, VT_INT, valist).get_int;
- if((ch&0xff) != ch)
- FIXME("multibyte characters printing not supported\n");
+ if((ch&0xff) != ch) {
+ static int once;
+ if (!once++) FIXME("multibyte characters printing not supported\n");
+ }
i = FUNC_NAME(pf_handle_string)(pf_puts, puts_ctx, &ch, 1, &flags, locinfo, legacy_wide);
} else if(flags.Format == 'p') {
--
2.9.0

View File

@ -1,4 +1,4 @@
From 595d96fdba45c66788ba83732fa7e5bfc8a5947b Mon Sep 17 00:00:00 2001
From 9ae94214e0afa58f6b518ec34fd325a1ae57230a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Thu, 31 Mar 2016 00:58:04 +0200
Subject: msvfw32: Try different formarts in ICGetDisplayFormat.
@ -9,10 +9,10 @@ Subject: msvfw32: Try different formarts in ICGetDisplayFormat.
2 files changed, 308 insertions(+), 22 deletions(-)
diff --git a/dlls/msvfw32/msvideo_main.c b/dlls/msvfw32/msvideo_main.c
index 0ae33ed..a76828a 100644
index cc5c85d..25b80ff 100644
--- a/dlls/msvfw32/msvideo_main.c
+++ b/dlls/msvfw32/msvideo_main.c
@@ -719,25 +719,80 @@ HIC VFWAPI ICGetDisplayFormat(
@@ -718,25 +718,80 @@ HIC VFWAPI ICGetDisplayFormat(
HIC hic,LPBITMAPINFOHEADER lpbiIn,LPBITMAPINFOHEADER lpbiOut,
INT depth,INT dx,INT dy)
{
@ -104,7 +104,7 @@ index 0ae33ed..a76828a 100644
FIXME("Ooch, how come decompressor outputs compressed data (%d)??\n",
lpbiOut->biCompression);
}
@@ -746,20 +801,11 @@ HIC VFWAPI ICGetDisplayFormat(
@@ -745,20 +800,11 @@ HIC VFWAPI ICGetDisplayFormat(
lpbiOut->biSize);
lpbiOut->biSize = sizeof(*lpbiOut);
}
@ -128,10 +128,10 @@ index 0ae33ed..a76828a 100644
if (hic!=tmphic)
ICClose(tmphic);
diff --git a/dlls/msvfw32/tests/msvfw.c b/dlls/msvfw32/tests/msvfw.c
index 125cac5..7fd4c43 100644
index 3fe6702..22b32ee 100644
--- a/dlls/msvfw32/tests/msvfw.c
+++ b/dlls/msvfw32/tests/msvfw.c
@@ -285,9 +285,249 @@ static void test_ICSeqCompress(void)
@@ -285,6 +285,245 @@ static void test_ICSeqCompress(void)
ok(err == ICERR_BADHANDLE, "Expected -8, got %d\n", err);
}
@ -374,12 +374,15 @@ index 125cac5..7fd4c43 100644
+ ICClose(ic);
+}
+
START_TEST(msvfw)
static void test_ICInfo(void)
{
ICINFO info, info2;
@@ -324,5 +563,6 @@ START_TEST(msvfw)
test_OpenCase();
test_Locate();
test_ICSeqCompress();
+ test_ICGetDisplayFormat();
test_ICInfo();
}
--
2.9.0

View File

@ -1,28 +0,0 @@
From 43f660323b880ccda7da022b95f5bfed2a1c1fc3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Wed, 26 Oct 2016 03:43:16 +0200
Subject: msvfw32: Use case insensitive compare in ICInfo for fourcc codes.
---
dlls/msvfw32/msvideo_main.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/dlls/msvfw32/msvideo_main.c b/dlls/msvfw32/msvideo_main.c
index 0ae33ed..1b4e9ca 100644
--- a/dlls/msvfw32/msvideo_main.c
+++ b/dlls/msvfw32/msvideo_main.c
@@ -299,9 +299,8 @@ static BOOL ICInfo_enum_handler(const char *drv, unsigned int nr, void *param)
ICINFO *lpicinfo = param;
DWORD fccHandler = mmioStringToFOURCCA(drv + 5, 0);
- /* exact match of fccHandler or nth driver found */
- if ((lpicinfo->fccHandler != nr) && (lpicinfo->fccHandler != fccHandler))
- return FALSE;
+ if (lpicinfo->fccHandler != nr && compare_fourcc(lpicinfo->fccHandler, fccHandler))
+ return FALSE;
lpicinfo->fccHandler = fccHandler;
lpicinfo->dwFlags = 0;
--
2.9.0

View File

@ -1 +0,0 @@
Fixes: [41602] Use case insensitive compare in ICInfo_enum_handler

View File

@ -52,13 +52,13 @@ usage()
# Get the upstream commit sha
upstream_commit()
{
echo "02d723045ff15d2bda5475b8b6fe212ee3483cd8"
echo "705c52691a4e8c6224cda5080fb88f257de5fd77"
}
# Show version information
version()
{
echo "Wine Staging 1.9.23"
echo "Wine Staging 1.9.24 (unreleased)"
echo "Copyright (C) 2014-2016 the Wine Staging project authors."
echo ""
echo "Patchset to be applied on upstream Wine:"
@ -162,7 +162,6 @@ patch_enable_all ()
enable_imagehlp_Cleanup="$1"
enable_imagehlp_ImageLoad="$1"
enable_imm32_IMMDisableLegacyIME="$1"
enable_include_Duplicate_Typedef="$1"
enable_inseng_Implementation="$1"
enable_iphlpapi_System_Ping="$1"
enable_iphlpapi_TCP_Table="$1"
@ -200,9 +199,7 @@ patch_enable_all ()
enable_msidb_Implementation="$1"
enable_msvcr120__SetWinRTOutOfMemoryExceptionCallback="$1"
enable_msvcrt_Math_Precision="$1"
enable_msvcrt_Silence_FIXMEs="$1"
enable_msvfw32_ICGetDisplayFormat="$1"
enable_msvfw32_ICInfo_enum_handler="$1"
enable_msvideo_dll16_DrawDibProfileDisplay="$1"
enable_ntdll_APC_Performance="$1"
enable_ntdll_APC_Start_Process="$1"
@ -371,13 +368,11 @@ patch_enable_all ()
enable_wined3d_1DTextures="$1"
enable_wined3d_Accounting="$1"
enable_wined3d_CSMT_Helper="$1"
enable_wined3d_CSMT_Main="$1"
enable_wined3d_DXTn="$1"
enable_wined3d_GTX_560M="$1"
enable_wined3d_Limit_Vram="$1"
enable_wined3d_QUERY_Stubs="$1"
enable_wined3d_Revert_Pixel_Center_Offset="$1"
enable_wined3d_Revert_Texture_Upload="$1"
enable_wined3d_Silence_FIXMEs="$1"
enable_wined3d_WINED3DFMT_R32G32_UINT="$1"
enable_wined3d_check_format_support="$1"
@ -673,9 +668,6 @@ patch_enable ()
imm32-IMMDisableLegacyIME)
enable_imm32_IMMDisableLegacyIME="$2"
;;
include-Duplicate_Typedef)
enable_include_Duplicate_Typedef="$2"
;;
inseng-Implementation)
enable_inseng_Implementation="$2"
;;
@ -787,15 +779,9 @@ patch_enable ()
msvcrt-Math_Precision)
enable_msvcrt_Math_Precision="$2"
;;
msvcrt-Silence_FIXMEs)
enable_msvcrt_Silence_FIXMEs="$2"
;;
msvfw32-ICGetDisplayFormat)
enable_msvfw32_ICGetDisplayFormat="$2"
;;
msvfw32-ICInfo_enum_handler)
enable_msvfw32_ICInfo_enum_handler="$2"
;;
msvideo.dll16-DrawDibProfileDisplay)
enable_msvideo_dll16_DrawDibProfileDisplay="$2"
;;
@ -1300,9 +1286,6 @@ patch_enable ()
wined3d-CSMT_Helper)
enable_wined3d_CSMT_Helper="$2"
;;
wined3d-CSMT_Main)
enable_wined3d_CSMT_Main="$2"
;;
wined3d-DXTn)
enable_wined3d_DXTn="$2"
;;
@ -1318,9 +1301,6 @@ patch_enable ()
wined3d-Revert_Pixel_Center_Offset)
enable_wined3d_Revert_Pixel_Center_Offset="$2"
;;
wined3d-Revert_Texture_Upload)
enable_wined3d_Revert_Texture_Upload="$2"
;;
wined3d-Silence_FIXMEs)
enable_wined3d_Silence_FIXMEs="$2"
;;
@ -2026,13 +2006,6 @@ if test "$enable_wpcap_Dynamic_Linking" -eq 1; then
enable_wpcap_Several_Fixes=1
fi
if test "$enable_wined3d_CSMT_Main" -eq 1; then
if test "$enable_wined3d_CSMT_Helper" -gt 1; then
abort "Patchset wined3d-CSMT_Helper disabled, but wined3d-CSMT_Main depends on that."
fi
enable_wined3d_CSMT_Helper=1
fi
if test "$enable_wined3d_CSMT_Helper" -eq 1; then
if test "$enable_makedep_PARENTSPEC" -gt 1; then
abort "Patchset makedep-PARENTSPEC disabled, but wined3d-CSMT_Helper depends on that."
@ -4065,19 +4038,6 @@ if test "$enable_imm32_IMMDisableLegacyIME" -eq 1; then
) >> "$patchlist"
fi
# Patchset include-Duplicate_Typedef
# |
# | Modified files:
# | * dlls/dpnet/address.c, dlls/dpnet/client.c, dlls/dpnet/lobbiedapp.c, dlls/dpnet/peer.c, dlls/dpnet/server.c,
# | dlls/dpnet/threadpool.c, include/dpaddr.h
# |
if test "$enable_include_Duplicate_Typedef" -eq 1; then
patch_apply include-Duplicate_Typedef/0001-dpnet-Avoid-redefinition-of-SOCKADDR.patch
(
echo '+ { "Alistair Leslie-Hughes", "dpnet: Header files cleanup.", 1 },';
) >> "$patchlist"
fi
# Patchset inseng-Implementation
# |
# | This patchset fixes the following Wine bugs:
@ -4766,18 +4726,6 @@ if test "$enable_msvcrt_Math_Precision" -eq 1; then
) >> "$patchlist"
fi
# Patchset msvcrt-Silence_FIXMEs
# |
# | Modified files:
# | * dlls/msvcrt/printf.h
# |
if test "$enable_msvcrt_Silence_FIXMEs" -eq 1; then
patch_apply msvcrt-Silence_FIXMEs/0001-msvcrt-Display-noisy-FIXME-only-once-in-pf_printf.patch
(
echo '+ { "Christian Costa", "msvcrt: Display noisy FIXME only once in pf_printf.", 1 },';
) >> "$patchlist"
fi
# Patchset msvfw32-ICGetDisplayFormat
# |
# | This patchset fixes the following Wine bugs:
@ -4807,21 +4755,6 @@ if test "$enable_msvfw32_ICGetDisplayFormat" -eq 1; then
) >> "$patchlist"
fi
# Patchset msvfw32-ICInfo_enum_handler
# |
# | This patchset fixes the following Wine bugs:
# | * [#41602] Use case insensitive compare in ICInfo_enum_handler
# |
# | Modified files:
# | * dlls/msvfw32/msvideo_main.c
# |
if test "$enable_msvfw32_ICInfo_enum_handler" -eq 1; then
patch_apply msvfw32-ICInfo_enum_handler/0001-msvfw32-Use-case-insensitive-compare-in-ICInfo-for-f.patch
(
echo '+ { "Michael Müller", "msvfw32: Use case insensitive compare in ICInfo for fourcc codes.", 1 },';
) >> "$patchlist"
fi
# Patchset msvideo.dll16-DrawDibProfileDisplay
# |
# | Modified files:
@ -7698,18 +7631,6 @@ if test "$enable_wined3d_Limit_Vram" -eq 1; then
) >> "$patchlist"
fi
# Patchset wined3d-Revert_Texture_Upload
# |
# | Modified files:
# | * dlls/wined3d/texture.c
# |
if test "$enable_wined3d_Revert_Texture_Upload" -eq 1; then
patch_apply wined3d-Revert_Texture_Upload/0001-Revert-wined3d-Implement-the-initial-texture-data-up.patch
(
echo '+ { "Sebastian Lackner", "Revert \"wined3d: Implement the initial texture data upload on top of wined3d_device_update_sub_resource().\".", 1 },';
) >> "$patchlist"
fi
# Patchset wined3d-WINED3DFMT_R32G32_UINT
# |
# | Modified files:
@ -7738,163 +7659,6 @@ if test "$enable_wined3d_check_format_support" -eq 1; then
) >> "$patchlist"
fi
# Patchset wined3d-CSMT_Main
# |
# | This patchset has the following (direct or indirect) dependencies:
# | * makedep-PARENTSPEC, ntdll-Attach_Process_DLLs, ntdll-DllOverrides_WOW64, ntdll-Loader_Machine_Type, ntdll-DllRedirects,
# | wined3d-1DTextures, wined3d-Accounting, wined3d-DXTn, wined3d-QUERY_Stubs, wined3d-Revert_Pixel_Center_Offset, wined3d-
# | Silence_FIXMEs, wined3d-CSMT_Helper
# |
# | This patchset fixes the following Wine bugs:
# | * [#11674] Support for CSMT (command stream) to increase graphic performance
# |
# | Modified files:
# | * dlls/wined3d/arb_program_shader.c, dlls/wined3d/buffer.c, dlls/wined3d/context.c, dlls/wined3d/cs.c,
# | dlls/wined3d/device.c, dlls/wined3d/drawprim.c, dlls/wined3d/glsl_shader.c, dlls/wined3d/query.c,
# | dlls/wined3d/resource.c, dlls/wined3d/sampler.c, dlls/wined3d/shader.c, dlls/wined3d/state.c, dlls/wined3d/stateblock.c,
# | dlls/wined3d/surface.c, dlls/wined3d/swapchain.c, dlls/wined3d/texture.c, dlls/wined3d/utils.c, dlls/wined3d/view.c,
# | dlls/wined3d/wined3d_main.c, dlls/wined3d/wined3d_private.h, include/wine/wined3d.h
# |
if test "$enable_wined3d_CSMT_Main" -eq 1; then
patch_apply wined3d-CSMT_Main/9999-IfDefined.patch
(
echo '+ { "Sebastian Lackner", "Revert \"wined3d: Return location from wined3d_buffer_get_memory().\".", 1 },';
echo '+ { "Sebastian Lackner", "Revert \"wined3d: Use unsynchronized buffer updates only if there has been at least one buffer map.\".", 1 },';
echo '+ { "Sebastian Lackner", "Revert \"wined3d: Avoid unsynchronized buffer update when reloading whole buffer.\".", 1 },';
echo '+ { "Sebastian Lackner", "Revert \"wined3d: Introduce wined3d_rendertarget_view_get_drawable_size() as replacement for surface_get_drawable_size().\".", 1 },';
echo '+ { "Sebastian Lackner", "Revert \"wined3d: Move surface_get_drawable_size() to view.c file.\".", 1 },';
echo '+ { "Sebastian Lackner", "Revert \"wined3d: Mark buffers as used in wined3d_buffer_copy().\".", 1 },';
echo '+ { "Sebastian Lackner", "Revert \"wined3d: Use wined3d_vec4 in fixup_transformed_pos().\".", 1 },';
echo '+ { "Sebastian Lackner", "Revert \"wined3d: Invalidate STATE_CONSTANT_BUFFER(*) device state in buffer_destroy_buffer_object() when needed.\".", 1 },';
echo '+ { "Sebastian Lackner", "Revert \"wined3d: Fix style issues in delete_gl_buffer().\".", 1 },';
echo '+ { "Sebastian Lackner", "Revert \"wined3d: Pass context to delete_gl_buffer().\".", 1 },';
echo '+ { "Sebastian Lackner", "Revert \"wined3d: Invalidate device state based on buffer bind flags when buffer is deleted.\".", 1 },';
echo '+ { "Sebastian Lackner", "Revert \"wined3d: Compute \"buffer_type_hint\" from buffer bind flags.\".", 1 },';
echo '+ { "Sebastian Lackner", "Revert \"wined3d: Use buffer_bind() in buffer_conversion_upload().\".", 1 },';
echo '+ { "Sebastian Lackner", "Revert \"wined3d: Fix index offset for immediate mode draws.\".", 1 },';
echo '+ { "Sebastian Lackner", "Revert \"wined3d: Introduce buffer_conversion_upload() helper function.\".", 1 },';
echo '+ { "Sebastian Lackner", "Revert \"wined3d: Replace wined3d_buffer_load_sysmem() calls with wined3d_buffer_load_location().\".", 1 },';
echo '+ { "Sebastian Lackner", "Revert \"wined3d: Prefer current locations to WINED3D_LOCATION_SYSMEM in wined3d_buffer_copy().\".", 1 },';
echo '+ { "Sebastian Lackner", "Revert \"wined3d: Introduce wined3d_buffer_get_memory().\".", 1 },';
echo '+ { "Sebastian Lackner", "Revert \"wined3d: Implement wined3d_buffer_prepare_location() for WINED3D_LOCATION_BUFFER.\".", 1 },';
echo '+ { "Sebastian Lackner", "Revert \"wined3d: Move buffer_get_memory() under wined3d_buffer_load_sysmem().\".", 1 },';
echo '+ { "Sebastian Lackner", "Revert \"wined3d: Do not assume that WINED3D_LOCATION_SYSMEM is always valid for double buffered buffers.\".", 1 },';
echo '+ { "Sebastian Lackner", "Revert \"wined3d: Introduce wined3d_buffer_load_location().\".", 1 },';
echo '+ { "Sebastian Lackner", "Revert \"wined3d: Introduce wined3d_buffer_prepapre_location().\".", 1 },';
echo '+ { "Sebastian Lackner", "Revert \"wined3d: Explicitly track locations for buffers.\".", 1 },';
echo '+ { "Sebastian Lackner", "Revert \"wined3d: Clean up buffer_internal_preload().\".", 1 },';
echo '+ { "Sebastian Lackner", "Revert \"wined3d: Let buffer_direct_upload() invalidate STATE_INDEXBUFFER if needed.\".", 1 },';
echo '+ { "Sebastian Lackner", "Revert \"wined3d: Sanitise resource map flags in wined3d_resource_map().\".", 1 },';
echo '+ { "Sebastian Lackner", "Revert \"wined3d: Send resource unmaps through the command stream.\".", 1 },';
echo '+ { "Sebastian Lackner", "Revert \"wined3d: Send resource maps through the command stream.\".", 1 },';
echo '+ { "Sebastian Lackner", "Revert \"wined3d: Send shader constant updates through the command stream.\".", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Make surface_load_location return nothing.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Call texture_load_location instead of surface_load_location.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Share surface and volume system memory loading code.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Don'\''t call the public map function in surface_convert_format.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Don'\''t call the public map function in surface_cpu_blt.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Move the framebuffer into wined3d_state.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Preload buffers if streamsrc is not dirty.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Hackily introduce a multithreaded command stream.", 1 },';
echo '+ { "Henri Verbeet", "wined3d: Wait for resource updates to finish when using the multithreaded command stream.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Wait for the cs before destroying objects.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Give the cs its own state.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Send float constant updates through the command stream.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Request a glFinish before modifying resources outside the cs.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Finish the cs before changing the texture lod.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Don'\''t call glFinish after clears.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Don'\''t call glFinish after draws.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Pass the depth stencil to swapchain->present.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Keep track of the onscreen depth stencil in the command stream instead of the device.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Send base vertex index updates through the cs.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Send primitive type updates through the command stream.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Send bool constant updates through the command stream.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Send int constant updates through the command stream.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Send light updates through the command stream.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Prevent the command stream from running ahead too far.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Wait for the cs to finish before destroying the device.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Run the cs asynchronously.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Send blits through the command stream.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Hack to reject unsupported color fills.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Restore some wined3d_device_copy_sub_resource_region checks.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Don'\''t force strict draw ordering for multithreaded CS.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Send render target view clears through the command stream.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Send texture maps through the command stream.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Get rid of the end_scene flush and finish.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Replace the linked lists with a ringbuffer.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Don'\''t preload buffers on unmap.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Don'\''t call glFinish before swapping.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Add query support to the command stream.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Check our CS state to find out if a query is done.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Poll queries automatically in the CS.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Introduce a separate queue for priority commands.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Don'\''t poll queries that failed to start.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Remove restated queries from the poll list.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Put this into the query poll patch.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Don'\''t access device state in clears.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Avoid destroying views in color and depth fills.", 1 },';
echo '+ { "Matteo Bruni", "wined3d: Avoid calling wined3d_surface_blt() from surface_upload_from_surface().", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Send update_texture calls through the CS.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Get rid of the surface_upload_data glFinish.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Don'\''t lock the src volume in device_update_volume.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Fence update_texture calls.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Dirtify resources on unmap.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Fence render targets and depth stencils.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Fence blit operations.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Fence color_fill operations.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Make resource maps and unmaps a priority command.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Send update_sub_resource calls through the command stream.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Dirtify changed textures through the command stream.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Wrap GL BOs in a structure.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Separate resource map and draw buffers.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Implement DISCARD texture maps with PBOs.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Implement DISCARD resource maps with heap memory.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Unset some objects in state_init_default.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Use double-buffered buffers for multithreaded CS.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Don'\''t synchronize NOOVERWRITE buffer maps.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Separate buffer map write and draw read memory pointers.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Accelerate DISCARD buffer maps.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Accelerate READONLY buffer maps.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Access the buffer dirty areas through the CS.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Ignore buffer->resource.map_count in the CS.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Use glBufferSubData instead of glMapBufferRange.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Separate GL buffer discard control from ignoring MAP_DISCARD.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Create buffers before mapping them.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Remove another glFinish.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Create VBOs through the command stream.", 1 },';
echo '+ { "Stefan Dösinger", "Swapchain waits.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Unload resources through the CS in uninit_3d.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Unload resources through the CS in device_reset.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Don'\''t glFinish after a depth buffer blit.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Use surface_blt_ugly in swapchain_gl_present.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Use an event to block the worker thread when it is idle.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Set map_heap_memory = NULL when allocating a PBO.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Wait only for the buffer to be idle.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Put GL_APPLE_flush_buffer_range syncing back in place.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Don'\''t sync on redundant discard calls.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Don'\''t discard new buffers.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Don'\''t try to sync VBOs manually on OSX with CSMT.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Only discard buffers that are in use.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Send getdc and releasedc through the command stream.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Ignore WINED3D_MAP_NO_DIRTY_UPDATE in resource_map.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Create dummy textures through the CS.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Create the initial context through the CS.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Recreate ctx and dummy textures through the CS after resets.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Call create_default_sampler from create_dummy_textures.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Delete GL contexts through the CS in reset.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Delete GL contexts through the CS in uninit_3d.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Update the swap interval through the CS in reset.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Do the sampler GL init through the CS.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Create initial DCs through the CS.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Assign a read buffer when discarding a new texture.", 1 },';
echo '+ { "Sebastian Lackner", "wined3d: Do not query available GPU memory on main thread when CSMT is enabled.", 1 },';
echo '+ { "Nils Kuhnhenn", "wined3d: Fix incorrect return value in wined3d_cs_exec_set_light.", 1 },';
echo '+ { "Nils Kuhnhenn", "wined3d: Fix context_acquire not being called from the command thread in wined3d_texture_add_dirty_region.", 1 },';
echo '+ { "Sebastian Lackner", "wined3d: Do not signal CS event when we manage to unset waiting_for_event quickly enough.", 1 },';
echo '+ { "Sebastian Lackner", "wined3d: Enable CSMT by default, print a winediag message informing about this patchset.", 1 },';
) >> "$patchlist"
fi
# Patchset winedevice-Fix_Relocation
# |
# | This patchset fixes the following Wine bugs:

View File

@ -1,4 +1,4 @@
From ff813bcf8c68aab5828a012d5242a72b8cdb6bc3 Mon Sep 17 00:00:00 2001
From 80118da171e87348ce58c22599202053fe95d3b6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Thu, 25 Aug 2016 19:24:47 +0200
Subject: wined3d: Create dummy 1d textures and surfaces.
@ -9,7 +9,7 @@ Subject: wined3d: Create dummy 1d textures and surfaces.
2 files changed, 175 insertions(+)
diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c
index 70474c6..4c6cc59 100644
index 611c61f..64dce8f 100644
--- a/dlls/wined3d/resource.c
+++ b/dlls/wined3d/resource.c
@@ -94,6 +94,7 @@ HRESULT resource_init(struct wined3d_resource *resource, struct wined3d_device *
@ -21,11 +21,11 @@ index 70474c6..4c6cc59 100644
{WINED3D_RTYPE_TEXTURE_2D, 0, WINED3D_GL_RES_TYPE_TEX_RECT},
{WINED3D_RTYPE_TEXTURE_2D, 0, WINED3D_GL_RES_TYPE_RB},
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
index 7ab894b..e4ca54b 100644
index 90bd4a0..4ecd4ce 100644
--- a/dlls/wined3d/texture.c
+++ b/dlls/wined3d/texture.c
@@ -1439,6 +1439,45 @@ void wined3d_texture_upload_data(struct wined3d_texture *texture, unsigned int s
context, data, row_pitch, slice_pitch);
@@ -1448,6 +1448,45 @@ void wined3d_texture_upload_data(struct wined3d_texture *texture, unsigned int s
context, box, data, row_pitch, slice_pitch);
}
+
@ -33,11 +33,11 @@ index 7ab894b..e4ca54b 100644
+ * correct texture. */
+/* Context activation is done by the caller. */
+static void texture1d_upload_data(struct wined3d_texture *texture, unsigned int sub_resource_idx,
+ const struct wined3d_context *context, const struct wined3d_const_bo_address *data,
+ const struct wined3d_context *context, const struct wined3d_box *box, const struct wined3d_const_bo_address *data,
+ unsigned int row_pitch, unsigned int slice_pitch)
+{
+ FIXME("texture %p, sub_resource_idx %u, context %p, data {%#x:%p}, row_pitch %#x, slice_pitch %#x: stub.\n",
+ texture, sub_resource_idx, context, data->buffer_object, data->addr, row_pitch, slice_pitch);
+ FIXME("texture %p, sub_resource_idx %u, context %p, box %p, data {%#x:%p}, row_pitch %#x, slice_pitch %#x: stub.\n",
+ texture, sub_resource_idx, context, box, data->buffer_object, data->addr, row_pitch, slice_pitch);
+}
+
+/* Context activation is done by the caller. */
@ -68,9 +68,9 @@ index 7ab894b..e4ca54b 100644
+};
+
static void texture2d_upload_data(struct wined3d_texture *texture, unsigned int sub_resource_idx,
const struct wined3d_context *context, const struct wined3d_const_bo_address *data,
unsigned int row_pitch, unsigned int slice_pitch)
@@ -1862,6 +1901,137 @@ static const struct wined3d_resource_ops texture_resource_ops =
const struct wined3d_context *context, const struct wined3d_box *box,
const struct wined3d_const_bo_address *data, unsigned int row_pitch, unsigned int slice_pitch)
@@ -1882,6 +1921,137 @@ static const struct wined3d_resource_ops texture_resource_ops =
texture_resource_sub_resource_unmap,
};
@ -208,7 +208,7 @@ index 7ab894b..e4ca54b 100644
static HRESULT texture_init(struct wined3d_texture *texture, const struct wined3d_resource_desc *desc,
unsigned int layer_count, unsigned int level_count, DWORD flags, struct wined3d_device *device,
void *parent, const struct wined3d_parent_ops *parent_ops)
@@ -2789,6 +2959,10 @@ HRESULT CDECL wined3d_texture_create(struct wined3d_device *device, const struct
@@ -2828,6 +2998,10 @@ HRESULT CDECL wined3d_texture_create(struct wined3d_device *device, const struct
switch (desc->resource_type)
{
@ -220,5 +220,5 @@ index 7ab894b..e4ca54b 100644
hr = texture_init(object, desc, layer_count, level_count, flags, device, parent, parent_ops);
break;
--
2.8.1
2.9.0

View File

@ -1,34 +1,60 @@
From c80bcc9a789842075b2f68178a00525ac0cabcf7 Mon Sep 17 00:00:00 2001
From 736b314e18e7e4d3c7dc7732e2e38c6b8de7ddfd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 27 Aug 2016 22:25:20 +0200
Subject: wined3d: Implement uploading for 1d textures.
---
dlls/wined3d/texture.c | 57 +++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 56 insertions(+), 1 deletion(-)
dlls/wined3d/device.c | 3 ++-
dlls/wined3d/texture.c | 68 +++++++++++++++++++++++++++++++++++++++++++++++++-
2 files changed, 69 insertions(+), 2 deletions(-)
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index 150f18f..c87b325 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -4140,7 +4140,8 @@ void CDECL wined3d_device_update_sub_resource(struct wined3d_device *device, str
return;
}
- if (resource->type != WINED3D_RTYPE_TEXTURE_2D && resource->type != WINED3D_RTYPE_TEXTURE_3D)
+ if (resource->type != WINED3D_RTYPE_TEXTURE_1D &&
+ resource->type != WINED3D_RTYPE_TEXTURE_2D && resource->type != WINED3D_RTYPE_TEXTURE_3D)
{
FIXME("Not implemented for %s resources.\n", debug_d3dresourcetype(resource->type));
return;
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
index 942337b..442ec27 100644
index 2b66b68..614b4cf 100644
--- a/dlls/wined3d/texture.c
+++ b/dlls/wined3d/texture.c
@@ -1447,8 +1447,63 @@ static void texture1d_upload_data(struct wined3d_texture *texture, unsigned int
const struct wined3d_context *context, const struct wined3d_const_bo_address *data,
@@ -1456,8 +1456,74 @@ static void texture1d_upload_data(struct wined3d_texture *texture, unsigned int
const struct wined3d_context *context, const struct wined3d_box *box, const struct wined3d_const_bo_address *data,
unsigned int row_pitch, unsigned int slice_pitch)
{
- FIXME("texture %p, sub_resource_idx %u, context %p, data {%#x:%p}, row_pitch %#x, slice_pitch %#x: stub.\n",
- FIXME("texture %p, sub_resource_idx %u, context %p, box %p, data {%#x:%p}, row_pitch %#x, slice_pitch %#x: stub.\n",
+ struct wined3d_surface *surface = texture->sub_resources[sub_resource_idx].u.surface;
+ const struct wined3d_format *format = texture->resource.format;
+ unsigned int level = sub_resource_idx % texture->level_count;
+ const struct wined3d_gl_info *gl_info = context->gl_info;
+ const void *mem = data->addr;
+ void *converted_mem = NULL;
+ unsigned int width;
+ unsigned int width, x, update_w;
+
+ TRACE("texture %p, sub_resource_idx %u, context %p, data {%#x:%p}, row_pitch %#x, slice_pitch %#x.\n",
texture, sub_resource_idx, context, data->buffer_object, data->addr, row_pitch, slice_pitch);
+ TRACE("texture %p, sub_resource_idx %u, context %p, box %p, data {%#x:%p}, row_pitch %#x, slice_pitch %#x.\n",
texture, sub_resource_idx, context, box, data->buffer_object, data->addr, row_pitch, slice_pitch);
+
+ width = wined3d_texture_get_level_width(texture, level);
+
+ if (!box)
+ {
+ x = 0;
+ update_w = width;
+ }
+ else
+ {
+ x = box->left;
+ update_w = box->right - box->left;
+ }
+
+ if (format->convert)
+ {
+ unsigned int dst_row_pitch;
@ -38,10 +64,10 @@ index 942337b..442ec27 100644
+ if (texture->resource.format_flags & WINED3DFMT_FLAG_BLOCKS)
+ ERR("Converting a block-based format.\n");
+
+ dst_row_pitch = width * format->conv_byte_count;
+ dst_row_pitch = update_w * format->conv_byte_count;
+
+ converted_mem = HeapAlloc(GetProcessHeap(), 0, dst_row_pitch);
+ format->convert(data->addr, converted_mem, row_pitch, slice_pitch, dst_row_pitch, dst_row_pitch, width, 1, 1);
+ format->convert(data->addr, converted_mem, row_pitch, slice_pitch, dst_row_pitch, dst_row_pitch, update_w, 1, 1);
+ mem = converted_mem;
+ }
+
@ -55,14 +81,14 @@ index 942337b..442ec27 100644
+ {
+ gl_info->gl_ops.gl.p_glPixelStorei(GL_UNPACK_ROW_LENGTH, row_pitch / format->byte_count);
+
+ gl_info->gl_ops.gl.p_glTexSubImage2D(surface->texture_target, level, 0, surface->texture_layer, width, 1, format->glFormat, format->glType, mem);
+ gl_info->gl_ops.gl.p_glTexSubImage2D(surface->texture_target, level, x, surface->texture_layer, update_w, 1, format->glFormat, format->glType, mem);
+ checkGLcall("glTexSubImage2D");
+
+ gl_info->gl_ops.gl.p_glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
+ }
+ else
+ {
+ gl_info->gl_ops.gl.p_glTexSubImage1D(surface->texture_target, level, 0, width, format->glFormat, format->glType, mem);
+ gl_info->gl_ops.gl.p_glTexSubImage1D(surface->texture_target, level, x, update_w, format->glFormat, format->glType, mem);
+ checkGLcall("glTexSubImage1D");
+ }
+
@ -77,5 +103,5 @@ index 942337b..442ec27 100644
/* Context activation is done by the caller. */
--
2.8.1
2.9.0

View File

@ -1,4 +1,4 @@
From e73e778d3e02e0f4ce14f2f28811e14955d6fe9d Mon Sep 17 00:00:00 2001
From d0b2b377e3be8800332a32b7feb9e3c734a5b25a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 27 Aug 2016 22:38:47 +0200
Subject: wined3d: Implement loading from system memory and buffers to (s)rgb
@ -9,10 +9,10 @@ Subject: wined3d: Implement loading from system memory and buffers to (s)rgb
1 file changed, 67 insertions(+), 2 deletions(-)
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
index 442ec27..72e2baf 100644
index 614b4cf..2accfe7 100644
--- a/dlls/wined3d/texture.c
+++ b/dlls/wined3d/texture.c
@@ -1510,10 +1510,75 @@ static void texture1d_upload_data(struct wined3d_texture *texture, unsigned int
@@ -1530,10 +1530,75 @@ static void texture1d_upload_data(struct wined3d_texture *texture, unsigned int
static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned int sub_resource_idx,
struct wined3d_context *context, DWORD location)
{
@ -61,14 +61,14 @@ index 442ec27..72e2baf 100644
+ data.addr += sub_resource->offset;
+ wined3d_texture_bind_and_dirtify(texture, context, location == WINED3D_LOCATION_TEXTURE_SRGB);
+ wined3d_texture_get_pitch(texture, sub_resource_idx, &row_pitch, &slice_pitch);
+ texture1d_upload_data(texture, sub_resource_idx, context, &data, row_pitch, slice_pitch);
+ texture1d_upload_data(texture, sub_resource_idx, context, NULL, &data, row_pitch, slice_pitch);
+ }
+ else if (sub_resource->locations & WINED3D_LOCATION_BUFFER)
+ {
+ struct wined3d_const_bo_address data = {sub_resource->buffer_object, NULL};
+ wined3d_texture_bind_and_dirtify(texture, context, location == WINED3D_LOCATION_TEXTURE_SRGB);
+ wined3d_texture_get_pitch(texture, sub_resource_idx, &row_pitch, &slice_pitch);
+ texture1d_upload_data(texture, sub_resource_idx, context, &data, row_pitch, slice_pitch);
+ texture1d_upload_data(texture, sub_resource_idx, context, NULL, &data, row_pitch, slice_pitch);
+ }
+ else
+ {
@ -91,5 +91,5 @@ index 442ec27..72e2baf 100644
static void texture1d_prepare_texture(struct wined3d_texture *texture, struct wined3d_context *context, BOOL srgb)
--
2.8.1
2.9.0

View File

@ -1,4 +1,4 @@
From 20fbaad604f6b979154d7b8d5b1e43a7f10f1d8d Mon Sep 17 00:00:00 2001
From b791c5d95a0526a52a4e9abef7e2809eaf6e6b2a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 27 Aug 2016 22:44:14 +0200
Subject: wined3d: Implement converting between (s)rgb 1d textures.
@ -8,10 +8,10 @@ Subject: wined3d: Implement converting between (s)rgb 1d textures.
1 file changed, 31 insertions(+)
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
index 48f3cde..9c17b45 100644
index 0b7c53d..74de20c 100644
--- a/dlls/wined3d/texture.c
+++ b/dlls/wined3d/texture.c
@@ -1577,6 +1577,29 @@ static void texture1d_download_data(struct wined3d_texture *texture, unsigned in
@@ -1597,6 +1597,29 @@ static void texture1d_download_data(struct wined3d_texture *texture, unsigned in
}
/* Context activation is done by the caller. */
@ -31,7 +31,7 @@ index 48f3cde..9c17b45 100644
+ wined3d_texture_bind_and_dirtify(texture, context, !dest_is_srgb);
+ texture1d_download_data(texture, sub_resource_idx, context, &data);
+ wined3d_texture_bind_and_dirtify(texture, context, dest_is_srgb);
+ texture1d_upload_data(texture, sub_resource_idx, context,
+ texture1d_upload_data(texture, sub_resource_idx, context, NULL,
+ wined3d_const_bo_address(&data), row_pitch, slice_pitch);
+
+ HeapFree(GetProcessHeap(), 0, data.addr);
@ -41,9 +41,9 @@ index 48f3cde..9c17b45 100644
static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned int sub_resource_idx,
struct wined3d_context *context, DWORD location)
{
@@ -1632,6 +1655,14 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in
@@ -1652,6 +1675,14 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in
wined3d_texture_get_pitch(texture, sub_resource_idx, &row_pitch, &slice_pitch);
texture1d_upload_data(texture, sub_resource_idx, context, &data, row_pitch, slice_pitch);
texture1d_upload_data(texture, sub_resource_idx, context, NULL, &data, row_pitch, slice_pitch);
}
+ else if (sub_resource->locations & WINED3D_LOCATION_TEXTURE_RGB)
+ {
@ -57,5 +57,5 @@ index 48f3cde..9c17b45 100644
{
FIXME("Implement 1d texture loading from %s.\n", wined3d_debug_location(sub_resource->locations));
--
2.8.1
2.9.0

View File

@ -5,6 +5,7 @@ Fixes: [11674] Support for CSMT (command stream) to increase graphic performance
Apply-After: dlls/wined3d/*
Depends: wined3d-CSMT_Helper
IfDefined: STAGING_CSMT
Disabled: true
# Known issues:
# https://bugs.wine-staging.com/buglist.cgi?component=Bugs&keywords=csmt%2C%20&keywords_type=allwords&list_id=3690&query_format=advanced&resolution=---

View File

@ -1,50 +0,0 @@
From 364b6bf5c142544b442c6d69911839edca9e994b Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Wed, 21 Sep 2016 01:18:41 +0200
Subject: Revert "wined3d: Implement the initial texture data upload on top of
wined3d_device_update_sub_resource()."
This reverts commit e58689a3981fae5b312b12e9f6801adf289d04c0.
---
dlls/wined3d/texture.c | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
index c82016e5..dddd2fa 100644
--- a/dlls/wined3d/texture.c
+++ b/dlls/wined3d/texture.c
@@ -2828,6 +2828,7 @@ HRESULT CDECL wined3d_texture_create(struct wined3d_device *device, const struct
if (data)
{
unsigned int sub_count = level_count * layer_count;
+ struct wined3d_context *context;
unsigned int i;
for (i = 0; i < sub_count; ++i)
@@ -2841,11 +2842,21 @@ HRESULT CDECL wined3d_texture_create(struct wined3d_device *device, const struct
}
}
+ context = context_acquire(device, NULL);
+
+ wined3d_texture_prepare_texture(object, context, FALSE);
+ wined3d_texture_bind_and_dirtify(object, context, FALSE);
+
for (i = 0; i < sub_count; ++i)
{
- wined3d_device_update_sub_resource(device, &object->resource,
- i, NULL, data[i].data, data[i].row_pitch, data[i].slice_pitch);
+ const struct wined3d_const_bo_address addr = {0, data[i].data};
+
+ wined3d_texture_upload_data(object, i, context, &addr, data[i].row_pitch, data[i].slice_pitch);
+ wined3d_texture_validate_location(object, i, WINED3D_LOCATION_TEXTURE_RGB);
+ wined3d_texture_invalidate_location(object, i, ~WINED3D_LOCATION_TEXTURE_RGB);
}
+
+ context_release(context);
}
TRACE("Created texture %p.\n", object);
--
2.9.0

View File

@ -1,2 +0,0 @@
Fixes: Fix initial texture upload for 1D/3D textures
# FIXME: Needs support in wined3d_device_update_sub_resource.

View File

@ -1,4 +1,4 @@
From 08980bf07929d455b5891941388f4291319924bb Mon Sep 17 00:00:00 2001
From 50f78e94f4cf277297ee04479d050526b100e319 Mon Sep 17 00:00:00 2001
From: Mark Harmstone <mark@harmstone.com>
Date: Mon, 3 Nov 2014 02:06:40 +0000
Subject: winepulse: expose audio devices directly to programs
@ -20,7 +20,7 @@ Changes by Sebastian Lackner <sebastian@fds-team.de>:
1 file changed, 230 insertions(+), 30 deletions(-)
diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c
index 36822a4..9342762 100644
index c23656e..d57e528 100644
--- a/dlls/winepulse.drv/mmdevdrv.c
+++ b/dlls/winepulse.drv/mmdevdrv.c
@@ -79,12 +79,25 @@ static pthread_mutex_t pulse_lock;
@ -71,7 +71,7 @@ index 36822a4..9342762 100644
LONG ref;
EDataFlow dataflow;
@@ -186,8 +207,6 @@ struct ACImpl {
@@ -190,8 +211,6 @@ struct ACImpl {
struct list packet_filled_head;
};
@ -80,7 +80,7 @@ index 36822a4..9342762 100644
static const IAudioClientVtbl AudioClient_Vtbl;
static const IAudioRenderClientVtbl AudioRenderClient_Vtbl;
static const IAudioCaptureClientVtbl AudioCaptureClient_Vtbl;
@@ -504,12 +523,92 @@ fail:
@@ -514,12 +533,92 @@ fail:
return E_FAIL;
}
@ -176,7 +176,7 @@ index 36822a4..9342762 100644
}
/* some poorly-behaved applications call audio functions during DllMain, so we
@@ -525,6 +624,10 @@ static HRESULT pulse_test_connect(void)
@@ -535,6 +634,10 @@ static HRESULT pulse_test_connect(void)
pa_mainloop *ml;
pa_context *ctx;
@ -187,7 +187,7 @@ index 36822a4..9342762 100644
ml = pa_mainloop_new();
pa_mainloop_set_poll_func(ml, pulse_poll_func, NULL);
@@ -572,6 +675,9 @@ static HRESULT pulse_test_connect(void)
@@ -585,6 +688,9 @@ static HRESULT pulse_test_connect(void)
pulse_probe_settings(ml, ctx, 0, &pulse_fmt[1]);
g_phys_speakers_mask = 0;
@ -197,7 +197,7 @@ index 36822a4..9342762 100644
o = pa_context_get_sink_info_list(ctx, &pulse_phys_speakers_cb, NULL);
if (o) {
while (pa_mainloop_iterate(ml, 1, &ret) >= 0 &&
@@ -580,6 +686,14 @@ static HRESULT pulse_test_connect(void)
@@ -593,6 +699,14 @@ static HRESULT pulse_test_connect(void)
pa_operation_unref(o);
}
@ -212,7 +212,7 @@ index 36822a4..9342762 100644
pa_context_unref(ctx);
pa_mainloop_free(ml);
return S_OK;
@@ -775,6 +889,9 @@ static HRESULT pulse_stream_connect(ACImpl *This, UINT32 period_bytes) {
@@ -852,6 +966,9 @@ static HRESULT pulse_stream_connect(ACImpl *This, UINT32 period_bytes) {
char buffer[64];
static LONG number;
pa_buffer_attr attr;
@ -222,7 +222,7 @@ index 36822a4..9342762 100644
if (This->stream) {
pa_stream_disconnect(This->stream);
while (pa_stream_get_state(This->stream) == PA_STREAM_READY)
@@ -799,12 +916,21 @@ static HRESULT pulse_stream_connect(ACImpl *This, UINT32 period_bytes) {
@@ -876,12 +993,21 @@ static HRESULT pulse_stream_connect(ACImpl *This, UINT32 period_bytes) {
attr.maxlength = attr.tlength = This->bufsize_bytes;
attr.prebuf = pa_frame_size(&This->ss);
dump_attr(&attr);
@ -248,7 +248,7 @@ index 36822a4..9342762 100644
if (ret < 0) {
WARN("Returns %i\n", ret);
return AUDCLNT_E_ENDPOINT_CREATE_FAILED;
@@ -823,39 +949,53 @@ static HRESULT pulse_stream_connect(ACImpl *This, UINT32 period_bytes) {
@@ -900,39 +1026,53 @@ static HRESULT pulse_stream_connect(ACImpl *This, UINT32 period_bytes) {
return S_OK;
}
@ -321,7 +321,7 @@ index 36822a4..9342762 100644
}
int WINAPI AUDDRV_GetPriority(void)
@@ -867,20 +1007,79 @@ int WINAPI AUDDRV_GetPriority(void)
@@ -944,20 +1084,79 @@ int WINAPI AUDDRV_GetPriority(void)
return SUCCEEDED(hr) ? Priority_Preferred : Priority_Unavailable;
}
@ -403,14 +403,14 @@ index 36822a4..9342762 100644
*out = NULL;
@@ -898,6 +1097,7 @@ HRESULT WINAPI AUDDRV_GetAudioEndpoint(GUID *guid, IMMDevice *dev, IAudioClient
@@ -975,6 +1174,7 @@ HRESULT WINAPI AUDDRV_GetAudioEndpoint(GUID *guid, IMMDevice *dev, IAudioClient
This->parent = dev;
for (i = 0; i < PA_CHANNELS_MAX; ++i)
This->vol[i] = 1.f;
+ strcpy(This->device, pulse_name);
hr = CoCreateFreeThreadedMarshaler((IUnknown*)This, &This->marshal);
hr = CoCreateFreeThreadedMarshaler((IUnknown*)&This->IAudioClient_iface, &This->marshal);
if (hr) {
--
2.6.2
2.9.0

View File

@ -1 +1 @@
Wine Staging 1.9.23
Wine Staging 1.9.24 (unreleased)