You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-04-13 14:42:51 -07:00
Rebase against 1ddf2b4db8c42da36bdccd43dc336eee6ba03cce.
This commit is contained in:
@ -20,6 +20,5 @@ Fixes: Add kernelbase dll
|
||||
Fixes: Add iertutil dll
|
||||
Fixes: Add shcore dll
|
||||
Fixes: [40451] Add feclient dll
|
||||
Depends: kernel32-GetCurrentPackageFamilyName
|
||||
Depends: combase-RoApi
|
||||
Depends: kernel32-UmsStubs
|
||||
|
@ -1,32 +0,0 @@
|
||||
From d98a585a7d809889d84a45546d7d259a9ab35356 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Thu, 27 Oct 2016 01:33:34 +0200
|
||||
Subject: cabinet: Set index of folder in FDICopy callback.
|
||||
|
||||
---
|
||||
dlls/cabinet/fdi.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/dlls/cabinet/fdi.c b/dlls/cabinet/fdi.c
|
||||
index fdff0bf..758133e 100644
|
||||
--- a/dlls/cabinet/fdi.c
|
||||
+++ b/dlls/cabinet/fdi.c
|
||||
@@ -2640,6 +2640,7 @@ BOOL __cdecl FDICopy(
|
||||
fdin.date = file->date;
|
||||
fdin.time = file->time;
|
||||
fdin.attribs = file->attribs;
|
||||
+ fdin.iFolder = file->index;
|
||||
if ((filehf = ((*pfnfdin)(fdintCOPY_FILE, &fdin))) == -1) {
|
||||
set_error( fdi, FDIERROR_USER_ABORT, 0 );
|
||||
filehf = 0;
|
||||
@@ -2765,6 +2766,7 @@ BOOL __cdecl FDICopy(
|
||||
fdin.date = file->date;
|
||||
fdin.time = file->time;
|
||||
fdin.attribs = file->attribs; /* FIXME: filter _A_EXEC? */
|
||||
+ fdin.iFolder = file->index;
|
||||
((*pfnfdin)(fdintCLOSE_FILE_INFO, &fdin));
|
||||
filehf = 0;
|
||||
|
||||
--
|
||||
2.9.0
|
||||
|
@ -1 +0,0 @@
|
||||
Fixes: [10858] Set index of folder in FDICopy callback
|
@ -1,4 +1,4 @@
|
||||
From 29ccadcb0e716255ac5e43b8784d129f3fc2a441 Mon Sep 17 00:00:00 2001
|
||||
From caafb5926a24065e96350fc255ea92c0863c2730 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Costa <titan.costa@gmail.com>
|
||||
Date: Fri, 19 Dec 2014 22:31:46 +0100
|
||||
Subject: d3dx9_36: Implement ID3DXEffect_FindNextValidTechnique + add tests.
|
||||
@ -9,7 +9,7 @@ Subject: d3dx9_36: Implement ID3DXEffect_FindNextValidTechnique + add tests.
|
||||
2 files changed, 91 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3dx9_36/effect.c b/dlls/d3dx9_36/effect.c
|
||||
index 7772406..00c486c 100644
|
||||
index 42f5aea966b..7c1d1787bf1 100644
|
||||
--- a/dlls/d3dx9_36/effect.c
|
||||
+++ b/dlls/d3dx9_36/effect.c
|
||||
@@ -3538,13 +3538,41 @@ static HRESULT WINAPI ID3DXEffectImpl_ValidateTechnique(ID3DXEffect* iface, D3DX
|
||||
@ -58,10 +58,10 @@ index 7772406..00c486c 100644
|
||||
|
||||
static BOOL walk_parameter_dep(struct d3dx_parameter *param, walk_parameter_dep_func param_func,
|
||||
diff --git a/dlls/d3dx9_36/tests/effect.c b/dlls/d3dx9_36/tests/effect.c
|
||||
index 41db494..efc991e 100644
|
||||
index 56d9fe627be..1b9bea6a55c 100644
|
||||
--- a/dlls/d3dx9_36/tests/effect.c
|
||||
+++ b/dlls/d3dx9_36/tests/effect.c
|
||||
@@ -4275,6 +4275,65 @@ static void test_effect_isparameterused(IDirect3DDevice9 *device)
|
||||
@@ -4413,6 +4413,65 @@ static void test_effect_out_of_bounds_selector(IDirect3DDevice9 *device)
|
||||
effect->lpVtbl->Release(effect);
|
||||
}
|
||||
|
||||
@ -127,14 +127,14 @@ index 41db494..efc991e 100644
|
||||
START_TEST(effect)
|
||||
{
|
||||
HWND wnd;
|
||||
@@ -4318,6 +4377,7 @@ START_TEST(effect)
|
||||
test_effect_preshader(device);
|
||||
@@ -4457,6 +4516,7 @@ START_TEST(effect)
|
||||
test_effect_preshader_ops(device);
|
||||
test_effect_isparameterused(device);
|
||||
test_effect_out_of_bounds_selector(device);
|
||||
+ test_effect_technique_validation(device);
|
||||
|
||||
count = IDirect3DDevice9_Release(device);
|
||||
ok(count == 0, "The device was not properly freed: refcount %u\n", count);
|
||||
--
|
||||
2.8.0
|
||||
2.11.0
|
||||
|
||||
|
@ -1,160 +0,0 @@
|
||||
From e2c6e94c6dd1312f467e5528fa2767b7da6eaca4 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Fri, 15 Jan 2016 13:23:02 +0100
|
||||
Subject: kernel32: Add stub for GetCurrentPackageFamilyName and add related
|
||||
functions to spec file.
|
||||
|
||||
---
|
||||
.../api-ms-win-appmodel-runtime-l1-1-1.spec | 2 +-
|
||||
dlls/kernel32/kernel32.spec | 34 ++++++++++++++++++++++
|
||||
dlls/kernel32/version.c | 9 ++++++
|
||||
3 files changed, 44 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/api-ms-win-appmodel-runtime-l1-1-1/api-ms-win-appmodel-runtime-l1-1-1.spec b/dlls/api-ms-win-appmodel-runtime-l1-1-1/api-ms-win-appmodel-runtime-l1-1-1.spec
|
||||
index 2c5cf9e5bda..50f8594785f 100644
|
||||
--- a/dlls/api-ms-win-appmodel-runtime-l1-1-1/api-ms-win-appmodel-runtime-l1-1-1.spec
|
||||
+++ b/dlls/api-ms-win-appmodel-runtime-l1-1-1/api-ms-win-appmodel-runtime-l1-1-1.spec
|
||||
@@ -3,7 +3,7 @@
|
||||
@ stub FormatApplicationUserModelId
|
||||
@ stub GetApplicationUserModelId
|
||||
@ stub GetCurrentApplicationUserModelId
|
||||
-@ stub GetCurrentPackageFamilyName
|
||||
+@ stdcall GetCurrentPackageFamilyName(ptr ptr) kernel32.GetCurrentPackageFamilyName
|
||||
@ stdcall GetCurrentPackageFullName(ptr ptr) kernel32.GetCurrentPackageFullName
|
||||
@ stdcall GetCurrentPackageId(ptr ptr) kernel32.GetCurrentPackageId
|
||||
@ stub GetCurrentPackageInfo
|
||||
diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec
|
||||
index 59e39a74917..e01e8605d53 100644
|
||||
--- a/dlls/kernel32/kernel32.spec
|
||||
+++ b/dlls/kernel32/kernel32.spec
|
||||
@@ -225,6 +225,7 @@
|
||||
@ stdcall ClearCommError(long ptr ptr)
|
||||
@ stdcall CloseConsoleHandle(long)
|
||||
@ stdcall CloseHandle(long)
|
||||
+@ stub ClosePackageInfo
|
||||
# @ stub ClosePrivateNamespace
|
||||
@ stdcall CloseProfileUserMapping()
|
||||
@ stub CloseSystemHandle
|
||||
@@ -506,6 +507,7 @@
|
||||
@ stdcall FindNextVolumeW(long ptr long)
|
||||
# @ stub FindNLSString
|
||||
# @ stub FindNLSStringEx
|
||||
+@ stub FindPackagesByPackageFamily
|
||||
@ stdcall FindResourceA(long str str)
|
||||
@ stdcall FindResourceExA(long str str long)
|
||||
@ stdcall FindResourceExW(long wstr wstr long)
|
||||
@@ -524,6 +526,7 @@
|
||||
@ stdcall FlushViewOfFile(ptr long)
|
||||
@ stdcall FoldStringA(long str long ptr long)
|
||||
@ stdcall FoldStringW(long wstr long ptr long)
|
||||
+@ stub FormatApplicationUserModelId
|
||||
@ stdcall FormatMessageA(long ptr long long ptr long ptr)
|
||||
@ stdcall FormatMessageW(long ptr long long ptr long ptr)
|
||||
@ stdcall FreeConsole()
|
||||
@@ -544,6 +547,8 @@
|
||||
# @ stub GetActiveProcessorGroupCount
|
||||
# @ stub GetApplicationRecoveryCallback
|
||||
# @ stub GetApplicationRestartSettings
|
||||
+@ stub GetApplicationUserModelId
|
||||
+@ stub GetApplicationUserModelIdFromToken
|
||||
@ stdcall GetAtomNameA(long ptr long)
|
||||
@ stdcall GetAtomNameW(long ptr long)
|
||||
@ stdcall GetBinaryType(str ptr) GetBinaryTypeA
|
||||
@@ -624,12 +629,16 @@
|
||||
# @ stub GetCurrencyFormatEx
|
||||
@ stdcall GetCurrencyFormatW(long long str ptr str long)
|
||||
@ stdcall GetCurrentActCtx(ptr)
|
||||
+@ stub GetCurrentApplicationUserModelId
|
||||
@ stdcall GetCurrentConsoleFont(long long ptr)
|
||||
# @ stub GetCurrentConsoleFontEx
|
||||
@ stdcall GetCurrentDirectoryA(long ptr)
|
||||
@ stdcall GetCurrentDirectoryW(long ptr)
|
||||
+@ stdcall GetCurrentPackageFamilyName(ptr ptr)
|
||||
@ stdcall GetCurrentPackageId(ptr ptr)
|
||||
@ stdcall GetCurrentPackageFullName(ptr ptr)
|
||||
+@ stub GetCurrentPackageInfo
|
||||
+@ stub GetCurrentPackagePath
|
||||
@ stdcall -norelay GetCurrentProcess()
|
||||
@ stdcall -norelay GetCurrentProcessId()
|
||||
@ stdcall GetCurrentProcessorNumber() ntdll.NtGetCurrentProcessorNumber
|
||||
@@ -760,6 +769,16 @@
|
||||
@ stdcall GetOEMCP()
|
||||
@ stdcall GetOverlappedResult(long ptr ptr long)
|
||||
@ stdcall GetUserPreferredUILanguages(long ptr ptr ptr)
|
||||
+@ stub GetPackageApplicationIds
|
||||
+@ stub GetPackageFamilyName
|
||||
+@ stub GetPackageFamilyNameFromToken
|
||||
+@ stub GetPackageFullName
|
||||
+@ stub GetPackageFullNameFromToken
|
||||
+@ stub GetPackageId
|
||||
+@ stub GetPackageInfo
|
||||
+@ stub GetPackagePath
|
||||
+@ stub GetPackagePathByFullName
|
||||
+@ stub GetPackagesByPackageFamily
|
||||
@ stdcall GetPhysicallyInstalledSystemMemory(ptr)
|
||||
@ stdcall GetPriorityClass(long)
|
||||
@ stdcall GetPrivateProfileIntA(str str long str)
|
||||
@@ -806,6 +825,8 @@
|
||||
@ stub -i386 GetSLCallbackTemplate
|
||||
@ stdcall GetShortPathNameA(str ptr long)
|
||||
@ stdcall GetShortPathNameW(wstr ptr long)
|
||||
+@ stub GetStagedPackageOrigin
|
||||
+@ stub GetStagedPackagePathByFullName
|
||||
@ stdcall GetStartupInfoA(ptr)
|
||||
@ stdcall GetStartupInfoW(ptr)
|
||||
@ stdcall GetStdHandle(long)
|
||||
@@ -1119,6 +1140,8 @@
|
||||
@ stdcall OpenJobObjectW(long long wstr)
|
||||
@ stdcall OpenMutexA(long long str)
|
||||
@ stdcall OpenMutexW(long long wstr)
|
||||
+@ stub OpenPackageInfoByFullName
|
||||
+@ stub OpenPackageInfoByFullNameForUser
|
||||
# @ stub OpenPrivateNamespaceA
|
||||
# @ stub OpenPrivateNamespaceW
|
||||
@ stdcall OpenProcess(long long long)
|
||||
@@ -1133,6 +1156,12 @@
|
||||
@ stdcall OpenWaitableTimerW(long long wstr)
|
||||
@ stdcall OutputDebugStringA(str)
|
||||
@ stdcall OutputDebugStringW(wstr)
|
||||
+@ stub PackageFamilyNameFromFullName
|
||||
+@ stub PackageFamilyNameFromId
|
||||
+@ stub PackageFullNameFromId
|
||||
+@ stub PackageIdFromFullName
|
||||
+@ stub PackageNameAndPublisherIdFromFamilyName
|
||||
+@ stub ParseApplicationUserModelId
|
||||
@ stdcall PeekConsoleInputA(ptr ptr long ptr)
|
||||
@ stdcall PeekConsoleInputW(ptr ptr long ptr)
|
||||
@ stdcall PeekNamedPipe(long ptr long ptr ptr ptr)
|
||||
@@ -1549,7 +1578,12 @@
|
||||
@ stdcall VerLanguageNameA(long str long)
|
||||
@ stdcall VerLanguageNameW(long wstr long)
|
||||
@ stdcall -ret64 VerSetConditionMask(long long long long) ntdll.VerSetConditionMask
|
||||
+@ stub VerifyApplicationUserModelId
|
||||
@ stdcall VerifyConsoleIoHandle(long)
|
||||
+@ stub VerifyPackageFamilyName
|
||||
+@ stub VerifyPackageFullName
|
||||
+@ stub VerifyPackageId
|
||||
+@ stub VerifyPackageRelativeApplicationId
|
||||
# @ stub VerifyScripts
|
||||
@ stdcall VerifyVersionInfoA(long long int64)
|
||||
@ stdcall VerifyVersionInfoW(long long int64)
|
||||
diff --git a/dlls/kernel32/version.c b/dlls/kernel32/version.c
|
||||
index cf783af6195..aabc9bc2c64 100644
|
||||
--- a/dlls/kernel32/version.c
|
||||
+++ b/dlls/kernel32/version.c
|
||||
@@ -216,3 +216,12 @@ LONG WINAPI GetCurrentPackageFullName(UINT32 *length, PWSTR name)
|
||||
FIXME("(%p %p): stub\n", length, name);
|
||||
return APPMODEL_ERROR_NO_PACKAGE;
|
||||
}
|
||||
+
|
||||
+/***********************************************************************
|
||||
+ * GetCurrentPackageFamilyName (KERNEL32.@)
|
||||
+ */
|
||||
+LONG WINAPI GetCurrentPackageFamilyName(UINT32 *length, PWSTR name)
|
||||
+{
|
||||
+ FIXME("(%p %p): stub\n", length, name);
|
||||
+ return APPMODEL_ERROR_NO_PACKAGE;
|
||||
+}
|
||||
--
|
||||
2.11.0
|
||||
|
@ -1 +0,0 @@
|
||||
Fixes: Add stub for kernel32.GetCurrentPackageFamilyName
|
@ -1,17 +1,17 @@
|
||||
From 21c71f172c52f18692e2601e40ae5e8d050de4a8 Mon Sep 17 00:00:00 2001
|
||||
From 594e57c855592fe07e73003926c09520bc357416 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Thu, 2 Feb 2017 20:49:15 +0100
|
||||
Subject: kernel32: Add stub for GetPackageFullName.
|
||||
|
||||
---
|
||||
.../api-ms-win-appmodel-runtime-l1-1-1.spec | 2 +-
|
||||
dlls/kernel32/kernel32.spec | 2 +-
|
||||
dlls/kernel32/kernel32.spec | 1 +
|
||||
dlls/kernel32/version.c | 9 +++++++++
|
||||
dlls/kernelbase/kernelbase.spec | 2 +-
|
||||
4 files changed, 12 insertions(+), 3 deletions(-)
|
||||
4 files changed, 12 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/api-ms-win-appmodel-runtime-l1-1-1/api-ms-win-appmodel-runtime-l1-1-1.spec b/dlls/api-ms-win-appmodel-runtime-l1-1-1/api-ms-win-appmodel-runtime-l1-1-1.spec
|
||||
index af7774d3679..066a674f8f5 100644
|
||||
index 50f8594785f..4d2edd60f5a 100644
|
||||
--- a/dlls/api-ms-win-appmodel-runtime-l1-1-1/api-ms-win-appmodel-runtime-l1-1-1.spec
|
||||
+++ b/dlls/api-ms-win-appmodel-runtime-l1-1-1/api-ms-win-appmodel-runtime-l1-1-1.spec
|
||||
@@ -10,7 +10,7 @@
|
||||
@ -24,23 +24,22 @@ index af7774d3679..066a674f8f5 100644
|
||||
@ stub GetPackageInfo
|
||||
@ stub GetPackagePath
|
||||
diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec
|
||||
index 31811281e61..efb2bdddf32 100644
|
||||
index 2668386bf84..f2fcf109715 100644
|
||||
--- a/dlls/kernel32/kernel32.spec
|
||||
+++ b/dlls/kernel32/kernel32.spec
|
||||
@@ -772,7 +772,7 @@
|
||||
@ stub GetPackageApplicationIds
|
||||
@ stub GetPackageFamilyName
|
||||
@ stub GetPackageFamilyNameFromToken
|
||||
-@ stub GetPackageFullName
|
||||
@@ -761,6 +761,7 @@
|
||||
@ stdcall GetOEMCP()
|
||||
@ stdcall GetOverlappedResult(long ptr ptr long)
|
||||
@ stdcall GetUserPreferredUILanguages(long ptr ptr ptr)
|
||||
+@ stdcall GetPackageFullName(long ptr ptr)
|
||||
@ stub GetPackageFullNameFromToken
|
||||
@ stub GetPackageId
|
||||
@ stub GetPackageInfo
|
||||
@ stdcall GetPhysicallyInstalledSystemMemory(ptr)
|
||||
@ stdcall GetPriorityClass(long)
|
||||
@ stdcall GetPrivateProfileIntA(str str long str)
|
||||
diff --git a/dlls/kernel32/version.c b/dlls/kernel32/version.c
|
||||
index 53f594eccab..72d1152d20f 100644
|
||||
index 5a233efe56f..3cca2ae68ee 100644
|
||||
--- a/dlls/kernel32/version.c
|
||||
+++ b/dlls/kernel32/version.c
|
||||
@@ -216,3 +216,12 @@ LONG WINAPI GetCurrentPackageFamilyName(UINT32 *length, PWSTR name)
|
||||
@@ -228,3 +228,12 @@ LONG WINAPI GetCurrentPackageFullName(UINT32 *length, PWSTR name)
|
||||
FIXME("(%p %p): stub\n", length, name);
|
||||
return APPMODEL_ERROR_NO_PACKAGE;
|
||||
}
|
||||
@ -54,7 +53,7 @@ index 53f594eccab..72d1152d20f 100644
|
||||
+ return APPMODEL_ERROR_NO_PACKAGE;
|
||||
+}
|
||||
diff --git a/dlls/kernelbase/kernelbase.spec b/dlls/kernelbase/kernelbase.spec
|
||||
index a4951f1baa3..bdfc067cf6d 100644
|
||||
index 12f36c5ede3..daba198bec5 100644
|
||||
--- a/dlls/kernelbase/kernelbase.spec
|
||||
+++ b/dlls/kernelbase/kernelbase.spec
|
||||
@@ -569,7 +569,7 @@
|
||||
|
@ -1,3 +1,2 @@
|
||||
Fixes: Add stub for kernel32.GetPackageFullName
|
||||
Depends: kernel32-GetCurrentPackageFamilyName
|
||||
Depends: api-ms-win-Stub_DLLs
|
||||
|
@ -1,4 +1,4 @@
|
||||
From ea7ab1f3cb71ed5b80a0c67215b3470465f82f39 Mon Sep 17 00:00:00 2001
|
||||
From caf89ae3ed2f1ff8e2fb16cc1c80f101a2897722 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sat, 4 Feb 2017 16:20:37 +0100
|
||||
Subject: kernel32: Implement some processor group functions.
|
||||
@ -88,10 +88,10 @@ index 756d8f94ab2..5fb806746a0 100644
|
||||
+ return system_info.NumberOfProcessors;
|
||||
+}
|
||||
diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec
|
||||
index efb2bdddf32..8348621136f 100644
|
||||
index 2668386bf84..e6081aeb04a 100644
|
||||
--- a/dlls/kernel32/kernel32.spec
|
||||
+++ b/dlls/kernel32/kernel32.spec
|
||||
@@ -543,8 +543,8 @@
|
||||
@@ -540,8 +540,8 @@
|
||||
@ stdcall GenerateConsoleCtrlEvent(long long)
|
||||
@ stdcall -i386 -private Get16DLLAddress(long str) krnl386.exe16.Get16DLLAddress
|
||||
@ stdcall GetACP()
|
||||
@ -101,8 +101,8 @@ index efb2bdddf32..8348621136f 100644
|
||||
+@ stdcall GetActiveProcessorGroupCount()
|
||||
# @ stub GetApplicationRecoveryCallback
|
||||
# @ stub GetApplicationRestartSettings
|
||||
@ stub GetApplicationUserModelId
|
||||
@@ -724,8 +724,8 @@
|
||||
@ stdcall GetAtomNameA(long ptr long)
|
||||
@@ -716,8 +716,8 @@
|
||||
# @ stub GetLongPathNameTransactedW
|
||||
@ stdcall GetLongPathNameW (wstr long long)
|
||||
@ stdcall GetMailslotInfo(long ptr ptr ptr ptr)
|
||||
@ -114,7 +114,7 @@ index efb2bdddf32..8348621136f 100644
|
||||
@ stdcall GetModuleFileNameW(long ptr long)
|
||||
@ stdcall GetModuleHandleA(str)
|
||||
diff --git a/dlls/kernel32/tests/process.c b/dlls/kernel32/tests/process.c
|
||||
index f66ab45b90e..b4370ca8922 100644
|
||||
index 68d6b648252..5e5346af749 100644
|
||||
--- a/dlls/kernel32/tests/process.c
|
||||
+++ b/dlls/kernel32/tests/process.c
|
||||
@@ -91,6 +91,7 @@ static SIZE_T (WINAPI *pGetLargePageMinimum)(void);
|
||||
@ -169,10 +169,10 @@ index f66ab45b90e..b4370ca8922 100644
|
||||
test_ProcThreadAttributeList();
|
||||
|
||||
diff --git a/include/winnt.h b/include/winnt.h
|
||||
index 9e611c555a4..5cdd8a3a22f 100644
|
||||
index 5bd1b1b4a83..2fc4a190e48 100644
|
||||
--- a/include/winnt.h
|
||||
+++ b/include/winnt.h
|
||||
@@ -5873,6 +5873,8 @@ typedef struct _GROUP_AFFINITY
|
||||
@@ -5855,6 +5855,8 @@ typedef struct _GROUP_AFFINITY
|
||||
WORD Reserved[3];
|
||||
} GROUP_AFFINITY, *PGROUP_AFFINITY;
|
||||
|
||||
|
@ -52,7 +52,7 @@ usage()
|
||||
# Get the upstream commit sha
|
||||
upstream_commit()
|
||||
{
|
||||
echo "9eecacbeb1561218d4870c83f89a233cabbf7e0c"
|
||||
echo "1ddf2b4db8c42da36bdccd43dc336eee6ba03cce"
|
||||
}
|
||||
|
||||
# Show version information
|
||||
@ -97,7 +97,6 @@ patch_enable_all ()
|
||||
enable_avifile_dll16_AVIStreamGetFrame="$1"
|
||||
enable_bcrypt_Improvements="$1"
|
||||
enable_browseui_Progress_Dialog="$1"
|
||||
enable_cabinet_iFolder="$1"
|
||||
enable_combase_RoApi="$1"
|
||||
enable_comctl32_Button_Theming="$1"
|
||||
enable_comctl32_Listview_DrawItem="$1"
|
||||
@ -178,7 +177,6 @@ patch_enable_all ()
|
||||
enable_kernel32_Cwd_Startup_Info="$1"
|
||||
enable_kernel32_Debugger="$1"
|
||||
enable_kernel32_FindFirstFile="$1"
|
||||
enable_kernel32_GetCurrentPackageFamilyName="$1"
|
||||
enable_kernel32_GetPackageFullName="$1"
|
||||
enable_kernel32_GetShortPathName="$1"
|
||||
enable_kernel32_K32GetPerformanceInfo="$1"
|
||||
@ -295,7 +293,6 @@ patch_enable_all ()
|
||||
enable_qcap_O_CLOEXEC="$1"
|
||||
enable_quartz_MediaSeeking_Positions="$1"
|
||||
enable_quartz_Silence_FIXMEs="$1"
|
||||
enable_rasapi32_RasEnumDevicesA="$1"
|
||||
enable_riched20_Class_Tests="$1"
|
||||
enable_riched20_IText_Interface="$1"
|
||||
enable_secur32_Zero_Buffer_Length="$1"
|
||||
@ -511,9 +508,6 @@ patch_enable ()
|
||||
browseui-Progress_Dialog)
|
||||
enable_browseui_Progress_Dialog="$2"
|
||||
;;
|
||||
cabinet-iFolder)
|
||||
enable_cabinet_iFolder="$2"
|
||||
;;
|
||||
combase-RoApi)
|
||||
enable_combase_RoApi="$2"
|
||||
;;
|
||||
@ -754,9 +748,6 @@ patch_enable ()
|
||||
kernel32-FindFirstFile)
|
||||
enable_kernel32_FindFirstFile="$2"
|
||||
;;
|
||||
kernel32-GetCurrentPackageFamilyName)
|
||||
enable_kernel32_GetCurrentPackageFamilyName="$2"
|
||||
;;
|
||||
kernel32-GetPackageFullName)
|
||||
enable_kernel32_GetPackageFullName="$2"
|
||||
;;
|
||||
@ -1105,9 +1096,6 @@ patch_enable ()
|
||||
quartz-Silence_FIXMEs)
|
||||
enable_quartz_Silence_FIXMEs="$2"
|
||||
;;
|
||||
rasapi32-RasEnumDevicesA)
|
||||
enable_rasapi32_RasEnumDevicesA="$2"
|
||||
;;
|
||||
riched20-Class_Tests)
|
||||
enable_riched20_Class_Tests="$2"
|
||||
;;
|
||||
@ -2335,11 +2323,7 @@ if test "$enable_kernel32_GetPackageFullName" -eq 1; then
|
||||
if test "$enable_api_ms_win_Stub_DLLs" -gt 1; then
|
||||
abort "Patchset api-ms-win-Stub_DLLs disabled, but kernel32-GetPackageFullName depends on that."
|
||||
fi
|
||||
if test "$enable_kernel32_GetCurrentPackageFamilyName" -gt 1; then
|
||||
abort "Patchset kernel32-GetCurrentPackageFamilyName disabled, but kernel32-GetPackageFullName depends on that."
|
||||
fi
|
||||
enable_api_ms_win_Stub_DLLs=1
|
||||
enable_kernel32_GetCurrentPackageFamilyName=1
|
||||
fi
|
||||
|
||||
if test "$enable_kernel32_CopyFileEx" -eq 1; then
|
||||
@ -2428,14 +2412,10 @@ if test "$enable_api_ms_win_Stub_DLLs" -eq 1; then
|
||||
if test "$enable_combase_RoApi" -gt 1; then
|
||||
abort "Patchset combase-RoApi disabled, but api-ms-win-Stub_DLLs depends on that."
|
||||
fi
|
||||
if test "$enable_kernel32_GetCurrentPackageFamilyName" -gt 1; then
|
||||
abort "Patchset kernel32-GetCurrentPackageFamilyName disabled, but api-ms-win-Stub_DLLs depends on that."
|
||||
fi
|
||||
if test "$enable_kernel32_UmsStubs" -gt 1; then
|
||||
abort "Patchset kernel32-UmsStubs disabled, but api-ms-win-Stub_DLLs depends on that."
|
||||
fi
|
||||
enable_combase_RoApi=1
|
||||
enable_kernel32_GetCurrentPackageFamilyName=1
|
||||
enable_kernel32_UmsStubs=1
|
||||
fi
|
||||
|
||||
@ -2721,19 +2701,6 @@ if test "$enable_combase_RoApi" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset kernel32-GetCurrentPackageFamilyName
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/api-ms-win-appmodel-runtime-l1-1-1/api-ms-win-appmodel-runtime-l1-1-1.spec, dlls/kernel32/kernel32.spec,
|
||||
# | dlls/kernel32/version.c
|
||||
# |
|
||||
if test "$enable_kernel32_GetCurrentPackageFamilyName" -eq 1; then
|
||||
patch_apply kernel32-GetCurrentPackageFamilyName/0001-kernel32-Add-stub-for-GetCurrentPackageFamilyName-an.patch
|
||||
(
|
||||
printf '%s\n' '+ { "Michael Müller", "kernel32: Add stub for GetCurrentPackageFamilyName and add related functions to spec file.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset kernel32-UmsStubs
|
||||
# |
|
||||
# | Modified files:
|
||||
@ -2752,7 +2719,7 @@ fi
|
||||
# Patchset api-ms-win-Stub_DLLs
|
||||
# |
|
||||
# | This patchset has the following (direct or indirect) dependencies:
|
||||
# | * combase-RoApi, kernel32-GetCurrentPackageFamilyName, kernel32-UmsStubs
|
||||
# | * combase-RoApi, kernel32-UmsStubs
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#40451] Add feclient dll
|
||||
@ -2956,21 +2923,6 @@ if test "$enable_browseui_Progress_Dialog" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset cabinet-iFolder
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#10858] Set index of folder in FDICopy callback
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/cabinet/fdi.c
|
||||
# |
|
||||
if test "$enable_cabinet_iFolder" -eq 1; then
|
||||
patch_apply cabinet-iFolder/0001-cabinet-Set-index-of-folder-in-FDICopy-callback.patch
|
||||
(
|
||||
printf '%s\n' '+ { "Michael Müller", "cabinet: Set index of folder in FDICopy callback.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset comctl32-Button_Theming
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
@ -4476,7 +4428,7 @@ fi
|
||||
# Patchset kernel32-GetPackageFullName
|
||||
# |
|
||||
# | This patchset has the following (direct or indirect) dependencies:
|
||||
# | * combase-RoApi, kernel32-GetCurrentPackageFamilyName, kernel32-UmsStubs, api-ms-win-Stub_DLLs
|
||||
# | * combase-RoApi, kernel32-UmsStubs, api-ms-win-Stub_DLLs
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/api-ms-win-appmodel-runtime-l1-1-1/api-ms-win-appmodel-runtime-l1-1-1.spec, dlls/kernel32/kernel32.spec,
|
||||
@ -4719,7 +4671,7 @@ fi
|
||||
# Patchset kernel32-Processor_Group
|
||||
# |
|
||||
# | This patchset has the following (direct or indirect) dependencies:
|
||||
# | * combase-RoApi, kernel32-GetCurrentPackageFamilyName, kernel32-UmsStubs, api-ms-win-Stub_DLLs
|
||||
# | * combase-RoApi, kernel32-UmsStubs, api-ms-win-Stub_DLLs
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/api-ms-win-core-kernel32-legacy-l1-1-0/api-ms-win-core-kernel32-legacy-l1-1-0.spec, dlls/api-ms-win-core-
|
||||
@ -6461,21 +6413,6 @@ if test "$enable_quartz_Silence_FIXMEs" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset rasapi32-RasEnumDevicesA
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#30378] Initialize *lpcDevices in RasEnumDevicesA
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/rasapi32/rasapi.c, dlls/rasapi32/tests/rasapi.c
|
||||
# |
|
||||
if test "$enable_rasapi32_RasEnumDevicesA" -eq 1; then
|
||||
patch_apply rasapi32-RasEnumDevicesA/0001-rasapi32-Set-lpcDevices-in-RasEnumDevicesA.patch
|
||||
(
|
||||
printf '%s\n' '+ { "Sebastian Lackner", "rasapi32: Set *lpcDevices in RasEnumDevicesA.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset riched20-Class_Tests
|
||||
# |
|
||||
# | Modified files:
|
||||
@ -8537,7 +8474,6 @@ if test "$enable_wined3d_CSMT_Main" -eq 1; then
|
||||
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Create initial DCs through the CS.", 1 },';
|
||||
printf '%s\n' '+ { "Nils Kuhnhenn", "wined3d: Fix context_acquire not being called from the command thread in wined3d_texture_add_dirty_region.", 1 },';
|
||||
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Wrap GL BOs in a structure.", 1 },';
|
||||
printf '%s\n' '+ { "Sebastian Lackner", "wined3d: Send buffer copy requests through CS.", 1 },';
|
||||
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Avoid destroying views in color and depth fills.", 1 },';
|
||||
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Add a separate variable to check if queries are started.", 1 },';
|
||||
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Wait for the cs to finish before destroying the device.", 1 },';
|
||||
|
@ -1,123 +0,0 @@
|
||||
From 8377389407d8ab624c79cbb072e7c6e5c1b4a8d5 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sun, 28 Jun 2015 03:58:23 +0200
|
||||
Subject: rasapi32: Set *lpcDevices in RasEnumDevicesA.
|
||||
|
||||
Based on a patch by Qian Hong.
|
||||
---
|
||||
dlls/rasapi32/rasapi.c | 2 ++
|
||||
dlls/rasapi32/tests/rasapi.c | 21 +++++++++++++++++++++
|
||||
2 files changed, 23 insertions(+)
|
||||
|
||||
diff --git a/dlls/rasapi32/rasapi.c b/dlls/rasapi32/rasapi.c
|
||||
index 235ab65..c2a4b55 100644
|
||||
--- a/dlls/rasapi32/rasapi.c
|
||||
+++ b/dlls/rasapi32/rasapi.c
|
||||
@@ -254,6 +254,8 @@ DWORD WINAPI RasEnumDevicesA(LPRASDEVINFOA lpRasDevinfo, LPDWORD lpcb, LPDWORD l
|
||||
if(lpRasDevinfo && lpRasDevinfo->dwSize != sizeof(RASDEVINFOA))
|
||||
return ERROR_INVALID_SIZE;
|
||||
|
||||
+ *lpcDevices = 1;
|
||||
+
|
||||
if (!lpRasDevinfo || (*lpcb < sizeof(RASDEVINFOA))) {
|
||||
*lpcb = sizeof(RASDEVINFOA);
|
||||
return ERROR_BUFFER_TOO_SMALL;
|
||||
diff --git a/dlls/rasapi32/tests/rasapi.c b/dlls/rasapi32/tests/rasapi.c
|
||||
index e0ff25f..5171bb2 100644
|
||||
--- a/dlls/rasapi32/tests/rasapi.c
|
||||
+++ b/dlls/rasapi32/tests/rasapi.c
|
||||
@@ -77,54 +77,71 @@ static void test_rasenum(void)
|
||||
|
||||
/* test first parameter */
|
||||
cb = bufsize;
|
||||
+ cDevices = 0xdeadbeef;
|
||||
result = pRasEnumDevicesA(NULL, &cb, &cDevices);
|
||||
+ ok(0 < cDevices && cDevices < 32, "expected 0 < cDevices < 32, got %u\n", cDevices);
|
||||
ok(result == ERROR_BUFFER_TOO_SMALL ||
|
||||
result == ERROR_INVALID_USER_BUFFER, /* win98 */
|
||||
"Expected ERROR_BUFFER_TOO_SMALL, got %08d\n", result);
|
||||
|
||||
rasDevInfo[0].dwSize = 0;
|
||||
cb = bufsize;
|
||||
+ cDevices = 0xdeadbeef;
|
||||
result = pRasEnumDevicesA(rasDevInfo, &cb, &cDevices);
|
||||
+ ok(cDevices == 0xdeadbeef, "expected cDevices = 0xdeadbeef, got %u\n", cDevices);
|
||||
ok(result == ERROR_INVALID_SIZE ||
|
||||
result == ERROR_INVALID_USER_BUFFER, /* win98 */
|
||||
"Expected ERROR_INVALID_SIZE, got %08d\n", result);
|
||||
|
||||
rasDevInfo[0].dwSize = sizeof(RASDEVINFOA) -1;
|
||||
cb = bufsize;
|
||||
+ cDevices = 0xdeadbeef;
|
||||
result = pRasEnumDevicesA(rasDevInfo, &cb, &cDevices);
|
||||
+ ok(cDevices == 0xdeadbeef, "expected cDevices = 0xdeadbeef, got %u\n", cDevices);
|
||||
ok(result == ERROR_INVALID_SIZE ||
|
||||
result == ERROR_INVALID_USER_BUFFER, /* win98 */
|
||||
"Expected ERROR_INVALID_SIZE, got %08d\n", result);
|
||||
|
||||
rasDevInfo[0].dwSize = sizeof(RASDEVINFOA) +1;
|
||||
cb = bufsize;
|
||||
+ cDevices = 0xdeadbeef;
|
||||
result = pRasEnumDevicesA(rasDevInfo, &cb, &cDevices);
|
||||
+ ok(cDevices == 0xdeadbeef, "expected cDevices = 0xdeadbeef, got %u\n", cDevices);
|
||||
ok(result == ERROR_INVALID_SIZE ||
|
||||
result == ERROR_INVALID_USER_BUFFER, /* win98 */
|
||||
"Expected ERROR_INVALID_SIZE, got %08d\n", result);
|
||||
|
||||
/* test second parameter */
|
||||
rasDevInfo[0].dwSize = sizeof(RASDEVINFOA);
|
||||
+ cDevices = 0xdeadbeef;
|
||||
result = pRasEnumDevicesA(rasDevInfo, NULL, &cDevices);
|
||||
+ ok(cDevices == 0xdeadbeef, "expected cDevices = 0xdeadbeef, got %u\n", cDevices);
|
||||
ok(result == ERROR_INVALID_PARAMETER,
|
||||
"Expected ERROR_INVALID_PARAMETER, got %08d\n", result);
|
||||
|
||||
rasDevInfo[0].dwSize = sizeof(RASDEVINFOA);
|
||||
cb = 0;
|
||||
+ cDevices = 0xdeadbeef;
|
||||
result = pRasEnumDevicesA(rasDevInfo, &cb, &cDevices);
|
||||
+ todo_wine
|
||||
+ ok(cDevices == 0xdeadbeef, "expected cDevices = 0xdeadbeef, got %u\n", cDevices);
|
||||
ok(result == ERROR_BUFFER_TOO_SMALL ||
|
||||
result == ERROR_INVALID_SIZE, /* vista, 2k8 */
|
||||
"Expected ERROR_BUFFER_TOO_SMALL/ERROR_INVALID_SIZE, got %08d\n", result);
|
||||
|
||||
rasDevInfo[0].dwSize = sizeof(RASDEVINFOA);
|
||||
cb = bufsize -1;
|
||||
+ cDevices = 0xdeadbeef;
|
||||
result = pRasEnumDevicesA(rasDevInfo, &cb, &cDevices);
|
||||
+ ok(0 < cDevices && cDevices < 32, "expected 0 < cDevices < 32, got %u\n", cDevices);
|
||||
ok(result == ERROR_BUFFER_TOO_SMALL,
|
||||
"Expected ERROR_BUFFER_TOO_SMALL, got %08d\n", result);
|
||||
|
||||
rasDevInfo[0].dwSize = sizeof(RASDEVINFOA);
|
||||
cb = bufsize +1;
|
||||
+ cDevices = 0xdeadbeef;
|
||||
result = pRasEnumDevicesA(rasDevInfo, &cb, &cDevices);
|
||||
+ ok(0 < cDevices && cDevices < 32, "expected 0 < cDevices < 32, got %u\n", cDevices);
|
||||
ok(result == ERROR_SUCCESS,
|
||||
"Expected ERROR_SUCCESS, got %08d\n", result);
|
||||
|
||||
@@ -136,7 +153,9 @@ static void test_rasenum(void)
|
||||
"Expected ERROR_INVALID_PARAMETER, got %08d\n", result);
|
||||
|
||||
/* test combinations of invalid parameters */
|
||||
+ cDevices = 0xdeadbeef;
|
||||
result = pRasEnumDevicesA(NULL, NULL, &cDevices);
|
||||
+ ok(cDevices == 0xdeadbeef, "expected cDevices = 0xdeadbeef, got %u\n", cDevices);
|
||||
ok(result == ERROR_INVALID_PARAMETER,
|
||||
"Expected ERROR_INVALID_PARAMETER, got %08d\n", result);
|
||||
|
||||
@@ -147,7 +166,9 @@ static void test_rasenum(void)
|
||||
|
||||
cb = 0;
|
||||
rasDevInfo[0].dwSize = 0;
|
||||
+ cDevices = 0xdeadbeef;
|
||||
result = pRasEnumDevicesA(rasDevInfo, &cb, &cDevices);
|
||||
+ ok(cDevices == 0xdeadbeef, "expected cDevices = 0xdeadbeef, got %u\n", cDevices);
|
||||
ok(result == ERROR_INVALID_SIZE ||
|
||||
broken(result == ERROR_BUFFER_TOO_SMALL), /* win98 */
|
||||
"Expected ERROR_INVALID_SIZE, got %08d\n", result);
|
||||
--
|
||||
2.4.3
|
||||
|
@ -1 +0,0 @@
|
||||
Fixes: [30378] Initialize *lpcDevices in RasEnumDevicesA
|
@ -1,4 +1,4 @@
|
||||
From 6a1701127f6f8f1c885cb787249496179a69b06b Mon Sep 17 00:00:00 2001
|
||||
From 16e895f9770039a4d9129d577698c8dcec90334e Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Tue, 23 Aug 2016 22:54:14 +0200
|
||||
Subject: wined3d: Create dummy 1d textures.
|
||||
@ -10,10 +10,10 @@ Subject: wined3d: Create dummy 1d textures.
|
||||
3 files changed, 40 insertions(+)
|
||||
|
||||
diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
|
||||
index cd0057e1591..a4820d337c0 100644
|
||||
index a423fac2079..65853209864 100644
|
||||
--- a/dlls/wined3d/context.c
|
||||
+++ b/dlls/wined3d/context.c
|
||||
@@ -1531,6 +1531,7 @@ void context_bind_dummy_textures(const struct wined3d_device *device, const stru
|
||||
@@ -1514,6 +1514,7 @@ void context_bind_dummy_textures(const struct wined3d_device *device, const stru
|
||||
GL_EXTCALL(glActiveTexture(GL_TEXTURE0 + i));
|
||||
checkGLcall("glActiveTexture");
|
||||
|
||||
@ -21,8 +21,8 @@ index cd0057e1591..a4820d337c0 100644
|
||||
gl_info->gl_ops.gl.p_glBindTexture(GL_TEXTURE_2D, device->dummy_textures.tex_2d);
|
||||
|
||||
if (gl_info->supported[ARB_TEXTURE_RECTANGLE])
|
||||
@@ -1543,7 +1544,10 @@ void context_bind_dummy_textures(const struct wined3d_device *device, const stru
|
||||
gl_info->gl_ops.gl.p_glBindTexture(GL_TEXTURE_CUBE_MAP, device->dummy_textures.tex_cube);
|
||||
@@ -1529,7 +1530,10 @@ void context_bind_dummy_textures(const struct wined3d_device *device, const stru
|
||||
gl_info->gl_ops.gl.p_glBindTexture(GL_TEXTURE_CUBE_MAP_ARRAY, device->dummy_textures.tex_cube_array);
|
||||
|
||||
if (gl_info->supported[EXT_TEXTURE_ARRAY])
|
||||
+ {
|
||||
@ -32,7 +32,7 @@ index cd0057e1591..a4820d337c0 100644
|
||||
|
||||
if (gl_info->supported[ARB_TEXTURE_BUFFER_OBJECT])
|
||||
gl_info->gl_ops.gl.p_glBindTexture(GL_TEXTURE_BUFFER, device->dummy_textures.tex_buffer);
|
||||
@@ -2426,6 +2430,14 @@ void context_bind_texture(struct wined3d_context *context, GLenum target, GLuint
|
||||
@@ -2411,6 +2415,14 @@ void context_bind_texture(struct wined3d_context *context, GLenum target, GLuint
|
||||
case GL_NONE:
|
||||
/* nothing to do */
|
||||
break;
|
||||
@ -48,10 +48,10 @@ index cd0057e1591..a4820d337c0 100644
|
||||
gl_info->gl_ops.gl.p_glBindTexture(GL_TEXTURE_2D, device->dummy_textures.tex_2d);
|
||||
checkGLcall("glBindTexture");
|
||||
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
index 7898527f6c0..b5a42905d33 100644
|
||||
index eef9818affd..5b598e2f3a4 100644
|
||||
--- a/dlls/wined3d/device.c
|
||||
+++ b/dlls/wined3d/device.c
|
||||
@@ -624,6 +624,17 @@ static void create_dummy_textures(struct wined3d_device *device, struct wined3d_
|
||||
@@ -628,6 +628,17 @@ static void create_dummy_textures(struct wined3d_device *device, struct wined3d_
|
||||
* to each texture stage when the currently set D3D texture is NULL. */
|
||||
context_active_texture(context, gl_info, 0);
|
||||
|
||||
@ -69,7 +69,7 @@ index 7898527f6c0..b5a42905d33 100644
|
||||
gl_info->gl_ops.gl.p_glGenTextures(1, &device->dummy_textures.tex_2d);
|
||||
checkGLcall("glGenTextures");
|
||||
TRACE("Dummy 2D texture given name %u.\n", device->dummy_textures.tex_2d);
|
||||
@@ -682,6 +693,17 @@ static void create_dummy_textures(struct wined3d_device *device, struct wined3d_
|
||||
@@ -704,6 +715,17 @@ static void create_dummy_textures(struct wined3d_device *device, struct wined3d_
|
||||
|
||||
if (gl_info->supported[EXT_TEXTURE_ARRAY])
|
||||
{
|
||||
@ -87,7 +87,7 @@ index 7898527f6c0..b5a42905d33 100644
|
||||
gl_info->gl_ops.gl.p_glGenTextures(1, &device->dummy_textures.tex_2d_array);
|
||||
checkGLcall("glGenTextures");
|
||||
TRACE("Dummy 2D array texture given name %u.\n", device->dummy_textures.tex_2d_array);
|
||||
@@ -729,7 +751,10 @@ static void destroy_dummy_textures(struct wined3d_device *device, struct wined3d
|
||||
@@ -751,7 +773,10 @@ static void destroy_dummy_textures(struct wined3d_device *device, struct wined3d
|
||||
gl_info->gl_ops.gl.p_glDeleteTextures(1, &device->dummy_textures.tex_buffer);
|
||||
|
||||
if (gl_info->supported[EXT_TEXTURE_ARRAY])
|
||||
@ -96,9 +96,9 @@ index 7898527f6c0..b5a42905d33 100644
|
||||
+ gl_info->gl_ops.gl.p_glDeleteTextures(1, &device->dummy_textures.tex_1d_array);
|
||||
+ }
|
||||
|
||||
if (gl_info->supported[ARB_TEXTURE_CUBE_MAP])
|
||||
gl_info->gl_ops.gl.p_glDeleteTextures(1, &device->dummy_textures.tex_cube);
|
||||
@@ -741,6 +766,7 @@ static void destroy_dummy_textures(struct wined3d_device *device, struct wined3d
|
||||
if (gl_info->supported[ARB_TEXTURE_CUBE_MAP_ARRAY])
|
||||
gl_info->gl_ops.gl.p_glDeleteTextures(1, &device->dummy_textures.tex_cube_array);
|
||||
@@ -766,6 +791,7 @@ static void destroy_dummy_textures(struct wined3d_device *device, struct wined3d
|
||||
gl_info->gl_ops.gl.p_glDeleteTextures(1, &device->dummy_textures.tex_rect);
|
||||
|
||||
gl_info->gl_ops.gl.p_glDeleteTextures(1, &device->dummy_textures.tex_2d);
|
||||
@ -107,10 +107,10 @@ index 7898527f6c0..b5a42905d33 100644
|
||||
checkGLcall("Delete dummy textures");
|
||||
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index 051836c7414..a71ea9e73ef 100644
|
||||
index cdc240058a2..34d8f18d698 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -2582,10 +2582,12 @@ struct wined3d_device
|
||||
@@ -2666,11 +2666,13 @@ struct wined3d_device
|
||||
/* Textures for when no other textures are mapped */
|
||||
struct
|
||||
{
|
||||
@ -119,6 +119,7 @@ index 051836c7414..a71ea9e73ef 100644
|
||||
GLuint tex_rect;
|
||||
GLuint tex_3d;
|
||||
GLuint tex_cube;
|
||||
GLuint tex_cube_array;
|
||||
+ GLuint tex_1d_array;
|
||||
GLuint tex_2d_array;
|
||||
GLuint tex_buffer;
|
||||
|
@ -1,4 +1,4 @@
|
||||
From ec1172f3bd0ba8c66347ed17edf086c850665f24 Mon Sep 17 00:00:00 2001
|
||||
From 9e6e4d61e56980850bbbc340d510e9a57f9d5627 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Mon, 6 Feb 2017 05:50:11 +0100
|
||||
Subject: wined3d: Send push_constants through the CS.
|
||||
@ -10,18 +10,18 @@ Subject: wined3d: Send push_constants through the CS.
|
||||
3 files changed, 77 insertions(+), 58 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
|
||||
index 543528ae570..72c0ace384c 100644
|
||||
index 8c0abf449f2..0d74ea806a9 100644
|
||||
--- a/dlls/wined3d/cs.c
|
||||
+++ b/dlls/wined3d/cs.c
|
||||
@@ -66,6 +66,7 @@ enum wined3d_cs_op
|
||||
WINED3D_CS_OP_MAP,
|
||||
@@ -67,6 +67,7 @@ enum wined3d_cs_op
|
||||
WINED3D_CS_OP_UNMAP,
|
||||
WINED3D_CS_OP_BLT_SUB_RESOURCE,
|
||||
WINED3D_CS_OP_UPDATE_SUB_RESOURCE,
|
||||
+ WINED3D_CS_OP_PUSH_CONSTANTS,
|
||||
};
|
||||
|
||||
struct wined3d_cs_sync
|
||||
@@ -366,6 +367,15 @@ struct wined3d_cs_update_sub_resource
|
||||
@@ -381,6 +382,15 @@ struct wined3d_cs_update_sub_resource
|
||||
struct wined3d_sub_resource_data data;
|
||||
};
|
||||
|
||||
@ -37,7 +37,7 @@ index 543528ae570..72c0ace384c 100644
|
||||
static void wined3d_cs_exec_sync(struct wined3d_cs *cs, const void *data)
|
||||
{
|
||||
}
|
||||
@@ -1773,6 +1783,64 @@ void wined3d_cs_emit_update_sub_resource(struct wined3d_cs *cs, struct wined3d_r
|
||||
@@ -1856,6 +1866,64 @@ void wined3d_cs_emit_update_sub_resource(struct wined3d_cs *cs, struct wined3d_r
|
||||
cs->ops->submit_and_wait(cs);
|
||||
}
|
||||
|
||||
@ -102,15 +102,15 @@ index 543528ae570..72c0ace384c 100644
|
||||
static void (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void *data) =
|
||||
{
|
||||
/* WINED3D_CS_OP_SYNC */ wined3d_cs_exec_sync,
|
||||
@@ -1815,6 +1883,7 @@ static void (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void
|
||||
/* WINED3D_CS_OP_MAP */ wined3d_cs_exec_map,
|
||||
@@ -1899,6 +1967,7 @@ static void (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void
|
||||
/* WINED3D_CS_OP_UNMAP */ wined3d_cs_exec_unmap,
|
||||
/* WINED3D_CS_OP_BLT_SUB_RESOURCE */ wined3d_cs_exec_blt_sub_resource,
|
||||
/* WINED3D_CS_OP_UPDATE_SUB_RESOURCE */ wined3d_cs_exec_update_sub_resource,
|
||||
+ /* WINED3D_CS_OP_PUSH_CONSTANTS */ wined3d_cs_exec_push_constants,
|
||||
};
|
||||
|
||||
static void *wined3d_cs_st_require_space(struct wined3d_cs *cs, size_t size)
|
||||
@@ -1861,55 +1930,11 @@ static void wined3d_cs_st_submit(struct wined3d_cs *cs)
|
||||
@@ -1945,55 +2014,11 @@ static void wined3d_cs_st_submit(struct wined3d_cs *cs)
|
||||
HeapFree(GetProcessHeap(), 0, data);
|
||||
}
|
||||
|
||||
@ -167,10 +167,10 @@ index 543528ae570..72c0ace384c 100644
|
||||
|
||||
struct wined3d_cs *wined3d_cs_create(struct wined3d_device *device)
|
||||
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
index ea27553e8c8..a06cae6412e 100644
|
||||
index e328f32403f..c3a10a2d13a 100644
|
||||
--- a/dlls/wined3d/device.c
|
||||
+++ b/dlls/wined3d/device.c
|
||||
@@ -2337,7 +2337,7 @@ HRESULT CDECL wined3d_device_set_vs_consts_b(struct wined3d_device *device,
|
||||
@@ -2376,7 +2376,7 @@ HRESULT CDECL wined3d_device_set_vs_consts_b(struct wined3d_device *device,
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -179,7 +179,7 @@ index ea27553e8c8..a06cae6412e 100644
|
||||
}
|
||||
|
||||
return WINED3D_OK;
|
||||
@@ -2386,7 +2386,7 @@ HRESULT CDECL wined3d_device_set_vs_consts_i(struct wined3d_device *device,
|
||||
@@ -2425,7 +2425,7 @@ HRESULT CDECL wined3d_device_set_vs_consts_i(struct wined3d_device *device,
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -188,7 +188,7 @@ index ea27553e8c8..a06cae6412e 100644
|
||||
}
|
||||
|
||||
return WINED3D_OK;
|
||||
@@ -2431,7 +2431,7 @@ HRESULT CDECL wined3d_device_set_vs_consts_f(struct wined3d_device *device,
|
||||
@@ -2470,7 +2470,7 @@ HRESULT CDECL wined3d_device_set_vs_consts_f(struct wined3d_device *device,
|
||||
memset(&device->recording->changed.vs_consts_f[start_idx], 1,
|
||||
count * sizeof(*device->recording->changed.vs_consts_f));
|
||||
else
|
||||
@ -197,7 +197,7 @@ index ea27553e8c8..a06cae6412e 100644
|
||||
|
||||
return WINED3D_OK;
|
||||
}
|
||||
@@ -2570,7 +2570,7 @@ HRESULT CDECL wined3d_device_set_ps_consts_b(struct wined3d_device *device,
|
||||
@@ -2591,7 +2591,7 @@ HRESULT CDECL wined3d_device_set_ps_consts_b(struct wined3d_device *device,
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -206,7 +206,7 @@ index ea27553e8c8..a06cae6412e 100644
|
||||
}
|
||||
|
||||
return WINED3D_OK;
|
||||
@@ -2619,7 +2619,7 @@ HRESULT CDECL wined3d_device_set_ps_consts_i(struct wined3d_device *device,
|
||||
@@ -2640,7 +2640,7 @@ HRESULT CDECL wined3d_device_set_ps_consts_i(struct wined3d_device *device,
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -215,7 +215,7 @@ index ea27553e8c8..a06cae6412e 100644
|
||||
}
|
||||
|
||||
return WINED3D_OK;
|
||||
@@ -2665,7 +2665,7 @@ HRESULT CDECL wined3d_device_set_ps_consts_f(struct wined3d_device *device,
|
||||
@@ -2686,7 +2686,7 @@ HRESULT CDECL wined3d_device_set_ps_consts_f(struct wined3d_device *device,
|
||||
memset(&device->recording->changed.ps_consts_f[start_idx], 1,
|
||||
count * sizeof(*device->recording->changed.ps_consts_f));
|
||||
else
|
||||
@ -225,10 +225,10 @@ index ea27553e8c8..a06cae6412e 100644
|
||||
return WINED3D_OK;
|
||||
}
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index d2e0052067f..2a8f075667a 100644
|
||||
index 2922caaa412..9c68628ed6c 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -3199,8 +3199,6 @@ struct wined3d_cs_ops
|
||||
@@ -3200,8 +3200,6 @@ struct wined3d_cs_ops
|
||||
void *(*require_space)(struct wined3d_cs *cs, size_t size);
|
||||
void (*submit)(struct wined3d_cs *cs);
|
||||
void (*submit_and_wait)(struct wined3d_cs *cs);
|
||||
@ -237,7 +237,7 @@ index d2e0052067f..2a8f075667a 100644
|
||||
};
|
||||
|
||||
struct wined3d_cs
|
||||
@@ -3229,6 +3227,8 @@ void wined3d_cs_emit_glfinish(struct wined3d_cs *cs) DECLSPEC_HIDDEN;
|
||||
@@ -3234,6 +3232,8 @@ void wined3d_cs_emit_glfinish(struct wined3d_cs *cs) DECLSPEC_HIDDEN;
|
||||
void wined3d_cs_emit_preload_resource(struct wined3d_cs *cs, struct wined3d_resource *resource) DECLSPEC_HIDDEN;
|
||||
void wined3d_cs_emit_present(struct wined3d_cs *cs, struct wined3d_swapchain *swapchain,
|
||||
const RECT *src_rect, const RECT *dst_rect, HWND dst_window_override, DWORD flags) DECLSPEC_HIDDEN;
|
||||
@ -246,7 +246,7 @@ index d2e0052067f..2a8f075667a 100644
|
||||
void wined3d_cs_emit_query_issue(struct wined3d_cs *cs, struct wined3d_query *query, DWORD flags) DECLSPEC_HIDDEN;
|
||||
void wined3d_cs_emit_reset_state(struct wined3d_cs *cs) DECLSPEC_HIDDEN;
|
||||
void wined3d_cs_emit_set_clip_plane(struct wined3d_cs *cs, UINT plane_idx,
|
||||
@@ -3289,12 +3289,6 @@ HRESULT wined3d_cs_map(struct wined3d_cs *cs, struct wined3d_resource *resource,
|
||||
@@ -3294,12 +3294,6 @@ HRESULT wined3d_cs_map(struct wined3d_cs *cs, struct wined3d_resource *resource,
|
||||
HRESULT wined3d_cs_unmap(struct wined3d_cs *cs, struct wined3d_resource *resource,
|
||||
unsigned int sub_resource_idx) DECLSPEC_HIDDEN;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 5ee5e16ac78dcad58eaa40fe41ee7c771b8721cf Mon Sep 17 00:00:00 2001
|
||||
From 706645d08ae7ebd9175f91532077694b988aef7d Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Mon, 29 Apr 2013 18:49:53 +0200
|
||||
Subject: wined3d: Send blits through the command stream.
|
||||
@ -6,335 +6,45 @@ Subject: wined3d: Send blits through the command stream.
|
||||
This needs more work. This patch breaks error handling, and the split
|
||||
between surface_blt and surface_blt_ugly isn't particularly nice.
|
||||
---
|
||||
dlls/wined3d/cs.c | 52 +++++++++++++++
|
||||
dlls/wined3d/surface.c | 140 ++++++++++++++++++++++++-----------------
|
||||
dlls/wined3d/texture.c | 9 ++-
|
||||
dlls/wined3d/wined3d_private.h | 7 +++
|
||||
4 files changed, 148 insertions(+), 60 deletions(-)
|
||||
dlls/wined3d/device.c | 18 +++++++++---------
|
||||
dlls/wined3d/texture.c | 9 +++++++--
|
||||
2 files changed, 16 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
|
||||
index 1366973c1e6..f2eb87e35b8 100644
|
||||
--- a/dlls/wined3d/cs.c
|
||||
+++ b/dlls/wined3d/cs.c
|
||||
@@ -67,6 +67,7 @@ enum wined3d_cs_op
|
||||
WINED3D_CS_OP_UNMAP,
|
||||
WINED3D_CS_OP_UPDATE_SUB_RESOURCE,
|
||||
WINED3D_CS_OP_PUSH_CONSTANTS,
|
||||
+ WINED3D_CS_OP_BLT,
|
||||
};
|
||||
|
||||
struct wined3d_cs_sync
|
||||
@@ -376,6 +377,18 @@ struct wined3d_cs_push_constants
|
||||
BYTE constants[1];
|
||||
};
|
||||
|
||||
+struct wined3d_cs_blt
|
||||
+{
|
||||
+ enum wined3d_cs_op opcode;
|
||||
+ struct wined3d_surface *dst_surface;
|
||||
+ RECT dst_rect;
|
||||
+ struct wined3d_surface *src_surface;
|
||||
+ RECT src_rect;
|
||||
+ DWORD flags;
|
||||
+ struct wined3d_blt_fx fx;
|
||||
+ enum wined3d_texture_filter_type filter;
|
||||
+};
|
||||
+
|
||||
static void wined3d_cs_exec_sync(struct wined3d_cs *cs, const void *data)
|
||||
{
|
||||
}
|
||||
@@ -1857,6 +1870,44 @@ void wined3d_cs_emit_push_constants(struct wined3d_cs *cs, enum wined3d_push_con
|
||||
cs->ops->submit(cs);
|
||||
}
|
||||
|
||||
+static void wined3d_cs_exec_blt(struct wined3d_cs *cs, const void *data)
|
||||
+{
|
||||
+ const struct wined3d_cs_blt *op = data;
|
||||
+
|
||||
+ surface_blt_ugly(op->dst_surface, &op->dst_rect,
|
||||
+ op->src_surface, &op->src_rect,
|
||||
+ op->flags, &op->fx, op->filter);
|
||||
+
|
||||
+ wined3d_resource_release(&op->dst_surface->container->resource);
|
||||
+ if (op->src_surface && op->src_surface != op->dst_surface)
|
||||
+ wined3d_resource_release(&op->src_surface->container->resource);
|
||||
+}
|
||||
+
|
||||
+void wined3d_cs_emit_blt(struct wined3d_cs *cs, struct wined3d_surface *dst_surface,
|
||||
+ const RECT *dst_rect, struct wined3d_surface *src_surface,
|
||||
+ const RECT *src_rect, DWORD flags, const struct wined3d_blt_fx *fx,
|
||||
+ enum wined3d_texture_filter_type filter)
|
||||
+{
|
||||
+ struct wined3d_cs_blt *op;
|
||||
+
|
||||
+ op = cs->ops->require_space(cs, sizeof(*op));
|
||||
+ op->opcode = WINED3D_CS_OP_BLT;
|
||||
+ op->dst_surface = dst_surface;
|
||||
+ op->dst_rect = *dst_rect;
|
||||
+ op->src_surface = src_surface;
|
||||
+ op->src_rect = *src_rect;
|
||||
+ op->flags = flags;
|
||||
+ op->filter = filter;
|
||||
+ if (fx)
|
||||
+ op->fx = *fx;
|
||||
+
|
||||
+ wined3d_resource_acquire(&dst_surface->container->resource);
|
||||
+ if (src_surface && src_surface != dst_surface)
|
||||
+ wined3d_resource_acquire(&src_surface->container->resource);
|
||||
+
|
||||
+ cs->ops->submit(cs);
|
||||
+}
|
||||
+
|
||||
static void (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void *data) =
|
||||
{
|
||||
/* WINED3D_CS_OP_SYNC */ wined3d_cs_exec_sync,
|
||||
@@ -1900,6 +1951,7 @@ static void (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void
|
||||
/* WINED3D_CS_OP_UNMAP */ wined3d_cs_exec_unmap,
|
||||
/* WINED3D_CS_OP_UPDATE_SUB_RESOURCE */ wined3d_cs_exec_update_sub_resource,
|
||||
/* WINED3D_CS_OP_PUSH_CONSTANTS */ wined3d_cs_exec_push_constants,
|
||||
+ /* WINED3D_CS_OP_BLT */ wined3d_cs_exec_blt,
|
||||
};
|
||||
|
||||
static void *wined3d_cs_st_require_space(struct wined3d_cs *cs, size_t size)
|
||||
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
index cd82d46a001..637d300b2f5 100644
|
||||
--- a/dlls/wined3d/surface.c
|
||||
+++ b/dlls/wined3d/surface.c
|
||||
@@ -3738,7 +3738,7 @@ const struct blit_shader cpu_blit = {
|
||||
cpu_blit_blit_surface,
|
||||
};
|
||||
|
||||
-HRESULT wined3d_surface_blt(struct wined3d_surface *dst_surface, const RECT *dst_rect,
|
||||
+void surface_blt_ugly(struct wined3d_surface *dst_surface, const RECT *dst_rect,
|
||||
struct wined3d_surface *src_surface, const RECT *src_rect, DWORD flags,
|
||||
const struct wined3d_blt_fx *fx, enum wined3d_texture_filter_type filter)
|
||||
{
|
||||
@@ -3748,8 +3748,8 @@ HRESULT wined3d_surface_blt(struct wined3d_surface *dst_surface, const RECT *dst
|
||||
struct wined3d_texture *dst_texture = dst_surface->container;
|
||||
struct wined3d_device *device = dst_texture->resource.device;
|
||||
struct wined3d_swapchain *src_swapchain, *dst_swapchain;
|
||||
- struct wined3d_texture *src_texture = NULL;
|
||||
- unsigned int src_sub_resource_idx = 0;
|
||||
+ struct wined3d_texture *src_texture;
|
||||
+ unsigned int src_sub_resource_idx;
|
||||
DWORD src_ds_flags, dst_ds_flags;
|
||||
BOOL scale, convert;
|
||||
|
||||
@@ -3762,52 +3762,17 @@ HRESULT wined3d_surface_blt(struct wined3d_surface *dst_surface, const RECT *dst
|
||||
| WINED3D_BLT_DO_NOT_WAIT
|
||||
| WINED3D_BLT_ALPHA_TEST;
|
||||
|
||||
- TRACE("dst_surface %p, dst_rect %s, src_surface %p, src_rect %s, flags %#x, fx %p, filter %s.\n",
|
||||
- dst_surface, wine_dbgstr_rect(dst_rect), src_surface, wine_dbgstr_rect(src_rect),
|
||||
- flags, fx, debug_d3dtexturefiltertype(filter));
|
||||
- TRACE("Usage is %s.\n", debug_d3dusage(dst_texture->resource.usage));
|
||||
-
|
||||
- if (fx)
|
||||
- {
|
||||
- TRACE("fx %#x.\n", fx->fx);
|
||||
- TRACE("fill_color 0x%08x.\n", fx->fill_color);
|
||||
- TRACE("dst_color_key {0x%08x, 0x%08x}.\n",
|
||||
- fx->dst_color_key.color_space_low_value,
|
||||
- fx->dst_color_key.color_space_high_value);
|
||||
- TRACE("src_color_key {0x%08x, 0x%08x}.\n",
|
||||
- fx->src_color_key.color_space_low_value,
|
||||
- fx->src_color_key.color_space_high_value);
|
||||
- }
|
||||
-
|
||||
if (src_surface)
|
||||
{
|
||||
src_texture = src_surface->container;
|
||||
src_sub_resource_idx = surface_get_sub_resource_idx(src_surface);
|
||||
+ src_swapchain = src_texture->swapchain;
|
||||
}
|
||||
-
|
||||
- if (!fx || !(fx->fx))
|
||||
- flags &= ~WINED3D_BLT_FX;
|
||||
-
|
||||
- if (flags & WINED3D_BLT_WAIT)
|
||||
- flags &= ~WINED3D_BLT_WAIT;
|
||||
-
|
||||
- if (flags & WINED3D_BLT_ASYNC)
|
||||
- {
|
||||
- static unsigned int once;
|
||||
-
|
||||
- if (!once++)
|
||||
- FIXME("Can't handle WINED3D_BLT_ASYNC flag.\n");
|
||||
- flags &= ~WINED3D_BLT_ASYNC;
|
||||
- }
|
||||
-
|
||||
- /* WINED3D_BLT_DO_NOT_WAIT appeared in DX7. */
|
||||
- if (flags & WINED3D_BLT_DO_NOT_WAIT)
|
||||
+ else
|
||||
{
|
||||
- static unsigned int once;
|
||||
-
|
||||
- if (!once++)
|
||||
- FIXME("Can't handle WINED3D_BLT_DO_NOT_WAIT flag.\n");
|
||||
- flags &= ~WINED3D_BLT_DO_NOT_WAIT;
|
||||
+ src_texture = NULL;
|
||||
+ src_sub_resource_idx = 0;
|
||||
+ src_swapchain = NULL;
|
||||
}
|
||||
|
||||
if (!device->d3d_initialized)
|
||||
@@ -3832,11 +3797,6 @@ HRESULT wined3d_surface_blt(struct wined3d_surface *dst_surface, const RECT *dst
|
||||
goto fallback;
|
||||
}
|
||||
|
||||
- if (src_texture)
|
||||
- src_swapchain = src_texture->swapchain;
|
||||
- else
|
||||
- src_swapchain = NULL;
|
||||
-
|
||||
dst_swapchain = dst_texture->swapchain;
|
||||
|
||||
/* This isn't strictly needed. FBO blits for example could deal with
|
||||
@@ -3872,15 +3832,15 @@ HRESULT wined3d_surface_blt(struct wined3d_surface *dst_surface, const RECT *dst
|
||||
TRACE("Depth fill.\n");
|
||||
|
||||
if (!wined3d_format_convert_color_to_float(dst_texture->resource.format, NULL, fx->fill_color, &color))
|
||||
- return WINED3DERR_INVALIDCALL;
|
||||
+ return;
|
||||
|
||||
if (SUCCEEDED(wined3d_surface_depth_fill(dst_surface, dst_rect, color.r)))
|
||||
- return WINED3D_OK;
|
||||
+ return;
|
||||
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
index c3a10a2d13a..31453ed0ff8 100644
|
||||
--- a/dlls/wined3d/device.c
|
||||
+++ b/dlls/wined3d/device.c
|
||||
@@ -4154,16 +4154,16 @@ HRESULT CDECL wined3d_device_copy_sub_resource_region(struct wined3d_device *dev
|
||||
return WINED3DERR_INVALIDCALL;
|
||||
}
|
||||
else if (SUCCEEDED(wined3d_surface_depth_blt(src_surface, src_texture->resource.draw_binding,
|
||||
src_rect, dst_surface, dst_texture->resource.draw_binding, dst_rect)))
|
||||
|
||||
- if (dst_texture->sub_resources[dst_sub_resource_idx].map_count)
|
||||
+ if (dst_texture->sub_resources[dst_sub_resource_idx].map_count ||
|
||||
+ src_texture->sub_resources[src_sub_resource_idx].map_count)
|
||||
{
|
||||
- return WINED3D_OK;
|
||||
+ return;
|
||||
- WARN("Destination sub-resource %u is mapped.\n", dst_sub_resource_idx);
|
||||
- return WINED3DERR_INVALIDCALL;
|
||||
- }
|
||||
-
|
||||
- if (src_texture->sub_resources[src_sub_resource_idx].map_count)
|
||||
- {
|
||||
- WARN("Source sub-resource %u is mapped.\n", src_sub_resource_idx);
|
||||
- return WINED3DERR_INVALIDCALL;
|
||||
+ wined3d_cs_emit_sync(dst_texture->resource.device->cs);
|
||||
+ if (dst_texture->sub_resources[dst_sub_resource_idx].map_count ||
|
||||
+ src_texture->sub_resources[src_sub_resource_idx].map_count)
|
||||
+ {
|
||||
+ WARN("Destination or source sub-resource is mapped.\n");
|
||||
+ return WINEDDERR_SURFACEBUSY;
|
||||
+ }
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -3916,7 +3876,7 @@ HRESULT wined3d_surface_blt(struct wined3d_surface *dst_surface, const RECT *dst
|
||||
goto fallback;
|
||||
|
||||
if (SUCCEEDED(surface_color_fill(dst_surface, dst_rect, &color)))
|
||||
- return WINED3D_OK;
|
||||
+ return;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -3960,7 +3920,7 @@ HRESULT wined3d_surface_blt(struct wined3d_surface *dst_surface, const RECT *dst
|
||||
context, dst_texture->resource.draw_binding);
|
||||
context_release(context);
|
||||
}
|
||||
- return WINED3D_OK;
|
||||
+ return;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3984,7 +3944,7 @@ HRESULT wined3d_surface_blt(struct wined3d_surface *dst_surface, const RECT *dst
|
||||
wined3d_swapchain_present(dst_swapchain, NULL, NULL, dst_swapchain->win_handle, 0);
|
||||
dst_swapchain->desc.swap_effect = swap_effect;
|
||||
|
||||
- return WINED3D_OK;
|
||||
+ return;
|
||||
}
|
||||
|
||||
if (fbo_blit_supported(&device->adapter->gl_info, blit_op,
|
||||
@@ -4005,7 +3965,7 @@ HRESULT wined3d_surface_blt(struct wined3d_surface *dst_surface, const RECT *dst
|
||||
wined3d_texture_invalidate_location(dst_texture, dst_sub_resource_idx,
|
||||
~dst_texture->resource.draw_binding);
|
||||
|
||||
- return WINED3D_OK;
|
||||
+ return;
|
||||
}
|
||||
|
||||
blitter = wined3d_select_blitter(&device->adapter->gl_info, &device->adapter->d3d_info, blit_op,
|
||||
@@ -4015,7 +3975,7 @@ HRESULT wined3d_surface_blt(struct wined3d_surface *dst_surface, const RECT *dst
|
||||
{
|
||||
blitter->blit_surface(device, blit_op, filter, src_surface,
|
||||
src_rect, dst_surface, dst_rect, color_key);
|
||||
- return WINED3D_OK;
|
||||
+ return;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4023,9 +3983,73 @@ HRESULT wined3d_surface_blt(struct wined3d_surface *dst_surface, const RECT *dst
|
||||
fallback:
|
||||
/* Special cases for render targets. */
|
||||
if (SUCCEEDED(surface_blt_special(dst_surface, dst_rect, src_surface, src_rect, flags, fx, filter)))
|
||||
- return WINED3D_OK;
|
||||
+ return;
|
||||
|
||||
cpu:
|
||||
- return surface_cpu_blt(dst_texture, dst_sub_resource_idx, &dst_box,
|
||||
+ surface_cpu_blt(dst_texture, dst_sub_resource_idx, &dst_box,
|
||||
src_texture, src_sub_resource_idx, &src_box, flags, fx, filter);
|
||||
}
|
||||
+
|
||||
+HRESULT wined3d_surface_blt(struct wined3d_surface *dst_surface, const RECT *dst_rect,
|
||||
+ struct wined3d_surface *src_surface, const RECT *src_rect, DWORD flags,
|
||||
+ const struct wined3d_blt_fx *fx, enum wined3d_texture_filter_type filter)
|
||||
+{
|
||||
+ struct wined3d_texture *dst_texture = dst_surface->container;
|
||||
+ struct wined3d_device *device = dst_texture->resource.device;
|
||||
+
|
||||
+ TRACE("dst_surface %p, dst_rect %s, src_surface %p, src_rect %s, flags %#x, fx %p, filter %s.\n",
|
||||
+ dst_surface, wine_dbgstr_rect(dst_rect), src_surface, wine_dbgstr_rect(src_rect),
|
||||
+ flags, fx, debug_d3dtexturefiltertype(filter));
|
||||
+ TRACE("Usage is %s.\n", debug_d3dusage(dst_texture->resource.usage));
|
||||
+
|
||||
+ if (fx)
|
||||
+ {
|
||||
+ TRACE("fx %#x.\n", fx->fx);
|
||||
+ TRACE("fill_color 0x%08x.\n", fx->fill_color);
|
||||
+ TRACE("dst_color_key {0x%08x, 0x%08x}.\n",
|
||||
+ fx->dst_color_key.color_space_low_value,
|
||||
+ fx->dst_color_key.color_space_high_value);
|
||||
+ TRACE("src_color_key {0x%08x, 0x%08x}.\n",
|
||||
+ fx->src_color_key.color_space_low_value,
|
||||
+ fx->src_color_key.color_space_high_value);
|
||||
+ }
|
||||
+
|
||||
+ /* FIXME: We should select the blitter in the main thread, that way we can return an error if the blit
|
||||
+ * is unsupported without duplicating all the checks... */
|
||||
+ if (flags & WINED3D_BLT_COLOR_FILL && (dst_surface->container->resource.format_flags & WINED3DFMT_FLAG_BLOCKS))
|
||||
+ {
|
||||
+ WARN("Block color fill, returning WINED3DERR_INVALIDCALL\n");
|
||||
+ return WINED3DERR_INVALIDCALL;
|
||||
+ }
|
||||
+
|
||||
+ if (!fx || !(fx->fx))
|
||||
+ flags &= ~WINED3D_BLT_FX;
|
||||
+
|
||||
+ if (flags & WINED3D_BLT_WAIT)
|
||||
+ flags &= ~WINED3D_BLT_WAIT;
|
||||
+
|
||||
+ if (flags & WINED3D_BLT_ASYNC)
|
||||
+ {
|
||||
+ static unsigned int once;
|
||||
+
|
||||
+ if (!once++)
|
||||
+ FIXME("Can't handle WINED3D_BLT_ASYNC flag.\n");
|
||||
+ flags &= ~WINED3D_BLT_ASYNC;
|
||||
+ }
|
||||
+
|
||||
+ /* WINED3D_BLT_DO_NOT_WAIT appeared in DX7. */
|
||||
+ if (flags & WINED3D_BLT_DO_NOT_WAIT)
|
||||
+ {
|
||||
+ static unsigned int once;
|
||||
+
|
||||
+ if (!once++)
|
||||
+ FIXME("Can't handle WINED3D_BLT_DO_NOT_WAIT flag.\n");
|
||||
+ flags &= ~WINED3D_BLT_DO_NOT_WAIT;
|
||||
+ }
|
||||
+
|
||||
+ TRACE("Emitting blit %p <== %p\n", dst_surface, src_surface);
|
||||
+ wined3d_cs_emit_blt(device->cs, dst_surface, dst_rect, src_surface, src_rect,
|
||||
+ flags, fx, filter);
|
||||
+
|
||||
+ return WINED3D_OK;
|
||||
+}
|
||||
if (!src_box)
|
||||
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
|
||||
index a65367398f0..7cd69134a0c 100644
|
||||
index 60e53f55463..9d0909852cd 100644
|
||||
--- a/dlls/wined3d/texture.c
|
||||
+++ b/dlls/wined3d/texture.c
|
||||
@@ -3190,8 +3190,13 @@ HRESULT CDECL wined3d_texture_blt(struct wined3d_texture *dst_texture, unsigned
|
||||
@@ -3189,8 +3189,13 @@ HRESULT CDECL wined3d_texture_blt(struct wined3d_texture *dst_texture, unsigned
|
||||
if (dst_texture->sub_resources[dst_sub_resource_idx].map_count
|
||||
|| (src_texture && src_texture->sub_resources[src_sub_resource_idx].map_count))
|
||||
{
|
||||
@ -350,31 +60,6 @@ index a65367398f0..7cd69134a0c 100644
|
||||
}
|
||||
|
||||
if ((dst_format_flags & WINED3DFMT_FLAG_BLOCKS) && (flags & WINED3D_BLT_COLOR_FILL))
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index a3716e937a5..1c3ba4644f1 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -3067,6 +3067,9 @@ HRESULT surface_upload_from_surface(struct wined3d_surface *dst_surface, const P
|
||||
void wined3d_surface_upload_data(struct wined3d_surface *surface, const struct wined3d_gl_info *gl_info,
|
||||
const struct wined3d_format *format, const RECT *src_rect, UINT src_pitch, const POINT *dst_point,
|
||||
BOOL srgb, const struct wined3d_const_bo_address *data) DECLSPEC_HIDDEN;
|
||||
+void surface_blt_ugly(struct wined3d_surface *dst_surface, const RECT *dst_rect_in,
|
||||
+ struct wined3d_surface *src_surface, const RECT *src_rect_in, DWORD flags,
|
||||
+ const struct wined3d_blt_fx *fx, enum wined3d_texture_filter_type filter) DECLSPEC_HIDDEN;
|
||||
|
||||
void draw_textured_quad(const struct wined3d_surface *src_surface, struct wined3d_context *context,
|
||||
const RECT *src_rect, const RECT *dst_rect, enum wined3d_texture_filter_type filter) DECLSPEC_HIDDEN;
|
||||
@@ -3218,6 +3221,10 @@ struct wined3d_cs *wined3d_cs_create(struct wined3d_device *device) DECLSPEC_HID
|
||||
void wined3d_cs_destroy(struct wined3d_cs *cs) DECLSPEC_HIDDEN;
|
||||
void wined3d_cs_destroy_object(struct wined3d_cs *cs,
|
||||
void (*callback)(void *object), void *object) DECLSPEC_HIDDEN;
|
||||
+void wined3d_cs_emit_blt(struct wined3d_cs *cs, struct wined3d_surface *dst_surface,
|
||||
+ const RECT *dst_rect, struct wined3d_surface *src_surface,
|
||||
+ const RECT *src_rect, DWORD flags, const struct wined3d_blt_fx *fx,
|
||||
+ enum wined3d_texture_filter_type filter) DECLSPEC_HIDDEN;
|
||||
void wined3d_cs_emit_clear(struct wined3d_cs *cs, DWORD rect_count, const RECT *rects,
|
||||
DWORD flags, const struct wined3d_color *color, float depth, DWORD stencil) DECLSPEC_HIDDEN;
|
||||
void wined3d_cs_emit_dispatch(struct wined3d_cs *cs,
|
||||
--
|
||||
2.11.0
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From da8e396548580773fb77f92c866163693dd576e5 Mon Sep 17 00:00:00 2001
|
||||
From b880794502fe7d805e3f49b61c8a8b6664cbd187 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Thu, 4 Jul 2013 21:10:16 +0200
|
||||
Subject: wined3d: Send render target view clears through the command stream
|
||||
@ -24,19 +24,19 @@ index 8e5be756654..88e0e44c4d3 100644
|
||||
* supported as offscreen plain surfaces and do not support D3DUSAGE_RENDERTARGET
|
||||
* when created as texture. */
|
||||
diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
|
||||
index f2eb87e35b8..c38bbbd2754 100644
|
||||
index bf1b63b897b..b8c99985af4 100644
|
||||
--- a/dlls/wined3d/cs.c
|
||||
+++ b/dlls/wined3d/cs.c
|
||||
@@ -68,6 +68,7 @@ enum wined3d_cs_op
|
||||
WINED3D_CS_OP_BLT_SUB_RESOURCE,
|
||||
WINED3D_CS_OP_UPDATE_SUB_RESOURCE,
|
||||
WINED3D_CS_OP_PUSH_CONSTANTS,
|
||||
WINED3D_CS_OP_BLT,
|
||||
+ WINED3D_CS_OP_CLEAR_RTV,
|
||||
};
|
||||
|
||||
struct wined3d_cs_sync
|
||||
@@ -389,6 +390,18 @@ struct wined3d_cs_blt
|
||||
enum wined3d_texture_filter_type filter;
|
||||
@@ -391,6 +392,18 @@ struct wined3d_cs_push_constants
|
||||
BYTE constants[1];
|
||||
};
|
||||
|
||||
+struct wined3d_cs_clear_rtv
|
||||
@ -54,7 +54,7 @@ index f2eb87e35b8..c38bbbd2754 100644
|
||||
static void wined3d_cs_exec_sync(struct wined3d_cs *cs, const void *data)
|
||||
{
|
||||
}
|
||||
@@ -1908,6 +1921,41 @@ void wined3d_cs_emit_blt(struct wined3d_cs *cs, struct wined3d_surface *dst_surf
|
||||
@@ -1940,6 +1953,41 @@ void wined3d_cs_emit_push_constants(struct wined3d_cs *cs, enum wined3d_push_con
|
||||
cs->ops->submit(cs);
|
||||
}
|
||||
|
||||
@ -96,19 +96,19 @@ index f2eb87e35b8..c38bbbd2754 100644
|
||||
static void (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void *data) =
|
||||
{
|
||||
/* WINED3D_CS_OP_SYNC */ wined3d_cs_exec_sync,
|
||||
@@ -1952,6 +2000,7 @@ static void (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void
|
||||
@@ -1984,6 +2032,7 @@ static void (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void
|
||||
/* WINED3D_CS_OP_BLT_SUB_RESOURCE */ wined3d_cs_exec_blt_sub_resource,
|
||||
/* WINED3D_CS_OP_UPDATE_SUB_RESOURCE */ wined3d_cs_exec_update_sub_resource,
|
||||
/* WINED3D_CS_OP_PUSH_CONSTANTS */ wined3d_cs_exec_push_constants,
|
||||
/* WINED3D_CS_OP_BLT */ wined3d_cs_exec_blt,
|
||||
+ /* WINED3D_CS_OP_CLEAR_RTV */ wined3d_cs_exec_clear_rtv,
|
||||
};
|
||||
|
||||
static void *wined3d_cs_st_require_space(struct wined3d_cs *cs, size_t size)
|
||||
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
index a06cae6412e..0e491b3b8cd 100644
|
||||
index c3a10a2d13a..728e5570777 100644
|
||||
--- a/dlls/wined3d/device.c
|
||||
+++ b/dlls/wined3d/device.c
|
||||
@@ -4246,10 +4246,8 @@ HRESULT CDECL wined3d_device_clear_rendertarget_view(struct wined3d_device *devi
|
||||
@@ -4320,10 +4320,8 @@ HRESULT CDECL wined3d_device_clear_rendertarget_view(struct wined3d_device *devi
|
||||
return WINED3DERR_INVALIDCALL;
|
||||
}
|
||||
|
||||
@ -122,11 +122,11 @@ index a06cae6412e..0e491b3b8cd 100644
|
||||
|
||||
struct wined3d_rendertarget_view * CDECL wined3d_device_get_rendertarget_view(const struct wined3d_device *device,
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index 1c3ba4644f1..6fbfa5d9c9c 100644
|
||||
index 8a07bb98523..f69cead4d1c 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -3227,6 +3227,9 @@ void wined3d_cs_emit_blt(struct wined3d_cs *cs, struct wined3d_surface *dst_surf
|
||||
enum wined3d_texture_filter_type filter) DECLSPEC_HIDDEN;
|
||||
@@ -3225,6 +3225,9 @@ void wined3d_cs_emit_blt_sub_resource(struct wined3d_cs *cs, struct wined3d_reso
|
||||
const struct wined3d_blt_fx *fx, enum wined3d_texture_filter_type filter) DECLSPEC_HIDDEN;
|
||||
void wined3d_cs_emit_clear(struct wined3d_cs *cs, DWORD rect_count, const RECT *rects,
|
||||
DWORD flags, const struct wined3d_color *color, float depth, DWORD stencil) DECLSPEC_HIDDEN;
|
||||
+void wined3d_cs_emit_clear_rtv(struct wined3d_cs *cs, struct wined3d_rendertarget_view *view,
|
||||
|
@ -1,4 +1,4 @@
|
||||
From ae3267b2c9b77715d189c233472c870a0f55d41b Mon Sep 17 00:00:00 2001
|
||||
From 8f9e2da3bc48abffee005b95c2b996352db2de16 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Thu, 1 Aug 2013 00:33:48 +0200
|
||||
Subject: wined3d: Send update_texture calls through the CS
|
||||
@ -11,18 +11,18 @@ FIXME: This logic duplication is ugly.
|
||||
3 files changed, 141 insertions(+), 75 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
|
||||
index c38bbbd2754..47678602fed 100644
|
||||
index b8c99985af4..bbea6bbb454 100644
|
||||
--- a/dlls/wined3d/cs.c
|
||||
+++ b/dlls/wined3d/cs.c
|
||||
@@ -69,6 +69,7 @@ enum wined3d_cs_op
|
||||
WINED3D_CS_OP_UPDATE_SUB_RESOURCE,
|
||||
WINED3D_CS_OP_PUSH_CONSTANTS,
|
||||
WINED3D_CS_OP_BLT,
|
||||
WINED3D_CS_OP_CLEAR_RTV,
|
||||
+ WINED3D_CS_OP_UPDATE_TEXTURE,
|
||||
};
|
||||
|
||||
struct wined3d_cs_sync
|
||||
@@ -402,6 +403,12 @@ struct wined3d_cs_clear_rtv
|
||||
@@ -404,6 +405,12 @@ struct wined3d_cs_clear_rtv
|
||||
const struct blit_shader *blitter;
|
||||
};
|
||||
|
||||
@ -35,7 +35,7 @@ index c38bbbd2754..47678602fed 100644
|
||||
static void wined3d_cs_exec_sync(struct wined3d_cs *cs, const void *data)
|
||||
{
|
||||
}
|
||||
@@ -1956,6 +1963,35 @@ void wined3d_cs_emit_clear_rtv(struct wined3d_cs *cs, struct wined3d_rendertarge
|
||||
@@ -1988,6 +1995,35 @@ void wined3d_cs_emit_clear_rtv(struct wined3d_cs *cs, struct wined3d_rendertarge
|
||||
cs->ops->submit(cs);
|
||||
}
|
||||
|
||||
@ -71,19 +71,19 @@ index c38bbbd2754..47678602fed 100644
|
||||
static void (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void *data) =
|
||||
{
|
||||
/* WINED3D_CS_OP_SYNC */ wined3d_cs_exec_sync,
|
||||
@@ -2001,6 +2037,7 @@ static void (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void
|
||||
@@ -2033,6 +2069,7 @@ static void (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void
|
||||
/* WINED3D_CS_OP_UPDATE_SUB_RESOURCE */ wined3d_cs_exec_update_sub_resource,
|
||||
/* WINED3D_CS_OP_PUSH_CONSTANTS */ wined3d_cs_exec_push_constants,
|
||||
/* WINED3D_CS_OP_BLT */ wined3d_cs_exec_blt,
|
||||
/* WINED3D_CS_OP_CLEAR_RTV */ wined3d_cs_exec_clear_rtv,
|
||||
+ /* WINED3D_CS_OP_UPDATE_TEXTURE */ wined3d_cs_exec_update_texture,
|
||||
};
|
||||
|
||||
static void *wined3d_cs_st_require_space(struct wined3d_cs *cs, size_t size)
|
||||
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
index 2fdfd944b7e..d244091782f 100644
|
||||
index 364eac4411e..d0e1fe6e9d7 100644
|
||||
--- a/dlls/wined3d/device.c
|
||||
+++ b/dlls/wined3d/device.c
|
||||
@@ -3627,34 +3627,17 @@ void CDECL wined3d_device_draw_indexed_primitive_instanced(struct wined3d_device
|
||||
@@ -3659,34 +3659,17 @@ void CDECL wined3d_device_draw_indexed_primitive_instanced(struct wined3d_device
|
||||
start_idx, index_count, start_instance, instance_count, TRUE);
|
||||
}
|
||||
|
||||
@ -122,7 +122,7 @@ index 2fdfd944b7e..d244091782f 100644
|
||||
|
||||
/* Only a prepare, since we're uploading entire volumes. */
|
||||
wined3d_texture_prepare_texture(dst_texture, context, FALSE);
|
||||
@@ -3662,32 +3645,89 @@ static HRESULT wined3d_device_update_texture_3d(struct wined3d_device *device,
|
||||
@@ -3694,32 +3677,89 @@ static HRESULT wined3d_device_update_texture_3d(struct wined3d_device *device,
|
||||
|
||||
for (i = 0; i < level_count; ++i)
|
||||
{
|
||||
@ -222,7 +222,7 @@ index 2fdfd944b7e..d244091782f 100644
|
||||
|
||||
TRACE("device %p, src_texture %p, dst_texture %p.\n", device, src_texture, dst_texture);
|
||||
|
||||
@@ -3724,63 +3764,48 @@ HRESULT CDECL wined3d_device_update_texture(struct wined3d_device *device,
|
||||
@@ -3756,63 +3796,48 @@ HRESULT CDECL wined3d_device_update_texture(struct wined3d_device *device,
|
||||
return WINED3DERR_INVALIDCALL;
|
||||
}
|
||||
|
||||
@ -316,10 +316,10 @@ index 2fdfd944b7e..d244091782f 100644
|
||||
|
||||
HRESULT CDECL wined3d_device_validate_device(const struct wined3d_device *device, DWORD *num_passes)
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index 6fbfa5d9c9c..5b68475945d 100644
|
||||
index f69cead4d1c..fcefe12d226 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -2702,6 +2702,8 @@ LRESULT device_process_message(struct wined3d_device *device, HWND window, BOOL
|
||||
@@ -2703,6 +2703,8 @@ LRESULT device_process_message(struct wined3d_device *device, HWND window, BOOL
|
||||
void device_resource_add(struct wined3d_device *device, struct wined3d_resource *resource) DECLSPEC_HIDDEN;
|
||||
void device_resource_released(struct wined3d_device *device, struct wined3d_resource *resource) DECLSPEC_HIDDEN;
|
||||
void device_invalidate_state(const struct wined3d_device *device, DWORD state) DECLSPEC_HIDDEN;
|
||||
@ -328,7 +328,7 @@ index 6fbfa5d9c9c..5b68475945d 100644
|
||||
|
||||
static inline BOOL isStateDirty(const struct wined3d_context *context, DWORD state)
|
||||
{
|
||||
@@ -3294,6 +3296,8 @@ void wined3d_cs_emit_unload_resource(struct wined3d_cs *cs, struct wined3d_resou
|
||||
@@ -3292,6 +3294,8 @@ void wined3d_cs_emit_unload_resource(struct wined3d_cs *cs, struct wined3d_resou
|
||||
void wined3d_cs_emit_update_sub_resource(struct wined3d_cs *cs, struct wined3d_resource *resource,
|
||||
unsigned int sub_resource_idx, const struct wined3d_box *box, const void *data, unsigned int row_pitch,
|
||||
unsigned int slice_pitch) DECLSPEC_HIDDEN;
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 41decdb7669a8e83c5c6a244b50822d93ad8d1db Mon Sep 17 00:00:00 2001
|
||||
From cdbc30321bd78951ffc6e2deaca50b1414ff7abe Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Sun, 16 Mar 2014 14:13:42 +0100
|
||||
Subject: wined3d: Send getdc and releasedc through the command stream.
|
||||
@ -11,11 +11,11 @@ Another hacky patch to avoid using GL outside the worker thread.
|
||||
3 files changed, 119 insertions(+), 29 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
|
||||
index 47678602fed..735991db6e2 100644
|
||||
index bbea6bbb454..2a3a984088d 100644
|
||||
--- a/dlls/wined3d/cs.c
|
||||
+++ b/dlls/wined3d/cs.c
|
||||
@@ -70,6 +70,8 @@ enum wined3d_cs_op
|
||||
WINED3D_CS_OP_BLT,
|
||||
WINED3D_CS_OP_PUSH_CONSTANTS,
|
||||
WINED3D_CS_OP_CLEAR_RTV,
|
||||
WINED3D_CS_OP_UPDATE_TEXTURE,
|
||||
+ WINED3D_CS_OP_GET_DC,
|
||||
@ -23,7 +23,7 @@ index 47678602fed..735991db6e2 100644
|
||||
};
|
||||
|
||||
struct wined3d_cs_sync
|
||||
@@ -409,6 +411,14 @@ struct wined3d_cs_update_texture
|
||||
@@ -411,6 +413,14 @@ struct wined3d_cs_update_texture
|
||||
struct wined3d_texture *src, *dst;
|
||||
};
|
||||
|
||||
@ -38,7 +38,7 @@ index 47678602fed..735991db6e2 100644
|
||||
static void wined3d_cs_exec_sync(struct wined3d_cs *cs, const void *data)
|
||||
{
|
||||
}
|
||||
@@ -1992,6 +2002,54 @@ void wined3d_cs_emit_update_texture(struct wined3d_cs *cs, struct wined3d_textur
|
||||
@@ -2024,6 +2034,54 @@ void wined3d_cs_emit_update_texture(struct wined3d_cs *cs, struct wined3d_textur
|
||||
cs->ops->submit(cs);
|
||||
}
|
||||
|
||||
@ -93,8 +93,8 @@ index 47678602fed..735991db6e2 100644
|
||||
static void (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void *data) =
|
||||
{
|
||||
/* WINED3D_CS_OP_SYNC */ wined3d_cs_exec_sync,
|
||||
@@ -2038,6 +2096,8 @@ static void (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void
|
||||
/* WINED3D_CS_OP_BLT */ wined3d_cs_exec_blt,
|
||||
@@ -2070,6 +2128,8 @@ static void (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void
|
||||
/* WINED3D_CS_OP_PUSH_CONSTANTS */ wined3d_cs_exec_push_constants,
|
||||
/* WINED3D_CS_OP_CLEAR_RTV */ wined3d_cs_exec_clear_rtv,
|
||||
/* WINED3D_CS_OP_UPDATE_TEXTURE */ wined3d_cs_exec_update_texture,
|
||||
+ /* WINED3D_CS_OP_GET_DC */ wined3d_cs_exec_get_dc,
|
||||
@ -103,10 +103,10 @@ index 47678602fed..735991db6e2 100644
|
||||
|
||||
static void *wined3d_cs_st_require_space(struct wined3d_cs *cs, size_t size)
|
||||
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
|
||||
index 378ce476ca0..5c9cadef95a 100644
|
||||
index 60e53f55463..b692c504501 100644
|
||||
--- a/dlls/wined3d/texture.c
|
||||
+++ b/dlls/wined3d/texture.c
|
||||
@@ -3473,13 +3473,41 @@ HRESULT CDECL wined3d_texture_create(struct wined3d_device *device, const struct
|
||||
@@ -3509,13 +3509,41 @@ HRESULT CDECL wined3d_texture_create(struct wined3d_device *device, const struct
|
||||
return WINED3D_OK;
|
||||
}
|
||||
|
||||
@ -150,7 +150,7 @@ index 378ce476ca0..5c9cadef95a 100644
|
||||
|
||||
TRACE("texture %p, sub_resource_idx %u, dc %p.\n", texture, sub_resource_idx, dc);
|
||||
|
||||
@@ -3504,28 +3532,32 @@ HRESULT CDECL wined3d_texture_get_dc(struct wined3d_texture *texture, unsigned i
|
||||
@@ -3540,28 +3568,32 @@ HRESULT CDECL wined3d_texture_get_dc(struct wined3d_texture *texture, unsigned i
|
||||
if (texture->resource.map_count && !(texture->flags & WINED3D_TEXTURE_GET_DC_LENIENT))
|
||||
return WINED3DERR_INVALIDCALL;
|
||||
|
||||
@ -200,7 +200,7 @@ index 378ce476ca0..5c9cadef95a 100644
|
||||
}
|
||||
|
||||
HRESULT CDECL wined3d_texture_release_dc(struct wined3d_texture *texture, unsigned int sub_resource_idx, HDC dc)
|
||||
@@ -3556,14 +3588,5 @@ HRESULT CDECL wined3d_texture_release_dc(struct wined3d_texture *texture, unsign
|
||||
@@ -3592,14 +3624,5 @@ HRESULT CDECL wined3d_texture_release_dc(struct wined3d_texture *texture, unsign
|
||||
return WINED3DERR_INVALIDCALL;
|
||||
}
|
||||
|
||||
@ -217,10 +217,10 @@ index 378ce476ca0..5c9cadef95a 100644
|
||||
+ return wined3d_cs_emit_release_dc(device->cs, texture, sub_resource_idx);
|
||||
}
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index 5b68475945d..0d85fadec75 100644
|
||||
index fcefe12d226..6373ee3df67 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -2947,6 +2947,7 @@ void wined3d_texture_bind_and_dirtify(struct wined3d_texture *texture,
|
||||
@@ -2948,6 +2948,7 @@ void wined3d_texture_bind_and_dirtify(struct wined3d_texture *texture,
|
||||
struct wined3d_context *context, BOOL srgb) DECLSPEC_HIDDEN;
|
||||
HRESULT wined3d_texture_check_box_dimensions(const struct wined3d_texture *texture,
|
||||
unsigned int level, const struct wined3d_box *box) DECLSPEC_HIDDEN;
|
||||
@ -228,7 +228,7 @@ index 5b68475945d..0d85fadec75 100644
|
||||
GLenum wined3d_texture_get_gl_buffer(const struct wined3d_texture *texture) DECLSPEC_HIDDEN;
|
||||
void wined3d_texture_get_memory(struct wined3d_texture *texture, unsigned int sub_resource_idx,
|
||||
struct wined3d_bo_address *data, DWORD locations) DECLSPEC_HIDDEN;
|
||||
@@ -2962,6 +2963,8 @@ BOOL wined3d_texture_prepare_location(struct wined3d_texture *texture, unsigned
|
||||
@@ -2963,6 +2964,8 @@ BOOL wined3d_texture_prepare_location(struct wined3d_texture *texture, unsigned
|
||||
struct wined3d_context *context, DWORD location) DECLSPEC_HIDDEN;
|
||||
void wined3d_texture_prepare_texture(struct wined3d_texture *texture,
|
||||
struct wined3d_context *context, BOOL srgb) DECLSPEC_HIDDEN;
|
||||
@ -237,7 +237,7 @@ index 5b68475945d..0d85fadec75 100644
|
||||
void wined3d_texture_set_map_binding(struct wined3d_texture *texture, DWORD map_binding) DECLSPEC_HIDDEN;
|
||||
void wined3d_texture_set_swapchain(struct wined3d_texture *texture,
|
||||
struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN;
|
||||
@@ -3237,6 +3240,8 @@ void wined3d_cs_emit_dispatch(struct wined3d_cs *cs,
|
||||
@@ -3235,6 +3238,8 @@ void wined3d_cs_emit_dispatch(struct wined3d_cs *cs,
|
||||
void wined3d_cs_emit_draw(struct wined3d_cs *cs, GLenum primitive_type, int base_vertex_idx,
|
||||
unsigned int start_idx, unsigned int index_count, unsigned int start_instance,
|
||||
unsigned int instance_count, BOOL indexed) DECLSPEC_HIDDEN;
|
||||
@ -246,7 +246,7 @@ index 5b68475945d..0d85fadec75 100644
|
||||
void wined3d_cs_emit_glfinish(struct wined3d_cs *cs) DECLSPEC_HIDDEN;
|
||||
void wined3d_cs_emit_preload_resource(struct wined3d_cs *cs, struct wined3d_resource *resource) DECLSPEC_HIDDEN;
|
||||
void wined3d_cs_emit_present(struct wined3d_cs *cs, struct wined3d_swapchain *swapchain,
|
||||
@@ -3244,6 +3249,8 @@ void wined3d_cs_emit_present(struct wined3d_cs *cs, struct wined3d_swapchain *sw
|
||||
@@ -3242,6 +3247,8 @@ void wined3d_cs_emit_present(struct wined3d_cs *cs, struct wined3d_swapchain *sw
|
||||
void wined3d_cs_emit_push_constants(struct wined3d_cs *cs, enum wined3d_push_constants p,
|
||||
unsigned int start_idx, unsigned int count, const void *constants) DECLSPEC_HIDDEN;
|
||||
void wined3d_cs_emit_query_issue(struct wined3d_cs *cs, struct wined3d_query *query, DWORD flags) DECLSPEC_HIDDEN;
|
||||
|
@ -1,132 +0,0 @@
|
||||
From 3bf5f63ec62c705afb14d485df3e2d0bd799d7dd Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Tue, 7 Feb 2017 14:37:07 +0100
|
||||
Subject: wined3d: Send buffer copy requests through CS.
|
||||
|
||||
---
|
||||
dlls/wined3d/cs.c | 44 ++++++++++++++++++++++++++++++++++++++++++
|
||||
dlls/wined3d/device.c | 8 ++++----
|
||||
dlls/wined3d/wined3d_private.h | 3 +++
|
||||
3 files changed, 51 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
|
||||
index be7e041b86c..51ac0c2b000 100644
|
||||
--- a/dlls/wined3d/cs.c
|
||||
+++ b/dlls/wined3d/cs.c
|
||||
@@ -75,6 +75,7 @@ enum wined3d_cs_op
|
||||
WINED3D_CS_OP_RELEASE_DC,
|
||||
WINED3D_CS_OP_UPDATE_SWAP_INTERVAL,
|
||||
WINED3D_CS_OP_TEXTURE_ADD_DIRTY_REGION,
|
||||
+ WINED3D_CS_OP_BUFFER_COPY,
|
||||
};
|
||||
|
||||
struct wined3d_cs_sync
|
||||
@@ -443,6 +444,16 @@ struct wined3d_cs_texture_add_dirty_region
|
||||
unsigned int sub_resource_idx;
|
||||
};
|
||||
|
||||
+struct wined3d_cs_buffer_copy
|
||||
+{
|
||||
+ enum wined3d_cs_op opcode;
|
||||
+ struct wined3d_buffer *dst_buffer;
|
||||
+ unsigned int dst_offset;
|
||||
+ struct wined3d_buffer *src_buffer;
|
||||
+ unsigned int src_offset;
|
||||
+ unsigned int size;
|
||||
+};
|
||||
+
|
||||
static void wined3d_cs_exec_sync(struct wined3d_cs *cs, const void *data)
|
||||
{
|
||||
}
|
||||
@@ -2150,6 +2161,38 @@ void wined3d_cs_emit_texture_add_dirty_region(struct wined3d_cs *cs,
|
||||
cs->ops->submit(cs);
|
||||
}
|
||||
|
||||
+static void wined3d_cs_exec_buffer_copy(struct wined3d_cs *cs, const void *data)
|
||||
+{
|
||||
+ const struct wined3d_cs_buffer_copy *op = data;
|
||||
+ HRESULT hr;
|
||||
+
|
||||
+ if (FAILED(hr = wined3d_buffer_copy(op->dst_buffer, op->dst_offset, op->src_buffer, op->src_offset, op->size)))
|
||||
+ ERR("Failed to copy buffer, hr %#x.\n", hr);
|
||||
+
|
||||
+ wined3d_resource_release(&op->dst_buffer->resource);
|
||||
+ wined3d_resource_release(&op->src_buffer->resource);
|
||||
+}
|
||||
+
|
||||
+void wined3d_cs_emit_buffer_copy(struct wined3d_cs *cs, struct wined3d_buffer *dst_buffer,
|
||||
+ unsigned int dst_offset, struct wined3d_buffer *src_buffer, unsigned int src_offset,
|
||||
+ unsigned int size)
|
||||
+{
|
||||
+ struct wined3d_cs_buffer_copy *op;
|
||||
+
|
||||
+ op = cs->ops->require_space(cs, sizeof(*op));
|
||||
+ op->opcode = WINED3D_CS_OP_BUFFER_COPY;
|
||||
+ op->dst_buffer = dst_buffer;
|
||||
+ op->dst_offset = dst_offset;
|
||||
+ op->src_buffer = src_buffer;
|
||||
+ op->src_offset = src_offset;
|
||||
+ op->size = size;
|
||||
+
|
||||
+ wined3d_resource_acquire(&dst_buffer->resource);
|
||||
+ wined3d_resource_acquire(&src_buffer->resource);
|
||||
+
|
||||
+ cs->ops->submit(cs);
|
||||
+}
|
||||
+
|
||||
static void (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void *data) =
|
||||
{
|
||||
/* WINED3D_CS_OP_SYNC */ wined3d_cs_exec_sync,
|
||||
@@ -2201,6 +2244,7 @@ static void (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void
|
||||
/* WINED3D_CS_OP_RELEASE_DC */ wined3d_cs_exec_release_dc,
|
||||
/* WINED3D_CS_OP_UPDATE_SWAP_INTERVAL */ wined3d_cs_exec_update_swap_interval,
|
||||
/* WINED3D_CS_OP_TEXTURE_ADD_DIRTY_REGION */ wined3d_cs_exec_texture_add_dirty_region,
|
||||
+ /* WINED3D_CS_OP_BUFFER_COPY */ wined3d_cs_exec_buffer_copy,
|
||||
};
|
||||
|
||||
static void *wined3d_cs_st_require_space(struct wined3d_cs *cs, size_t size)
|
||||
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
index 749ba9ca19c..a8ca7cbaf56 100644
|
||||
--- a/dlls/wined3d/device.c
|
||||
+++ b/dlls/wined3d/device.c
|
||||
@@ -3991,10 +3991,9 @@ void CDECL wined3d_device_copy_resource(struct wined3d_device *device,
|
||||
|
||||
if (dst_resource->type == WINED3D_RTYPE_BUFFER)
|
||||
{
|
||||
- if (FAILED(hr = wined3d_buffer_copy(buffer_from_resource(dst_resource), 0,
|
||||
+ wined3d_cs_emit_buffer_copy(device->cs, buffer_from_resource(dst_resource), 0,
|
||||
buffer_from_resource(src_resource), 0,
|
||||
- dst_resource->size)))
|
||||
- ERR("Failed to copy buffer, hr %#x.\n", hr);
|
||||
+ dst_resource->size);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -4116,8 +4115,9 @@ HRESULT CDECL wined3d_device_copy_sub_resource_region(struct wined3d_device *dev
|
||||
return WINED3DERR_INVALIDCALL;
|
||||
}
|
||||
|
||||
- return wined3d_buffer_copy(buffer_from_resource(dst_resource), dst_x,
|
||||
+ wined3d_cs_emit_buffer_copy(device->cs, buffer_from_resource(dst_resource), dst_x,
|
||||
buffer_from_resource(src_resource), src_offset, size);
|
||||
+ return WINED3D_OK;
|
||||
}
|
||||
|
||||
if (dst_resource->type != WINED3D_RTYPE_TEXTURE_2D)
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index d45c45c09dc..708091f573b 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -3239,6 +3239,9 @@ void wined3d_cs_emit_blt(struct wined3d_cs *cs, struct wined3d_surface *dst_surf
|
||||
const RECT *dst_rect, struct wined3d_surface *src_surface,
|
||||
const RECT *src_rect, DWORD flags, const struct wined3d_blt_fx *fx,
|
||||
enum wined3d_texture_filter_type filter) DECLSPEC_HIDDEN;
|
||||
+void wined3d_cs_emit_buffer_copy(struct wined3d_cs *cs, struct wined3d_buffer *dst_buffer,
|
||||
+ unsigned int dst_offset, struct wined3d_buffer *src_buffer, unsigned int src_offset,
|
||||
+ unsigned int size) DECLSPEC_HIDDEN;
|
||||
void wined3d_cs_emit_clear(struct wined3d_cs *cs, DWORD rect_count, const RECT *rects,
|
||||
DWORD flags, const struct wined3d_color *color, float depth, DWORD stencil) DECLSPEC_HIDDEN;
|
||||
void wined3d_cs_emit_clear_rtv(struct wined3d_cs *cs, struct wined3d_rendertarget_view *view,
|
||||
--
|
||||
2.11.0
|
||||
|
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user