mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-01-28 22:04:43 -08:00
Rebase against 66d8e38ba4c5d67ae6e287cac557acfeae8b5bcd.
This commit is contained in:
parent
eb1820cd45
commit
3d3effd8b3
@ -52,9 +52,9 @@ for more details.*
|
||||
* Add implementation for mfplat.MFTRegister ([Wine Bug #37811](https://bugs.winehq.org/show_bug.cgi?id=37811))
|
||||
* Add implementation for msidb commandline tool
|
||||
* Add implementation for shlwapi.AssocGetPerceivedType
|
||||
* Add information for delayed end of DST in Europe/Istanbul
|
||||
* ~~Add information for delayed end of DST in Europe/Istanbul~~
|
||||
* Add nvapi stubs required for GPU PhysX support
|
||||
* Add partial implementation of ITfThreadMgrEx_ActivateEx ([Wine Bug #39564](https://bugs.winehq.org/show_bug.cgi?id=39564))
|
||||
* ~~Add partial implementation of ITfThreadMgrEx_ActivateEx~~ ([Wine Bug #39564](https://bugs.winehq.org/show_bug.cgi?id=39564))
|
||||
* Add performance library registry keys needed by MS SQL Server Management Studio Express 2008 R2 ([Wine Bug #33661](https://bugs.winehq.org/show_bug.cgi?id=33661))
|
||||
* Add semi-stub for FileFsVolumeInformation information class ([Wine Bug #21466](https://bugs.winehq.org/show_bug.cgi?id=21466))
|
||||
* Add shell32 placeholder icons to match offsets with Windows ([Wine Bug #30185](https://bugs.winehq.org/show_bug.cgi?id=30185))
|
||||
@ -134,7 +134,7 @@ for more details.*
|
||||
* Fake success in kernel32.SetFileCompletionNotificationModes ([Wine Bug #38960](https://bugs.winehq.org/show_bug.cgi?id=38960))
|
||||
* Fallback to default comspec when %COMSPEC% is not set
|
||||
* Fallback to system ping command when CAP_NET_RAW is not available ([Wine Bug #8332](https://bugs.winehq.org/show_bug.cgi?id=8332))
|
||||
* Fix access violation in MSYS2 git when cloning repository
|
||||
* ~~Fix access violation in MSYS2 git when cloning repository~~
|
||||
* Fix broken textures in XIII Century: Death or Glory ([Wine Bug #25419](https://bugs.winehq.org/show_bug.cgi?id=25419))
|
||||
* Fix calculation of listbox size when horizontal scrollbar is present ([Wine Bug #38142](https://bugs.winehq.org/show_bug.cgi?id=38142))
|
||||
* Fix caps lock state issues with multiple processes ([Wine Bug #35907](https://bugs.winehq.org/show_bug.cgi?id=35907))
|
||||
|
@ -1,126 +0,0 @@
|
||||
From c215f96c76ba4352e79bde6b4422d46ead6b5a85 Mon Sep 17 00:00:00 2001
|
||||
From: Matteo Bruni <mbruni@codeweavers.com>
|
||||
Date: Fri, 13 Nov 2015 00:33:37 +0100
|
||||
Subject: msctf: Add a partial implementation of ITfThreadMgrEx_ActivateEx().
|
||||
|
||||
---
|
||||
dlls/msctf/tests/inputprocessor.c | 16 +++++++++++--
|
||||
dlls/msctf/threadmgr.c | 47 +++++++++++++++++++++------------------
|
||||
2 files changed, 39 insertions(+), 24 deletions(-)
|
||||
|
||||
diff --git a/dlls/msctf/tests/inputprocessor.c b/dlls/msctf/tests/inputprocessor.c
|
||||
index c01d5bc..58d4d26 100644
|
||||
--- a/dlls/msctf/tests/inputprocessor.c
|
||||
+++ b/dlls/msctf/tests/inputprocessor.c
|
||||
@@ -1409,6 +1409,7 @@ static void test_startSession(void)
|
||||
ITfContext *cxt,*cxt2,*cxt3,*cxtTest;
|
||||
ITextStoreACP *ts;
|
||||
TfClientId cid2 = 0;
|
||||
+ ITfThreadMgrEx *tmex;
|
||||
|
||||
hr = ITfThreadMgr_Deactivate(g_tm);
|
||||
ok(hr == E_UNEXPECTED,"Deactivate should have failed with E_UNEXPECTED\n");
|
||||
@@ -1421,10 +1422,21 @@ static void test_startSession(void)
|
||||
test_ShouldActivate = FALSE;
|
||||
hr = ITfThreadMgr_Activate(g_tm,&cid2);
|
||||
ok(SUCCEEDED(hr),"Failed to Activate\n");
|
||||
- ok (cid == cid2, "Second activate client ID does not match\n");
|
||||
+ ok(cid == cid2, "Second activate client ID does not match\n");
|
||||
+
|
||||
+ hr = ITfThreadMgr_QueryInterface(g_tm, &IID_ITfThreadMgrEx, (void **)&tmex);
|
||||
+ ok(SUCCEEDED(hr), "Unable to acquire ITfThreadMgrEx interface\n");
|
||||
+
|
||||
+ hr = ITfThreadMgrEx_ActivateEx(tmex, &cid2, 0);
|
||||
+ ok(SUCCEEDED(hr), "Failed to Activate\n");
|
||||
+ ok(cid == cid2, "ActivateEx client ID does not match\n");
|
||||
+
|
||||
+ ITfThreadMgrEx_Release(tmex);
|
||||
|
||||
hr = ITfThreadMgr_Deactivate(g_tm);
|
||||
- ok(SUCCEEDED(hr),"Failed to Deactivate\n");
|
||||
+ ok(SUCCEEDED(hr), "Failed to Deactivate\n");
|
||||
+ hr = ITfThreadMgr_Deactivate(g_tm);
|
||||
+ ok(SUCCEEDED(hr), "Failed to Deactivate\n");
|
||||
|
||||
test_EnumDocumentMgr(g_tm,NULL,NULL);
|
||||
|
||||
diff --git a/dlls/msctf/threadmgr.c b/dlls/msctf/threadmgr.c
|
||||
index d997cda..91deb8d 100644
|
||||
--- a/dlls/msctf/threadmgr.c
|
||||
+++ b/dlls/msctf/threadmgr.c
|
||||
@@ -327,29 +327,15 @@ static ULONG WINAPI ThreadMgr_Release(ITfThreadMgrEx *iface)
|
||||
* ITfThreadMgr functions
|
||||
*****************************************************/
|
||||
|
||||
-static HRESULT WINAPI ThreadMgr_fnActivate(ITfThreadMgrEx *iface, TfClientId *ptid)
|
||||
+static HRESULT WINAPI ThreadMgr_Activate(ITfThreadMgrEx *iface, TfClientId *id)
|
||||
{
|
||||
ThreadMgr *This = impl_from_ITfThreadMgrEx(iface);
|
||||
|
||||
- TRACE("(%p) %p\n",This, ptid);
|
||||
-
|
||||
- if (!ptid)
|
||||
- return E_INVALIDARG;
|
||||
-
|
||||
- if (!processId)
|
||||
- {
|
||||
- GUID guid;
|
||||
- CoCreateGuid(&guid);
|
||||
- ITfClientId_GetClientId(&This->ITfClientId_iface, &guid, &processId);
|
||||
- }
|
||||
-
|
||||
- activate_textservices((ITfThreadMgr *)iface);
|
||||
- This->activationCount++;
|
||||
- *ptid = processId;
|
||||
- return S_OK;
|
||||
+ TRACE("(%p) %p\n", This, id);
|
||||
+ return ITfThreadMgrEx_ActivateEx(iface, id, 0);
|
||||
}
|
||||
|
||||
-static HRESULT WINAPI ThreadMgr_fnDeactivate(ITfThreadMgrEx *iface)
|
||||
+static HRESULT WINAPI ThreadMgr_Deactivate(ITfThreadMgrEx *iface)
|
||||
{
|
||||
ThreadMgr *This = impl_from_ITfThreadMgrEx(iface);
|
||||
TRACE("(%p)\n",This);
|
||||
@@ -597,8 +583,25 @@ static HRESULT WINAPI ThreadMgr_ActivateEx(ITfThreadMgrEx *iface, TfClientId *id
|
||||
{
|
||||
ThreadMgr *This = impl_from_ITfThreadMgrEx(iface);
|
||||
|
||||
- FIXME("STUB:(%p)\n", This);
|
||||
- return E_NOTIMPL;
|
||||
+ TRACE("(%p) %p, %#x\n", This, id, flags);
|
||||
+
|
||||
+ if (!id)
|
||||
+ return E_INVALIDARG;
|
||||
+
|
||||
+ if (flags)
|
||||
+ FIXME("Unimplemented flags %#x\n", flags);
|
||||
+
|
||||
+ if (!processId)
|
||||
+ {
|
||||
+ GUID guid;
|
||||
+ CoCreateGuid(&guid);
|
||||
+ ITfClientId_GetClientId(&This->ITfClientId_iface, &guid, &processId);
|
||||
+ }
|
||||
+
|
||||
+ activate_textservices((ITfThreadMgr *)iface);
|
||||
+ This->activationCount++;
|
||||
+ *id = processId;
|
||||
+ return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI ThreadMgr_GetActiveFlags(ITfThreadMgrEx *iface, DWORD *flags)
|
||||
@@ -614,8 +617,8 @@ static const ITfThreadMgrExVtbl ThreadMgrExVtbl =
|
||||
ThreadMgr_QueryInterface,
|
||||
ThreadMgr_AddRef,
|
||||
ThreadMgr_Release,
|
||||
- ThreadMgr_fnActivate,
|
||||
- ThreadMgr_fnDeactivate,
|
||||
+ ThreadMgr_Activate,
|
||||
+ ThreadMgr_Deactivate,
|
||||
ThreadMgr_CreateDocumentMgr,
|
||||
ThreadMgr_EnumDocumentMgrs,
|
||||
ThreadMgr_GetFocus,
|
||||
--
|
||||
2.6.2
|
||||
|
@ -1 +0,0 @@
|
||||
Fixes: [39564] Add partial implementation of ITfThreadMgrEx_ActivateEx
|
@ -1,26 +0,0 @@
|
||||
From bedf1085f5229c85f990f3c0f41c62a47fef6c40 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sat, 28 Nov 2015 21:28:26 +0100
|
||||
Subject: ntdll: Commit new guard pages in virtual_handle_stack_fault. (resend)
|
||||
|
||||
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
|
||||
---
|
||||
dlls/ntdll/virtual.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/ntdll/virtual.c b/dlls/ntdll/virtual.c
|
||||
index 4d4bc3b..d6319d82 100644
|
||||
--- a/dlls/ntdll/virtual.c
|
||||
+++ b/dlls/ntdll/virtual.c
|
||||
@@ -1550,7 +1550,7 @@ BOOL virtual_handle_stack_fault( void *addr )
|
||||
if ((char *)page >= (char *)NtCurrentTeb()->DeallocationStack + 2*page_size)
|
||||
{
|
||||
vprot = view->prot[((char *)page - page_size - (char *)view->base) >> page_shift];
|
||||
- VIRTUAL_SetProt( view, (char *)page - page_size, page_size, vprot | VPROT_GUARD );
|
||||
+ VIRTUAL_SetProt( view, (char *)page - page_size, page_size, vprot | VPROT_COMMITTED | VPROT_GUARD );
|
||||
}
|
||||
ret = TRUE;
|
||||
}
|
||||
--
|
||||
2.6.2
|
||||
|
@ -1,107 +0,0 @@
|
||||
From 2a4736b15317859868a6d0133d60443325605703 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sat, 28 Nov 2015 21:28:48 +0100
|
||||
Subject: kernel32/tests: Add tests for committing stack guard pages. (v2)
|
||||
|
||||
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
|
||||
---
|
||||
dlls/kernel32/tests/virtual.c | 76 +++++++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 76 insertions(+)
|
||||
|
||||
diff --git a/dlls/kernel32/tests/virtual.c b/dlls/kernel32/tests/virtual.c
|
||||
index e80ba38..e614bde 100644
|
||||
--- a/dlls/kernel32/tests/virtual.c
|
||||
+++ b/dlls/kernel32/tests/virtual.c
|
||||
@@ -2048,6 +2048,81 @@ static void test_guard_page(void)
|
||||
VirtualFree( base, 0, MEM_FREE );
|
||||
}
|
||||
|
||||
+static DWORD WINAPI stack_commit_func( void *arg )
|
||||
+{
|
||||
+ volatile char *p = (char *)&p;
|
||||
+
|
||||
+ /* trigger all guard pages, to ensure that the pages are committed */
|
||||
+ while (p >= (char *)pNtCurrentTeb()->DeallocationStack + 3 * 0x1000)
|
||||
+ {
|
||||
+ p[0] |= 0;
|
||||
+ p -= 0x1000;
|
||||
+ }
|
||||
+
|
||||
+ ok( arg == (void *)0xdeadbeef, "expected 0xdeadbeef, got %p\n", arg );
|
||||
+ return 42;
|
||||
+}
|
||||
+
|
||||
+static void test_stack_commit(void)
|
||||
+{
|
||||
+ static const char code_call_on_stack[] = {
|
||||
+ 0x55, /* pushl %ebp */
|
||||
+ 0x56, /* pushl %esi */
|
||||
+ 0x89, 0xe6, /* movl %esp,%esi */
|
||||
+ 0x8b, 0x4c, 0x24, 0x0c, /* movl 12(%esp),%ecx - func */
|
||||
+ 0x8b, 0x54, 0x24, 0x10, /* movl 16(%esp),%edx - arg */
|
||||
+ 0x8b, 0x44, 0x24, 0x14, /* movl 20(%esp),%eax - stack */
|
||||
+ 0x83, 0xe0, 0xf0, /* andl $~15,%eax */
|
||||
+ 0x83, 0xe8, 0x0c, /* subl $12,%eax */
|
||||
+ 0x89, 0xc4, /* movl %eax,%esp */
|
||||
+ 0x52, /* pushl %edx */
|
||||
+ 0x31, 0xed, /* xorl %ebp,%ebp */
|
||||
+ 0xff, 0xd1, /* call *%ecx */
|
||||
+ 0x89, 0xf4, /* movl %esi,%esp */
|
||||
+ 0x5e, /* popl %esi */
|
||||
+ 0x5d, /* popl %ebp */
|
||||
+ 0xc2, 0x0c, 0x00 }; /* ret $12 */
|
||||
+
|
||||
+ DWORD (WINAPI *call_on_stack)( DWORD (WINAPI *func)(void *), void *arg, void *stack );
|
||||
+ void *old_stack, *old_stack_base, *old_stack_limit;
|
||||
+ void *new_stack, *new_stack_base;
|
||||
+ DWORD result;
|
||||
+
|
||||
+ if (!pNtCurrentTeb)
|
||||
+ {
|
||||
+ win_skip( "NtCurrentTeb not supported\n" );
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ call_on_stack = VirtualAlloc( 0, 0x1000, MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE );
|
||||
+ ok( call_on_stack != NULL, "VirtualAlloc failed %u\n", GetLastError() );
|
||||
+ memcpy( call_on_stack, code_call_on_stack, sizeof(code_call_on_stack) );
|
||||
+
|
||||
+ /* allocate a new stack, only the first guard page is committed */
|
||||
+ new_stack = VirtualAlloc( 0, 0x400000, MEM_RESERVE, PAGE_READWRITE );
|
||||
+ ok( new_stack != NULL, "VirtualAlloc failed %u\n", GetLastError() );
|
||||
+ new_stack_base = (char *)new_stack + 0x400000;
|
||||
+ VirtualAlloc( (char *)new_stack_base - 0x1000, 0x1000, MEM_COMMIT, PAGE_READWRITE | PAGE_GUARD );
|
||||
+
|
||||
+ old_stack = pNtCurrentTeb()->DeallocationStack;
|
||||
+ old_stack_base = pNtCurrentTeb()->Tib.StackBase;
|
||||
+ old_stack_limit = pNtCurrentTeb()->Tib.StackLimit;
|
||||
+
|
||||
+ pNtCurrentTeb()->DeallocationStack = new_stack;
|
||||
+ pNtCurrentTeb()->Tib.StackBase = new_stack_base;
|
||||
+ pNtCurrentTeb()->Tib.StackLimit = new_stack_base;
|
||||
+
|
||||
+ result = call_on_stack( stack_commit_func, (void *)0xdeadbeef, new_stack_base );
|
||||
+ ok( result == 42, "expected 42, got %u\n", result );
|
||||
+
|
||||
+ pNtCurrentTeb()->DeallocationStack = old_stack;
|
||||
+ pNtCurrentTeb()->Tib.StackBase = old_stack_base;
|
||||
+ pNtCurrentTeb()->Tib.StackLimit = old_stack_limit;
|
||||
+
|
||||
+ VirtualFree( new_stack, 0, MEM_FREE );
|
||||
+ VirtualFree( call_on_stack, 0, MEM_FREE );
|
||||
+}
|
||||
+
|
||||
DWORD num_execute_fault_calls;
|
||||
|
||||
static DWORD execute_fault_seh_handler( EXCEPTION_RECORD *rec, EXCEPTION_REGISTRATION_RECORD *frame,
|
||||
@@ -3772,6 +3847,7 @@ START_TEST(virtual)
|
||||
test_write_watch();
|
||||
#ifdef __i386__
|
||||
test_guard_page();
|
||||
+ test_stack_commit();
|
||||
/* The following tests should be executed as a last step, and in exactly this
|
||||
* order, since ATL thunk emulation cannot be enabled anymore on Windows. */
|
||||
test_atl_thunk_emulation( MEM_EXECUTE_OPTION_ENABLE );
|
||||
--
|
||||
2.6.2
|
||||
|
@ -1 +0,0 @@
|
||||
Fixes: Fix access violation in MSYS2 git when cloning repository
|
@ -54,7 +54,7 @@ index 238c953..4a112ef 100644
|
||||
@@ -689,7 +689,7 @@
|
||||
@ stub MmLockPagableImageSection
|
||||
@ stdcall MmLockPagableSectionByHandle(ptr)
|
||||
@ stdcall MmMapIoSpace(long long long long)
|
||||
@ stdcall MmMapIoSpace(int64 long long)
|
||||
-@ stub MmMapLockedPages
|
||||
+@ stdcall MmMapLockedPages(ptr long)
|
||||
@ stdcall MmMapLockedPagesSpecifyCache(ptr long long ptr long long)
|
||||
|
@ -52,13 +52,13 @@ usage()
|
||||
# Get the upstream commit sha
|
||||
upstream_commit()
|
||||
{
|
||||
echo "e6c67c52757508ce92c3819bb14e87c2ab21fa20"
|
||||
echo "66d8e38ba4c5d67ae6e287cac557acfeae8b5bcd"
|
||||
}
|
||||
|
||||
# Show version information
|
||||
version()
|
||||
{
|
||||
echo "Wine Staging 1.8-rc2"
|
||||
echo "Wine Staging 1.8-rc3 (unreleased)"
|
||||
echo "Copyright (C) 2014-2015 the Wine Staging project authors."
|
||||
echo ""
|
||||
echo "Patchset to be applied on upstream Wine:"
|
||||
@ -175,7 +175,6 @@ patch_enable_all ()
|
||||
enable_mountmgr_DosDevices="$1"
|
||||
enable_mpr_WNetGetUniversalNameW="$1"
|
||||
enable_mscoree_CorValidateImage="$1"
|
||||
enable_msctf_ITfThreadMgrEx_ActivateEx="$1"
|
||||
enable_mshtml_HTMLLocation_put_hash="$1"
|
||||
enable_msidb_Implementation="$1"
|
||||
enable_msvcrt_Math_Precision="$1"
|
||||
@ -208,7 +207,6 @@ patch_enable_all ()
|
||||
enable_ntdll_ProcessQuotaLimits="$1"
|
||||
enable_ntdll_Purist_Mode="$1"
|
||||
enable_ntdll_RtlIpStringToAddress="$1"
|
||||
enable_ntdll_Stack_Fault="$1"
|
||||
enable_ntdll_Status_Mapping="$1"
|
||||
enable_ntdll_Syscall_Wrappers="$1"
|
||||
enable_ntdll_SystemHandleInformation="$1"
|
||||
@ -296,7 +294,6 @@ patch_enable_all ()
|
||||
enable_uxtheme_GTK_Theming="$1"
|
||||
enable_version_VerQueryValue="$1"
|
||||
enable_wbemdisp_ISWbemSecurity="$1"
|
||||
enable_wine_inf_Dynamic_DST="$1"
|
||||
enable_wine_inf_Performance="$1"
|
||||
enable_wine_inf_ProfileList_UserSID="$1"
|
||||
enable_wineboot_DriveSerial="$1"
|
||||
@ -640,9 +637,6 @@ patch_enable ()
|
||||
mscoree-CorValidateImage)
|
||||
enable_mscoree_CorValidateImage="$2"
|
||||
;;
|
||||
msctf-ITfThreadMgrEx_ActivateEx)
|
||||
enable_msctf_ITfThreadMgrEx_ActivateEx="$2"
|
||||
;;
|
||||
mshtml-HTMLLocation_put_hash)
|
||||
enable_mshtml_HTMLLocation_put_hash="$2"
|
||||
;;
|
||||
@ -739,9 +733,6 @@ patch_enable ()
|
||||
ntdll-RtlIpStringToAddress)
|
||||
enable_ntdll_RtlIpStringToAddress="$2"
|
||||
;;
|
||||
ntdll-Stack_Fault)
|
||||
enable_ntdll_Stack_Fault="$2"
|
||||
;;
|
||||
ntdll-Status_Mapping)
|
||||
enable_ntdll_Status_Mapping="$2"
|
||||
;;
|
||||
@ -1003,9 +994,6 @@ patch_enable ()
|
||||
wbemdisp-ISWbemSecurity)
|
||||
enable_wbemdisp_ISWbemSecurity="$2"
|
||||
;;
|
||||
wine.inf-Dynamic_DST)
|
||||
enable_wine_inf_Dynamic_DST="$2"
|
||||
;;
|
||||
wine.inf-Performance)
|
||||
enable_wine_inf_Performance="$2"
|
||||
;;
|
||||
@ -3819,21 +3807,6 @@ if test "$enable_mscoree_CorValidateImage" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset msctf-ITfThreadMgrEx_ActivateEx
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#39564] Add partial implementation of ITfThreadMgrEx_ActivateEx
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/msctf/tests/inputprocessor.c, dlls/msctf/threadmgr.c
|
||||
# |
|
||||
if test "$enable_msctf_ITfThreadMgrEx_ActivateEx" -eq 1; then
|
||||
patch_apply msctf-ITfThreadMgrEx_ActivateEx/0001-msctf-Add-a-partial-implementation-of-ITfThreadMgrEx.patch
|
||||
(
|
||||
echo '+ { "Matteo Bruni", "msctf: Add a partial implementation of ITfThreadMgrEx_ActivateEx().", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset mshtml-HTMLLocation_put_hash
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
@ -4373,20 +4346,6 @@ if test "$enable_ntdll_RtlIpStringToAddress" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset ntdll-Stack_Fault
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/kernel32/tests/virtual.c, dlls/ntdll/virtual.c
|
||||
# |
|
||||
if test "$enable_ntdll_Stack_Fault" -eq 1; then
|
||||
patch_apply ntdll-Stack_Fault/0001-ntdll-Commit-new-guard-pages-in-virtual_handle_stack.patch
|
||||
patch_apply ntdll-Stack_Fault/0002-kernel32-tests-Add-tests-for-committing-stack-guard-.patch
|
||||
(
|
||||
echo '+ { "Sebastian Lackner", "ntdll: Commit new guard pages in virtual_handle_stack_fault.", 1 },';
|
||||
echo '+ { "Sebastian Lackner", "kernel32/tests: Add tests for committing stack guard pages.", 2 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset ntdll-Status_Mapping
|
||||
# |
|
||||
# | Modified files:
|
||||
@ -5737,18 +5696,6 @@ if test "$enable_wbemdisp_ISWbemSecurity" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset wine.inf-Dynamic_DST
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * loader/wine.inf.in
|
||||
# |
|
||||
if test "$enable_wine_inf_Dynamic_DST" -eq 1; then
|
||||
patch_apply wine.inf-Dynamic_DST/0001-wine.inf-Add-information-for-delayed-end-of-DST-in-E.patch
|
||||
(
|
||||
echo '+ { "Sebastian Lackner", "wine.inf: Add information for delayed end of DST in Europe/Istanbul.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset wine.inf-Performance
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
|
@ -1,25 +0,0 @@
|
||||
From 6008262f4361906dc6c591340787ad38ecc05e4c Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sat, 28 Nov 2015 22:00:28 +0100
|
||||
Subject: wine.inf: Add information for delayed end of DST in Europe/Istanbul.
|
||||
|
||||
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
|
||||
---
|
||||
loader/wine.inf.in | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/loader/wine.inf.in b/loader/wine.inf.in
|
||||
index 7773377..58a8d1d 100644
|
||||
--- a/loader/wine.inf.in
|
||||
+++ b/loader/wine.inf.in
|
||||
@@ -3084,6 +3084,7 @@ HKLM,%CurrentVersionNT%\Time Zones\Turkey Standard Time,"Display",,"Europe/Istan
|
||||
HKLM,%CurrentVersionNT%\Time Zones\Turkey Standard Time,"Dlt",,"Turkey Daylight Time"
|
||||
HKLM,%CurrentVersionNT%\Time Zones\Turkey Standard Time,"Std",,"Turkey Standard Time"
|
||||
HKLM,%CurrentVersionNT%\Time Zones\Turkey Standard Time,"TZI",1,88,ff,ff,ff,00,00,00,00,c4,ff,ff,ff,00,00,0a,00,00,00,05,00,04,00,00,00,00,00,00,00,00,00,03,00,00,00,05,00,03,00,00,00,00,00,00,00
|
||||
+HKLM,%CurrentVersionNT%\Time Zones\Turkey Standard Time\Dynamic DST,"2015",1,88,ff,ff,ff,00,00,00,00,c4,ff,ff,ff,df,07,0b,00,00,00,08,00,04,00,00,00,00,00,00,00,df,07,03,00,00,00,1d,00,03,00,00,00,00,00,00,00
|
||||
HKLM,%CurrentVersionNT%\Time Zones\Ulaanbaatar Standard Time,"Display",,"Asia/Ulaanbaatar"
|
||||
HKLM,%CurrentVersionNT%\Time Zones\Ulaanbaatar Standard Time,"Dlt",,"Ulaanbaatar Daylight Time"
|
||||
HKLM,%CurrentVersionNT%\Time Zones\Ulaanbaatar Standard Time,"Std",,"Ulaanbaatar Standard Time"
|
||||
--
|
||||
2.6.2
|
||||
|
@ -1 +0,0 @@
|
||||
Fixes: Add information for delayed end of DST in Europe/Istanbul
|
@ -1298,7 +1298,7 @@ diff --git a/dlls/wined3d/view.c b/dlls/wined3d/view.c
|
||||
diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
|
||||
--- a/dlls/wined3d/context.c
|
||||
+++ b/dlls/wined3d/context.c
|
||||
@@ -1448,6 +1448,7 @@
|
||||
@@ -1453,6 +1453,7 @@
|
||||
goto out;
|
||||
}
|
||||
|
||||
@ -1306,7 +1306,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
|
||||
ret->current_fb.render_targets = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
|
||||
sizeof(*ret->current_fb.render_targets) * gl_info->limits.buffers);
|
||||
ret->current_fb.rt_size = gl_info->limits.buffers;
|
||||
@@ -1456,6 +1457,7 @@
|
||||
@@ -1461,6 +1462,7 @@
|
||||
if (device->context_count)
|
||||
ret->offscreenBuffer = device->contexts[0]->offscreenBuffer;
|
||||
|
||||
@ -1314,7 +1314,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
|
||||
/* Initialize the texture unit mapping to a 1:1 mapping */
|
||||
for (s = 0; s < MAX_COMBINED_SAMPLERS; ++s)
|
||||
{
|
||||
@@ -1779,7 +1781,9 @@
|
||||
@@ -1784,7 +1786,9 @@
|
||||
out:
|
||||
device->shader_backend->shader_free_context_data(ret);
|
||||
device->adapter->fragment_pipe->free_context_data(ret);
|
||||
@ -1324,7 +1324,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
|
||||
HeapFree(GetProcessHeap(), 0, ret->free_event_queries);
|
||||
HeapFree(GetProcessHeap(), 0, ret->free_occlusion_queries);
|
||||
HeapFree(GetProcessHeap(), 0, ret->free_timestamp_queries);
|
||||
@@ -1814,7 +1818,9 @@
|
||||
@@ -1819,7 +1823,9 @@
|
||||
|
||||
device->shader_backend->shader_free_context_data(context);
|
||||
device->adapter->fragment_pipe->free_context_data(context);
|
||||
@ -1334,7 +1334,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
|
||||
HeapFree(GetProcessHeap(), 0, context->draw_buffers);
|
||||
HeapFree(GetProcessHeap(), 0, context->blit_targets);
|
||||
device_context_remove(device, context);
|
||||
@@ -2234,6 +2240,7 @@
|
||||
@@ -2239,6 +2245,7 @@
|
||||
WARN("Depth stencil format is not supported by WGL, rendering the backbuffer in an FBO\n");
|
||||
|
||||
/* The currently active context is the necessary context to access the swapchain's onscreen buffers */
|
||||
@ -1342,7 +1342,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
|
||||
wined3d_resource_load_location(&context->current_rt->resource, context, WINED3D_LOCATION_TEXTURE_RGB);
|
||||
swapchain->render_to_fbo = TRUE;
|
||||
swapchain_update_draw_bindings(swapchain);
|
||||
@@ -2248,6 +2255,22 @@
|
||||
@@ -2253,6 +2260,22 @@
|
||||
return context_generate_rt_mask_from_surface(rt);
|
||||
else
|
||||
return context_generate_rt_mask(context->offscreenBuffer);
|
||||
@ -1365,7 +1365,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
|
||||
}
|
||||
|
||||
/* Context activation is done by the caller. */
|
||||
@@ -2279,7 +2302,11 @@
|
||||
@@ -2284,7 +2307,11 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1377,7 +1377,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
|
||||
}
|
||||
|
||||
cur_mask = context->current_fbo ? &context->current_fbo->rt_mask : &context->draw_buffers_mask;
|
||||
@@ -2326,7 +2353,11 @@
|
||||
@@ -2331,7 +2358,11 @@
|
||||
DWORD rt_mask = 0, *cur_mask;
|
||||
UINT i;
|
||||
|
||||
@ -1389,7 +1389,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
|
||||
|| rt_count != context->gl_info->limits.buffers)
|
||||
{
|
||||
if (!context_validate_rt_config(rt_count, rts, dsv))
|
||||
@@ -2368,11 +2399,17 @@
|
||||
@@ -2373,11 +2404,17 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1407,7 +1407,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
|
||||
}
|
||||
else if (wined3d_settings.offscreen_rendering_mode == ORM_FBO
|
||||
&& (!rt_count || wined3d_resource_is_offscreen(rts[0]->resource)))
|
||||
@@ -2385,7 +2422,11 @@
|
||||
@@ -2390,7 +2427,11 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1419,7 +1419,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
|
||||
rt_count ? wined3d_rendertarget_view_get_surface(rts[0]) : NULL);
|
||||
}
|
||||
|
||||
@@ -2420,6 +2461,7 @@
|
||||
@@ -2433,6 +2474,7 @@
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ -1427,7 +1427,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
|
||||
static DWORD find_draw_buffers_mask(const struct wined3d_context *context, const struct wined3d_state *state)
|
||||
{
|
||||
struct wined3d_rendertarget_view **rts = state->fb.render_targets;
|
||||
@@ -2429,6 +2471,18 @@
|
||||
@@ -2442,6 +2484,18 @@
|
||||
|
||||
if (wined3d_settings.offscreen_rendering_mode != ORM_FBO)
|
||||
return context_generate_rt_mask_no_fbo(context, wined3d_rendertarget_view_get_surface(rts[0]));
|
||||
@ -1446,7 +1446,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
|
||||
else if (!context->render_offscreen)
|
||||
return context_generate_rt_mask_from_surface(wined3d_rendertarget_view_get_surface(rts[0]));
|
||||
|
||||
@@ -2451,8 +2505,14 @@
|
||||
@@ -2464,8 +2518,14 @@
|
||||
/* Context activation is done by the caller. */
|
||||
void context_state_fb(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
|
||||
{
|
||||
@ -1461,7 +1461,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
|
||||
DWORD *cur_mask;
|
||||
|
||||
if (wined3d_settings.offscreen_rendering_mode == ORM_FBO)
|
||||
@@ -2483,8 +2543,10 @@
|
||||
@@ -2496,8 +2556,10 @@
|
||||
context_apply_draw_buffers(context, rt_mask);
|
||||
*cur_mask = rt_mask;
|
||||
}
|
||||
@ -1472,7 +1472,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
|
||||
}
|
||||
|
||||
static void context_map_stage(struct wined3d_context *context, DWORD stage, DWORD unit)
|
||||
@@ -2731,12 +2793,22 @@
|
||||
@@ -2744,12 +2806,22 @@
|
||||
/* Context activation is done by the caller. */
|
||||
void context_state_drawbuf(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
|
||||
{
|
||||
@ -1495,7 +1495,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
|
||||
if (rt_mask != *cur_mask)
|
||||
{
|
||||
context_apply_draw_buffers(context, rt_mask);
|
||||
@@ -2938,7 +3010,11 @@
|
||||
@@ -2951,7 +3023,11 @@
|
||||
{
|
||||
if (state->vertex_declaration->half_float_conv_needed && !stream_info->all_vbo)
|
||||
{
|
||||
@ -1507,7 +1507,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
|
||||
context->use_immediate_mode_draw = TRUE;
|
||||
}
|
||||
else
|
||||
@@ -3113,11 +3189,19 @@
|
||||
@@ -3126,11 +3202,19 @@
|
||||
}
|
||||
|
||||
/* Context activation is done by the caller. */
|
||||
@ -1527,7 +1527,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
|
||||
unsigned int i;
|
||||
WORD map;
|
||||
|
||||
@@ -3150,12 +3234,17 @@
|
||||
@@ -3163,12 +3247,17 @@
|
||||
for (i = 0, map = context->stream_info.use_map; map; map >>= 1, ++i)
|
||||
{
|
||||
if (map & 1)
|
||||
@ -1545,7 +1545,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
|
||||
}
|
||||
if (state->index_buffer)
|
||||
{
|
||||
@@ -3250,7 +3339,11 @@
|
||||
@@ -3263,7 +3352,11 @@
|
||||
if (texture->texture_srgb.name)
|
||||
wined3d_texture_load(texture, context, TRUE);
|
||||
wined3d_texture_load(texture, context, FALSE);
|
||||
@ -1680,7 +1680,7 @@ diff --git a/dlls/wined3d/stateblock.c b/dlls/wined3d/stateblock.c
|
||||
diff --git a/dlls/d3d9/tests/visual.c b/dlls/d3d9/tests/visual.c
|
||||
--- a/dlls/d3d9/tests/visual.c
|
||||
+++ b/dlls/d3d9/tests/visual.c
|
||||
@@ -1200,7 +1200,11 @@
|
||||
@@ -1339,7 +1339,11 @@
|
||||
* result on Wine.
|
||||
* {D3DFMT_YUY2, "D3DFMT_YUY2", BLOCKS, 0},
|
||||
* {D3DFMT_UYVY, "D3DFMT_UYVY", BLOCKS, 0}, */
|
||||
@ -1692,7 +1692,7 @@ diff --git a/dlls/d3d9/tests/visual.c b/dlls/d3d9/tests/visual.c
|
||||
/* Vendor-specific formats like ATI2N are a non-issue here since they're not
|
||||
* supported as offscreen plain surfaces and do not support D3DUSAGE_RENDERTARGET
|
||||
* when created as texture. */
|
||||
@@ -17491,7 +17495,11 @@
|
||||
@@ -17630,7 +17634,11 @@
|
||||
fill_surface(surface_managed, 0x0000ff00, D3DLOCK_NO_DIRTY_UPDATE);
|
||||
add_dirty_rect_test_draw(device);
|
||||
color = getPixelColor(device, 320, 240);
|
||||
@ -3174,7 +3174,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
SetRect(¤t_rect, 0, 0,
|
||||
ds->ds_current_size.cx,
|
||||
ds->ds_current_size.cy);
|
||||
@@ -307,7 +333,11 @@
|
||||
@@ -308,7 +334,11 @@
|
||||
if (rt && rt->resource.format->id != WINED3DFMT_NULL)
|
||||
{
|
||||
if (flags & WINED3DCLEAR_TARGET && !is_full_clear(target, draw_rect, clear_rect))
|
||||
@ -3186,7 +3186,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
else
|
||||
wined3d_surface_prepare(rt, context, rt->container->resource.draw_binding);
|
||||
}
|
||||
@@ -332,8 +362,13 @@
|
||||
@@ -333,8 +363,13 @@
|
||||
{
|
||||
DWORD location = render_offscreen ? fb->depth_stencil->resource->draw_binding : WINED3D_LOCATION_DRAWABLE;
|
||||
|
||||
@ -3200,7 +3200,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
prepare_ds_clear(depth_stencil, context, location,
|
||||
draw_rect, rect_count, clear_rect, &ds_rect);
|
||||
}
|
||||
@@ -381,8 +416,13 @@
|
||||
@@ -382,8 +417,13 @@
|
||||
|
||||
if (rt)
|
||||
{
|
||||
@ -3214,7 +3214,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
}
|
||||
}
|
||||
|
||||
@@ -622,7 +662,11 @@
|
||||
@@ -651,7 +691,11 @@
|
||||
}
|
||||
|
||||
/* Context activation is done by the caller. */
|
||||
@ -3226,7 +3226,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
{
|
||||
const struct wined3d_gl_info *gl_info = &device->adapter->gl_info;
|
||||
unsigned int i, j, count;
|
||||
@@ -849,7 +893,11 @@
|
||||
@@ -878,7 +922,11 @@
|
||||
BOOL ds_enable = !!swapchain->desc.enable_auto_depth_stencil;
|
||||
unsigned int i;
|
||||
|
||||
@ -3238,7 +3238,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
{
|
||||
for (i = 0; i < device->adapter->gl_info.limits.buffers; ++i)
|
||||
{
|
||||
@@ -867,7 +915,13 @@
|
||||
@@ -896,7 +944,13 @@
|
||||
struct wined3d_swapchain_desc *swapchain_desc)
|
||||
{
|
||||
static const struct wined3d_color black = {0.0f, 0.0f, 0.0f, 0.0f};
|
||||
@ -3252,7 +3252,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
DWORD clear_flags = 0;
|
||||
HRESULT hr;
|
||||
|
||||
@@ -878,6 +932,11 @@
|
||||
@@ -907,6 +961,11 @@
|
||||
if (device->wined3d->flags & WINED3D_NO3D)
|
||||
return WINED3DERR_INVALIDCALL;
|
||||
|
||||
@ -3264,7 +3264,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
if (FAILED(hr = device->shader_backend->shader_alloc_private(device,
|
||||
device->adapter->vertex_pipe, device->adapter->fragment_pipe)))
|
||||
{
|
||||
@@ -918,7 +977,14 @@
|
||||
@@ -947,7 +1006,14 @@
|
||||
device->swapchains[0] = swapchain;
|
||||
device_init_swapchain_state(device, swapchain);
|
||||
|
||||
@ -3279,7 +3279,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
|
||||
device->contexts[0]->last_was_rhw = 0;
|
||||
|
||||
@@ -930,7 +996,11 @@
|
||||
@@ -959,7 +1025,11 @@
|
||||
|
||||
case ORM_BACKBUFFER:
|
||||
{
|
||||
@ -3291,7 +3291,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
{
|
||||
TRACE("Using auxiliary buffer for offscreen rendering\n");
|
||||
device->offscreenBuffer = GL_AUX0;
|
||||
@@ -942,9 +1012,16 @@
|
||||
@@ -971,9 +1041,16 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -3308,7 +3308,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
|
||||
/* Clear the screen */
|
||||
if (swapchain->back_buffers && swapchain->back_buffers[0])
|
||||
@@ -961,6 +1038,9 @@
|
||||
@@ -990,6 +1067,9 @@
|
||||
return WINED3D_OK;
|
||||
|
||||
err_out:
|
||||
@ -3318,7 +3318,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
HeapFree(GetProcessHeap(), 0, device->swapchains);
|
||||
device->swapchain_count = 0;
|
||||
if (device->back_buffer_view)
|
||||
@@ -1018,6 +1098,10 @@
|
||||
@@ -1047,6 +1127,10 @@
|
||||
HRESULT CDECL wined3d_device_uninit_3d(struct wined3d_device *device)
|
||||
{
|
||||
struct wined3d_resource *resource, *cursor;
|
||||
@ -3329,7 +3329,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
struct wined3d_surface *surface;
|
||||
UINT i;
|
||||
|
||||
@@ -1026,6 +1110,7 @@
|
||||
@@ -1055,6 +1139,7 @@
|
||||
if (!device->d3d_initialized)
|
||||
return WINED3DERR_INVALIDCALL;
|
||||
|
||||
@ -3337,7 +3337,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
if (wined3d_settings.cs_multithreaded)
|
||||
device->cs->ops->finish(device->cs);
|
||||
|
||||
@@ -1064,6 +1149,82 @@
|
||||
@@ -1093,6 +1178,82 @@
|
||||
/* FIXME: Is this in the right place??? */
|
||||
wined3d_cs_emit_delete_opengl_contexts(device->cs, device->swapchains[0]);
|
||||
|
||||
@ -3420,7 +3420,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
if (device->back_buffer_view)
|
||||
{
|
||||
wined3d_rendertarget_view_decref(device->back_buffer_view);
|
||||
@@ -1081,6 +1242,11 @@
|
||||
@@ -1110,6 +1271,11 @@
|
||||
device->swapchains = NULL;
|
||||
device->swapchain_count = 0;
|
||||
|
||||
@ -3432,7 +3432,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
device->d3d_initialized = FALSE;
|
||||
|
||||
return WINED3D_OK;
|
||||
@@ -1467,6 +1633,16 @@
|
||||
@@ -1496,6 +1662,16 @@
|
||||
TRACE("... Range(%f), Falloff(%f), Theta(%f), Phi(%f)\n",
|
||||
light->range, light->falloff, light->theta, light->phi);
|
||||
|
||||
@ -3449,7 +3449,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
/* Save away the information. */
|
||||
object->OriginalParms = *light;
|
||||
|
||||
@@ -1546,9 +1722,11 @@
|
||||
@@ -1575,9 +1751,11 @@
|
||||
FIXME("Unrecognized light type %#x.\n", light->type);
|
||||
}
|
||||
|
||||
@ -3461,7 +3461,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
return WINED3D_OK;
|
||||
}
|
||||
|
||||
@@ -1621,6 +1799,14 @@
|
||||
@@ -1650,6 +1828,14 @@
|
||||
{
|
||||
if (light_info->glIndex != -1)
|
||||
{
|
||||
@ -3476,7 +3476,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
device->update_state->lights[light_info->glIndex] = NULL;
|
||||
light_info->glIndex = -1;
|
||||
}
|
||||
@@ -1662,11 +1848,23 @@
|
||||
@@ -1691,11 +1877,23 @@
|
||||
WARN("Too many concurrently active lights\n");
|
||||
return WINED3D_OK;
|
||||
}
|
||||
@ -3500,7 +3500,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
|
||||
return WINED3D_OK;
|
||||
}
|
||||
@@ -1841,9 +2039,11 @@
|
||||
@@ -1870,9 +2068,11 @@
|
||||
TRACE("device %p, base_index %d.\n", device, base_index);
|
||||
|
||||
device->update_state->base_vertex_index = base_index;
|
||||
@ -3512,7 +3512,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
}
|
||||
|
||||
INT CDECL wined3d_device_get_base_vertex_index(const struct wined3d_device *device)
|
||||
@@ -1888,7 +2088,11 @@
|
||||
@@ -1917,7 +2117,11 @@
|
||||
|| !(texture->resource.format_flags & WINED3DFMT_FLAG_DEPTH))
|
||||
return;
|
||||
surface = surface_from_resource(texture->sub_resources[0]);
|
||||
@ -3524,7 +3524,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
return;
|
||||
|
||||
wined3d_surface_blt(surface, NULL, depth_stencil, NULL, 0, NULL, WINED3D_TEXF_POINT);
|
||||
@@ -2208,7 +2412,11 @@
|
||||
@@ -2237,7 +2441,11 @@
|
||||
return device->state.sampler[WINED3D_SHADER_TYPE_VERTEX][idx];
|
||||
}
|
||||
|
||||
@ -3536,7 +3536,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
{
|
||||
UINT i;
|
||||
|
||||
@@ -2241,8 +2449,12 @@
|
||||
@@ -2270,8 +2478,12 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -3549,7 +3549,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
}
|
||||
|
||||
return WINED3D_OK;
|
||||
@@ -2289,8 +2501,12 @@
|
||||
@@ -2318,8 +2530,12 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -3562,7 +3562,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
}
|
||||
|
||||
return WINED3D_OK;
|
||||
@@ -2341,8 +2557,13 @@
|
||||
@@ -2370,8 +2586,13 @@
|
||||
memset(device->recording->changed.vertexShaderConstantsF + start_register, 1,
|
||||
sizeof(*device->recording->changed.vertexShaderConstantsF) * vector4f_count);
|
||||
else
|
||||
@ -3576,7 +3576,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
|
||||
return WINED3D_OK;
|
||||
}
|
||||
@@ -2477,8 +2698,12 @@
|
||||
@@ -2506,8 +2727,12 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -3589,7 +3589,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
}
|
||||
|
||||
return WINED3D_OK;
|
||||
@@ -2525,8 +2750,12 @@
|
||||
@@ -2554,8 +2779,12 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -3602,7 +3602,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
}
|
||||
|
||||
return WINED3D_OK;
|
||||
@@ -2578,8 +2807,12 @@
|
||||
@@ -2607,8 +2836,12 @@
|
||||
memset(device->recording->changed.pixelShaderConstantsF + start_register, 1,
|
||||
sizeof(*device->recording->changed.pixelShaderConstantsF) * vector4f_count);
|
||||
else
|
||||
@ -3615,7 +3615,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
|
||||
return WINED3D_OK;
|
||||
}
|
||||
@@ -2739,6 +2972,7 @@
|
||||
@@ -2768,6 +3001,7 @@
|
||||
return hr;
|
||||
}
|
||||
|
||||
@ -3623,7 +3623,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
if (wined3d_settings.cs_multithreaded)
|
||||
{
|
||||
FIXME("Waiting for cs.\n");
|
||||
@@ -2746,6 +2980,7 @@
|
||||
@@ -2775,6 +3009,7 @@
|
||||
device->cs->ops->finish(device->cs);
|
||||
}
|
||||
|
||||
@ -3631,7 +3631,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
wined3d_device_get_transform(device, WINED3D_TS_VIEW, &view_mat);
|
||||
wined3d_device_get_transform(device, WINED3D_TS_PROJECTION, &proj_mat);
|
||||
wined3d_device_get_transform(device, WINED3D_TS_WORLD_MATRIX(0), &world_mat);
|
||||
@@ -3231,6 +3466,10 @@
|
||||
@@ -3260,6 +3495,10 @@
|
||||
|
||||
HRESULT CDECL wined3d_device_end_scene(struct wined3d_device *device)
|
||||
{
|
||||
@ -3642,7 +3642,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
TRACE("device %p.\n", device);
|
||||
|
||||
if (!device->inScene)
|
||||
@@ -3239,6 +3478,15 @@
|
||||
@@ -3268,6 +3507,15 @@
|
||||
return WINED3DERR_INVALIDCALL;
|
||||
}
|
||||
|
||||
@ -3658,7 +3658,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
device->inScene = FALSE;
|
||||
return WINED3D_OK;
|
||||
}
|
||||
@@ -3246,8 +3494,10 @@
|
||||
@@ -3275,8 +3523,10 @@
|
||||
HRESULT CDECL wined3d_device_clear(struct wined3d_device *device, DWORD rect_count,
|
||||
const RECT *rects, DWORD flags, const struct wined3d_color *color, float depth, DWORD stencil)
|
||||
{
|
||||
@ -3669,7 +3669,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
TRACE("device %p, rect_count %u, rects %p, flags %#x, color {%.8e, %.8e, %.8e, %.8e}, depth %.8e, stencil %u.\n",
|
||||
device, rect_count, rects, flags, color->r, color->g, color->b, color->a, depth, stencil);
|
||||
|
||||
@@ -3256,12 +3506,19 @@
|
||||
@@ -3285,12 +3535,19 @@
|
||||
WARN("Rects is %p, but rect_count is 0, ignoring clear\n", rects);
|
||||
return WINED3D_OK;
|
||||
}
|
||||
@ -3689,7 +3689,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
if (!ds)
|
||||
{
|
||||
WARN("Clearing depth and/or stencil without a depth stencil buffer attached, returning WINED3DERR_INVALIDCALL\n");
|
||||
@@ -3270,8 +3527,13 @@
|
||||
@@ -3299,8 +3556,13 @@
|
||||
}
|
||||
else if (flags & WINED3DCLEAR_TARGET)
|
||||
{
|
||||
@ -3703,7 +3703,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
{
|
||||
WARN("Silently ignoring depth and target clear with mismatching sizes\n");
|
||||
return WINED3D_OK;
|
||||
@@ -3317,6 +3579,9 @@
|
||||
@@ -3346,6 +3608,9 @@
|
||||
enum wined3d_primitive_type primitive_type)
|
||||
{
|
||||
GLenum gl_primitive_type, prev;
|
||||
@ -3713,7 +3713,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
TRACE("device %p, primitive_type %s\n", device, debug_d3dprimitivetype(primitive_type));
|
||||
|
||||
gl_primitive_type = gl_primitive_type_from_d3d(primitive_type);
|
||||
@@ -3324,8 +3589,13 @@
|
||||
@@ -3353,8 +3618,13 @@
|
||||
device->update_state->gl_primitive_type = gl_primitive_type;
|
||||
if (device->recording)
|
||||
device->recording->changed.primitive_type = TRUE;
|
||||
@ -3727,7 +3727,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
}
|
||||
|
||||
void CDECL wined3d_device_get_primitive_type(const struct wined3d_device *device,
|
||||
@@ -3348,6 +3618,14 @@
|
||||
@@ -3377,6 +3647,14 @@
|
||||
return WINED3DERR_INVALIDCALL;
|
||||
}
|
||||
|
||||
@ -3742,7 +3742,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
wined3d_cs_emit_draw(device->cs, start_vertex, vertex_count, 0, 0, FALSE);
|
||||
|
||||
return WINED3D_OK;
|
||||
@@ -3364,6 +3642,10 @@
|
||||
@@ -3393,6 +3671,10 @@
|
||||
|
||||
HRESULT CDECL wined3d_device_draw_indexed_primitive(struct wined3d_device *device, UINT start_idx, UINT index_count)
|
||||
{
|
||||
@ -3753,7 +3753,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
TRACE("device %p, start_idx %u, index_count %u.\n", device, start_idx, index_count);
|
||||
|
||||
if (!device->state.index_buffer)
|
||||
@@ -3382,6 +3664,15 @@
|
||||
@@ -3411,6 +3693,15 @@
|
||||
return WINED3DERR_INVALIDCALL;
|
||||
}
|
||||
|
||||
@ -3769,7 +3769,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
wined3d_cs_emit_draw(device->cs, start_idx, index_count, 0, 0, TRUE);
|
||||
|
||||
return WINED3D_OK;
|
||||
@@ -3397,6 +3688,7 @@
|
||||
@@ -3426,6 +3717,7 @@
|
||||
}
|
||||
|
||||
/* This is a helper function for UpdateTexture, there is no UpdateVolume method in D3D. */
|
||||
@ -3777,7 +3777,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
static void device_update_volume(struct wined3d_context *context,
|
||||
struct wined3d_volume *src_volume, struct wined3d_volume *dst_volume)
|
||||
{
|
||||
@@ -3433,6 +3725,88 @@
|
||||
@@ -3462,6 +3754,88 @@
|
||||
{
|
||||
enum wined3d_resource_type type = src_texture->resource.type;
|
||||
unsigned int level_count, i, j, src_size, dst_size, src_skip_levels = 0;
|
||||
@ -3866,7 +3866,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
|
||||
level_count = min(wined3d_texture_get_level_count(src_texture),
|
||||
wined3d_texture_get_level_count(dst_texture));
|
||||
@@ -3451,7 +3825,13 @@
|
||||
@@ -3480,7 +3854,13 @@
|
||||
}
|
||||
|
||||
/* Make sure that the destination texture is loaded. */
|
||||
@ -3880,7 +3880,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
|
||||
/* Update every surface level of the texture. */
|
||||
switch (type)
|
||||
@@ -3466,7 +3846,16 @@
|
||||
@@ -3495,7 +3875,16 @@
|
||||
src_surface = surface_from_resource(wined3d_texture_get_sub_resource(src_texture,
|
||||
i + src_skip_levels));
|
||||
dst_surface = surface_from_resource(wined3d_texture_get_sub_resource(dst_texture, i));
|
||||
@ -3897,7 +3897,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -3486,7 +3875,16 @@
|
||||
@@ -3515,7 +3904,16 @@
|
||||
i * src_levels + j + src_skip_levels));
|
||||
dst_surface = surface_from_resource(wined3d_texture_get_sub_resource(dst_texture,
|
||||
i * dst_levels + j));
|
||||
@ -3914,7 +3914,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -3496,6 +3894,7 @@
|
||||
@@ -3525,6 +3923,7 @@
|
||||
{
|
||||
for (i = 0; i < level_count; ++i)
|
||||
{
|
||||
@ -3922,7 +3922,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
device_update_volume(context,
|
||||
volume_from_resource(wined3d_texture_get_sub_resource(src_texture,
|
||||
i + src_skip_levels)),
|
||||
@@ -3549,6 +3948,25 @@
|
||||
@@ -3578,6 +3977,25 @@
|
||||
}
|
||||
|
||||
wined3d_cs_emit_update_texture(device->cs, src_texture, dst_texture);
|
||||
@ -3948,7 +3948,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
|
||||
return WINED3D_OK;
|
||||
}
|
||||
@@ -3598,8 +4016,13 @@
|
||||
@@ -3627,8 +4045,13 @@
|
||||
if (state->render_states[WINED3D_RS_ZENABLE] || state->render_states[WINED3D_RS_ZWRITEENABLE]
|
||||
|| state->render_states[WINED3D_RS_STENCILENABLE])
|
||||
{
|
||||
@ -3962,7 +3962,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
|
||||
if (ds && rt && (ds->width < rt->width || ds->height < rt->height))
|
||||
{
|
||||
@@ -3698,6 +4121,7 @@
|
||||
@@ -3727,6 +4150,7 @@
|
||||
struct wined3d_surface *src_surface, const RECT *src_rect,
|
||||
struct wined3d_surface *dst_surface, const POINT *dst_point)
|
||||
{
|
||||
@ -3970,7 +3970,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
const struct wined3d_format *src_format = src_surface->resource.format;
|
||||
const struct wined3d_format *dst_format = dst_surface->resource.format;
|
||||
UINT update_w, update_h;
|
||||
@@ -3705,6 +4129,7 @@
|
||||
@@ -3734,6 +4158,7 @@
|
||||
RECT r, dst_rect;
|
||||
POINT p;
|
||||
|
||||
@ -3978,7 +3978,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
TRACE("device %p, src_surface %p, src_rect %s, dst_surface %p, dst_point %s.\n",
|
||||
device, src_surface, wine_dbgstr_rect(src_rect),
|
||||
dst_surface, wine_dbgstr_point(dst_point));
|
||||
@@ -3716,6 +4141,7 @@
|
||||
@@ -3745,6 +4170,7 @@
|
||||
return WINED3DERR_INVALIDCALL;
|
||||
}
|
||||
|
||||
@ -3986,7 +3986,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
if (src_format->id != dst_format->id)
|
||||
{
|
||||
WARN("Source and destination surfaces should have the same format.\n");
|
||||
@@ -3780,6 +4206,9 @@
|
||||
@@ -3809,6 +4235,9 @@
|
||||
wined3d_cs_emit_update_surface(device->cs, src_surface, src_rect, dst_surface, dst_point);
|
||||
|
||||
return WINED3D_OK;
|
||||
@ -3996,7 +3996,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
}
|
||||
|
||||
void CDECL wined3d_device_copy_resource(struct wined3d_device *device,
|
||||
@@ -3934,7 +4363,17 @@
|
||||
@@ -3963,7 +4392,17 @@
|
||||
unsigned int depth_pitch)
|
||||
{
|
||||
struct wined3d_resource *sub_resource;
|
||||
@ -4014,7 +4014,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
|
||||
TRACE("device %p, resource %p, sub_resource_idx %u, box %p, data %p, row_pitch %u, depth_pitch %u.\n",
|
||||
device, resource, sub_resource_idx, box, data, row_pitch, depth_pitch);
|
||||
@@ -3951,7 +4390,14 @@
|
||||
@@ -3980,7 +4419,14 @@
|
||||
WARN("Invalid sub_resource_idx %u.\n", sub_resource_idx);
|
||||
return;
|
||||
}
|
||||
@ -4029,7 +4029,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
if (box)
|
||||
{
|
||||
if (box->left >= box->right || box->right > sub_resource->width
|
||||
@@ -3961,9 +4407,47 @@
|
||||
@@ -3990,9 +4436,47 @@
|
||||
box->left, box->top, box->front, box->right, box->bottom, box->back);
|
||||
return;
|
||||
}
|
||||
@ -4077,7 +4077,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
}
|
||||
|
||||
HRESULT CDECL wined3d_device_clear_rendertarget_view(struct wined3d_device *device,
|
||||
@@ -3994,8 +4478,14 @@
|
||||
@@ -4023,8 +4507,14 @@
|
||||
rect = &r;
|
||||
}
|
||||
|
||||
@ -4092,7 +4092,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
}
|
||||
|
||||
struct wined3d_rendertarget_view * CDECL wined3d_device_get_rendertarget_view(const struct wined3d_device *device,
|
||||
@@ -4009,6 +4499,7 @@
|
||||
@@ -4038,6 +4528,7 @@
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -4100,7 +4100,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
return device->state.fb.render_targets[view_idx];
|
||||
}
|
||||
|
||||
@@ -4024,6 +4515,22 @@
|
||||
@@ -4053,6 +4544,22 @@
|
||||
{
|
||||
struct wined3d_rendertarget_view *prev;
|
||||
struct wined3d_fb_state *fb = &device->state.fb;
|
||||
@ -4123,7 +4123,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
|
||||
TRACE("device %p, view_idx %u, view %p, set_viewport %#x.\n",
|
||||
device, view_idx, view, set_viewport);
|
||||
@@ -4063,6 +4570,7 @@
|
||||
@@ -4092,6 +4599,7 @@
|
||||
}
|
||||
|
||||
|
||||
@ -4131,7 +4131,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
prev = fb->render_targets[view_idx];
|
||||
if (view == prev)
|
||||
return WINED3D_OK;
|
||||
@@ -4070,6 +4578,15 @@
|
||||
@@ -4099,6 +4607,15 @@
|
||||
if (view)
|
||||
wined3d_rendertarget_view_incref(view);
|
||||
fb->render_targets[view_idx] = view;
|
||||
@ -4147,7 +4147,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
wined3d_cs_emit_set_rendertarget_view(device->cs, view_idx, view);
|
||||
/* Release after the assignment, to prevent device_resource_released()
|
||||
* from seeing the surface as still in use. */
|
||||
@@ -4081,6 +4598,7 @@
|
||||
@@ -4110,6 +4627,7 @@
|
||||
|
||||
void CDECL wined3d_device_set_depth_stencil_view(struct wined3d_device *device, struct wined3d_rendertarget_view *view)
|
||||
{
|
||||
@ -4155,7 +4155,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
struct wined3d_fb_state *fb = &device->state.fb;
|
||||
struct wined3d_rendertarget_view *prev;
|
||||
|
||||
@@ -4098,6 +4616,66 @@
|
||||
@@ -4127,6 +4645,66 @@
|
||||
wined3d_cs_emit_set_depth_stencil_view(device->cs, view);
|
||||
if (prev)
|
||||
wined3d_rendertarget_view_decref(prev);
|
||||
@ -4222,7 +4222,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
}
|
||||
|
||||
HRESULT CDECL wined3d_device_set_cursor_properties(struct wined3d_device *device,
|
||||
@@ -4118,6 +4696,14 @@
|
||||
@@ -4147,6 +4725,14 @@
|
||||
|
||||
cursor_image = surface_from_resource(sub_resource);
|
||||
|
||||
@ -4237,7 +4237,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
if (cursor_image->resource.format->id != WINED3DFMT_B8G8R8A8_UNORM)
|
||||
{
|
||||
WARN("Surface %p has an invalid format %s.\n",
|
||||
@@ -4145,6 +4731,13 @@
|
||||
@@ -4174,6 +4760,13 @@
|
||||
* release it after setting the cursor image. Windows doesn't
|
||||
* addref the set surface, so we can't do this either without
|
||||
* creating circular refcount dependencies. */
|
||||
@ -4251,7 +4251,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
|
||||
if (cursor_image->resource.width == 32 && cursor_image->resource.height == 32)
|
||||
{
|
||||
@@ -4249,6 +4842,12 @@
|
||||
@@ -4278,6 +4871,12 @@
|
||||
else
|
||||
SetCursor(NULL);
|
||||
}
|
||||
@ -4264,7 +4264,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
|
||||
return oldVisible;
|
||||
}
|
||||
@@ -4259,8 +4858,10 @@
|
||||
@@ -4288,8 +4887,10 @@
|
||||
|
||||
TRACE("device %p.\n", device);
|
||||
|
||||
@ -4275,7 +4275,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
LIST_FOR_EACH_ENTRY_SAFE(resource, cursor, &device->resources, struct wined3d_resource, resource_list_entry)
|
||||
{
|
||||
TRACE("Checking resource %p for eviction.\n", resource);
|
||||
@@ -4268,6 +4869,7 @@
|
||||
@@ -4297,6 +4898,7 @@
|
||||
if (resource->pool == WINED3D_POOL_MANAGED && !resource->map_count)
|
||||
{
|
||||
TRACE("Evicting %p.\n", resource);
|
||||
@ -4283,7 +4283,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
wined3d_cs_emit_evict_resource(device->cs, resource);
|
||||
}
|
||||
}
|
||||
@@ -4286,6 +4888,37 @@
|
||||
@@ -4315,6 +4917,37 @@
|
||||
|
||||
context = context_acquire(device, NULL);
|
||||
gl_info = context->gl_info;
|
||||
@ -4321,7 +4321,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
|
||||
if (device->depth_blt_texture)
|
||||
{
|
||||
@@ -4306,6 +4939,7 @@
|
||||
@@ -4335,6 +4968,7 @@
|
||||
|
||||
HeapFree(GetProcessHeap(), 0, swapchain->context);
|
||||
swapchain->context = NULL;
|
||||
@ -4329,7 +4329,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
swapchain->num_contexts = 0;
|
||||
}
|
||||
|
||||
@@ -4325,6 +4959,14 @@
|
||||
@@ -4354,6 +4988,14 @@
|
||||
|
||||
static HRESULT create_primary_opengl_context(struct wined3d_device *device, struct wined3d_swapchain *swapchain)
|
||||
{
|
||||
@ -4344,7 +4344,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
HRESULT hr;
|
||||
|
||||
if (FAILED(hr = device->shader_backend->shader_alloc_private(device,
|
||||
@@ -4341,6 +4983,7 @@
|
||||
@@ -4370,6 +5012,7 @@
|
||||
return hr;
|
||||
}
|
||||
|
||||
@ -4352,7 +4352,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
hr = wined3d_cs_emit_create_swapchain_context(device->cs, swapchain);
|
||||
if (FAILED(hr))
|
||||
{
|
||||
@@ -4351,6 +4994,34 @@
|
||||
@@ -4380,6 +5023,34 @@
|
||||
}
|
||||
|
||||
wined3d_cs_emit_create_dummy_textures(device->cs);
|
||||
@ -4387,7 +4387,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
|
||||
return WINED3D_OK;
|
||||
}
|
||||
@@ -4369,9 +5040,11 @@
|
||||
@@ -4398,9 +5069,11 @@
|
||||
TRACE("device %p, swapchain_desc %p, mode %p, callback %p, reset_state %#x.\n",
|
||||
device, swapchain_desc, mode, callback, reset_state);
|
||||
|
||||
@ -4399,7 +4399,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
if (!(swapchain = wined3d_device_get_swapchain(device, 0)))
|
||||
{
|
||||
ERR("Failed to get the first implicit swapchain.\n");
|
||||
@@ -4386,9 +5059,21 @@
|
||||
@@ -4415,9 +5088,21 @@
|
||||
wined3d_texture_decref(device->logo_texture);
|
||||
device->logo_texture = NULL;
|
||||
}
|
||||
@ -4421,7 +4421,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
{
|
||||
for (i = 0; i < device->adapter->gl_info.limits.buffers; ++i)
|
||||
{
|
||||
@@ -4397,6 +5082,7 @@
|
||||
@@ -4426,6 +5111,7 @@
|
||||
}
|
||||
wined3d_device_set_depth_stencil_view(device, NULL);
|
||||
|
||||
@ -4429,7 +4429,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
if (reset_state)
|
||||
{
|
||||
state_unbind_resources(&device->state);
|
||||
@@ -4406,6 +5092,12 @@
|
||||
@@ -4435,6 +5121,12 @@
|
||||
{
|
||||
wined3d_texture_decref(device->cs->onscreen_depth_stencil->container);
|
||||
device->cs->onscreen_depth_stencil = NULL;
|
||||
@ -4442,7 +4442,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
}
|
||||
|
||||
if (reset_state)
|
||||
@@ -4418,6 +5110,7 @@
|
||||
@@ -4447,6 +5139,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
@ -4450,7 +4450,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
/* Free implicit resources and wait for the command stream before modifying
|
||||
* swapchain parameters. After modifying the swapchain parameters a new GL
|
||||
* context may be acquired by the worker thread. This causes problems in the
|
||||
@@ -4439,6 +5132,7 @@
|
||||
@@ -4468,6 +5161,7 @@
|
||||
}
|
||||
device->cs->ops->finish(device->cs);
|
||||
|
||||
@ -4458,7 +4458,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
TRACE("New params:\n");
|
||||
TRACE("backbuffer_width %u\n", swapchain_desc->backbuffer_width);
|
||||
TRACE("backbuffer_height %u\n", swapchain_desc->backbuffer_height);
|
||||
@@ -4565,6 +5259,13 @@
|
||||
@@ -4594,6 +5288,13 @@
|
||||
swapchain_desc->multisample_type, swapchain_desc->multisample_quality)))
|
||||
return hr;
|
||||
|
||||
@ -4472,7 +4472,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
if (swapchain->desc.enable_auto_depth_stencil)
|
||||
{
|
||||
struct wined3d_resource_desc texture_desc;
|
||||
@@ -4607,6 +5308,13 @@
|
||||
@@ -4636,6 +5337,13 @@
|
||||
wined3d_device_set_depth_stencil_view(device, device->auto_depth_stencil_view);
|
||||
}
|
||||
|
||||
@ -4486,7 +4486,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
if (swapchain->desc.backbuffer_count && FAILED(hr = wined3d_rendertarget_view_create_from_surface(
|
||||
surface_from_resource(wined3d_texture_get_sub_resource(swapchain->back_buffers[0], 0)),
|
||||
NULL, &wined3d_null_parent_ops, &device->back_buffer_view)))
|
||||
@@ -4627,12 +5335,20 @@
|
||||
@@ -4656,12 +5364,20 @@
|
||||
}
|
||||
wined3d_cs_emit_reset_state(device->cs);
|
||||
state_cleanup(&device->state);
|
||||
@ -4507,7 +4507,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
&device->adapter->d3d_info, WINED3D_STATE_INIT_DEFAULT)))
|
||||
ERR("Failed to initialize device state, hr %#x.\n", hr);
|
||||
device->update_state = &device->state;
|
||||
@@ -4641,6 +5357,7 @@
|
||||
@@ -4670,6 +5386,7 @@
|
||||
}
|
||||
else if (device->back_buffer_view)
|
||||
{
|
||||
@ -4515,7 +4515,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
struct wined3d_state *state = &device->state;
|
||||
|
||||
wined3d_device_set_rendertarget_view(device, 0, device->back_buffer_view, FALSE);
|
||||
@@ -4656,6 +5373,24 @@
|
||||
@@ -4685,6 +5402,24 @@
|
||||
state->scissor_rect.left = 0;
|
||||
state->scissor_rect.right = swapchain->desc.backbuffer_width;
|
||||
state->scissor_rect.bottom = swapchain->desc.backbuffer_height;
|
||||
@ -4540,7 +4540,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
wined3d_cs_emit_set_scissor_rect(device->cs, &state->scissor_rect);
|
||||
}
|
||||
|
||||
@@ -4731,6 +5466,10 @@
|
||||
@@ -4760,6 +5495,10 @@
|
||||
|
||||
TRACE("device %p, resource %p, type %s.\n", device, resource, debug_d3dresourcetype(type));
|
||||
|
||||
@ -4551,7 +4551,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
switch (type)
|
||||
{
|
||||
case WINED3D_RTYPE_SURFACE:
|
||||
@@ -4741,6 +5480,7 @@
|
||||
@@ -4770,6 +5509,7 @@
|
||||
|
||||
for (i = 0; i < device->adapter->gl_info.limits.buffers; ++i)
|
||||
{
|
||||
@ -4559,7 +4559,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
if (wined3d_rendertarget_view_get_surface(device->state.fb.render_targets[i]) == surface)
|
||||
{
|
||||
ERR("Surface %p is still in use as render target %u.\n", surface, i);
|
||||
@@ -4752,6 +5492,19 @@
|
||||
@@ -4781,6 +5521,19 @@
|
||||
{
|
||||
ERR("Surface %p is still in use as depth/stencil buffer.\n", surface);
|
||||
device->state.fb.depth_stencil = NULL;
|
||||
@ -4579,7 +4579,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -4914,7 +5667,11 @@
|
||||
@@ -4943,7 +5696,11 @@
|
||||
|
||||
device->blitter = adapter->blitter;
|
||||
|
||||
@ -4591,7 +4591,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
&adapter->d3d_info, WINED3D_STATE_INIT_DEFAULT)))
|
||||
{
|
||||
ERR("Failed to initialize device state, hr %#x.\n", hr);
|
||||
@@ -5013,6 +5770,7 @@
|
||||
@@ -5042,6 +5799,7 @@
|
||||
else
|
||||
return CallWindowProcA(proc, window, message, wparam, lparam);
|
||||
}
|
||||
@ -4599,7 +4599,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
|
||||
/* Context activation is done by the caller */
|
||||
struct wined3d_gl_bo *wined3d_device_get_bo(struct wined3d_device *device, UINT size, GLenum gl_usage,
|
||||
@@ -5066,3 +5824,4 @@
|
||||
@@ -5095,3 +5853,4 @@
|
||||
|
||||
wined3d_device_destroy_bo(device, context, bo);
|
||||
}
|
||||
@ -9769,7 +9769,7 @@ diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
|
||||
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
|
||||
--- a/dlls/wined3d/directx.c
|
||||
+++ b/dlls/wined3d/directx.c
|
||||
@@ -5553,9 +5553,15 @@
|
||||
@@ -5555,9 +5555,15 @@
|
||||
DebugBreak();
|
||||
}
|
||||
|
||||
|
@ -1,3 +1,11 @@
|
||||
wine-staging (1.8~rc3) UNRELEASED; urgency=low
|
||||
* Removed patch for delayed end of DST in Europe/Istanbul (accepted upstream).
|
||||
* Removed patch to add partial implementation of ITfThreadMgrEx_ActivateEx
|
||||
(accepted upstream).
|
||||
* Removed patch to fix access violation in MSYS2 git when cloning repository
|
||||
(accepted upstream).
|
||||
-- Sebastian Lackner <sebastian@fds-team.de> Tue, 01 Dec 2015 02:35:10 +0100
|
||||
|
||||
wine-staging (1.8~rc2) unstable; urgency=low
|
||||
* Updated patch to commit page when handling stack fault, and add tests.
|
||||
* Removed patch to revert "prepare GLresources before calling
|
||||
|
Loading…
x
Reference in New Issue
Block a user