mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-11-21 16:46:54 -08:00
Merge pull request #21 from obsequiousnewt/master
Fixes for patchinstall.sh and more updates
This commit is contained in:
commit
b26132831e
@ -1,2 +1,3 @@
|
||||
Fixes: Implement support for more d3d11 depth options in RSSetState.
|
||||
Fixes: [43848] Implement support for depth bias clamping
|
||||
Disabled: true
|
@ -1 +1,2 @@
|
||||
Fixes: Allow to set pixel format for desktop window
|
||||
Disabled: true
|
@ -1,3 +1,2 @@
|
||||
Fixes: Add stub for D3DXComputeNormalMap
|
||||
Fixes: [38334] Add stub for D3DXFrameFind
|
||||
Fixes: [38352] Add stub for D3DXComputeNormalMap
|
||||
Fixes: [41697] Add stub for D3DXComputeTangent
|
||||
|
@ -167,7 +167,7 @@ index cdf8d586c36..fa66c4c40d2 100644
|
||||
if (wm->ldr.TlsIndex != -1) call_tls_callbacks( wm->ldr.BaseAddress, reason );
|
||||
if (!entry || !(wm->ldr.Flags & LDR_IMAGE_IS_DLL)) return STATUS_SUCCESS;
|
||||
|
||||
@@ -3329,11 +3449,17 @@ void WINAPI LdrInitializeThunk( void *ke
|
||||
@@ -3329,12 +3449,17 @@ void WINAPI LdrInitializeThunk( void *ke
|
||||
debugstr_w(peb->ProcessParameters->ImagePathName.Buffer), status );
|
||||
NtTerminateProcess( GetCurrentProcess(), status );
|
||||
}
|
||||
@ -184,7 +184,7 @@ index cdf8d586c36..fa66c4c40d2 100644
|
||||
- server_init_process_done();
|
||||
+ server_init_process_done();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
--
|
||||
2.14.1
|
||||
|
@ -1,71 +0,0 @@
|
||||
From f650db00efa6e175b314f7e926bd92d0eb1f56b8 Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
Date: Mon, 2 May 2016 15:49:53 +0800
|
||||
Subject: oleaut32: Extend a vtable offset before calling 64-bit DispCallFunc()
|
||||
for a 32-bit typelib.
|
||||
|
||||
DispCallFunc() divides a passed in offset by sizeof(void*) to calculate
|
||||
the actual function offset in the vtable, so in order to make this work
|
||||
under win64 for a 32-bit typelib ITypeInfo::Invoke() needs to compensate
|
||||
the logic by multiplying the offset by 2.
|
||||
---
|
||||
dlls/oleaut32/typelib.c | 22 ++++++++++++++++++++--
|
||||
1 file changed, 20 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/oleaut32/typelib.c b/dlls/oleaut32/typelib.c
|
||||
index 517e515..971f746 100644
|
||||
--- a/dlls/oleaut32/typelib.c
|
||||
+++ b/dlls/oleaut32/typelib.c
|
||||
@@ -3547,6 +3547,10 @@ static ITypeLib2* ITypeLib2_Constructor_MSFT(LPVOID pLib, DWORD dwTLBLength)
|
||||
/* name, eventually add to a hash table */
|
||||
pTypeLibImpl->Name = MSFT_ReadName(&cx, tlbHeader.NameOffset);
|
||||
|
||||
+ TRACE("%s, syskind %d, version %d.%d, flags %04x\n",
|
||||
+ debugstr_w(pTypeLibImpl->Name->str), pTypeLibImpl->syskind,
|
||||
+ pTypeLibImpl->ver_major, pTypeLibImpl->ver_minor, pTypeLibImpl->libflags);
|
||||
+
|
||||
/* help info */
|
||||
pTypeLibImpl->DocString = MSFT_ReadString(&cx, tlbHeader.helpstring);
|
||||
pTypeLibImpl->HelpFile = MSFT_ReadString(&cx, tlbHeader.helpfile);
|
||||
@@ -6960,6 +6964,7 @@ static HRESULT WINAPI ITypeInfo_fnInvoke(
|
||||
UINT cNamedArgs = pDispParams->cNamedArgs;
|
||||
DISPID *rgdispidNamedArgs = pDispParams->rgdispidNamedArgs;
|
||||
UINT vargs_converted=0;
|
||||
+ ULONG_PTR offset;
|
||||
|
||||
hres = S_OK;
|
||||
|
||||
@@ -7204,7 +7209,11 @@ static HRESULT WINAPI ITypeInfo_fnInvoke(
|
||||
break;
|
||||
}
|
||||
}
|
||||
- if (FAILED(hres)) goto func_fail; /* FIXME: we don't free changed types here */
|
||||
+ if (FAILED(hres))
|
||||
+ {
|
||||
+ ERR("failed: %08x\n", hres);
|
||||
+ goto func_fail; /* FIXME: we don't free changed types here */
|
||||
+ }
|
||||
|
||||
/* VT_VOID is a special case for return types, so it is not
|
||||
* handled in the general function */
|
||||
@@ -7217,7 +7226,16 @@ static HRESULT WINAPI ITypeInfo_fnInvoke(
|
||||
if (FAILED(hres)) goto func_fail; /* FIXME: we don't free changed types here */
|
||||
}
|
||||
|
||||
- hres = DispCallFunc(pIUnk, func_desc->oVft & 0xFFFC, func_desc->callconv,
|
||||
+ offset = func_desc->oVft & 0xFFFC;
|
||||
+#ifdef _WIN64
|
||||
+ if (This->pTypeLib->syskind == SYS_WIN32)
|
||||
+ {
|
||||
+ offset *= 2;
|
||||
+ TRACE("extended offset to %#lx for SYS_WIN32\n", offset);
|
||||
+ }
|
||||
+#endif
|
||||
+ TRACE("func_desc->oVft %#x, offset %#lx\n", func_desc->oVft, offset);
|
||||
+ hres = DispCallFunc(pIUnk, offset, func_desc->callconv,
|
||||
V_VT(&varresult), func_desc->cParams, rgvt,
|
||||
prgpvarg, &varresult);
|
||||
|
||||
--
|
||||
2.8.0
|
||||
|
@ -1 +0,0 @@
|
||||
Fixes: [35268] Extend a vtable offset before calling 64-bit DispCallFunc() for a 32-bit typelib
|
@ -114,11 +114,9 @@ patch_enable_all ()
|
||||
enable_crypt32_MS_Root_Certs="$1"
|
||||
enable_d3d10_1_Forwards="$1"
|
||||
enable_d3d11_Deferred_Context="$1"
|
||||
enable_d3d11_Depth_Bias="$1"
|
||||
enable_d3d11_ID3D11Texture1D="$1"
|
||||
enable_d3d11_Silence_FIXMEs="$1"
|
||||
enable_d3d8_ValidateShader="$1"
|
||||
enable_d3d9_DesktopWindow="$1"
|
||||
enable_d3d9_Tests="$1"
|
||||
enable_d3dx9_25_ID3DXEffect="$1"
|
||||
enable_d3dx9_36_32bpp_Alpha_Channel="$1"
|
||||
@ -309,7 +307,6 @@ patch_enable_all ()
|
||||
enable_oleaut32_OleLoadPicture="$1"
|
||||
enable_oleaut32_OleLoadPictureFile="$1"
|
||||
enable_oleaut32_TKIND_COCLASS="$1"
|
||||
enable_oleaut32_Vtable_Offset="$1"
|
||||
enable_oleaut32_x86_64_Marshaller="$1"
|
||||
enable_opengl32_Revert_Disable_Ext="$1"
|
||||
enable_opengl32_glDebugMessageCallback="$1"
|
||||
@ -391,7 +388,6 @@ patch_enable_all ()
|
||||
enable_user32_LR_LOADFROMFILE="$1"
|
||||
enable_user32_ListBox_Size="$1"
|
||||
enable_user32_MessageBox_WS_EX_TOPMOST="$1"
|
||||
enable_user32_Mouse_Message_Hwnd="$1"
|
||||
enable_user32_PNG_Support="$1"
|
||||
enable_user32_Refresh_MDI_Menus="$1"
|
||||
enable_user32_ScrollWindowEx="$1"
|
||||
@ -437,7 +433,6 @@ patch_enable_all ()
|
||||
enable_wined3d_Accounting="$1"
|
||||
enable_wined3d_CSMT_Helper="$1"
|
||||
enable_wined3d_CSMT_Main="$1"
|
||||
enable_wined3d_Copy_Resource_Typeless="$1"
|
||||
enable_wined3d_Core_Context="$1"
|
||||
enable_wined3d_DXTn="$1"
|
||||
enable_wined3d_Dual_Source_Blending="$1"
|
||||
@ -600,9 +595,6 @@ patch_enable ()
|
||||
d3d11-Deferred_Context)
|
||||
enable_d3d11_Deferred_Context="$2"
|
||||
;;
|
||||
d3d11-Depth_Bias)
|
||||
enable_d3d11_Depth_Bias="$2"
|
||||
;;
|
||||
d3d11-ID3D11Texture1D)
|
||||
enable_d3d11_ID3D11Texture1D="$2"
|
||||
;;
|
||||
@ -612,9 +604,6 @@ patch_enable ()
|
||||
d3d8-ValidateShader)
|
||||
enable_d3d8_ValidateShader="$2"
|
||||
;;
|
||||
d3d9-DesktopWindow)
|
||||
enable_d3d9_DesktopWindow="$2"
|
||||
;;
|
||||
d3d9-Tests)
|
||||
enable_d3d9_Tests="$2"
|
||||
;;
|
||||
@ -1185,9 +1174,6 @@ patch_enable ()
|
||||
oleaut32-TKIND_COCLASS)
|
||||
enable_oleaut32_TKIND_COCLASS="$2"
|
||||
;;
|
||||
oleaut32-Vtable_Offset)
|
||||
enable_oleaut32_Vtable_Offset="$2"
|
||||
;;
|
||||
oleaut32-x86_64_Marshaller)
|
||||
enable_oleaut32_x86_64_Marshaller="$2"
|
||||
;;
|
||||
@ -1431,9 +1417,6 @@ patch_enable ()
|
||||
user32-MessageBox_WS_EX_TOPMOST)
|
||||
enable_user32_MessageBox_WS_EX_TOPMOST="$2"
|
||||
;;
|
||||
user32-Mouse_Message_Hwnd)
|
||||
enable_user32_Mouse_Message_Hwnd="$2"
|
||||
;;
|
||||
user32-PNG_Support)
|
||||
enable_user32_PNG_Support="$2"
|
||||
;;
|
||||
@ -1569,9 +1552,6 @@ patch_enable ()
|
||||
wined3d-CSMT_Main)
|
||||
enable_wined3d_CSMT_Main="$2"
|
||||
;;
|
||||
wined3d-Copy_Resource_Typeless)
|
||||
enable_wined3d_Copy_Resource_Typeless="$2"
|
||||
;;
|
||||
wined3d-Core_Context)
|
||||
enable_wined3d_Core_Context="$2"
|
||||
;;
|
||||
@ -2172,13 +2152,6 @@ if test "$enable_wined3d_Indexed_Vertex_Blending" -eq 1; then
|
||||
enable_wined3d_WINED3D_RS_COLORWRITEENABLE=1
|
||||
fi
|
||||
|
||||
if test "$enable_wined3d_WINED3D_RS_COLORWRITEENABLE" -eq 1; then
|
||||
if test "$enable_d3d11_Depth_Bias" -gt 1; then
|
||||
abort "Patchset d3d11-Depth_Bias disabled, but wined3d-WINED3D_RS_COLORWRITEENABLE depends on that."
|
||||
fi
|
||||
enable_d3d11_Depth_Bias=1
|
||||
fi
|
||||
|
||||
if test "$enable_wined3d_CSMT_Helper" -eq 1; then
|
||||
if test "$enable_d3d11_Deferred_Context" -gt 1; then
|
||||
abort "Patchset d3d11-Deferred_Context disabled, but wined3d-CSMT_Helper depends on that."
|
||||
@ -2198,9 +2171,6 @@ if test "$enable_wined3d_CSMT_Helper" -eq 1; then
|
||||
if test "$enable_wined3d_Accounting" -gt 1; then
|
||||
abort "Patchset wined3d-Accounting disabled, but wined3d-CSMT_Helper depends on that."
|
||||
fi
|
||||
if test "$enable_wined3d_Copy_Resource_Typeless" -gt 1; then
|
||||
abort "Patchset wined3d-Copy_Resource_Typeless disabled, but wined3d-CSMT_Helper depends on that."
|
||||
fi
|
||||
if test "$enable_wined3d_DXTn" -gt 1; then
|
||||
abort "Patchset wined3d-DXTn disabled, but wined3d-CSMT_Helper depends on that."
|
||||
fi
|
||||
@ -2225,7 +2195,6 @@ if test "$enable_wined3d_CSMT_Helper" -eq 1; then
|
||||
enable_ntdll_DllRedirects=1
|
||||
enable_wined3d_1DTextures=1
|
||||
enable_wined3d_Accounting=1
|
||||
enable_wined3d_Copy_Resource_Typeless=1
|
||||
enable_wined3d_DXTn=1
|
||||
enable_wined3d_Dual_Source_Blending=1
|
||||
enable_wined3d_GenerateMips=1
|
||||
@ -2235,13 +2204,9 @@ if test "$enable_wined3d_CSMT_Helper" -eq 1; then
|
||||
fi
|
||||
|
||||
if test "$enable_wined3d_GenerateMips" -eq 1; then
|
||||
if test "$enable_wined3d_Copy_Resource_Typeless" -gt 1; then
|
||||
abort "Patchset wined3d-Copy_Resource_Typeless disabled, but wined3d-GenerateMips depends on that."
|
||||
fi
|
||||
if test "$enable_wined3d_Dual_Source_Blending" -gt 1; then
|
||||
abort "Patchset wined3d-Dual_Source_Blending disabled, but wined3d-GenerateMips depends on that."
|
||||
fi
|
||||
enable_wined3d_Copy_Resource_Typeless=1
|
||||
enable_wined3d_Dual_Source_Blending=1
|
||||
fi
|
||||
|
||||
@ -2259,24 +2224,6 @@ if test "$enable_wined3d_Viewports" -eq 1; then
|
||||
enable_wined3d_Core_Context=1
|
||||
fi
|
||||
|
||||
if test "$enable_wined3d_Core_Context" -eq 1; then
|
||||
if test "$enable_d3d11_Depth_Bias" -gt 1; then
|
||||
abort "Patchset d3d11-Depth_Bias disabled, but wined3d-Core_Context depends on that."
|
||||
fi
|
||||
enable_d3d11_Depth_Bias=1
|
||||
fi
|
||||
|
||||
if test "$enable_wined3d_Copy_Resource_Typeless" -eq 1; then
|
||||
if test "$enable_d3d11_Depth_Bias" -gt 1; then
|
||||
abort "Patchset d3d11-Depth_Bias disabled, but wined3d-Copy_Resource_Typeless depends on that."
|
||||
fi
|
||||
if test "$enable_wined3d_1DTextures" -gt 1; then
|
||||
abort "Patchset wined3d-1DTextures disabled, but wined3d-Copy_Resource_Typeless depends on that."
|
||||
fi
|
||||
enable_d3d11_Depth_Bias=1
|
||||
enable_wined3d_1DTextures=1
|
||||
fi
|
||||
|
||||
if test "$enable_winebuild_Fake_Dlls" -eq 1; then
|
||||
if test "$enable_ntdll_User_Shared_Data" -gt 1; then
|
||||
abort "Patchset ntdll-User_Shared_Data disabled, but winebuild-Fake_Dlls depends on that."
|
||||
@ -2916,12 +2863,12 @@ if test "$enable_Pipelight" -eq 1; then
|
||||
patch_apply Pipelight/0001-winex11-Implement-X11DRV_FLUSH_GDI_DISPLAY-ExtEscape-c.patch
|
||||
patch_apply Pipelight/0002-user32-Decrease-minimum-SetTimer-interval-to-5-ms.patch
|
||||
patch_apply Pipelight/0003-wined3d-allow-changing-strict-drawing-through-an-exp.patch
|
||||
#patch_apply Pipelight/0004-winex11.drv-Indicate-direct-rendering-through-OpenGL.patch
|
||||
patch_apply Pipelight/0004-winex11.drv-Indicate-direct-rendering-through-OpenGL.patch
|
||||
(
|
||||
printf '%s\n' '+ { "Sebastian Lackner", "winex11: Implement X11DRV_FLUSH_GDI_DISPLAY ExtEscape command.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "user32: Decrease minimum SetTimer interval to 5 ms.", 2 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "wined3d: Allow changing strict drawing through an exported function.", 1 },';
|
||||
# printf '%s\n' '+ { "Michael Müller", "winex11.drv: Indicate direct rendering through OpenGL extension.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "winex11.drv: Indicate direct rendering through OpenGL extension.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
@ -3756,30 +3703,6 @@ if test "$enable_d3d11_Deferred_Context" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset d3d11-Depth_Bias
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#43848] Implement support for depth bias clamping
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/d3d11/device.c, dlls/d3d11/tests/d3d11.c, dlls/dxgi/factory.c, dlls/wined3d/cs.c, dlls/wined3d/directx.c,
|
||||
# | dlls/wined3d/state.c, dlls/wined3d/stateblock.c, dlls/wined3d/utils.c, dlls/wined3d/wined3d_gl.h, include/wine/wined3d.h
|
||||
# |
|
||||
if test "$enable_d3d11_Depth_Bias" -eq 1; then
|
||||
patch_apply d3d11-Depth_Bias/0002-d3d11-tests-Add-some-basic-depth-tests.patch
|
||||
# patch_apply d3d11-Depth_Bias/0003-d3d11-Implement-depth-bias-and-slope.patch
|
||||
# patch_apply d3d11-Depth_Bias/0004-d3d11-Add-support-for-SlopeScaledDepthBias-in-RSSetS.patch
|
||||
# patch_apply d3d11-Depth_Bias/0005-d3d11-tests-Add-basic-test-for-depth-bias-clamping.patch
|
||||
# patch_apply d3d11-Depth_Bias/0006-wined3d-Add-support-for-depth-bias-clamping.patch
|
||||
(
|
||||
printf '%s\n' '+ { "Michael Müller", "d3d11/tests: Add some basic depth tests.", 1 },';
|
||||
# printf '%s\n' '+ { "Michael Müller", "d3d11: Implement depth bias and slope.", 1 },';
|
||||
# printf '%s\n' '+ { "Michael Müller", "d3d11: Add support for SlopeScaledDepthBias in RSSetState.", 1 },';
|
||||
# printf '%s\n' '+ { "Michael Müller", "d3d11/tests: Add basic test for depth bias clamping.", 1 },';
|
||||
# printf '%s\n' '+ { "Michael Müller", "wined3d: Add support for depth bias clamping.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset d3d11-ID3D11Texture1D
|
||||
# |
|
||||
# | This patchset has the following (direct or indirect) dependencies:
|
||||
@ -3868,18 +3791,6 @@ if test "$enable_d3d8_ValidateShader" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset d3d9-DesktopWindow
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/d3d10_1/tests/d3d10_1.c, dlls/d3d11/tests/d3d11.c, dlls/d3d9/tests/device.c, dlls/winex11.drv/opengl.c
|
||||
# |
|
||||
#if test "$enable_d3d9_DesktopWindow" -eq 1; then
|
||||
# patch_apply d3d9-DesktopWindow/0001-winex11.drv-Allow-changing-the-opengl-pixel-format-o.patch
|
||||
# (
|
||||
# printf '%s\n' '+ { "Michael Müller", "winex11.drv: Allow changing the opengl pixel format on the desktop window.", 1 },';
|
||||
# ) >> "$patchlist"
|
||||
#fi
|
||||
|
||||
# Patchset d3d9-Tests
|
||||
# |
|
||||
# | Modified files:
|
||||
@ -4008,7 +3919,7 @@ fi
|
||||
# Patchset d3dx9_36-D3DXStubs
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#38334] Add stub for D3DXFrameFind
|
||||
# | * [#38352] Add stub for D3DXComputeNormalMap
|
||||
# | * [#41697] Add stub for D3DXComputeTangent
|
||||
# |
|
||||
# | Modified files:
|
||||
@ -5975,6 +5886,7 @@ fi
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#9158] Support for DOS hidden/system file attributes
|
||||
# | * [#15679] cygwin symlinks not working in wine
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * configure.ac, dlls/ntdll/directory.c, dlls/ntdll/file.c, dlls/ntdll/ntdll_misc.h, dlls/ntdll/tests/directory.c,
|
||||
@ -6004,7 +5916,7 @@ fi
|
||||
# Patchset ntdll-Dealloc_Thread_Stack
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/ntdll/ntdll_misc.h, dlls/ntdll/thread.c, dlls/ntdll/virtual.c
|
||||
# | * dlls/ntdll/ntdll_misc.h, dlls/ntdll/virtual.c
|
||||
# |
|
||||
if test "$enable_ntdll_Dealloc_Thread_Stack" -eq 1; then
|
||||
patch_apply ntdll-Dealloc_Thread_Stack/0001-ntdll-Do-not-allow-to-allocate-thread-stack-for-curr.patch
|
||||
@ -6598,9 +6510,9 @@ fi
|
||||
# | * [#35561] MSYS2 expects correct handling of WRITECOPY memory protection
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/advapi32/crypt.c, dlls/advapi32/tests/security.c, dlls/ntdll/ntdll_misc.h, dlls/ntdll/server.c,
|
||||
# | dlls/ntdll/signal_arm.c, dlls/ntdll/signal_arm64.c, dlls/ntdll/signal_i386.c, dlls/ntdll/signal_powerpc.c,
|
||||
# | dlls/ntdll/signal_x86_64.c, dlls/ntdll/thread.c, dlls/ntdll/virtual.c
|
||||
# | * dlls/advapi32/crypt.c, dlls/advapi32/tests/security.c, dlls/ntdll/server.c, dlls/ntdll/signal_arm.c,
|
||||
# | dlls/ntdll/signal_arm64.c, dlls/ntdll/signal_i386.c, dlls/ntdll/signal_powerpc.c, dlls/ntdll/signal_x86_64.c,
|
||||
# | dlls/ntdll/thread.c, dlls/ntdll/virtual.c
|
||||
# |
|
||||
if test "$enable_ntdll_WRITECOPY" -eq 1; then
|
||||
patch_apply ntdll-WRITECOPY/0001-ntdll-Trigger-write-watches-before-passing-userdata-.patch
|
||||
@ -7103,21 +7015,6 @@ if test "$enable_oleaut32_TKIND_COCLASS" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset oleaut32-Vtable_Offset
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#35268] Extend a vtable offset before calling 64-bit DispCallFunc() for a 32-bit typelib
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/oleaut32/typelib.c
|
||||
# |
|
||||
if test "$enable_oleaut32_Vtable_Offset" -eq 1; then
|
||||
patch_apply oleaut32-Vtable_Offset/0001-oleaut32-Extend-a-vtable-offset-before-calling-64-bi.patch
|
||||
(
|
||||
printf '%s\n' '+ { "Dmitry Timoshkov", "oleaut32: Extend a vtable offset before calling 64-bit DispCallFunc() for a 32-bit typelib.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset oleaut32-x86_64_Marshaller
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
@ -8475,31 +8372,6 @@ if test "$enable_user32_MessageBox_WS_EX_TOPMOST" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset user32-Mouse_Message_Hwnd
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#22458] Fix issues with inserting symbols by clicking on center in Word 2007 & 2010
|
||||
# | * [#12007] Fix issues with dragging layers between images in Adobe Photoshop 7.0
|
||||
# | * [#9512] Make sure popups don't block access to objects underneath in DVDPro
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/user32/message.c, dlls/user32/tests/input.c, dlls/winex11.drv/bitblt.c, server/protocol.def, server/window.c
|
||||
# |
|
||||
#if test "$enable_user32_Mouse_Message_Hwnd" -eq 1; then
|
||||
# patch_apply user32-Mouse_Message_Hwnd/0001-user32-Try-harder-to-find-a-target-for-mouse-message.patch
|
||||
# patch_apply user32-Mouse_Message_Hwnd/0002-user32-tests-Add-tests-for-clicking-through-layered-.patch
|
||||
# patch_apply user32-Mouse_Message_Hwnd/0003-user32-tests-Add-tests-for-window-region-of-layered-.patch
|
||||
# patch_apply user32-Mouse_Message_Hwnd/0004-user32-tests-Add-tests-for-DC-region.patch
|
||||
# patch_apply user32-Mouse_Message_Hwnd/0005-server-Add-support-for-a-layered-window-region.-v2.patch
|
||||
# (
|
||||
# printf '%s\n' '+ { "Dmitry Timoshkov", "user32: Try harder to find a target for mouse messages.", 1 },';
|
||||
# printf '%s\n' '+ { "Sebastian Lackner", "user32/tests: Add tests for clicking through layered window.", 1 },';
|
||||
# printf '%s\n' '+ { "Sebastian Lackner", "user32/tests: Add tests for window region of layered windows.", 1 },';
|
||||
# printf '%s\n' '+ { "Sebastian Lackner", "user32/tests: Add tests for DC region.", 1 },';
|
||||
# printf '%s\n' '+ { "Dmitry Timoshkov", "server: Add support for a layered window region.", 3 },';
|
||||
# ) >> "$patchlist"
|
||||
#fi
|
||||
|
||||
# Patchset user32-PNG_Support
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
@ -8879,9 +8751,7 @@ if test "$enable_windowscodecs_GIF_Encoder" -eq 1; then
|
||||
printf '%s\n' '+ { "Dmitry Timoshkov", "windowscodecs: Implement IWICBitmapEncoder::GetEncoderInfo in BMP encoder.", 1 },';
|
||||
printf '%s\n' '+ { "Dmitry Timoshkov", "windowscodecs: Implement IWICBitmapEncoderInfo::GetFileExtensions.", 1 },';
|
||||
printf '%s\n' '+ { "Dmitry Timoshkov", "windowscodecs: Implement IWICBitmapEncoder::GetEncoderInfo in JPEG encoder.", 1 },';
|
||||
printf '%s\n' '+ { "Dmitry Timoshkov", "windowscodecs: Avoid crashing if no IPropertyBag2 was passed to IWICBitmapEncoder::CreateNewFrame in JPEG encoder.", 1 },';
|
||||
printf '%s\n' '+ { "Dmitry Timoshkov", "windowscodecs: Implement IWICBitmapEncoder::GetEncoderInfo in TIFF encoder.", 1 },';
|
||||
printf '%s\n' '+ { "Dmitry Timoshkov", "windowscodecs: Avoid crashing if no IPropertyBag2 was passed to IWICBitmapEncoder::CreateNewFrame in TIFF encoder.", 1 },';
|
||||
printf '%s\n' '+ { "Dmitry Timoshkov", "windowscodecs: Add initial implementation of the GIF encoder.", 1 },';
|
||||
printf '%s\n' '+ { "Dmitry Timoshkov", "gdiplus: Fix a typo in GIF container format passed to encode_image_wic().", 1 },';
|
||||
printf '%s\n' '+ { "Dmitry Timoshkov", "windowscodecs: Initialize empty property bag in GIF encoder'\''s CreateNewFrame implementation.", 1 },';
|
||||
@ -9285,37 +9155,8 @@ if test "$enable_wined3d_Accounting" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset wined3d-Copy_Resource_Typeless
|
||||
# |
|
||||
# | This patchset has the following (direct or indirect) dependencies:
|
||||
# | * d3d11-Depth_Bias, wined3d-1DTextures
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#43264] Implement copying resources between compatible formats
|
||||
# | * [#42099] Implement copying resources between compatible formats
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/d3d11/tests/d3d11.c, dlls/wined3d/cs.c, dlls/wined3d/device.c, dlls/wined3d/directx.c, dlls/wined3d/utils.c,
|
||||
# | dlls/wined3d/wined3d_gl.h, dlls/wined3d/wined3d_private.h
|
||||
# |
|
||||
if test "$enable_wined3d_Copy_Resource_Typeless" -eq 1; then
|
||||
patch_apply wined3d-Copy_Resource_Typeless/0001-d3d11-tests-Add-more-advanced-CopySubresourceRegion-.patch
|
||||
patch_apply wined3d-Copy_Resource_Typeless/0002-wined3d-Add-WINED3DFMT_R8G8B8A8_SNORM-to-WINED3DFMT_.patch
|
||||
patch_apply wined3d-Copy_Resource_Typeless/0003-wined3d-Implement-copying-sub-resources-between-comp.patch
|
||||
patch_apply wined3d-Copy_Resource_Typeless/0004-wined3d-Use-wined3d_cs_emit_copy_sub_resource-also-f.patch
|
||||
(
|
||||
printf '%s\n' '+ { "Michael Müller", "d3d11/tests: Add more advanced CopySubresourceRegion tests.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "wined3d: Add WINED3DFMT_R8G8B8A8_SNORM to WINED3DFMT_R8G8B8A8_TYPELESS group.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "wined3d: Implement copying sub resources between compatible formats.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "wined3d: Use wined3d_cs_emit_copy_sub_resource also for wined3d_device_copy_resource.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset wined3d-Core_Context
|
||||
# |
|
||||
# | This patchset has the following (direct or indirect) dependencies:
|
||||
# | * d3d11-Depth_Bias
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/dxgi/factory.c, dlls/wined3d/directx.c, include/wine/wined3d.h
|
||||
# |
|
||||
@ -9329,7 +9170,7 @@ fi
|
||||
# Patchset wined3d-Viewports
|
||||
# |
|
||||
# | This patchset has the following (direct or indirect) dependencies:
|
||||
# | * d3d11-Depth_Bias, wined3d-Core_Context
|
||||
# | * wined3d-Core_Context
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/d3d11/tests/d3d11.c, dlls/d3d8/directx.c, dlls/d3d9/directx.c, dlls/ddraw/ddraw_private.h, dlls/wined3d/state.c,
|
||||
@ -9345,7 +9186,7 @@ fi
|
||||
# Patchset wined3d-Dual_Source_Blending
|
||||
# |
|
||||
# | This patchset has the following (direct or indirect) dependencies:
|
||||
# | * d3d11-Depth_Bias, wined3d-Core_Context, wined3d-Viewports
|
||||
# | * wined3d-Core_Context, wined3d-Viewports
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/d3d11/tests/d3d11.c, dlls/wined3d/context.c, dlls/wined3d/directx.c, dlls/wined3d/glsl_shader.c,
|
||||
@ -9365,8 +9206,7 @@ fi
|
||||
# Patchset wined3d-GenerateMips
|
||||
# |
|
||||
# | This patchset has the following (direct or indirect) dependencies:
|
||||
# | * d3d11-Depth_Bias, wined3d-1DTextures, wined3d-Copy_Resource_Typeless, wined3d-Core_Context, wined3d-Viewports, wined3d-
|
||||
# | Dual_Source_Blending
|
||||
# | * wined3d-Core_Context, wined3d-Viewports, wined3d-Dual_Source_Blending
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/d3d11/device.c, dlls/d3d11/tests/d3d11.c, dlls/wined3d/cs.c, dlls/wined3d/device.c, dlls/wined3d/texture.c,
|
||||
@ -9432,9 +9272,8 @@ fi
|
||||
# |
|
||||
# | This patchset has the following (direct or indirect) dependencies:
|
||||
# | * wined3d-1DTextures, d3d11-Deferred_Context, d3d9-Tests, makedep-PARENTSPEC, ntdll-DllOverrides_WOW64, ntdll-
|
||||
# | Loader_Machine_Type, ntdll-DllRedirects, wined3d-Accounting, d3d11-Depth_Bias, wined3d-Copy_Resource_Typeless, wined3d-
|
||||
# | DXTn, wined3d-Core_Context, wined3d-Viewports, wined3d-Dual_Source_Blending, wined3d-GenerateMips, wined3d-QUERY_Stubs,
|
||||
# | wined3d-Silence_FIXMEs, wined3d-UAV_Counters
|
||||
# | Loader_Machine_Type, ntdll-DllRedirects, wined3d-Accounting, wined3d-DXTn, wined3d-Core_Context, wined3d-Viewports,
|
||||
# | wined3d-Dual_Source_Blending, wined3d-GenerateMips, wined3d-QUERY_Stubs, wined3d-Silence_FIXMEs, wined3d-UAV_Counters
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * configure.ac, dlls/wined3d-csmt/Makefile.in, dlls/wined3d-csmt/version.rc
|
||||
@ -9460,9 +9299,6 @@ fi
|
||||
|
||||
# Patchset wined3d-WINED3D_RS_COLORWRITEENABLE
|
||||
# |
|
||||
# | This patchset has the following (direct or indirect) dependencies:
|
||||
# | * d3d11-Depth_Bias
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/d3d11/device.c, dlls/d3d11/state.c, dlls/wined3d/context.c, dlls/wined3d/device.c, dlls/wined3d/drawprim.c,
|
||||
# | dlls/wined3d/state.c, dlls/wined3d/stateblock.c, dlls/wined3d/surface.c, dlls/wined3d/utils.c,
|
||||
@ -9478,7 +9314,7 @@ fi
|
||||
# Patchset wined3d-Indexed_Vertex_Blending
|
||||
# |
|
||||
# | This patchset has the following (direct or indirect) dependencies:
|
||||
# | * d3d11-Depth_Bias, wined3d-WINED3D_RS_COLORWRITEENABLE
|
||||
# | * wined3d-WINED3D_RS_COLORWRITEENABLE
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#39057] Support for indexed vertex blending
|
||||
@ -9599,9 +9435,9 @@ fi
|
||||
# |
|
||||
# | This patchset has the following (direct or indirect) dependencies:
|
||||
# | * wined3d-1DTextures, d3d11-Deferred_Context, d3d9-Tests, makedep-PARENTSPEC, ntdll-DllOverrides_WOW64, ntdll-
|
||||
# | Loader_Machine_Type, ntdll-DllRedirects, wined3d-Accounting, d3d11-Depth_Bias, wined3d-Copy_Resource_Typeless, wined3d-
|
||||
# | DXTn, wined3d-Core_Context, wined3d-Viewports, wined3d-Dual_Source_Blending, wined3d-GenerateMips, wined3d-QUERY_Stubs,
|
||||
# | wined3d-Silence_FIXMEs, wined3d-UAV_Counters, wined3d-CSMT_Helper
|
||||
# | Loader_Machine_Type, ntdll-DllRedirects, wined3d-Accounting, wined3d-DXTn, wined3d-Core_Context, wined3d-Viewports,
|
||||
# | wined3d-Dual_Source_Blending, wined3d-GenerateMips, wined3d-QUERY_Stubs, wined3d-Silence_FIXMEs, wined3d-UAV_Counters,
|
||||
# | wined3d-CSMT_Helper
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#11674] Support for CSMT (command stream) to increase graphic performance
|
||||
|
@ -1,3 +1,4 @@
|
||||
Fixes: [22458] Fix issues with inserting symbols by clicking on center in Word 2007 & 2010
|
||||
Fixes: [12007] Fix issues with dragging layers between images in Adobe Photoshop 7.0
|
||||
Fixes: [9512] Make sure popups don't block access to objects underneath in DVDPro
|
||||
Disabled: true
|
@ -1,36 +0,0 @@
|
||||
From 4d72031dc8739e38d0b7f316cd2e6908ff6ad369 Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
Date: Sun, 16 Oct 2016 17:36:32 +0800
|
||||
Subject: windowscodecs: Avoid crashing if no IPropertyBag2 was passed to
|
||||
IWICBitmapEncoder::CreateNewFrame in JPEG encoder.
|
||||
|
||||
---
|
||||
dlls/windowscodecs/jpegformat.c | 11 +++++++----
|
||||
1 file changed, 7 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/dlls/windowscodecs/jpegformat.c b/dlls/windowscodecs/jpegformat.c
|
||||
index 53fa44f8094..a787a2c4c24 100644
|
||||
--- a/dlls/windowscodecs/jpegformat.c
|
||||
+++ b/dlls/windowscodecs/jpegformat.c
|
||||
@@ -1478,11 +1478,14 @@ static HRESULT WINAPI JpegEncoder_CreateNewFrame(IWICBitmapEncoder *iface,
|
||||
opts[5].vt = VT_BOOL;
|
||||
opts[5].dwType = PROPBAG2_TYPE_DATA;
|
||||
|
||||
- hr = CreatePropertyBag2(opts, 6, ppIEncoderOptions);
|
||||
- if (FAILED(hr))
|
||||
+ if (ppIEncoderOptions)
|
||||
{
|
||||
- LeaveCriticalSection(&This->lock);
|
||||
- return hr;
|
||||
+ hr = CreatePropertyBag2(opts, 6, ppIEncoderOptions);
|
||||
+ if (FAILED(hr))
|
||||
+ {
|
||||
+ LeaveCriticalSection(&This->lock);
|
||||
+ return hr;
|
||||
+ }
|
||||
}
|
||||
|
||||
This->frame_count = 1;
|
||||
--
|
||||
2.13.1
|
||||
|
@ -1,35 +0,0 @@
|
||||
From c89c3a6950bb3514bef044df6488000861a261e4 Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
Date: Sun, 16 Oct 2016 17:40:14 +0800
|
||||
Subject: windowscodecs: Avoid crashing if no IPropertyBag2 was passed to
|
||||
IWICBitmapEncoder::CreateNewFrame in TIFF encoder.
|
||||
|
||||
---
|
||||
dlls/windowscodecs/tiffformat.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/windowscodecs/tiffformat.c b/dlls/windowscodecs/tiffformat.c
|
||||
index 4946e4d..5071147 100644
|
||||
--- a/dlls/windowscodecs/tiffformat.c
|
||||
+++ b/dlls/windowscodecs/tiffformat.c
|
||||
@@ -1938,7 +1938,7 @@ static HRESULT WINAPI TiffEncoder_CreateNewFrame(IWICBitmapEncoder *iface,
|
||||
hr = E_FAIL;
|
||||
}
|
||||
|
||||
- if (SUCCEEDED(hr))
|
||||
+ if (SUCCEEDED(hr) && ppIEncoderOptions)
|
||||
{
|
||||
PROPBAG2 opts[2]= {{0}};
|
||||
opts[0].pstrName = (LPOLESTR)wszTiffCompressionMethod;
|
||||
@@ -1997,7 +1997,7 @@ static HRESULT WINAPI TiffEncoder_CreateNewFrame(IWICBitmapEncoder *iface,
|
||||
else
|
||||
hr = E_OUTOFMEMORY;
|
||||
|
||||
- if (FAILED(hr))
|
||||
+ if (FAILED(hr) && ppIEncoderOptions)
|
||||
{
|
||||
IPropertyBag2_Release(*ppIEncoderOptions);
|
||||
*ppIEncoderOptions = NULL;
|
||||
--
|
||||
2.9.0
|
||||
|
@ -3,7 +3,6 @@ Depends: wined3d-DXTn
|
||||
Depends: wined3d-QUERY_Stubs
|
||||
Depends: wined3d-1DTextures
|
||||
Depends: wined3d-Silence_FIXMEs
|
||||
Depends: wined3d-Copy_Resource_Typeless
|
||||
Depends: wined3d-UAV_Counters
|
||||
Depends: wined3d-Dual_Source_Blending
|
||||
Depends: wined3d-GenerateMips
|
||||
|
@ -1,180 +0,0 @@
|
||||
From 2e62577012d1fae93b3fabf6c4e1ef932b097aa8 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sun, 9 Jul 2017 00:58:50 +0200
|
||||
Subject: d3d11/tests: Add more advanced CopySubresourceRegion tests.
|
||||
|
||||
---
|
||||
dlls/d3d11/tests/d3d11.c | 123 ++++++++++++++++++++++++++++++++++++++++++++++-
|
||||
1 file changed, 121 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3d11/tests/d3d11.c b/dlls/d3d11/tests/d3d11.c
|
||||
index f15d4873ab1..5a6bd46b905 100644
|
||||
--- a/dlls/d3d11/tests/d3d11.c
|
||||
+++ b/dlls/d3d11/tests/d3d11.c
|
||||
@@ -10446,6 +10446,7 @@ static void test_copy_subresource_region(void)
|
||||
struct d3d11_test_context test_context;
|
||||
ID3D11Buffer *dst_buffer, *src_buffer;
|
||||
D3D11_SUBRESOURCE_DATA resource_data;
|
||||
+ D3D11_MAPPED_SUBRESOURCE map_desc;
|
||||
D3D11_TEXTURE2D_DESC texture_desc;
|
||||
ID3D11SamplerState *sampler_state;
|
||||
ID3D11ShaderResourceView *ps_srv;
|
||||
@@ -10455,7 +10456,7 @@ static void test_copy_subresource_region(void)
|
||||
struct resource_readback rb;
|
||||
ID3D11PixelShader *ps;
|
||||
ID3D11Device *device;
|
||||
- unsigned int i, j;
|
||||
+ unsigned int i, j, k;
|
||||
D3D11_BOX box;
|
||||
DWORD color;
|
||||
HRESULT hr;
|
||||
@@ -10512,13 +10513,19 @@ static void test_copy_subresource_region(void)
|
||||
0x0010000a, 0x00000000, 0x0100003e,
|
||||
};
|
||||
static const float red[] = {1.0f, 0.0f, 0.0f, 0.5f};
|
||||
- static const DWORD initial_data[16] = {0};
|
||||
+ static const DWORD initial_data[32] = {0};
|
||||
static const DWORD bitmap_data[] =
|
||||
{
|
||||
+ /* 1. layer */
|
||||
0xff0000ff, 0xff00ffff, 0xff00ff00, 0xffffff00,
|
||||
0xffff0000, 0xffff00ff, 0xff000000, 0xff7f7f7f,
|
||||
0xffffffff, 0xffffffff, 0xffffffff, 0xff000000,
|
||||
0xffffffff, 0xff000000, 0xff000000, 0xff000000,
|
||||
+ /* second layer / mip map level / ... */
|
||||
+ 0xffff44ff, 0xff00edd0, 0xfff22fff, 0xff0ccc00,
|
||||
+ 0xff8f8f8f, 0xff00ffff, 0xff000120, 0xffff1234,
|
||||
+ 0xff0560ff, 0xffff34ff, 0xff12ff00, 0xffffff00,
|
||||
+ 0xffff2222, 0xfff1111f, 0xff031200, 0x0ff02200,
|
||||
};
|
||||
static const DWORD expected_colors[] =
|
||||
{
|
||||
@@ -10527,6 +10534,34 @@ static void test_copy_subresource_region(void)
|
||||
0xff7f7f7f, 0xffff0000, 0xffff00ff, 0xff7f7f7f,
|
||||
0xffffffff, 0xffffffff, 0xff000000, 0x00000000,
|
||||
};
|
||||
+ struct
|
||||
+ {
|
||||
+ DXGI_FORMAT src_format;
|
||||
+ DXGI_FORMAT dst_format;
|
||||
+ UINT width;
|
||||
+ UINT height;
|
||||
+ UINT levels;
|
||||
+ UINT layers;
|
||||
+ UINT src_sub_index;
|
||||
+ UINT dst_sub_index;
|
||||
+ }
|
||||
+ compatible_formats[] =
|
||||
+ {
|
||||
+ {DXGI_FORMAT_R8G8B8A8_UNORM, DXGI_FORMAT_R8G8B8A8_UINT, 4, 4, 1, 1, 0, 0},
|
||||
+ {DXGI_FORMAT_R8G8B8A8_UNORM, DXGI_FORMAT_R8G8B8A8_SNORM, 4, 4, 1, 1, 0, 0},
|
||||
+ {DXGI_FORMAT_R8G8B8A8_UNORM, DXGI_FORMAT_R8G8B8A8_SINT, 4, 4, 1, 1, 0, 0},
|
||||
+ {DXGI_FORMAT_R8G8B8A8_UNORM, DXGI_FORMAT_R8G8B8A8_TYPELESS, 4, 4, 1, 1, 0, 0},
|
||||
+ {DXGI_FORMAT_R8G8B8A8_TYPELESS, DXGI_FORMAT_R8G8B8A8_UNORM, 4, 4, 1, 1, 0, 0},
|
||||
+ {DXGI_FORMAT_R8G8B8A8_UNORM, DXGI_FORMAT_R8G8B8A8_UINT, 4, 4, 1, 2, 1, 1},
|
||||
+ {DXGI_FORMAT_R8G8B8A8_UNORM, DXGI_FORMAT_R8G8B8A8_UINT, 4, 4, 1, 2, 0, 1},
|
||||
+ {DXGI_FORMAT_R8G8B8A8_UNORM, DXGI_FORMAT_R8G8B8A8_UINT, 2, 2, 2, 2, 0, 0},
|
||||
+ {DXGI_FORMAT_R8G8B8A8_UNORM, DXGI_FORMAT_R8G8B8A8_UINT, 2, 2, 2, 2, 0, 1},
|
||||
+ {DXGI_FORMAT_R8G8B8A8_UNORM, DXGI_FORMAT_R8G8B8A8_UINT, 2, 2, 2, 2, 0, 2},
|
||||
+ {DXGI_FORMAT_R8G8B8A8_UNORM, DXGI_FORMAT_R8G8B8A8_UINT, 2, 2, 2, 2, 0, 3},
|
||||
+ {DXGI_FORMAT_R8G8B8A8_UNORM, DXGI_FORMAT_R8G8B8A8_UINT, 2, 2, 2, 2, 1, 0},
|
||||
+ {DXGI_FORMAT_R8G8B8A8_UNORM, DXGI_FORMAT_R8G8B8A8_UINT, 2, 2, 2, 2, 2, 0},
|
||||
+ {DXGI_FORMAT_R8G8B8A8_UNORM, DXGI_FORMAT_R8G8B8A8_UINT, 2, 2, 2, 2, 3, 0},
|
||||
+ };
|
||||
|
||||
if (!init_test_context(&test_context, NULL))
|
||||
return;
|
||||
@@ -10652,6 +10687,90 @@ static void test_copy_subresource_region(void)
|
||||
ID3D11Texture2D_Release(dst_texture);
|
||||
ID3D11Texture2D_Release(src_texture);
|
||||
|
||||
+ /* test copy between compatible formats */
|
||||
+ texture_desc.SampleDesc.Count = 1;
|
||||
+ texture_desc.SampleDesc.Quality = 0;
|
||||
+ texture_desc.MiscFlags = 0;
|
||||
+
|
||||
+ for (k = 0; k < sizeof(compatible_formats) / sizeof(compatible_formats[0]); k++)
|
||||
+ {
|
||||
+ UINT level_src, level_src_width, level_src_height;
|
||||
+ UINT level_dst, level_dst_width, level_dst_height;
|
||||
+ D3D11_SUBRESOURCE_DATA src_data[4], dst_data[4];
|
||||
+ const DWORD *c_result, *c_expected;
|
||||
+ DWORD offset = 0;
|
||||
+
|
||||
+ texture_desc.Width = compatible_formats[k].width;
|
||||
+ texture_desc.Height = compatible_formats[k].height;
|
||||
+ texture_desc.MipLevels = compatible_formats[k].levels;
|
||||
+ texture_desc.ArraySize = compatible_formats[k].layers;
|
||||
+
|
||||
+ texture_desc.Usage = D3D11_USAGE_IMMUTABLE;
|
||||
+ texture_desc.Format = compatible_formats[k].src_format;
|
||||
+ texture_desc.CPUAccessFlags = 0;
|
||||
+ texture_desc.BindFlags = D3D11_BIND_SHADER_RESOURCE;
|
||||
+
|
||||
+ for (i = 0; i < texture_desc.MipLevels * texture_desc.ArraySize; i++)
|
||||
+ {
|
||||
+ level_src = i % texture_desc.ArraySize;
|
||||
+ level_src_width = (texture_desc.Width >> level_src);
|
||||
+ level_src_height = (texture_desc.Height >> level_src);
|
||||
+
|
||||
+ src_data[i].pSysMem = bitmap_data + offset;
|
||||
+ src_data[i].SysMemPitch = level_src_width * sizeof(*bitmap_data);
|
||||
+ src_data[i].SysMemSlicePitch = 0;
|
||||
+
|
||||
+ dst_data[i].pSysMem = initial_data + offset;
|
||||
+ dst_data[i].SysMemPitch = level_src_width * sizeof(*initial_data);
|
||||
+ dst_data[i].SysMemSlicePitch = 0;
|
||||
+
|
||||
+ offset += level_src_width * level_src_height;
|
||||
+ }
|
||||
+
|
||||
+ hr = ID3D11Device_CreateTexture2D(device, &texture_desc, src_data, &src_texture);
|
||||
+ ok(SUCCEEDED(hr), "Failed to create 2d texture for format %#x for test %d, hr %#x.\n", compatible_formats[k].src_format, k, hr);
|
||||
+
|
||||
+ texture_desc.Usage = D3D11_USAGE_STAGING;
|
||||
+ texture_desc.Format = compatible_formats[k].dst_format;
|
||||
+ texture_desc.CPUAccessFlags = D3D11_CPU_ACCESS_READ;
|
||||
+ texture_desc.BindFlags = 0;
|
||||
+
|
||||
+ hr = ID3D11Device_CreateTexture2D(device, &texture_desc, dst_data, &dst_texture);
|
||||
+ ok(SUCCEEDED(hr), "Failed to create 2d texture for format %#x, hr %#x.\n", compatible_formats[k].dst_format, hr);
|
||||
+
|
||||
+ level_src = compatible_formats[k].src_sub_index % texture_desc.ArraySize;
|
||||
+ level_src_width = (texture_desc.Width >> level_src);
|
||||
+ level_src_height = (texture_desc.Height >> level_src);
|
||||
+
|
||||
+ level_dst = compatible_formats[k].dst_sub_index % texture_desc.ArraySize;
|
||||
+ level_dst_width = (texture_desc.Width >> level_dst);
|
||||
+ level_dst_height = (texture_desc.Height >> level_dst);
|
||||
+
|
||||
+ set_box(&box, 0, 0, 0, min(level_src_width, level_dst_width), min(level_src_height, level_dst_height), 1);
|
||||
+ ID3D11DeviceContext_CopySubresourceRegion(context, (ID3D11Resource *)dst_texture, compatible_formats[k].dst_sub_index,
|
||||
+ 0, 0, 0, (ID3D11Resource *)src_texture, compatible_formats[k].src_sub_index, &box);
|
||||
+
|
||||
+ hr = ID3D11DeviceContext_Map(context, (ID3D11Resource *)dst_texture, compatible_formats[k].dst_sub_index, D3D11_MAP_READ, 0, &map_desc);
|
||||
+ ok(SUCCEEDED(hr), "Failed to map 2d texture for test %d, hr %#x.\n", k, hr);
|
||||
+
|
||||
+ c_expected = src_data[compatible_formats[k].src_sub_index].pSysMem;
|
||||
+ for (i = 0; i < min(level_src_width, level_dst_width); i++)
|
||||
+ {
|
||||
+ for (j = 0; j < min(level_src_height, level_dst_height); j++)
|
||||
+ {
|
||||
+ c_result = (DWORD*)((char*)map_desc.pData + j * map_desc.RowPitch);
|
||||
+ todo_wine ok(c_result[i] == c_expected[j * level_src_width + i],
|
||||
+ "Got unexpected color 0x%08x at (%u, %u), expected 0x%08x for test %u.\n",
|
||||
+ c_result[i], i, j, c_expected[j * level_src_width + i], k);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ ID3D11DeviceContext_Unmap(context, (ID3D11Resource *)dst_texture, 0);
|
||||
+
|
||||
+ ID3D11Texture2D_Release(dst_texture);
|
||||
+ ID3D11Texture2D_Release(src_texture);
|
||||
+ }
|
||||
+
|
||||
ID3D11DeviceContext_PSSetShaderResources(context, 0, 1, &ps_srv);
|
||||
ID3D11DeviceContext_PSSetSamplers(context, 0, 1, &sampler_state);
|
||||
ID3D11DeviceContext_PSSetShader(context, ps, NULL, 0);
|
||||
--
|
||||
2.13.1
|
||||
|
@ -1,25 +0,0 @@
|
||||
From a9ecabd2f82e39d94fcbf734241e4291f8c167f4 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sun, 9 Jul 2017 01:05:54 +0200
|
||||
Subject: wined3d: Add WINED3DFMT_R8G8B8A8_SNORM to
|
||||
WINED3DFMT_R8G8B8A8_TYPELESS group.
|
||||
|
||||
---
|
||||
dlls/wined3d/utils.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c
|
||||
index 7462103aeee..1cfc2e82c7f 100644
|
||||
--- a/dlls/wined3d/utils.c
|
||||
+++ b/dlls/wined3d/utils.c
|
||||
@@ -234,6 +234,7 @@ static const struct wined3d_typed_format_info typed_formats[] =
|
||||
{WINED3DFMT_R8G8B8A8_SINT, WINED3DFMT_R8G8B8A8_TYPELESS, "IIII"},
|
||||
{WINED3DFMT_R8G8B8A8_UNORM_SRGB, WINED3DFMT_R8G8B8A8_TYPELESS, "uuuu"},
|
||||
{WINED3DFMT_R8G8B8A8_UNORM, WINED3DFMT_R8G8B8A8_TYPELESS, "uuuu"},
|
||||
+ {WINED3DFMT_R8G8B8A8_SNORM, WINED3DFMT_R8G8B8A8_TYPELESS, "iiii"},
|
||||
{WINED3DFMT_R16G16_UNORM, WINED3DFMT_R16G16_TYPELESS, "uu"},
|
||||
{WINED3DFMT_R16G16_SNORM, WINED3DFMT_R16G16_TYPELESS, "ii"},
|
||||
{WINED3DFMT_R16G16_UINT, WINED3DFMT_R16G16_TYPELESS, "UU"},
|
||||
--
|
||||
2.13.1
|
||||
|
@ -1,299 +0,0 @@
|
||||
From 04388e5a4fdba61b784a338346f122c97b073ca3 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sun, 9 Jul 2017 01:04:33 +0200
|
||||
Subject: wined3d: Implement copying sub resources between compatible formats.
|
||||
|
||||
---
|
||||
dlls/d3d11/tests/d3d11.c | 2 +-
|
||||
dlls/wined3d/cs.c | 155 +++++++++++++++++++++++++++++++++++++++++
|
||||
dlls/wined3d/device.c | 9 ++-
|
||||
dlls/wined3d/directx.c | 4 ++
|
||||
dlls/wined3d/wined3d_gl.h | 1 +
|
||||
dlls/wined3d/wined3d_private.h | 3 +
|
||||
6 files changed, 170 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3d11/tests/d3d11.c b/dlls/d3d11/tests/d3d11.c
|
||||
index 5fa4d3f9def..df22abb3337 100644
|
||||
--- a/dlls/d3d11/tests/d3d11.c
|
||||
+++ b/dlls/d3d11/tests/d3d11.c
|
||||
@@ -10133,7 +10133,7 @@ static void test_copy_subresource_region(void)
|
||||
for (j = 0; j < min(level_src_height, level_dst_height); j++)
|
||||
{
|
||||
c_result = (DWORD*)((char*)map_desc.pData + j * map_desc.RowPitch);
|
||||
- todo_wine ok(c_result[i] == c_expected[j * level_src_width + i],
|
||||
+ ok(c_result[i] == c_expected[j * level_src_width + i],
|
||||
"Got unexpected color 0x%08x at (%u, %u), expected 0x%08x for test %u.\n",
|
||||
c_result[i], i, j, c_expected[j * level_src_width + i], k);
|
||||
}
|
||||
diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
|
||||
index b3b6588ff9b..3666d9f3f7e 100644
|
||||
--- a/dlls/wined3d/cs.c
|
||||
+++ b/dlls/wined3d/cs.c
|
||||
@@ -71,6 +71,7 @@ enum wined3d_cs_op
|
||||
WINED3D_CS_OP_ADD_DIRTY_TEXTURE_REGION,
|
||||
WINED3D_CS_OP_CLEAR_UNORDERED_ACCESS_VIEW,
|
||||
WINED3D_CS_OP_COPY_UAV_COUNTER,
|
||||
+ WINED3D_CS_OP_COPY_SUB_RESOURCE,
|
||||
WINED3D_CS_OP_STOP,
|
||||
};
|
||||
|
||||
@@ -426,6 +427,17 @@ struct wined3d_cs_copy_uav_counter
|
||||
struct wined3d_unordered_access_view *view;
|
||||
};
|
||||
|
||||
+struct wined3d_cs_copy_sub_resource
|
||||
+{
|
||||
+ enum wined3d_cs_op opcode;
|
||||
+ struct wined3d_resource *dst_resource;
|
||||
+ unsigned int dst_sub_resource_idx;
|
||||
+ struct wined3d_box dst_box;
|
||||
+ struct wined3d_resource *src_resource;
|
||||
+ unsigned int src_sub_resource_idx;
|
||||
+ struct wined3d_box src_box;
|
||||
+};
|
||||
+
|
||||
struct wined3d_cs_stop
|
||||
{
|
||||
enum wined3d_cs_op opcode;
|
||||
@@ -2296,6 +2308,148 @@ void wined3d_cs_emit_copy_uav_counter(struct wined3d_cs *cs, struct wined3d_buff
|
||||
cs->ops->submit(cs, WINED3D_CS_QUEUE_DEFAULT);
|
||||
}
|
||||
|
||||
+static void wined3d_cs_exec_copy_sub_resource(struct wined3d_cs *cs, const void *data)
|
||||
+{
|
||||
+ struct wined3d_cs_copy_sub_resource *op = (void*)data;
|
||||
+
|
||||
+ if (op->dst_resource->type == WINED3D_RTYPE_BUFFER)
|
||||
+ {
|
||||
+ wined3d_buffer_copy(buffer_from_resource(op->dst_resource), op->dst_box.left,
|
||||
+ buffer_from_resource(op->src_resource), op->src_box.left,
|
||||
+ op->src_box.right - op->src_box.left);
|
||||
+ }
|
||||
+ else if (op->dst_resource->type == WINED3D_RTYPE_TEXTURE_1D ||
|
||||
+ op->dst_resource->type == WINED3D_RTYPE_TEXTURE_2D ||
|
||||
+ op->dst_resource->type == WINED3D_RTYPE_TEXTURE_3D)
|
||||
+ {
|
||||
+ struct wined3d_texture *dst_texture, *src_texture;
|
||||
+ struct gl_texture *gl_tex_src, *gl_tex_dst;
|
||||
+ unsigned int update_w, update_h, update_d;
|
||||
+ const struct wined3d_gl_info *gl_info;
|
||||
+ unsigned int src_level, src_layer;
|
||||
+ unsigned int dst_level, dst_layer;
|
||||
+ struct wined3d_context *context;
|
||||
+ BOOL partial_update = FALSE;
|
||||
+
|
||||
+ update_w = op->dst_box.right - op->dst_box.left;
|
||||
+ update_h = op->dst_box.bottom - op->dst_box.top;
|
||||
+ update_d = op->dst_box.back - op->dst_box.front;
|
||||
+
|
||||
+ dst_texture = texture_from_resource(op->dst_resource);
|
||||
+ src_texture = texture_from_resource(op->src_resource);
|
||||
+
|
||||
+ context = context_acquire(cs->device, NULL, 0);
|
||||
+ gl_info = context->gl_info;
|
||||
+
|
||||
+ if (!wined3d_texture_load_location(src_texture, op->src_sub_resource_idx, context, WINED3D_LOCATION_TEXTURE_RGB))
|
||||
+ {
|
||||
+ FIXME("Failed to load source sub-resource into WINED3D_LOCATION_TEXTURE_RGB.\n");
|
||||
+ context_release(context);
|
||||
+ goto error;
|
||||
+ }
|
||||
+
|
||||
+ src_level = op->src_sub_resource_idx % src_texture->level_count;
|
||||
+ src_layer = op->src_sub_resource_idx / src_texture->level_count;
|
||||
+ dst_level = op->dst_sub_resource_idx % dst_texture->level_count;
|
||||
+ dst_layer = op->dst_sub_resource_idx / dst_texture->level_count;
|
||||
+
|
||||
+ switch (op->dst_resource->type)
|
||||
+ {
|
||||
+ case WINED3D_RTYPE_TEXTURE_3D:
|
||||
+ partial_update |= (update_d != wined3d_texture_get_level_depth(dst_texture, dst_level));
|
||||
+ case WINED3D_RTYPE_TEXTURE_2D:
|
||||
+ partial_update |= (update_h != wined3d_texture_get_level_height(dst_texture, dst_level));
|
||||
+ case WINED3D_RTYPE_TEXTURE_1D:
|
||||
+ partial_update |= (update_w != wined3d_texture_get_level_width(dst_texture, dst_level));
|
||||
+ default:
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ if (!partial_update)
|
||||
+ {
|
||||
+ wined3d_texture_prepare_texture(dst_texture, context, FALSE);
|
||||
+ }
|
||||
+ else if (!wined3d_texture_load_location(dst_texture, op->dst_sub_resource_idx, context, WINED3D_LOCATION_TEXTURE_RGB))
|
||||
+ {
|
||||
+ FIXME("Failed to load destination sub-resource.\n");
|
||||
+ context_release(context);
|
||||
+ goto error;
|
||||
+ }
|
||||
+
|
||||
+ switch (op->dst_resource->type)
|
||||
+ {
|
||||
+ case WINED3D_RTYPE_TEXTURE_1D:
|
||||
+ op->src_box.top = src_layer;
|
||||
+ op->dst_box.top = dst_layer;
|
||||
+ break;
|
||||
+ case WINED3D_RTYPE_TEXTURE_2D:
|
||||
+ op->src_box.front = src_layer;
|
||||
+ op->dst_box.front = dst_layer;
|
||||
+ break;
|
||||
+ default:
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ gl_tex_src = wined3d_texture_get_gl_texture(src_texture, FALSE);
|
||||
+ gl_tex_dst = wined3d_texture_get_gl_texture(dst_texture, FALSE);
|
||||
+
|
||||
+ GL_EXTCALL(glCopyImageSubData(gl_tex_src->name, src_texture->target, src_level,
|
||||
+ op->src_box.left, op->src_box.top, op->src_box.front,
|
||||
+ gl_tex_dst->name, dst_texture->target, dst_level,
|
||||
+ op->dst_box.left, op->dst_box.top, op->dst_box.front,
|
||||
+ update_w, update_h, update_d));
|
||||
+ checkGLcall("Copy texture content");
|
||||
+
|
||||
+ wined3d_texture_validate_location(dst_texture, op->dst_sub_resource_idx, WINED3D_LOCATION_TEXTURE_RGB);
|
||||
+ wined3d_texture_invalidate_location(dst_texture, op->dst_sub_resource_idx, ~WINED3D_LOCATION_TEXTURE_RGB);
|
||||
+
|
||||
+ context_release(context);
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ FIXME("Not implemented for %s resources.\n", debug_d3dresourcetype(op->dst_resource->type));
|
||||
+ }
|
||||
+
|
||||
+error:
|
||||
+ wined3d_resource_release(op->src_resource);
|
||||
+ wined3d_resource_release(op->dst_resource);
|
||||
+}
|
||||
+
|
||||
+void wined3d_cs_emit_copy_sub_resource(struct wined3d_cs *cs, struct wined3d_resource *dst_resource,
|
||||
+ unsigned int dst_sub_resource_idx, const struct wined3d_box *dst_box, struct wined3d_resource *src_resource,
|
||||
+ unsigned int src_sub_resource_idx, const struct wined3d_box *src_box)
|
||||
+{
|
||||
+ const struct wined3d_gl_info *gl_info = &cs->device->adapter->gl_info;
|
||||
+ struct wined3d_cs_blt_sub_resource *op;
|
||||
+
|
||||
+ if (!gl_info->supported[ARB_TEXTURE_VIEW] && src_resource->format->id != dst_resource->format->id)
|
||||
+ {
|
||||
+ FIXME("ARB_TEXTURE_VIEW not supported, cannot copy sub-resource.\n");
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ if (!gl_info->supported[ARB_COPY_IMAGE])
|
||||
+ {
|
||||
+ wined3d_cs_emit_blt_sub_resource(cs, dst_resource, dst_sub_resource_idx, dst_box,
|
||||
+ src_resource, src_sub_resource_idx, src_box, 0, NULL, WINED3D_TEXF_POINT);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ op = cs->ops->require_space(cs, sizeof(*op), WINED3D_CS_QUEUE_DEFAULT);
|
||||
+ op->opcode = WINED3D_CS_OP_COPY_SUB_RESOURCE;
|
||||
+ op->dst_resource = dst_resource;
|
||||
+ op->dst_sub_resource_idx = dst_sub_resource_idx;
|
||||
+ op->dst_box = *dst_box;
|
||||
+ op->src_resource = src_resource;
|
||||
+ op->src_sub_resource_idx = src_sub_resource_idx;
|
||||
+ op->src_box = *src_box;
|
||||
+
|
||||
+ wined3d_resource_acquire(dst_resource);
|
||||
+ wined3d_resource_acquire(src_resource);
|
||||
+
|
||||
+ cs->ops->submit(cs, WINED3D_CS_QUEUE_DEFAULT);
|
||||
+}
|
||||
+
|
||||
static void wined3d_cs_emit_stop(struct wined3d_cs *cs)
|
||||
{
|
||||
struct wined3d_cs_stop *op;
|
||||
@@ -2354,6 +2508,7 @@ static void (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void
|
||||
/* WINED3D_CS_OP_ADD_DIRTY_TEXTURE_REGION */ wined3d_cs_exec_add_dirty_texture_region,
|
||||
/* WINED3D_CS_OP_CLEAR_UNORDERED_ACCESS_VIEW */ wined3d_cs_exec_clear_unordered_access_view,
|
||||
/* WINED3D_CS_OP_COPY_UAV_COUNTER */ wined3d_cs_exec_copy_uav_counter,
|
||||
+ /* WINED3D_CS_OP_COPY_SUB_RESOURCE */ wined3d_cs_exec_copy_sub_resource,
|
||||
};
|
||||
|
||||
static void *wined3d_cs_st_require_space(struct wined3d_cs *cs, size_t size, enum wined3d_cs_queue_id queue_id)
|
||||
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
index 9f7c6e946a5..9cb12422691 100644
|
||||
--- a/dlls/wined3d/device.c
|
||||
+++ b/dlls/wined3d/device.c
|
||||
@@ -4106,7 +4106,10 @@ HRESULT CDECL wined3d_device_copy_sub_resource_region(struct wined3d_device *dev
|
||||
return WINED3DERR_INVALIDCALL;
|
||||
}
|
||||
|
||||
- if (src_resource->format->id != dst_resource->format->id)
|
||||
+ if (src_resource->format->id != dst_resource->format->id &&
|
||||
+ (src_resource->format->typeless_id != dst_resource->format->typeless_id ||
|
||||
+ src_resource->format->gl_view_class != dst_resource->format->gl_view_class ||
|
||||
+ !src_resource->format->typeless_id))
|
||||
{
|
||||
WARN("Resource formats (%s / %s) don't match.\n",
|
||||
debug_d3dformat(dst_resource->format->id),
|
||||
@@ -4208,8 +4211,8 @@ HRESULT CDECL wined3d_device_copy_sub_resource_region(struct wined3d_device *dev
|
||||
return WINED3DERR_INVALIDCALL;
|
||||
}
|
||||
|
||||
- wined3d_cs_emit_blt_sub_resource(device->cs, dst_resource, dst_sub_resource_idx, &dst_box,
|
||||
- src_resource, src_sub_resource_idx, src_box, 0, NULL, WINED3D_TEXF_POINT);
|
||||
+ wined3d_cs_emit_copy_sub_resource(device->cs, dst_resource, dst_sub_resource_idx, &dst_box,
|
||||
+ src_resource, src_sub_resource_idx, src_box);
|
||||
|
||||
return WINED3D_OK;
|
||||
}
|
||||
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
|
||||
index 27d2e13353d..49cb4efa86f 100644
|
||||
--- a/dlls/wined3d/directx.c
|
||||
+++ b/dlls/wined3d/directx.c
|
||||
@@ -117,6 +117,7 @@ static const struct wined3d_extension_map gl_extension_map[] =
|
||||
{"GL_ARB_compute_shader", ARB_COMPUTE_SHADER },
|
||||
{"GL_ARB_conservative_depth", ARB_CONSERVATIVE_DEPTH },
|
||||
{"GL_ARB_copy_buffer", ARB_COPY_BUFFER },
|
||||
+ {"GL_ARB_copy_image", ARB_COPY_IMAGE },
|
||||
{"GL_ARB_debug_output", ARB_DEBUG_OUTPUT },
|
||||
{"GL_ARB_depth_buffer_float", ARB_DEPTH_BUFFER_FLOAT },
|
||||
{"GL_ARB_depth_clamp", ARB_DEPTH_CLAMP },
|
||||
@@ -2703,6 +2704,8 @@ static void load_gl_funcs(struct wined3d_gl_info *gl_info)
|
||||
USE_GL_FUNC(glDispatchComputeIndirect)
|
||||
/* GL_ARB_copy_buffer */
|
||||
USE_GL_FUNC(glCopyBufferSubData)
|
||||
+ /* GL_ARB_copy_image */
|
||||
+ USE_GL_FUNC(glCopyImageSubData)
|
||||
/* GL_ARB_debug_output */
|
||||
USE_GL_FUNC(glDebugMessageCallbackARB)
|
||||
USE_GL_FUNC(glDebugMessageControlARB)
|
||||
@@ -3888,6 +3891,7 @@ static BOOL wined3d_adapter_init_gl_caps(struct wined3d_adapter *adapter,
|
||||
|
||||
{ARB_CLEAR_BUFFER_OBJECT, MAKEDWORD_VERSION(4, 3)},
|
||||
{ARB_COMPUTE_SHADER, MAKEDWORD_VERSION(4, 3)},
|
||||
+ {ARB_COPY_IMAGE, MAKEDWORD_VERSION(4, 3)},
|
||||
{ARB_DEBUG_OUTPUT, MAKEDWORD_VERSION(4, 3)},
|
||||
{ARB_ES3_COMPATIBILITY, MAKEDWORD_VERSION(4, 3)},
|
||||
{ARB_FRAGMENT_LAYER_VIEWPORT, MAKEDWORD_VERSION(4, 3)},
|
||||
diff --git a/dlls/wined3d/wined3d_gl.h b/dlls/wined3d/wined3d_gl.h
|
||||
index 6ab48474817..ef9cfd8e592 100644
|
||||
--- a/dlls/wined3d/wined3d_gl.h
|
||||
+++ b/dlls/wined3d/wined3d_gl.h
|
||||
@@ -51,6 +51,7 @@ enum wined3d_gl_extension
|
||||
ARB_COMPUTE_SHADER,
|
||||
ARB_CONSERVATIVE_DEPTH,
|
||||
ARB_COPY_BUFFER,
|
||||
+ ARB_COPY_IMAGE,
|
||||
ARB_DEBUG_OUTPUT,
|
||||
ARB_DEPTH_BUFFER_FLOAT,
|
||||
ARB_DEPTH_CLAMP,
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index 84ca09b9415..547d44e5aa5 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -3520,6 +3520,9 @@ 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;
|
||||
+void wined3d_cs_emit_copy_sub_resource(struct wined3d_cs *cs, struct wined3d_resource *dst_resource,
|
||||
+ unsigned int dst_sub_resource_idx, const struct wined3d_box *dst_box, struct wined3d_resource *src_resource,
|
||||
+ unsigned int src_sub_resource_idx, const struct wined3d_box *src_box) DECLSPEC_HIDDEN;
|
||||
void wined3d_cs_init_object(struct wined3d_cs *cs,
|
||||
void (*callback)(void *object), void *object) DECLSPEC_HIDDEN;
|
||||
HRESULT wined3d_cs_map(struct wined3d_cs *cs, struct wined3d_resource *resource, unsigned int sub_resource_idx,
|
||||
--
|
||||
2.14.1
|
||||
|
@ -1,49 +0,0 @@
|
||||
From 064e00bdc54c94a29c5c55a5adf9c70565f50d7a Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sun, 9 Jul 2017 04:05:54 +0200
|
||||
Subject: wined3d: Use wined3d_cs_emit_copy_sub_resource also for
|
||||
wined3d_device_copy_resource.
|
||||
|
||||
---
|
||||
dlls/wined3d/device.c | 11 ++++++-----
|
||||
1 file changed, 6 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
index 0515317d4f0..42749c7c87a 100644
|
||||
--- a/dlls/wined3d/device.c
|
||||
+++ b/dlls/wined3d/device.c
|
||||
@@ -4046,7 +4046,10 @@ void CDECL wined3d_device_copy_resource(struct wined3d_device *device,
|
||||
return;
|
||||
}
|
||||
|
||||
- if (src_resource->format->id != dst_resource->format->id)
|
||||
+ if (src_resource->format->id != dst_resource->format->id &&
|
||||
+ (src_resource->format->typeless_id != dst_resource->format->typeless_id ||
|
||||
+ src_resource->format->gl_view_class != dst_resource->format->gl_view_class ||
|
||||
+ !src_resource->format->typeless_id))
|
||||
{
|
||||
WARN("Resource formats (%s / %s) don't match.\n",
|
||||
debug_d3dformat(dst_resource->format->id),
|
||||
@@ -4057,8 +4060,7 @@ void CDECL wined3d_device_copy_resource(struct wined3d_device *device,
|
||||
if (dst_resource->type == WINED3D_RTYPE_BUFFER)
|
||||
{
|
||||
wined3d_box_set(&box, 0, 0, src_resource->size, 1, 0, 1);
|
||||
- wined3d_cs_emit_blt_sub_resource(device->cs, dst_resource, 0, &box,
|
||||
- src_resource, 0, &box, 0, NULL, WINED3D_TEXF_POINT);
|
||||
+ wined3d_cs_emit_copy_sub_resource(device->cs, dst_resource, 0, &box, src_resource, 0, &box);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -4084,8 +4086,7 @@ void CDECL wined3d_device_copy_resource(struct wined3d_device *device,
|
||||
{
|
||||
unsigned int idx = j * dst_texture->level_count + i;
|
||||
|
||||
- wined3d_cs_emit_blt_sub_resource(device->cs, dst_resource, idx, &box,
|
||||
- src_resource, idx, &box, 0, NULL, WINED3D_TEXF_POINT);
|
||||
+ wined3d_cs_emit_copy_sub_resource(device->cs, dst_resource, idx, &box, src_resource, idx, &box);
|
||||
}
|
||||
}
|
||||
}
|
||||
--
|
||||
2.13.1
|
||||
|
@ -1,4 +0,0 @@
|
||||
Fixes: [43264] Implement copying resources between compatible formats
|
||||
Fixes: [42099] Implement copying resources between compatible formats
|
||||
Depends: d3d11-Depth_Bias
|
||||
Depends: wined3d-1DTextures
|
@ -1,2 +1,2 @@
|
||||
Fixes: Use OpenGL core context for D3D10/11 when necessary
|
||||
Depends: d3d11-Depth_Bias
|
||||
#Depends: d3d11-Depth_Bias
|
||||
|
@ -1,3 +1,2 @@
|
||||
Fixes: Support for GenerateMips
|
||||
Depends: wined3d-Copy_Resource_Typeless
|
||||
Depends: wined3d-Dual_Source_Blending
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 97bf1e62501917f0d15a0baf0055478bdaf5367d Mon Sep 17 00:00:00 2001
|
||||
From 3b113e46e5f947d837f15ee1ae287f15493666a3 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Thu, 20 Jul 2017 13:50:07 +0200
|
||||
Subject: wined3d: Implement all 8 d3d11 color write masks.
|
||||
Subject: [PATCH] wined3d: Implement all 8 d3d11 color write masks.
|
||||
|
||||
---
|
||||
dlls/d3d11/device.c | 29 ++++++++++-----------
|
||||
@ -18,20 +18,20 @@ Subject: wined3d: Implement all 8 d3d11 color write masks.
|
||||
11 files changed, 72 insertions(+), 70 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
|
||||
index 405a678505f..fd0afa349f9 100644
|
||||
index 25308c2..b380301 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -687,6 +687,7 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_OMSetBlendState(ID3D11Devi
|
||||
struct d3d_device *device = device_from_immediate_ID3D11DeviceContext(iface);
|
||||
@@ -688,6 +688,7 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_OMSetBlendState(ID3D11Devi
|
||||
static const float default_blend_factor[] = {1.0f, 1.0f, 1.0f, 1.0f};
|
||||
struct d3d_blend_state *blend_state_impl;
|
||||
const D3D11_BLEND_DESC *desc;
|
||||
+ int i;
|
||||
|
||||
TRACE("iface %p, blend_state %p, blend_factor %s, sample_mask 0x%08x.\n",
|
||||
iface, blend_state, debug_float4(blend_factor), sample_mask);
|
||||
@@ -700,14 +701,11 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_OMSetBlendState(ID3D11Devi
|
||||
if (!(device->blend_state = unsafe_impl_from_ID3D11BlendState(blend_state)))
|
||||
@@ -702,14 +703,11 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_OMSetBlendState(ID3D11Devi
|
||||
{
|
||||
wined3d_device_set_blend_state(device->wined3d_device, NULL);
|
||||
wined3d_device_set_render_state(device->wined3d_device, WINED3D_RS_ALPHABLENDENABLE, FALSE);
|
||||
- wined3d_device_set_render_state(device->wined3d_device,
|
||||
- WINED3D_RS_COLORWRITEENABLE, D3D11_COLOR_WRITE_ENABLE_ALL);
|
||||
@ -49,7 +49,7 @@ index 405a678505f..fd0afa349f9 100644
|
||||
wined3d_mutex_unlock();
|
||||
return;
|
||||
}
|
||||
@@ -734,14 +732,13 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_OMSetBlendState(ID3D11Devi
|
||||
@@ -737,14 +735,13 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_OMSetBlendState(ID3D11Devi
|
||||
|| d->DestBlendAlpha == D3D11_BLEND_BLEND_FACTOR || d->DestBlendAlpha == D3D11_BLEND_INV_BLEND_FACTOR))
|
||||
FIXME("Ignoring blend factor %s.\n", debug_float4(blend_factor));
|
||||
}
|
||||
@ -72,10 +72,10 @@ index 405a678505f..fd0afa349f9 100644
|
||||
}
|
||||
|
||||
diff --git a/dlls/d3d11/state.c b/dlls/d3d11/state.c
|
||||
index b7c9264df47..455123f5bb4 100644
|
||||
index a14c9d3..2bec92e 100644
|
||||
--- a/dlls/d3d11/state.c
|
||||
+++ b/dlls/d3d11/state.c
|
||||
@@ -331,10 +331,6 @@ HRESULT d3d_blend_state_create(struct d3d_device *device, const D3D11_BLEND_DESC
|
||||
@@ -335,10 +335,6 @@ HRESULT d3d_blend_state_create(struct d3d_device *device, const D3D11_BLEND_DESC
|
||||
tmp_desc.RenderTarget[i].DestBlendAlpha = desc->RenderTarget[j].DestBlendAlpha;
|
||||
tmp_desc.RenderTarget[i].BlendOpAlpha = desc->RenderTarget[j].BlendOpAlpha;
|
||||
tmp_desc.RenderTarget[i].RenderTargetWriteMask = desc->RenderTarget[j].RenderTargetWriteMask;
|
||||
@ -85,12 +85,12 @@ index b7c9264df47..455123f5bb4 100644
|
||||
- tmp_desc.RenderTarget[i].RenderTargetWriteMask, i);
|
||||
}
|
||||
|
||||
/* glSampleCoverage() */
|
||||
/* glEnableIndexedEXT(GL_BLEND, ...) */
|
||||
diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
|
||||
index a2c0ba4080c..2a9036cabff 100644
|
||||
index b97dff5..7bed2b3 100644
|
||||
--- a/dlls/wined3d/context.c
|
||||
+++ b/dlls/wined3d/context.c
|
||||
@@ -2509,10 +2509,8 @@ static void SetupForBlit(const struct wined3d_device *device, struct wined3d_con
|
||||
@@ -2586,10 +2586,8 @@ static void SetupForBlit(const struct wined3d_device *device, struct wined3d_con
|
||||
}
|
||||
gl_info->gl_ops.gl.p_glColorMask(GL_TRUE, GL_TRUE,GL_TRUE,GL_TRUE);
|
||||
checkGLcall("glColorMask");
|
||||
@ -104,10 +104,10 @@ index a2c0ba4080c..2a9036cabff 100644
|
||||
{
|
||||
gl_info->gl_ops.gl.p_glDisable(GL_COLOR_SUM_EXT);
|
||||
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
index 31955badb10..848274ce633 100644
|
||||
index 17103cc..dabb5e2 100644
|
||||
--- a/dlls/wined3d/device.c
|
||||
+++ b/dlls/wined3d/device.c
|
||||
@@ -382,10 +382,8 @@ void device_clear_render_targets(struct wined3d_device *device, UINT rt_count, c
|
||||
@@ -378,10 +378,8 @@ void device_clear_render_targets(struct wined3d_device *device, UINT rt_count, c
|
||||
}
|
||||
|
||||
gl_info->gl_ops.gl.p_glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
|
||||
@ -121,10 +121,10 @@ index 31955badb10..848274ce633 100644
|
||||
checkGLcall("glClearColor");
|
||||
clear_mask = clear_mask | GL_COLOR_BUFFER_BIT;
|
||||
diff --git a/dlls/wined3d/drawprim.c b/dlls/wined3d/drawprim.c
|
||||
index 235f87bfa7d..c09319ef248 100644
|
||||
index 7eccc8f..8f9e929 100644
|
||||
--- a/dlls/wined3d/drawprim.c
|
||||
+++ b/dlls/wined3d/drawprim.c
|
||||
@@ -502,7 +502,7 @@ void draw_primitive(struct wined3d_device *device, const struct wined3d_state *s
|
||||
@@ -545,7 +545,7 @@ void draw_primitive(struct wined3d_device *device, const struct wined3d_state *s
|
||||
if (!(rtv = fb->render_targets[i]) || rtv->format->id == WINED3DFMT_NULL)
|
||||
continue;
|
||||
|
||||
@ -134,10 +134,10 @@ index 235f87bfa7d..c09319ef248 100644
|
||||
wined3d_rendertarget_view_load_location(rtv, context, rtv->resource->draw_binding);
|
||||
wined3d_rendertarget_view_invalidate_location(rtv, ~rtv->resource->draw_binding);
|
||||
diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
|
||||
index df511009833..8820f656976 100644
|
||||
index 407ad62..e1408de 100644
|
||||
--- a/dlls/wined3d/state.c
|
||||
+++ b/dlls/wined3d/state.c
|
||||
@@ -1501,9 +1501,6 @@ static void state_debug_monitor(struct wined3d_context *context, const struct wi
|
||||
@@ -1556,9 +1556,6 @@ static void state_debug_monitor(struct wined3d_context *context, const struct wi
|
||||
static void state_colorwrite(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
|
||||
{
|
||||
DWORD mask0 = state->render_states[WINED3D_RS_COLORWRITEENABLE];
|
||||
@ -147,7 +147,7 @@ index df511009833..8820f656976 100644
|
||||
const struct wined3d_gl_info *gl_info = context->gl_info;
|
||||
|
||||
TRACE("Color mask: r(%d) g(%d) b(%d) a(%d)\n",
|
||||
@@ -1517,13 +1514,7 @@ static void state_colorwrite(struct wined3d_context *context, const struct wined
|
||||
@@ -1572,13 +1569,7 @@ static void state_colorwrite(struct wined3d_context *context, const struct wined
|
||||
mask0 & WINED3DCOLORWRITEENABLE_ALPHA ? GL_TRUE : GL_FALSE);
|
||||
checkGLcall("glColorMask(...)");
|
||||
|
||||
@ -162,7 +162,7 @@ index df511009833..8820f656976 100644
|
||||
}
|
||||
|
||||
static void set_color_mask(const struct wined3d_gl_info *gl_info, UINT index, DWORD mask)
|
||||
@@ -1536,24 +1527,20 @@ static void set_color_mask(const struct wined3d_gl_info *gl_info, UINT index, DW
|
||||
@@ -1591,24 +1582,20 @@ static void set_color_mask(const struct wined3d_gl_info *gl_info, UINT index, DW
|
||||
checkGLcall("glColorMaski");
|
||||
}
|
||||
|
||||
@ -197,7 +197,7 @@ index df511009833..8820f656976 100644
|
||||
}
|
||||
|
||||
static void state_localviewer(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
|
||||
@@ -5238,18 +5225,26 @@ const struct StateEntryTemplate misc_state_template[] =
|
||||
@@ -5247,18 +5234,26 @@ const struct StateEntryTemplate misc_state_template[] =
|
||||
{ STATE_RENDER(WINED3D_RS_MULTISAMPLEANTIALIAS), { STATE_RENDER(WINED3D_RS_MULTISAMPLEANTIALIAS), state_msaa_w }, WINED3D_GL_EXT_NONE },
|
||||
{ STATE_RENDER(WINED3D_RS_MULTISAMPLEMASK), { STATE_RENDER(WINED3D_RS_MULTISAMPLEMASK), state_multisampmask }, WINED3D_GL_EXT_NONE },
|
||||
{ STATE_RENDER(WINED3D_RS_DEBUGMONITORTOKEN), { STATE_RENDER(WINED3D_RS_DEBUGMONITORTOKEN), state_debug_monitor }, WINED3D_GL_EXT_NONE },
|
||||
@ -232,7 +232,7 @@ index df511009833..8820f656976 100644
|
||||
{ STATE_RENDER(WINED3D_RS_BLENDFACTOR), { STATE_RENDER(WINED3D_RS_BLENDFACTOR), state_blendfactor_w }, WINED3D_GL_EXT_NONE },
|
||||
{ STATE_RENDER(WINED3D_RS_DEPTHBIAS), { STATE_RENDER(WINED3D_RS_DEPTHBIAS), state_depthbias }, WINED3D_GL_EXT_NONE },
|
||||
diff --git a/dlls/wined3d/stateblock.c b/dlls/wined3d/stateblock.c
|
||||
index 71571b24fe5..879a98e738e 100644
|
||||
index 4c28eb5..f02da5c 100644
|
||||
--- a/dlls/wined3d/stateblock.c
|
||||
+++ b/dlls/wined3d/stateblock.c
|
||||
@@ -45,6 +45,10 @@ static const DWORD pixel_states_render[] =
|
||||
@ -246,7 +246,7 @@ index 71571b24fe5..879a98e738e 100644
|
||||
WINED3D_RS_DEPTHBIAS,
|
||||
WINED3D_RS_DESTBLEND,
|
||||
WINED3D_RS_DESTBLENDALPHA,
|
||||
@@ -1212,7 +1216,6 @@ static void state_init_default(struct wined3d_state *state, const struct wined3d
|
||||
@@ -1211,7 +1215,6 @@ static void state_init_default(struct wined3d_state *state, const struct wined3d
|
||||
tmpfloat.f = gl_info->limits.pointsize_max;
|
||||
state->render_states[WINED3D_RS_POINTSIZE_MAX] = tmpfloat.d;
|
||||
state->render_states[WINED3D_RS_INDEXEDVERTEXBLENDENABLE] = FALSE;
|
||||
@ -254,7 +254,7 @@ index 71571b24fe5..879a98e738e 100644
|
||||
tmpfloat.f = 0.0f;
|
||||
state->render_states[WINED3D_RS_TWEENFACTOR] = tmpfloat.d;
|
||||
state->render_states[WINED3D_RS_BLENDOP] = WINED3D_BLEND_OP_ADD;
|
||||
@@ -1238,9 +1241,6 @@ static void state_init_default(struct wined3d_state *state, const struct wined3d
|
||||
@@ -1237,9 +1240,6 @@ static void state_init_default(struct wined3d_state *state, const struct wined3d
|
||||
state->render_states[WINED3D_RS_BACK_STENCILZFAIL] = WINED3D_STENCIL_OP_KEEP;
|
||||
state->render_states[WINED3D_RS_BACK_STENCILPASS] = WINED3D_STENCIL_OP_KEEP;
|
||||
state->render_states[WINED3D_RS_BACK_STENCILFUNC] = WINED3D_CMP_ALWAYS;
|
||||
@ -264,7 +264,7 @@ index 71571b24fe5..879a98e738e 100644
|
||||
state->render_states[WINED3D_RS_BLENDFACTOR] = 0xffffffff;
|
||||
state->render_states[WINED3D_RS_SRGBWRITEENABLE] = 0;
|
||||
state->render_states[WINED3D_RS_DEPTHBIAS] = 0;
|
||||
@@ -1259,6 +1259,8 @@ static void state_init_default(struct wined3d_state *state, const struct wined3d
|
||||
@@ -1255,6 +1255,8 @@ static void state_init_default(struct wined3d_state *state, const struct wined3d
|
||||
state->render_states[WINED3D_RS_SRCBLENDALPHA] = WINED3D_BLEND_ONE;
|
||||
state->render_states[WINED3D_RS_DESTBLENDALPHA] = WINED3D_BLEND_ZERO;
|
||||
state->render_states[WINED3D_RS_BLENDOPALPHA] = WINED3D_BLEND_OP_ADD;
|
||||
@ -274,10 +274,10 @@ index 71571b24fe5..879a98e738e 100644
|
||||
/* Texture Stage States - Put directly into state block, we will call function below */
|
||||
for (i = 0; i < MAX_TEXTURES; ++i)
|
||||
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
index 134b6d204f9..88a7c877521 100644
|
||||
index 5cb9cda..24a3d24 100644
|
||||
--- a/dlls/wined3d/surface.c
|
||||
+++ b/dlls/wined3d/surface.c
|
||||
@@ -367,6 +367,7 @@ static void surface_blt_fbo(const struct wined3d_device *device,
|
||||
@@ -376,6 +376,7 @@ static void surface_blt_fbo(const struct wined3d_device *device,
|
||||
RECT src_rect, dst_rect;
|
||||
GLenum gl_filter;
|
||||
GLenum buffer;
|
||||
@ -285,7 +285,7 @@ index 134b6d204f9..88a7c877521 100644
|
||||
|
||||
TRACE("device %p, filter %s,\n", device, debug_d3dtexturefiltertype(filter));
|
||||
TRACE("src_surface %p, src_location %s, src_rect %s,\n",
|
||||
@@ -464,10 +465,8 @@ static void surface_blt_fbo(const struct wined3d_device *device,
|
||||
@@ -473,10 +474,8 @@ static void surface_blt_fbo(const struct wined3d_device *device,
|
||||
context_invalidate_state(context, STATE_FRAMEBUFFER);
|
||||
|
||||
gl_info->gl_ops.gl.p_glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
|
||||
@ -299,10 +299,10 @@ index 134b6d204f9..88a7c877521 100644
|
||||
gl_info->gl_ops.gl.p_glDisable(GL_SCISSOR_TEST);
|
||||
context_invalidate_state(context, STATE_RENDER(WINED3D_RS_SCISSORTESTENABLE));
|
||||
diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c
|
||||
index 472ac9ead0b..38d0ebe171c 100644
|
||||
index 78934af..04c1a35 100644
|
||||
--- a/dlls/wined3d/utils.c
|
||||
+++ b/dlls/wined3d/utils.c
|
||||
@@ -4273,7 +4273,6 @@ const char *debug_d3drenderstate(enum wined3d_render_state state)
|
||||
@@ -4407,7 +4407,6 @@ const char *debug_d3drenderstate(enum wined3d_render_state state)
|
||||
D3DSTATE_TO_STR(WINED3D_RS_DEBUGMONITORTOKEN);
|
||||
D3DSTATE_TO_STR(WINED3D_RS_POINTSIZE_MAX);
|
||||
D3DSTATE_TO_STR(WINED3D_RS_INDEXEDVERTEXBLENDENABLE);
|
||||
@ -310,7 +310,7 @@ index 472ac9ead0b..38d0ebe171c 100644
|
||||
D3DSTATE_TO_STR(WINED3D_RS_TWEENFACTOR);
|
||||
D3DSTATE_TO_STR(WINED3D_RS_BLENDOP);
|
||||
D3DSTATE_TO_STR(WINED3D_RS_POSITIONDEGREE);
|
||||
@@ -4293,9 +4292,14 @@ const char *debug_d3drenderstate(enum wined3d_render_state state)
|
||||
@@ -4427,9 +4426,14 @@ const char *debug_d3drenderstate(enum wined3d_render_state state)
|
||||
D3DSTATE_TO_STR(WINED3D_RS_BACK_STENCILZFAIL);
|
||||
D3DSTATE_TO_STR(WINED3D_RS_BACK_STENCILPASS);
|
||||
D3DSTATE_TO_STR(WINED3D_RS_BACK_STENCILFUNC);
|
||||
@ -326,10 +326,10 @@ index 472ac9ead0b..38d0ebe171c 100644
|
||||
D3DSTATE_TO_STR(WINED3D_RS_SRGBWRITEENABLE);
|
||||
D3DSTATE_TO_STR(WINED3D_RS_DEPTHBIAS);
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index 4fca08dbdb7..fd27a37b1a0 100644
|
||||
index 7a606a7..fe14c2e 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -272,6 +272,7 @@ static inline enum complex_fixup get_complex_fixup(struct color_fixup_desc fixup
|
||||
@@ -275,6 +275,7 @@ static inline enum complex_fixup get_complex_fixup(struct color_fixup_desc fixup
|
||||
#define MAX_TGSM_REGISTERS 8192
|
||||
#define MAX_VERTEX_BLENDS 4
|
||||
#define MAX_MULTISAMPLE_TYPES 8
|
||||
@ -338,19 +338,19 @@ index 4fca08dbdb7..fd27a37b1a0 100644
|
||||
struct min_lookup
|
||||
{
|
||||
diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h
|
||||
index 5e9e45942be..81faf2d4356 100644
|
||||
index 1e3c08b..f21cc94 100644
|
||||
--- a/include/wine/wined3d.h
|
||||
+++ b/include/wine/wined3d.h
|
||||
@@ -383,8 +383,20 @@ enum wined3d_render_state
|
||||
@@ -385,8 +385,20 @@ enum wined3d_render_state
|
||||
WINED3D_RS_SRCBLENDALPHA = 207,
|
||||
WINED3D_RS_DESTBLENDALPHA = 208,
|
||||
WINED3D_RS_BLENDOPALPHA = 209,
|
||||
WINED3D_RS_DEPTHCLIP = 210,
|
||||
WINED3D_RS_DEPTHBIASCLAMP = 211,
|
||||
+ WINED3D_RS_COLORWRITEENABLE4 = 212,
|
||||
+ WINED3D_RS_COLORWRITEENABLE5 = 213,
|
||||
+ WINED3D_RS_COLORWRITEENABLE6 = 214,
|
||||
+ WINED3D_RS_COLORWRITEENABLE7 = 215,
|
||||
+ WINED3D_RS_COLORWRITEENABLE4 = 210,
|
||||
+ WINED3D_RS_COLORWRITEENABLE5 = 211,
|
||||
+ WINED3D_RS_COLORWRITEENABLE6 = 212,
|
||||
+ WINED3D_RS_COLORWRITEENABLE7 = 213,
|
||||
};
|
||||
-#define WINEHIGHEST_RENDER_STATE WINED3D_RS_DEPTHBIASCLAMP
|
||||
-#define WINEHIGHEST_RENDER_STATE WINED3D_RS_BLENDOPALPHA
|
||||
+#define WINEHIGHEST_RENDER_STATE WINED3D_RS_COLORWRITEENABLE7
|
||||
+
|
||||
+static inline enum wined3d_render_state WINED3D_RS_COLORWRITE(int index)
|
||||
@ -364,5 +364,5 @@ index 5e9e45942be..81faf2d4356 100644
|
||||
enum wined3d_blend
|
||||
{
|
||||
--
|
||||
2.14.1
|
||||
2.7.4
|
||||
|
||||
|
@ -1,2 +1,2 @@
|
||||
Fixes: Implement support for all d3d11 color write masks in wined3d
|
||||
Depends: d3d11-Depth_Bias
|
||||
#Depends: d3d11-Depth_Bias
|
||||
|
@ -1 +1 @@
|
||||
Wine Staging 3.1 (Unreleased)
|
||||
Wine Staging 3.2 (Unreleased)
|
||||
|
Loading…
x
Reference in New Issue
Block a user