mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-01-28 22:04:43 -08:00
Rebase against d7430abd406d1f298acb9b2e5a397e11e448f304.
This commit is contained in:
parent
f7ba182039
commit
b7119079a3
@ -1,2 +1,2 @@
|
||||
Fixes: [42191] Add semi-stub for D3D11 deferred context implementation
|
||||
Depends: wined3d-1DTextures
|
||||
Depends: d3d11-ID3D11Texture1D_Rebased
|
||||
|
@ -1,2 +1,3 @@
|
||||
Depends: wined3d-1DTextures
|
||||
Fixes: [40976] Implement support for ID3D11Texture1D
|
||||
Disabled: true
|
File diff suppressed because it is too large
Load Diff
1
patches/d3d11-ID3D11Texture1D_Rebased/definition
Normal file
1
patches/d3d11-ID3D11Texture1D_Rebased/definition
Normal file
@ -0,0 +1 @@
|
||||
Fixes: [40976] Implement support for ID3D11Texture1D
|
@ -1,4 +1,4 @@
|
||||
From 269fa9451452446fb3c79cece46b61617f6eb480 Mon Sep 17 00:00:00 2001
|
||||
From 9a44bb05045ad2a8fbe8b6a15975474ea5be2c6a Mon Sep 17 00:00:00 2001
|
||||
From: Henri Verbeet <hverbeet@codeweavers.com>
|
||||
Date: Sun, 8 Jan 2017 22:32:32 +0100
|
||||
Subject: ddraw: Implement ddraw7_FlipToGDISurface. (v2)
|
||||
@ -6,14 +6,14 @@ Subject: ddraw: Implement ddraw7_FlipToGDISurface. (v2)
|
||||
---
|
||||
dlls/ddraw/ddraw.c | 9 ++++++++-
|
||||
dlls/ddraw/ddraw_private.h | 1 +
|
||||
dlls/ddraw/surface.c | 5 +++--
|
||||
3 files changed, 12 insertions(+), 3 deletions(-)
|
||||
dlls/ddraw/surface.c | 2 +-
|
||||
3 files changed, 10 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/ddraw/ddraw.c b/dlls/ddraw/ddraw.c
|
||||
index 3b4c628666b..7a313e384ac 100644
|
||||
index 32f0172..6c94eb8 100644
|
||||
--- a/dlls/ddraw/ddraw.c
|
||||
+++ b/dlls/ddraw/ddraw.c
|
||||
@@ -2061,7 +2061,14 @@ static HRESULT WINAPI d3d1_Initialize(IDirect3D *iface, REFIID riid)
|
||||
@@ -2063,7 +2063,14 @@ static HRESULT WINAPI d3d1_Initialize(IDirect3D *iface, REFIID riid)
|
||||
*****************************************************************************/
|
||||
static HRESULT WINAPI ddraw7_FlipToGDISurface(IDirectDraw7 *iface)
|
||||
{
|
||||
@ -25,15 +25,15 @@ index 3b4c628666b..7a313e384ac 100644
|
||||
+ ddraw->flags |= DDRAW_GDI_FLIP;
|
||||
+
|
||||
+ if (ddraw->primary)
|
||||
+ ddraw_surface_update_frontbuffer(ddraw->primary, NULL, FALSE);
|
||||
+ ddraw_surface_update_frontbuffer(ddraw->primary, NULL, FALSE, 0);
|
||||
|
||||
return DD_OK;
|
||||
}
|
||||
diff --git a/dlls/ddraw/ddraw_private.h b/dlls/ddraw/ddraw_private.h
|
||||
index 1133bbdd07d..c18ab12a39a 100644
|
||||
index a9632de..336c4dd 100644
|
||||
--- a/dlls/ddraw/ddraw_private.h
|
||||
+++ b/dlls/ddraw/ddraw_private.h
|
||||
@@ -56,6 +56,7 @@ struct FvfToDecl
|
||||
@@ -59,6 +59,7 @@ struct FvfToDecl
|
||||
#define DDRAW_NO3D 0x00000008
|
||||
#define DDRAW_SCL_DDRAW1 0x00000010
|
||||
#define DDRAW_SCL_RECURSIVE 0x00000020
|
||||
@ -42,34 +42,18 @@ index 1133bbdd07d..c18ab12a39a 100644
|
||||
#define DDRAW_STRIDE_ALIGNMENT 8
|
||||
|
||||
diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c
|
||||
index 4b53ac341d5..49caa0aaeae 100644
|
||||
index 2d20049..0e4543b 100644
|
||||
--- a/dlls/ddraw/surface.c
|
||||
+++ b/dlls/ddraw/surface.c
|
||||
@@ -42,6 +42,7 @@ static inline struct ddraw_surface *impl_from_IDirectDrawGammaControl(IDirectDra
|
||||
* to support windowless rendering first. */
|
||||
HRESULT ddraw_surface_update_frontbuffer(struct ddraw_surface *surface, const RECT *rect, BOOL read)
|
||||
{
|
||||
+ struct ddraw *ddraw = surface->ddraw;
|
||||
HDC surface_dc, screen_dc;
|
||||
int x, y, w, h;
|
||||
HRESULT hr;
|
||||
@@ -62,14 +63,14 @@ HRESULT ddraw_surface_update_frontbuffer(struct ddraw_surface *surface, const RE
|
||||
@@ -64,7 +64,7 @@ HRESULT ddraw_surface_update_frontbuffer(struct ddraw_surface *surface,
|
||||
if (w <= 0 || h <= 0)
|
||||
return DD_OK;
|
||||
|
||||
- if (surface->ddraw->swapchain_window)
|
||||
+ if (ddraw->swapchain_window && !(ddraw->flags & DDRAW_GDI_FLIP))
|
||||
+ if (surface->ddraw->swapchain_window && !(surface->ddraw->flags & DDRAW_GDI_FLIP))
|
||||
{
|
||||
/* Nothing to do, we control the frontbuffer, or at least the parts we
|
||||
* care about. */
|
||||
if (read)
|
||||
return DD_OK;
|
||||
|
||||
- return wined3d_texture_blt(surface->ddraw->wined3d_frontbuffer, 0, rect,
|
||||
+ return wined3d_texture_blt(ddraw->wined3d_frontbuffer, 0, rect,
|
||||
surface->wined3d_texture, surface->sub_resource_idx, rect, 0, NULL, WINED3D_TEXF_POINT);
|
||||
}
|
||||
|
||||
--
|
||||
2.11.0
|
||||
2.7.4
|
||||
|
||||
|
@ -1,3 +1,2 @@
|
||||
Fixes: [44650] Fix holes in ELF mappings
|
||||
Depends: ntdll-User_Shared_Data
|
||||
Depends: ntdll-x86_64_ExceptionInformation
|
||||
|
@ -1,3 +1,2 @@
|
||||
Fixes: [29168] Update user shared data at realtime
|
||||
Depends: ntdll-Hide_Wine_Exports
|
||||
Depends: ntdll-x86_64_ExceptionInformation
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 0aec1075052b51f833e5972258072b2f5397e6bb Mon Sep 17 00:00:00 2001
|
||||
From 999f0ce5c12d8956c25fd3b8ca83ab55f530f41d Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sat, 21 Jan 2017 22:54:40 +0100
|
||||
Subject: ntdll: Implement _alldvrm/_aulldvrm and add tests.
|
||||
@ -82,10 +82,10 @@ index a0d465c..18f0688 100644
|
||||
+
|
||||
#endif /* __i386__ */
|
||||
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
|
||||
index 6e996a5..232dd46 100644
|
||||
index 0107932..8744704 100644
|
||||
--- a/dlls/ntdll/ntdll.spec
|
||||
+++ b/dlls/ntdll/ntdll.spec
|
||||
@@ -1335,7 +1335,7 @@
|
||||
@@ -1337,7 +1337,7 @@
|
||||
@ cdecl -private __iscsymf(long) NTDLL___iscsymf
|
||||
@ cdecl -private __toascii(long) NTDLL___toascii
|
||||
@ stdcall -arch=i386 -ret64 _alldiv(int64 int64)
|
||||
@ -94,7 +94,7 @@ index 6e996a5..232dd46 100644
|
||||
@ stdcall -arch=i386 -ret64 _allmul(int64 int64)
|
||||
@ stdcall -arch=i386 -norelay _alloca_probe()
|
||||
@ stdcall -arch=i386 -ret64 _allrem(int64 int64)
|
||||
@@ -1343,7 +1343,7 @@
|
||||
@@ -1345,7 +1345,7 @@
|
||||
@ stdcall -arch=i386 -ret64 _allshr(int64 long)
|
||||
@ cdecl -private -ret64 _atoi64(str)
|
||||
@ stdcall -arch=i386 -ret64 _aulldiv(int64 int64)
|
||||
@ -202,10 +202,10 @@ index da7afa4..4562e67 100644
|
||||
+#endif /* __i386__ */
|
||||
}
|
||||
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
|
||||
index 7f43704..2e891d6 100644
|
||||
index 26afa6f..49f529a 100644
|
||||
--- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
|
||||
+++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
|
||||
@@ -1402,14 +1402,14 @@
|
||||
@@ -1407,14 +1407,14 @@
|
||||
@ cdecl -private -arch=i386 _CIsqrt() msvcrt._CIsqrt
|
||||
@ cdecl -private _abnormal_termination() msvcrt._abnormal_termination
|
||||
@ stdcall -private -arch=i386 -ret64 _alldiv(int64 int64)
|
||||
@ -221,7 +221,7 @@ index 7f43704..2e891d6 100644
|
||||
+@ stdcall -private -arch=i386 -norelay _aulldvrm(int64 int64)
|
||||
@ stdcall -private -arch=i386 -ret64 _aullrem(int64 int64)
|
||||
@ stdcall -private -arch=i386 -ret64 _aullshr(int64 long)
|
||||
@ cdecl -private -arch=i386 _except_handler2(ptr ptr ptr ptr) msvcrt._except_handler2
|
||||
@ stdcall -private -arch=i386 -norelay _chkstk()
|
||||
--
|
||||
2.7.4
|
||||
|
||||
|
@ -1,25 +0,0 @@
|
||||
From 5b14b1326af51900975be9749fd2319643cde2d9 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Mon, 19 Jun 2017 03:55:14 +0200
|
||||
Subject: ntdll: Set proper ExceptionInformation[0] for x86_64 exceptions.
|
||||
|
||||
---
|
||||
dlls/ntdll/signal_x86_64.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c
|
||||
index 86034c00a5..365e3799d4 100644
|
||||
--- a/dlls/ntdll/signal_x86_64.c
|
||||
+++ b/dlls/ntdll/signal_x86_64.c
|
||||
@@ -2663,7 +2663,7 @@ static void segv_handler( int signal, siginfo_t *siginfo, void *sigcontext )
|
||||
case TRAP_x86_PAGEFLT: /* Page fault */
|
||||
rec->ExceptionCode = EXCEPTION_ACCESS_VIOLATION;
|
||||
rec->NumberParameters = 2;
|
||||
- rec->ExceptionInformation[0] = (ERROR_sig(ucontext) & 2) != 0;
|
||||
+ rec->ExceptionInformation[0] = (ERROR_sig(ucontext) >> 1) & 0x09;
|
||||
rec->ExceptionInformation[1] = (ULONG_PTR)siginfo->si_addr;
|
||||
break;
|
||||
case TRAP_x86_ALIGNFLT: /* Alignment check exception */
|
||||
--
|
||||
2.13.1
|
||||
|
@ -1 +0,0 @@
|
||||
# Originally separated from ntdll-Builtin_Prot, for unclear reasons.
|
@ -52,7 +52,7 @@ usage()
|
||||
# Get the upstream commit sha
|
||||
upstream_commit()
|
||||
{
|
||||
echo "e1c7a1f7ce03c1e69e008378e90523e85e1c6e8f"
|
||||
echo "d7430abd406d1f298acb9b2e5a397e11e448f304"
|
||||
}
|
||||
|
||||
# Show version information
|
||||
@ -110,7 +110,7 @@ patch_enable_all ()
|
||||
enable_crypt32_MS_Root_Certs="$1"
|
||||
enable_d3d11_Deferred_Context="$1"
|
||||
enable_d3d11_Depth_Bias="$1"
|
||||
enable_d3d11_ID3D11Texture1D="$1"
|
||||
enable_d3d11_ID3D11Texture1D_Rebased="$1"
|
||||
enable_d3d11_Silence_FIXMEs="$1"
|
||||
enable_d3d8_ValidateShader="$1"
|
||||
enable_d3d9_DesktopWindow="$1"
|
||||
@ -264,7 +264,6 @@ patch_enable_all ()
|
||||
enable_ntdll_Zero_mod_name="$1"
|
||||
enable_ntdll__aulldvrm="$1"
|
||||
enable_ntdll_set_full_cpu_context="$1"
|
||||
enable_ntdll_x86_64_ExceptionInformation="$1"
|
||||
enable_ntoskrnl_Stubs="$1"
|
||||
enable_nvapi_Stub_DLL="$1"
|
||||
enable_nvcuda_CUDA_Support="$1"
|
||||
@ -391,7 +390,6 @@ patch_enable_all ()
|
||||
enable_winecfg_Libraries="$1"
|
||||
enable_winecfg_Staging="$1"
|
||||
enable_winecfg_Unmounted_Devices="$1"
|
||||
enable_wined3d_1DTextures="$1"
|
||||
enable_wined3d_Accounting="$1"
|
||||
enable_wined3d_CSMT_Helper="$1"
|
||||
enable_wined3d_CSMT_Main="$1"
|
||||
@ -537,8 +535,8 @@ patch_enable ()
|
||||
d3d11-Depth_Bias)
|
||||
enable_d3d11_Depth_Bias="$2"
|
||||
;;
|
||||
d3d11-ID3D11Texture1D)
|
||||
enable_d3d11_ID3D11Texture1D="$2"
|
||||
d3d11-ID3D11Texture1D_Rebased)
|
||||
enable_d3d11_ID3D11Texture1D_Rebased="$2"
|
||||
;;
|
||||
d3d11-Silence_FIXMEs)
|
||||
enable_d3d11_Silence_FIXMEs="$2"
|
||||
@ -999,9 +997,6 @@ patch_enable ()
|
||||
ntdll-set_full_cpu_context)
|
||||
enable_ntdll_set_full_cpu_context="$2"
|
||||
;;
|
||||
ntdll-x86_64_ExceptionInformation)
|
||||
enable_ntdll_x86_64_ExceptionInformation="$2"
|
||||
;;
|
||||
ntoskrnl-Stubs)
|
||||
enable_ntoskrnl_Stubs="$2"
|
||||
;;
|
||||
@ -1380,9 +1375,6 @@ patch_enable ()
|
||||
winecfg-Unmounted_Devices)
|
||||
enable_winecfg_Unmounted_Devices="$2"
|
||||
;;
|
||||
wined3d-1DTextures)
|
||||
enable_wined3d_1DTextures="$2"
|
||||
;;
|
||||
wined3d-Accounting)
|
||||
enable_wined3d_Accounting="$2"
|
||||
;;
|
||||
@ -1972,6 +1964,9 @@ 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."
|
||||
fi
|
||||
if test "$enable_d3d11_ID3D11Texture1D_Rebased" -gt 1; then
|
||||
abort "Patchset d3d11-ID3D11Texture1D_Rebased disabled, but wined3d-CSMT_Helper depends on that."
|
||||
fi
|
||||
if test "$enable_d3d9_Tests" -gt 1; then
|
||||
abort "Patchset d3d9-Tests disabled, but wined3d-CSMT_Helper depends on that."
|
||||
fi
|
||||
@ -1981,9 +1976,6 @@ if test "$enable_wined3d_CSMT_Helper" -eq 1; then
|
||||
if test "$enable_ntdll_DllRedirects" -gt 1; then
|
||||
abort "Patchset ntdll-DllRedirects disabled, but wined3d-CSMT_Helper depends on that."
|
||||
fi
|
||||
if test "$enable_wined3d_1DTextures" -gt 1; then
|
||||
abort "Patchset wined3d-1DTextures disabled, but wined3d-CSMT_Helper depends on that."
|
||||
fi
|
||||
if test "$enable_wined3d_Accounting" -gt 1; then
|
||||
abort "Patchset wined3d-Accounting disabled, but wined3d-CSMT_Helper depends on that."
|
||||
fi
|
||||
@ -2003,10 +1995,10 @@ if test "$enable_wined3d_CSMT_Helper" -eq 1; then
|
||||
abort "Patchset wined3d-UAV_Counters disabled, but wined3d-CSMT_Helper depends on that."
|
||||
fi
|
||||
enable_d3d11_Deferred_Context=1
|
||||
enable_d3d11_ID3D11Texture1D_Rebased=1
|
||||
enable_d3d9_Tests=1
|
||||
enable_makedep_PARENTSPEC=1
|
||||
enable_ntdll_DllRedirects=1
|
||||
enable_wined3d_1DTextures=1
|
||||
enable_wined3d_Accounting=1
|
||||
enable_wined3d_DXTn=1
|
||||
enable_wined3d_Dual_Source_Blending=1
|
||||
@ -2016,9 +2008,13 @@ if test "$enable_wined3d_CSMT_Helper" -eq 1; then
|
||||
fi
|
||||
|
||||
if test "$enable_wined3d_Dual_Source_Blending" -eq 1; then
|
||||
if test "$enable_d3d11_ID3D11Texture1D_Rebased" -gt 1; then
|
||||
abort "Patchset d3d11-ID3D11Texture1D_Rebased disabled, but wined3d-Dual_Source_Blending depends on that."
|
||||
fi
|
||||
if test "$enable_wined3d_Viewports" -gt 1; then
|
||||
abort "Patchset wined3d-Viewports disabled, but wined3d-Dual_Source_Blending depends on that."
|
||||
fi
|
||||
enable_d3d11_ID3D11Texture1D_Rebased=1
|
||||
enable_wined3d_Viewports=1
|
||||
fi
|
||||
|
||||
@ -2351,22 +2347,14 @@ if test "$enable_ntdll_Builtin_Prot" -eq 1; then
|
||||
if test "$enable_ntdll_User_Shared_Data" -gt 1; then
|
||||
abort "Patchset ntdll-User_Shared_Data disabled, but ntdll-Builtin_Prot depends on that."
|
||||
fi
|
||||
if test "$enable_ntdll_x86_64_ExceptionInformation" -gt 1; then
|
||||
abort "Patchset ntdll-x86_64_ExceptionInformation disabled, but ntdll-Builtin_Prot depends on that."
|
||||
fi
|
||||
enable_ntdll_User_Shared_Data=1
|
||||
enable_ntdll_x86_64_ExceptionInformation=1
|
||||
fi
|
||||
|
||||
if test "$enable_ntdll_User_Shared_Data" -eq 1; then
|
||||
if test "$enable_ntdll_Hide_Wine_Exports" -gt 1; then
|
||||
abort "Patchset ntdll-Hide_Wine_Exports disabled, but ntdll-User_Shared_Data depends on that."
|
||||
fi
|
||||
if test "$enable_ntdll_x86_64_ExceptionInformation" -gt 1; then
|
||||
abort "Patchset ntdll-x86_64_ExceptionInformation disabled, but ntdll-User_Shared_Data depends on that."
|
||||
fi
|
||||
enable_ntdll_Hide_Wine_Exports=1
|
||||
enable_ntdll_x86_64_ExceptionInformation=1
|
||||
fi
|
||||
|
||||
if test "$enable_ntdll_Hide_Wine_Exports" -eq 1; then
|
||||
@ -2454,18 +2442,11 @@ if test "$enable_d3dx9_36_DXTn" -eq 1; then
|
||||
enable_wined3d_DXTn=1
|
||||
fi
|
||||
|
||||
if test "$enable_d3d11_ID3D11Texture1D" -eq 1; then
|
||||
if test "$enable_wined3d_1DTextures" -gt 1; then
|
||||
abort "Patchset wined3d-1DTextures disabled, but d3d11-ID3D11Texture1D depends on that."
|
||||
fi
|
||||
enable_wined3d_1DTextures=1
|
||||
fi
|
||||
|
||||
if test "$enable_d3d11_Deferred_Context" -eq 1; then
|
||||
if test "$enable_wined3d_1DTextures" -gt 1; then
|
||||
abort "Patchset wined3d-1DTextures disabled, but d3d11-Deferred_Context depends on that."
|
||||
if test "$enable_d3d11_ID3D11Texture1D_Rebased" -gt 1; then
|
||||
abort "Patchset d3d11-ID3D11Texture1D_Rebased disabled, but d3d11-Deferred_Context depends on that."
|
||||
fi
|
||||
enable_wined3d_1DTextures=1
|
||||
enable_d3d11_ID3D11Texture1D_Rebased=1
|
||||
fi
|
||||
|
||||
if test "$enable_api_ms_win_Stub_DLLs" -eq 1; then
|
||||
@ -3104,56 +3085,28 @@ if test "$enable_crypt32_MS_Root_Certs" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset wined3d-1DTextures
|
||||
# Patchset d3d11-ID3D11Texture1D_Rebased
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#40976] Implement support for ID3D11Texture1D
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/d3d11/device.c, dlls/d3d11/tests/d3d11.c, dlls/wined3d/context.c, dlls/wined3d/device.c, dlls/wined3d/directx.c,
|
||||
# | dlls/wined3d/glsl_shader.c, dlls/wined3d/resource.c, dlls/wined3d/texture.c, dlls/wined3d/utils.c, dlls/wined3d/view.c,
|
||||
# | dlls/wined3d/wined3d_private.h, include/wine/wined3d.h
|
||||
# | * dlls/d3d11/d3d11_private.h, dlls/d3d11/device.c, dlls/d3d11/tests/d3d11.c, dlls/d3d11/texture.c, dlls/d3d11/utils.c,
|
||||
# | dlls/wined3d/context.c, dlls/wined3d/device.c, dlls/wined3d/directx.c, dlls/wined3d/glsl_shader.c,
|
||||
# | dlls/wined3d/nvidia_texture_shader.c, dlls/wined3d/resource.c, dlls/wined3d/shader.c, dlls/wined3d/texture.c,
|
||||
# | dlls/wined3d/utils.c, dlls/wined3d/view.c, dlls/wined3d/wined3d_private.h, include/wine/wined3d.h
|
||||
# |
|
||||
if test "$enable_wined3d_1DTextures" -eq 1; then
|
||||
patch_apply wined3d-1DTextures/0001-wined3d-Create-dummy-1d-textures.patch
|
||||
patch_apply wined3d-1DTextures/0002-wined3d-Add-1d-texture-resource-type.patch
|
||||
patch_apply wined3d-1DTextures/0003-wined3d-Add-is_power_of_two-helper-function.patch
|
||||
patch_apply wined3d-1DTextures/0004-wined3d-Create-dummy-1d-textures-and-surfaces.patch
|
||||
patch_apply wined3d-1DTextures/0005-wined3d-Implement-preparation-for-1d-textures.patch
|
||||
patch_apply wined3d-1DTextures/0006-wined3d-Implement-uploading-for-1d-textures.patch
|
||||
patch_apply wined3d-1DTextures/0007-wined3d-Implement-loading-from-system-memory-and-buf.patch
|
||||
patch_apply wined3d-1DTextures/0008-wined3d-Implement-downloading-from-s-rgb-1d-textures.patch
|
||||
patch_apply wined3d-1DTextures/0009-wined3d-Implement-converting-between-s-rgb-1d-textur.patch
|
||||
patch_apply wined3d-1DTextures/0010-wined3d-Check-for-1d-textures-in-wined3d_texture_upd.patch
|
||||
patch_apply wined3d-1DTextures/0011-wined3d-Check-if-1d-teture-is-still-in-use-before-re.patch
|
||||
patch_apply wined3d-1DTextures/0012-wined3d-Generate-glsl-samplers-for-1d-texture-arrays.patch
|
||||
patch_apply wined3d-1DTextures/0013-wined3d-Add-support-for-1d-textures-in-context_attac.patch
|
||||
patch_apply wined3d-1DTextures/0014-wined3d-Handle-1d-textures-in-texture_activate_dimen.patch
|
||||
patch_apply wined3d-1DTextures/0015-wined3d-Allow-creation-of-1d-shader-views.patch
|
||||
patch_apply wined3d-1DTextures/0016-d3d11-Improve-ID3D11Device_CheckFormatSupport.patch
|
||||
patch_apply wined3d-1DTextures/0017-d3d11-Allow-DXGI_FORMAT_UNKNOWN-in-CheckFormatSuppor.patch
|
||||
if test "$enable_d3d11_ID3D11Texture1D_Rebased" -eq 1; then
|
||||
patch_apply d3d11-ID3D11Texture1D_Rebased/0001-d3d11-Implement-ID3D11Texture1D.patch
|
||||
(
|
||||
printf '%s\n' '+ { "Michael Müller", "wined3d: Create dummy 1d textures.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "wined3d: Add 1d texture resource type.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "wined3d: Add is_power_of_two helper function.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "wined3d: Create dummy 1d textures and surfaces.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "wined3d: Implement preparation for 1d textures.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "wined3d: Implement uploading for 1d textures.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "wined3d: Implement loading from system memory and buffers to (s)rgb 1d textures.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "wined3d: Implement downloading from (s)rgb 1d textures to system memory.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "wined3d: Implement converting between (s)rgb 1d textures.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "wined3d: Check for 1d textures in wined3d_texture_update_desc.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "wined3d: Check if 1d teture is still in use before releasing.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "wined3d: Generate glsl samplers for 1d texture arrays.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "wined3d: Add support for 1d textures in context_attach_gl_texture_fbo.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "wined3d: Handle 1d textures in texture_activate_dimensions.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "wined3d: Allow creation of 1d shader views.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "d3d11: Improve ID3D11Device_CheckFormatSupport.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "d3d11: Allow DXGI_FORMAT_UNKNOWN in CheckFormatSupport and improve tests.", 1 },';
|
||||
printf '%s\n' '+ { "Henri Verbeet", "d3d11: Implement ID3D11Texture1D.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset d3d11-Deferred_Context
|
||||
# |
|
||||
# | This patchset has the following (direct or indirect) dependencies:
|
||||
# | * wined3d-1DTextures
|
||||
# | * d3d11-ID3D11Texture1D_Rebased
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#42191] Add semi-stub for D3D11 deferred context implementation
|
||||
@ -3271,65 +3224,6 @@ if test "$enable_d3d11_Depth_Bias" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset d3d11-ID3D11Texture1D
|
||||
# |
|
||||
# | This patchset has the following (direct or indirect) dependencies:
|
||||
# | * wined3d-1DTextures
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#40976] Implement support for ID3D11Texture1D
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/d3d11/d3d11_private.h, dlls/d3d11/device.c, dlls/d3d11/tests/d3d11.c, dlls/d3d11/texture.c, dlls/d3d11/utils.c,
|
||||
# | dlls/d3d11/view.c
|
||||
# |
|
||||
if test "$enable_d3d11_ID3D11Texture1D" -eq 1; then
|
||||
patch_apply d3d11-ID3D11Texture1D/0001-d3d11-Add-stub-ID3D11Texture2D-and-ID3D10Texture2D-i.patch
|
||||
patch_apply d3d11-ID3D11Texture1D/0002-d3d11-Create-a-texture-in-d3d_texture1d_init.patch
|
||||
patch_apply d3d11-ID3D11Texture1D/0003-d3d11-Create-a-private-store-in-d3d_texture1d_init.patch
|
||||
patch_apply d3d11-ID3D11Texture1D/0004-d3d11-Generate-dxgi-surface-in-d3d_texture1d_init.patch
|
||||
patch_apply d3d11-ID3D11Texture1D/0005-d3d11-Improve-d3d11_texture1d_GetDesc-by-obtaining-t.patch
|
||||
patch_apply d3d11-ID3D11Texture1D/0006-d3d11-Implement-d3d10_texture1d_-Un-map.patch
|
||||
patch_apply d3d11-ID3D11Texture1D/0007-d3d11-Implement-d3d10_texture1d_GetDesc.patch
|
||||
patch_apply d3d11-ID3D11Texture1D/0008-d3d11-Implement-d3d11_texture1d_-G-S-etPrivateData.patch
|
||||
patch_apply d3d11-ID3D11Texture1D/0009-d3d11-Add-d3d11_texture1d_SetPrivateDataInterface.patch
|
||||
patch_apply d3d11-ID3D11Texture1D/0010-d3d11-Add-a-hack-to-prevent-creation-of-1d-cube-text.patch
|
||||
patch_apply d3d11-ID3D11Texture1D/0011-d3d11-Add-support-for-1d-textures-in-normalize_srv_d.patch
|
||||
patch_apply d3d11-ID3D11Texture1D/0012-d3d11-Add-support-for-1d-textures-in-normalize_rtv_d.patch
|
||||
patch_apply d3d11-ID3D11Texture1D/0013-d3d11-tests-Add-support-for-1d-textures-in-check_srv.patch
|
||||
patch_apply d3d11-ID3D11Texture1D/0014-d3d11-tests-Add-support-for-1d-textures-in-check_rtv.patch
|
||||
patch_apply d3d11-ID3D11Texture1D/0015-d3d11-tests-Add-test-for-creating-1d-textures.patch
|
||||
patch_apply d3d11-ID3D11Texture1D/0016-d3d11-tests-Test-1d-texture-interfaces.patch
|
||||
patch_apply d3d11-ID3D11Texture1D/0017-d3d11-tests-Test-the-creation-of-1d-render-buffers-i.patch
|
||||
patch_apply d3d11-ID3D11Texture1D/0018-d3d11-tests-Test-the-creation-of-1d-shader-resource-.patch
|
||||
patch_apply d3d11-ID3D11Texture1D/0019-d3d11-tests-Prepare-test_texture-for-non-2d-textures.patch
|
||||
patch_apply d3d11-ID3D11Texture1D/0020-d3d11-tests-Prepare-test_texture-for-1d-textures.patch
|
||||
patch_apply d3d11-ID3D11Texture1D/0021-d3d11-tests-Add-some-basic-1d-texture-tests-in-test_.patch
|
||||
(
|
||||
printf '%s\n' '+ { "Michael Müller", "d3d11: Add stub ID3D11Texture2D and ID3D10Texture2D interfaces.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "d3d11: Create a texture in d3d_texture1d_init.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "d3d11: Create a private store in d3d_texture1d_init.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "d3d11: Generate dxgi surface in d3d_texture1d_init.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "d3d11: Improve d3d11_texture1d_GetDesc by obtaining the current width and format from wined3d.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "d3d11: Implement d3d10_texture1d_(Un)map.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "d3d11: Implement d3d10_texture1d_GetDesc.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "d3d11: Implement d3d11_texture1d_{G,S}etPrivateData.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "d3d11: Add d3d11_texture1d_SetPrivateDataInterface.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "d3d11: Add a hack to prevent creation of 1d cube textures.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "d3d11: Add support for 1d textures in normalize_srv_desc.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "d3d11: Add support for 1d textures in normalize_rtv_desc.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "d3d11/tests: Add support for 1d textures in check_srv_desc_.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "d3d11/tests: Add support for 1d textures in check_rtv_desc_.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "d3d11/tests: Add test for creating 1d textures.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "d3d11/tests: Test 1d texture interfaces.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "d3d11/tests: Test the creation of 1d render buffers in test_create_rendertarget_view.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "d3d11/tests: Test the creation of 1d shader resource views in test_create_shader_resource_view.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "d3d11/tests: Prepare test_texture for non 2d textures.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "d3d11/tests: Prepare test_texture for 1d textures.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "d3d11/tests: Add some basic 1d texture tests in test_texture.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset d3d11-Silence_FIXMEs
|
||||
# |
|
||||
# | Modified files:
|
||||
@ -5079,22 +4973,10 @@ if test "$enable_ntdll_Hide_Wine_Exports" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset ntdll-x86_64_ExceptionInformation
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/ntdll/signal_x86_64.c
|
||||
# |
|
||||
if test "$enable_ntdll_x86_64_ExceptionInformation" -eq 1; then
|
||||
patch_apply ntdll-x86_64_ExceptionInformation/0001-ntdll-Set-proper-ExceptionInformation-0-for-x86_64-e.patch
|
||||
(
|
||||
printf '%s\n' '+ { "Sebastian Lackner", "ntdll: Set proper ExceptionInformation[0] for x86_64 exceptions.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset ntdll-User_Shared_Data
|
||||
# |
|
||||
# | This patchset has the following (direct or indirect) dependencies:
|
||||
# | * ntdll-ThreadTime, ntdll-Hide_Wine_Exports, ntdll-x86_64_ExceptionInformation
|
||||
# | * ntdll-ThreadTime, ntdll-Hide_Wine_Exports
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#29168] Update user shared data at realtime
|
||||
@ -5119,7 +5001,7 @@ fi
|
||||
# Patchset ntdll-Builtin_Prot
|
||||
# |
|
||||
# | This patchset has the following (direct or indirect) dependencies:
|
||||
# | * ntdll-ThreadTime, ntdll-Hide_Wine_Exports, ntdll-x86_64_ExceptionInformation, ntdll-User_Shared_Data
|
||||
# | * ntdll-ThreadTime, ntdll-Hide_Wine_Exports, ntdll-User_Shared_Data
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#44650] Fix holes in ELF mappings
|
||||
@ -5726,7 +5608,7 @@ fi
|
||||
# Patchset ntdll-WRITECOPY
|
||||
# |
|
||||
# | This patchset has the following (direct or indirect) dependencies:
|
||||
# | * ntdll-ThreadTime, ntdll-Hide_Wine_Exports, ntdll-x86_64_ExceptionInformation, ntdll-User_Shared_Data
|
||||
# | * ntdll-ThreadTime, ntdll-Hide_Wine_Exports, ntdll-User_Shared_Data
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#29384] Voobly expects correct handling of WRITECOPY memory protection
|
||||
@ -5753,7 +5635,7 @@ fi
|
||||
# Patchset ntdll-Signal_Handler
|
||||
# |
|
||||
# | This patchset has the following (direct or indirect) dependencies:
|
||||
# | * ntdll-ThreadTime, ntdll-Hide_Wine_Exports, ntdll-x86_64_ExceptionInformation, ntdll-User_Shared_Data, ntdll-WRITECOPY
|
||||
# | * ntdll-ThreadTime, ntdll-Hide_Wine_Exports, ntdll-User_Shared_Data, ntdll-WRITECOPY
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/ntdll/signal_i386.c
|
||||
@ -8134,7 +8016,7 @@ fi
|
||||
# Patchset winebuild-Fake_Dlls
|
||||
# |
|
||||
# | This patchset has the following (direct or indirect) dependencies:
|
||||
# | * ntdll-ThreadTime, ntdll-Hide_Wine_Exports, ntdll-x86_64_ExceptionInformation, ntdll-User_Shared_Data
|
||||
# | * ntdll-ThreadTime, ntdll-Hide_Wine_Exports, ntdll-User_Shared_Data
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#42741] Various improvements for fake dlls
|
||||
@ -8265,7 +8147,7 @@ fi
|
||||
# Patchset wined3d-Dual_Source_Blending
|
||||
# |
|
||||
# | This patchset has the following (direct or indirect) dependencies:
|
||||
# | * d3d11-Depth_Bias, wined3d-Core_Context, wined3d-Viewports
|
||||
# | * d3d11-ID3D11Texture1D_Rebased, d3d11-Depth_Bias, 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,
|
||||
@ -8328,7 +8210,7 @@ fi
|
||||
# Patchset wined3d-CSMT_Helper
|
||||
# |
|
||||
# | This patchset has the following (direct or indirect) dependencies:
|
||||
# | * wined3d-1DTextures, d3d11-Deferred_Context, d3d9-Tests, makedep-PARENTSPEC, ntdll-DllOverrides_WOW64, ntdll-
|
||||
# | * d3d11-ID3D11Texture1D_Rebased, d3d11-Deferred_Context, d3d9-Tests, makedep-PARENTSPEC, ntdll-DllOverrides_WOW64, ntdll-
|
||||
# | Loader_Machine_Type, ntdll-DllRedirects, wined3d-Accounting, wined3d-DXTn, d3d11-Depth_Bias, wined3d-Core_Context,
|
||||
# | wined3d-Viewports, wined3d-Dual_Source_Blending, wined3d-QUERY_Stubs, wined3d-Silence_FIXMEs, wined3d-UAV_Counters
|
||||
# |
|
||||
@ -8465,7 +8347,7 @@ fi
|
||||
# Patchset wined3d-CSMT_Main
|
||||
# |
|
||||
# | This patchset has the following (direct or indirect) dependencies:
|
||||
# | * wined3d-1DTextures, d3d11-Deferred_Context, d3d9-Tests, makedep-PARENTSPEC, ntdll-DllOverrides_WOW64, ntdll-
|
||||
# | * d3d11-ID3D11Texture1D_Rebased, d3d11-Deferred_Context, d3d9-Tests, makedep-PARENTSPEC, ntdll-DllOverrides_WOW64, ntdll-
|
||||
# | Loader_Machine_Type, ntdll-DllRedirects, wined3d-Accounting, wined3d-DXTn, d3d11-Depth_Bias, wined3d-Core_Context,
|
||||
# | wined3d-Viewports, wined3d-Dual_Source_Blending, wined3d-QUERY_Stubs, wined3d-Silence_FIXMEs, wined3d-UAV_Counters,
|
||||
# | wined3d-CSMT_Helper
|
||||
|
1
patches/wined3d-1DTextures/definition
Normal file
1
patches/wined3d-1DTextures/definition
Normal file
@ -0,0 +1 @@
|
||||
Disabled: true
|
@ -1,7 +1,7 @@
|
||||
Depends: wined3d-Accounting
|
||||
Depends: wined3d-DXTn
|
||||
Depends: wined3d-QUERY_Stubs
|
||||
Depends: wined3d-1DTextures
|
||||
Depends: d3d11-ID3D11Texture1D_Rebased
|
||||
Depends: wined3d-Silence_FIXMEs
|
||||
Depends: wined3d-UAV_Counters
|
||||
Depends: wined3d-Dual_Source_Blending
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 0dd251b4e4bfc63fab3c22acf894a20e9e6d5914 Mon Sep 17 00:00:00 2001
|
||||
From fda0041ebe98a2da3a43dad2443812406f2eafd4 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Fri, 30 Aug 2013 17:00:35 +0200
|
||||
Subject: [PATCH] wined3d: Wrap GL BOs in a structure
|
||||
@ -13,10 +13,10 @@ them for DISCARD maps.
|
||||
4 files changed, 93 insertions(+), 31 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
index 75494d9..4593b2b 100644
|
||||
index 9472ffa..656febf 100644
|
||||
--- a/dlls/wined3d/device.c
|
||||
+++ b/dlls/wined3d/device.c
|
||||
@@ -5332,3 +5332,56 @@ LRESULT device_process_message(struct wined3d_device *device, HWND window, BOOL
|
||||
@@ -5307,3 +5307,56 @@ LRESULT device_process_message(struct wined3d_device *device, HWND window, BOOL
|
||||
else
|
||||
return CallWindowProcA(proc, window, message, wparam, lparam);
|
||||
}
|
||||
@ -74,23 +74,23 @@ index 75494d9..4593b2b 100644
|
||||
+ wined3d_device_destroy_bo(device, context, bo);
|
||||
+}
|
||||
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
index 13afdef..8cd5b82 100644
|
||||
index 30f4936..a27b623 100644
|
||||
--- a/dlls/wined3d/surface.c
|
||||
+++ b/dlls/wined3d/surface.c
|
||||
@@ -2408,7 +2408,7 @@ BOOL texture2d_load_texture(struct wined3d_texture *texture, unsigned int sub_re
|
||||
@@ -2232,7 +2232,7 @@ BOOL texture2d_load_texture(struct wined3d_texture *texture, unsigned int sub_re
|
||||
/* Don't use PBOs for converted surfaces. During PBO conversion we look at
|
||||
* WINED3D_TEXTURE_CONVERTED but it isn't set (yet) in all cases it is
|
||||
* getting called. */
|
||||
- if ((format.conv_byte_count || conversion) && texture->sub_resources[sub_resource_idx].buffer_object)
|
||||
+ if ((format.conv_byte_count || conversion) && texture->sub_resources[sub_resource_idx].buffer)
|
||||
- if (conversion && sub_resource->buffer_object)
|
||||
+ if (conversion && sub_resource->buffer)
|
||||
{
|
||||
TRACE("Removing the pbo attached to texture %p, %u.\n", texture, sub_resource_idx);
|
||||
|
||||
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
|
||||
index b79a1ec..d7add3e 100644
|
||||
index 526bfb1..89313ca 100644
|
||||
--- a/dlls/wined3d/texture.c
|
||||
+++ b/dlls/wined3d/texture.c
|
||||
@@ -320,7 +320,7 @@ void wined3d_texture_get_memory(struct wined3d_texture *texture, unsigned int su
|
||||
@@ -321,7 +321,7 @@ void wined3d_texture_get_memory(struct wined3d_texture *texture, unsigned int su
|
||||
if (locations & WINED3D_LOCATION_BUFFER)
|
||||
{
|
||||
data->addr = NULL;
|
||||
@ -99,7 +99,7 @@ index b79a1ec..d7add3e 100644
|
||||
return;
|
||||
}
|
||||
if (locations & WINED3D_LOCATION_USER_MEMORY)
|
||||
@@ -430,18 +430,17 @@ static HRESULT wined3d_texture_init(struct wined3d_texture *texture, const struc
|
||||
@@ -345,18 +345,17 @@ void wined3d_texture_get_memory(struct wined3d_texture *texture, unsigned int su
|
||||
|
||||
/* Context activation is done by the caller. */
|
||||
static void wined3d_texture_remove_buffer_object(struct wined3d_texture *texture,
|
||||
@ -125,7 +125,7 @@ index b79a1ec..d7add3e 100644
|
||||
}
|
||||
|
||||
static void wined3d_texture_update_map_binding(struct wined3d_texture *texture)
|
||||
@@ -461,7 +460,7 @@ static void wined3d_texture_update_map_binding(struct wined3d_texture *texture)
|
||||
@@ -376,7 +375,7 @@ static void wined3d_texture_update_map_binding(struct wined3d_texture *texture)
|
||||
&& !wined3d_texture_load_location(texture, i, context, map_binding))
|
||||
ERR("Failed to load location %s.\n", wined3d_debug_location(map_binding));
|
||||
if (texture->resource.map_binding == WINED3D_LOCATION_BUFFER)
|
||||
@ -134,10 +134,10 @@ index b79a1ec..d7add3e 100644
|
||||
}
|
||||
|
||||
if (context)
|
||||
@@ -664,17 +663,17 @@ static void wined3d_texture_cleanup(struct wined3d_texture *texture)
|
||||
struct wined3d_renderbuffer_entry *entry, *entry2;
|
||||
@@ -719,17 +718,17 @@ static void wined3d_texture_cleanup(struct wined3d_texture *texture)
|
||||
const struct wined3d_gl_info *gl_info = NULL;
|
||||
struct wined3d_context *context = NULL;
|
||||
struct wined3d_dc_info *dc_info;
|
||||
- GLuint buffer_object;
|
||||
+ struct wined3d_gl_bo *buffer;
|
||||
unsigned int i;
|
||||
@ -155,7 +155,7 @@ index b79a1ec..d7add3e 100644
|
||||
|
||||
/* We may not be able to get a context in wined3d_texture_cleanup() in
|
||||
* general, but if a buffer object was previously created we can. */
|
||||
@@ -684,7 +683,8 @@ static void wined3d_texture_cleanup(struct wined3d_texture *texture)
|
||||
@@ -739,7 +738,8 @@ static void wined3d_texture_cleanup(struct wined3d_texture *texture)
|
||||
gl_info = context->gl_info;
|
||||
}
|
||||
|
||||
@ -165,7 +165,7 @@ index b79a1ec..d7add3e 100644
|
||||
}
|
||||
|
||||
if (!context && !list_empty(&texture->renderbuffers))
|
||||
@@ -1583,22 +1583,19 @@ HRESULT CDECL wined3d_texture_update_desc(struct wined3d_texture *texture, UINT
|
||||
@@ -1545,22 +1545,19 @@ HRESULT CDECL wined3d_texture_update_desc(struct wined3d_texture *texture, UINT
|
||||
|
||||
/* Context activation is done by the caller. */
|
||||
static void wined3d_texture_prepare_buffer_object(struct wined3d_texture *texture,
|
||||
@ -193,7 +193,7 @@ index b79a1ec..d7add3e 100644
|
||||
}
|
||||
|
||||
static void wined3d_texture_force_reload(struct wined3d_texture *texture)
|
||||
@@ -1697,7 +1694,7 @@ BOOL wined3d_texture_prepare_location(struct wined3d_texture *texture, unsigned
|
||||
@@ -1695,7 +1692,7 @@ BOOL wined3d_texture_prepare_location(struct wined3d_texture *texture, unsigned
|
||||
return TRUE;
|
||||
|
||||
case WINED3D_LOCATION_BUFFER:
|
||||
@ -202,25 +202,7 @@ index b79a1ec..d7add3e 100644
|
||||
return TRUE;
|
||||
|
||||
case WINED3D_LOCATION_TEXTURE_RGB:
|
||||
@@ -1996,7 +1993,7 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in
|
||||
}
|
||||
else if (sub_resource->locations & WINED3D_LOCATION_BUFFER)
|
||||
{
|
||||
- struct wined3d_const_bo_address data = {sub_resource->buffer_object, NULL};
|
||||
+ struct wined3d_const_bo_address data = {sub_resource->buffer->name, NULL};
|
||||
wined3d_texture_bind_and_dirtify(texture, context, location == WINED3D_LOCATION_TEXTURE_SRGB);
|
||||
wined3d_texture_get_pitch(texture, sub_resource_idx, &row_pitch, &slice_pitch);
|
||||
texture1d_upload_data(texture, sub_resource_idx, context, NULL, &data, row_pitch, slice_pitch);
|
||||
@@ -2041,7 +2038,7 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in
|
||||
case WINED3D_LOCATION_BUFFER:
|
||||
if (sub_resource->locations & (WINED3D_LOCATION_TEXTURE_RGB | WINED3D_LOCATION_TEXTURE_SRGB))
|
||||
{
|
||||
- struct wined3d_bo_address data = {sub_resource->buffer_object, NULL};
|
||||
+ struct wined3d_bo_address data = {sub_resource->buffer->name, NULL};
|
||||
|
||||
if (sub_resource->locations & WINED3D_LOCATION_TEXTURE_RGB)
|
||||
wined3d_texture_bind_and_dirtify(texture, context, FALSE);
|
||||
@@ -2339,8 +2336,8 @@ static void wined3d_texture_unload(struct wined3d_resource *resource)
|
||||
@@ -2073,8 +2070,8 @@ static void wined3d_texture_unload(struct wined3d_resource *resource)
|
||||
wined3d_texture_invalidate_location(texture, i, ~WINED3D_LOCATION_DISCARDED);
|
||||
}
|
||||
|
||||
@ -231,16 +213,34 @@ index b79a1ec..d7add3e 100644
|
||||
}
|
||||
|
||||
LIST_FOR_EACH_ENTRY_SAFE(entry, entry2, &texture->renderbuffers, struct wined3d_renderbuffer_entry, entry)
|
||||
@@ -3095,7 +3092,7 @@ static BOOL texture3d_load_location(struct wined3d_texture *texture, unsigned in
|
||||
@@ -2372,7 +2369,7 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in
|
||||
}
|
||||
else if (sub_resource->locations & WINED3D_LOCATION_BUFFER)
|
||||
{
|
||||
- struct wined3d_const_bo_address data = {sub_resource->buffer_object, NULL};
|
||||
+ struct wined3d_const_bo_address data = {sub_resource->buffer->name, NULL};
|
||||
struct wined3d_box src_box;
|
||||
|
||||
wined3d_texture_bind_and_dirtify(texture, context,
|
||||
location == WINED3D_LOCATION_TEXTURE_SRGB);
|
||||
wined3d_texture_get_pitch(texture, sub_resource_idx, &row_pitch, &slice_pitch);
|
||||
@@ -3141,7 +3138,7 @@ static BOOL texture3d_load_location(struct wined3d_texture *texture, unsigned in
|
||||
@@ -2414,7 +2411,7 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in
|
||||
case WINED3D_LOCATION_BUFFER:
|
||||
if (sub_resource->locations & (WINED3D_LOCATION_TEXTURE_RGB | WINED3D_LOCATION_TEXTURE_SRGB))
|
||||
{
|
||||
- struct wined3d_bo_address data = {sub_resource->buffer_object, NULL};
|
||||
+ struct wined3d_bo_address data = {sub_resource->buffer->name, NULL};
|
||||
|
||||
if (sub_resource->locations & WINED3D_LOCATION_TEXTURE_RGB)
|
||||
wined3d_texture_bind_and_dirtify(texture, context, FALSE);
|
||||
@@ -2871,7 +2868,7 @@ static BOOL texture3d_load_location(struct wined3d_texture *texture, unsigned in
|
||||
}
|
||||
else if (sub_resource->locations & WINED3D_LOCATION_BUFFER)
|
||||
{
|
||||
- struct wined3d_const_bo_address data = {sub_resource->buffer_object, NULL};
|
||||
+ struct wined3d_const_bo_address data = {sub_resource->buffer->name, NULL};
|
||||
struct wined3d_box src_box;
|
||||
|
||||
wined3d_texture_bind_and_dirtify(texture, context,
|
||||
@@ -2921,7 +2918,7 @@ static BOOL texture3d_load_location(struct wined3d_texture *texture, unsigned in
|
||||
case WINED3D_LOCATION_BUFFER:
|
||||
if (sub_resource->locations & (WINED3D_LOCATION_TEXTURE_RGB | WINED3D_LOCATION_TEXTURE_SRGB))
|
||||
{
|
||||
@ -250,10 +250,10 @@ index b79a1ec..d7add3e 100644
|
||||
if (sub_resource->locations & WINED3D_LOCATION_TEXTURE_RGB)
|
||||
wined3d_texture_bind_and_dirtify(texture, context, FALSE);
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index 3137e7a..f47fd09 100644
|
||||
index e98a100..af58836 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -2894,6 +2894,14 @@ struct wined3d_dummy_textures
|
||||
@@ -2896,6 +2896,14 @@ struct wined3d_dummy_textures
|
||||
GLuint tex_2d_ms_array;
|
||||
};
|
||||
|
||||
@ -268,7 +268,7 @@ index 3137e7a..f47fd09 100644
|
||||
#define WINED3D_UNMAPPED_STAGE ~0u
|
||||
|
||||
/* Multithreaded flag. Removed from the public header to signal that
|
||||
@@ -2994,6 +3002,10 @@ LRESULT device_process_message(struct wined3d_device *device, HWND window, BOOL
|
||||
@@ -2995,6 +3003,10 @@ LRESULT device_process_message(struct wined3d_device *device, HWND window, BOOL
|
||||
void device_resource_add(struct wined3d_device *device, struct wined3d_resource *resource) DECLSPEC_HIDDEN;
|
||||
void device_resource_released(struct wined3d_device *device, struct wined3d_resource *resource) DECLSPEC_HIDDEN;
|
||||
void device_invalidate_state(const struct wined3d_device *device, DWORD state) DECLSPEC_HIDDEN;
|
||||
@ -279,7 +279,7 @@ index 3137e7a..f47fd09 100644
|
||||
|
||||
static inline BOOL isStateDirty(const struct wined3d_context *context, DWORD state)
|
||||
{
|
||||
@@ -3196,7 +3208,7 @@ struct wined3d_texture
|
||||
@@ -3194,7 +3206,7 @@ struct wined3d_texture
|
||||
|
||||
unsigned int map_count;
|
||||
DWORD locations;
|
||||
|
@ -1,27 +1,12 @@
|
||||
From 68a40c7553254a71925933c26d63147ec5b2b490 Mon Sep 17 00:00:00 2001
|
||||
From: Wine Staging Team <webmaster@fds-team.de>
|
||||
Date: Fri, 16 Mar 2018 14:10:37 +1100
|
||||
Subject: [PATCH] Autogenerated #ifdef patch for wined3d-CSMT_Main.
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
Subject: Autogenerated #ifdef patch for wined3d-CSMT_Main.
|
||||
|
||||
Based on patches by:
|
||||
Michael Müller <michael@fds-team.de>
|
||||
Sebastian Lackner <sebastian@fds-team.de>
|
||||
Stefan Dösinger <stefan@codeweavers.com>
|
||||
---
|
||||
dlls/wined3d/cs.c | 90 ++++++++++++++++++++++++++++++++++++++++++
|
||||
dlls/wined3d/device.c | 74 ++++++++++++++++++++++++++++++++++
|
||||
dlls/wined3d/surface.c | 4 ++
|
||||
dlls/wined3d/swapchain.c | 4 ++
|
||||
dlls/wined3d/texture.c | 85 +++++++++++++++++++++++++++++++++++++++
|
||||
dlls/wined3d/view.c | 14 +++++++
|
||||
dlls/wined3d/wined3d_private.h | 23 +++++++++++
|
||||
7 files changed, 294 insertions(+)
|
||||
|
||||
diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
|
||||
index c194832..0493bb8 100644
|
||||
--- a/dlls/wined3d/cs.c
|
||||
+++ b/dlls/wined3d/cs.c
|
||||
@@ -406,6 +406,9 @@ struct wined3d_cs_update_sub_resource
|
||||
@ -34,7 +19,7 @@ index c194832..0493bb8 100644
|
||||
};
|
||||
|
||||
struct wined3d_cs_add_dirty_texture_region
|
||||
@@ -2243,6 +2246,53 @@ void wined3d_cs_emit_update_sub_resource(struct wined3d_cs *cs, struct wined3d_r
|
||||
@@ -2238,6 +2241,53 @@ void wined3d_cs_emit_update_sub_resource(struct wined3d_cs *cs, struct wined3d_r
|
||||
unsigned int slice_pitch)
|
||||
{
|
||||
struct wined3d_cs_update_sub_resource *op;
|
||||
@ -88,7 +73,7 @@ index c194832..0493bb8 100644
|
||||
|
||||
op = cs->ops->require_space(cs, sizeof(*op), WINED3D_CS_QUEUE_MAP);
|
||||
op->opcode = WINED3D_CS_OP_UPDATE_SUB_RESOURCE;
|
||||
@@ -2256,8 +2306,10 @@ void wined3d_cs_emit_update_sub_resource(struct wined3d_cs *cs, struct wined3d_r
|
||||
@@ -2251,8 +2301,10 @@ void wined3d_cs_emit_update_sub_resource(struct wined3d_cs *cs, struct wined3d_r
|
||||
wined3d_resource_acquire(resource);
|
||||
|
||||
cs->ops->submit(cs, WINED3D_CS_QUEUE_MAP);
|
||||
@ -99,7 +84,7 @@ index c194832..0493bb8 100644
|
||||
cs->ops->finish(cs, WINED3D_CS_QUEUE_MAP);
|
||||
}
|
||||
|
||||
@@ -2440,6 +2492,13 @@ static void (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void
|
||||
@@ -2435,6 +2487,13 @@ static void (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void
|
||||
/* WINED3D_CS_OP_GENERATE_MIPMAPS */ wined3d_cs_exec_generate_mipmaps,
|
||||
};
|
||||
|
||||
@ -113,7 +98,7 @@ index c194832..0493bb8 100644
|
||||
static void *wined3d_cs_st_require_space(struct wined3d_cs *cs, size_t size, enum wined3d_cs_queue_id queue_id)
|
||||
{
|
||||
if (size > (cs->data_size - cs->end))
|
||||
@@ -2493,6 +2552,9 @@ static void wined3d_cs_st_finish(struct wined3d_cs *cs, enum wined3d_cs_queue_id
|
||||
@@ -2488,6 +2547,9 @@ static void wined3d_cs_st_finish(struct wined3d_cs *cs, enum wined3d_cs_queue_id
|
||||
|
||||
static const struct wined3d_cs_ops wined3d_cs_st_ops =
|
||||
{
|
||||
@ -123,7 +108,7 @@ index c194832..0493bb8 100644
|
||||
wined3d_cs_st_require_space,
|
||||
wined3d_cs_st_submit,
|
||||
wined3d_cs_st_finish,
|
||||
@@ -2526,6 +2588,21 @@ static void wined3d_cs_mt_submit(struct wined3d_cs *cs, enum wined3d_cs_queue_id
|
||||
@@ -2521,6 +2583,21 @@ static void wined3d_cs_mt_submit(struct wined3d_cs *cs, enum wined3d_cs_queue_id
|
||||
wined3d_cs_queue_submit(&cs->queue[queue_id], cs);
|
||||
}
|
||||
|
||||
@ -145,7 +130,7 @@ index c194832..0493bb8 100644
|
||||
static void *wined3d_cs_queue_require_space(struct wined3d_cs_queue *queue, size_t size, struct wined3d_cs *cs)
|
||||
{
|
||||
size_t queue_size = ARRAY_SIZE(queue->data);
|
||||
@@ -2587,6 +2664,16 @@ static void *wined3d_cs_queue_require_space(struct wined3d_cs_queue *queue, size
|
||||
@@ -2582,6 +2659,16 @@ static void *wined3d_cs_queue_require_space(struct wined3d_cs_queue *queue, size
|
||||
return packet->data;
|
||||
}
|
||||
|
||||
@ -162,7 +147,7 @@ index c194832..0493bb8 100644
|
||||
static void *wined3d_cs_mt_require_space(struct wined3d_cs *cs, size_t size, enum wined3d_cs_queue_id queue_id)
|
||||
{
|
||||
if (cs->thread_id == GetCurrentThreadId())
|
||||
@@ -2606,6 +2693,9 @@ static void wined3d_cs_mt_finish(struct wined3d_cs *cs, enum wined3d_cs_queue_id
|
||||
@@ -2601,6 +2688,9 @@ static void wined3d_cs_mt_finish(struct wined3d_cs *cs, enum wined3d_cs_queue_id
|
||||
|
||||
static const struct wined3d_cs_ops wined3d_cs_mt_ops =
|
||||
{
|
||||
@ -173,10 +158,9 @@ index c194832..0493bb8 100644
|
||||
wined3d_cs_mt_submit,
|
||||
wined3d_cs_mt_finish,
|
||||
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
index 583e85f..d0eb846 100644
|
||||
--- a/dlls/wined3d/device.c
|
||||
+++ b/dlls/wined3d/device.c
|
||||
@@ -1221,6 +1221,9 @@ HRESULT CDECL wined3d_device_uninit_3d(struct wined3d_device *device)
|
||||
@@ -1219,6 +1219,9 @@ HRESULT CDECL wined3d_device_uninit_3d(struct wined3d_device *device)
|
||||
|
||||
wine_rb_clear(&device->samplers, device_free_sampler, NULL);
|
||||
|
||||
@ -186,7 +170,7 @@ index 583e85f..d0eb846 100644
|
||||
wined3d_device_delete_opengl_contexts(device);
|
||||
|
||||
if (device->fb.depth_stencil)
|
||||
@@ -4217,6 +4220,7 @@ HRESULT CDECL wined3d_device_copy_sub_resource_region(struct wined3d_device *dev
|
||||
@@ -4212,6 +4215,7 @@ HRESULT CDECL wined3d_device_copy_sub_resource_region(struct wined3d_device *dev
|
||||
return WINED3DERR_INVALIDCALL;
|
||||
}
|
||||
|
||||
@ -194,7 +178,7 @@ index 583e85f..d0eb846 100644
|
||||
if (dst_texture->sub_resources[dst_sub_resource_idx].map_count)
|
||||
{
|
||||
WARN("Destination sub-resource %u is mapped.\n", dst_sub_resource_idx);
|
||||
@@ -4227,6 +4231,19 @@ HRESULT CDECL wined3d_device_copy_sub_resource_region(struct wined3d_device *dev
|
||||
@@ -4222,6 +4226,19 @@ HRESULT CDECL wined3d_device_copy_sub_resource_region(struct wined3d_device *dev
|
||||
{
|
||||
WARN("Source sub-resource %u is mapped.\n", src_sub_resource_idx);
|
||||
return WINED3DERR_INVALIDCALL;
|
||||
@ -214,7 +198,7 @@ index 583e85f..d0eb846 100644
|
||||
}
|
||||
|
||||
if (!src_box)
|
||||
@@ -4328,8 +4345,10 @@ void CDECL wined3d_device_update_sub_resource(struct wined3d_device *device, str
|
||||
@@ -4314,8 +4331,10 @@ void CDECL wined3d_device_update_sub_resource(struct wined3d_device *device, str
|
||||
return;
|
||||
}
|
||||
|
||||
@ -225,7 +209,7 @@ index 583e85f..d0eb846 100644
|
||||
wined3d_cs_emit_update_sub_resource(device->cs, resource, sub_resource_idx, box, data, row_pitch, depth_pitch);
|
||||
}
|
||||
|
||||
@@ -5329,3 +5348,58 @@ LRESULT device_process_message(struct wined3d_device *device, HWND window, BOOL
|
||||
@@ -5306,3 +5325,58 @@ LRESULT device_process_message(struct wined3d_device *device, HWND window, BOOL
|
||||
else
|
||||
return CallWindowProcA(proc, window, message, wparam, lparam);
|
||||
}
|
||||
@ -285,10 +269,9 @@ index 583e85f..d0eb846 100644
|
||||
+}
|
||||
+#endif /* STAGING_CSMT */
|
||||
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
index 217d1d8..bed9e86 100644
|
||||
--- a/dlls/wined3d/surface.c
|
||||
+++ b/dlls/wined3d/surface.c
|
||||
@@ -2239,7 +2239,11 @@ BOOL texture2d_load_texture(struct wined3d_texture *texture, unsigned int sub_re
|
||||
@@ -2232,7 +2232,11 @@ BOOL texture2d_load_texture(struct wined3d_texture *texture, unsigned int sub_re
|
||||
/* Don't use PBOs for converted surfaces. During PBO conversion we look at
|
||||
* WINED3D_TEXTURE_CONVERTED but it isn't set (yet) in all cases it is
|
||||
* getting called. */
|
||||
@ -301,10 +284,9 @@ index 217d1d8..bed9e86 100644
|
||||
TRACE("Removing the pbo attached to texture %p, %u.\n", texture, sub_resource_idx);
|
||||
|
||||
diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c
|
||||
index 09e26af..26ebba9 100644
|
||||
--- a/dlls/wined3d/swapchain.c
|
||||
+++ b/dlls/wined3d/swapchain.c
|
||||
@@ -476,7 +476,11 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain,
|
||||
@@ -472,7 +472,11 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain,
|
||||
if (swapchain->render_to_fbo)
|
||||
swapchain_blit(swapchain, context, src_rect, dst_rect);
|
||||
|
||||
@ -317,10 +299,9 @@ index 09e26af..26ebba9 100644
|
||||
|
||||
/* call wglSwapBuffers through the gl table to avoid confusing the Steam overlay */
|
||||
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
|
||||
index 4fcec89..6d12d60 100644
|
||||
--- a/dlls/wined3d/texture.c
|
||||
+++ b/dlls/wined3d/texture.c
|
||||
@@ -326,7 +326,11 @@ void wined3d_texture_get_memory(struct wined3d_texture *texture, unsigned int su
|
||||
@@ -321,7 +321,11 @@ void wined3d_texture_get_memory(struct wined3d_texture *texture, unsigned int su
|
||||
if (locations & WINED3D_LOCATION_BUFFER)
|
||||
{
|
||||
data->addr = NULL;
|
||||
@ -332,7 +313,7 @@ index 4fcec89..6d12d60 100644
|
||||
return;
|
||||
}
|
||||
if (locations & WINED3D_LOCATION_USER_MEMORY)
|
||||
@@ -350,6 +354,7 @@ void wined3d_texture_get_memory(struct wined3d_texture *texture, unsigned int su
|
||||
@@ -345,6 +349,7 @@ void wined3d_texture_get_memory(struct wined3d_texture *texture, unsigned int su
|
||||
|
||||
/* Context activation is done by the caller. */
|
||||
static void wined3d_texture_remove_buffer_object(struct wined3d_texture *texture,
|
||||
@ -340,7 +321,7 @@ index 4fcec89..6d12d60 100644
|
||||
unsigned int sub_resource_idx, const struct wined3d_gl_info *gl_info)
|
||||
{
|
||||
GLuint *buffer_object = &texture->sub_resources[sub_resource_idx].buffer_object;
|
||||
@@ -362,6 +367,19 @@ static void wined3d_texture_remove_buffer_object(struct wined3d_texture *texture
|
||||
@@ -357,6 +362,19 @@ static void wined3d_texture_remove_buffer_object(struct wined3d_texture *texture
|
||||
|
||||
wined3d_texture_invalidate_location(texture, sub_resource_idx, WINED3D_LOCATION_BUFFER);
|
||||
*buffer_object = 0;
|
||||
@ -360,7 +341,7 @@ index 4fcec89..6d12d60 100644
|
||||
}
|
||||
|
||||
static void wined3d_texture_update_map_binding(struct wined3d_texture *texture)
|
||||
@@ -381,7 +399,11 @@ static void wined3d_texture_update_map_binding(struct wined3d_texture *texture)
|
||||
@@ -376,7 +394,11 @@ static void wined3d_texture_update_map_binding(struct wined3d_texture *texture)
|
||||
&& !wined3d_texture_load_location(texture, i, context, map_binding))
|
||||
ERR("Failed to load location %s.\n", wined3d_debug_location(map_binding));
|
||||
if (texture->resource.map_binding == WINED3D_LOCATION_BUFFER)
|
||||
@ -372,7 +353,7 @@ index 4fcec89..6d12d60 100644
|
||||
}
|
||||
|
||||
if (context)
|
||||
@@ -726,17 +748,28 @@ static void wined3d_texture_cleanup(struct wined3d_texture *texture)
|
||||
@@ -719,17 +741,28 @@ static void wined3d_texture_cleanup(struct wined3d_texture *texture)
|
||||
const struct wined3d_gl_info *gl_info = NULL;
|
||||
struct wined3d_context *context = NULL;
|
||||
struct wined3d_dc_info *dc_info;
|
||||
@ -401,7 +382,7 @@ index 4fcec89..6d12d60 100644
|
||||
|
||||
/* We may not be able to get a context in wined3d_texture_cleanup() in
|
||||
* general, but if a buffer object was previously created we can. */
|
||||
@@ -746,7 +779,12 @@ static void wined3d_texture_cleanup(struct wined3d_texture *texture)
|
||||
@@ -739,7 +772,12 @@ static void wined3d_texture_cleanup(struct wined3d_texture *texture)
|
||||
gl_info = context->gl_info;
|
||||
}
|
||||
|
||||
@ -414,7 +395,7 @@ index 4fcec89..6d12d60 100644
|
||||
}
|
||||
|
||||
if (!context && !list_empty(&texture->renderbuffers))
|
||||
@@ -1558,11 +1596,16 @@ HRESULT CDECL wined3d_texture_update_desc(struct wined3d_texture *texture, UINT
|
||||
@@ -1545,11 +1583,16 @@ HRESULT CDECL wined3d_texture_update_desc(struct wined3d_texture *texture, UINT
|
||||
|
||||
/* Context activation is done by the caller. */
|
||||
static void wined3d_texture_prepare_buffer_object(struct wined3d_texture *texture,
|
||||
@ -431,7 +412,7 @@ index 4fcec89..6d12d60 100644
|
||||
if (sub_resource->buffer_object)
|
||||
return;
|
||||
|
||||
@@ -1574,6 +1617,16 @@ static void wined3d_texture_prepare_buffer_object(struct wined3d_texture *textur
|
||||
@@ -1561,6 +1604,16 @@ static void wined3d_texture_prepare_buffer_object(struct wined3d_texture *textur
|
||||
|
||||
TRACE("Created buffer object %u for texture %p, sub-resource %u.\n",
|
||||
sub_resource->buffer_object, texture, sub_resource_idx);
|
||||
@ -448,7 +429,7 @@ index 4fcec89..6d12d60 100644
|
||||
}
|
||||
|
||||
static void wined3d_texture_force_reload(struct wined3d_texture *texture)
|
||||
@@ -1708,7 +1761,11 @@ BOOL wined3d_texture_prepare_location(struct wined3d_texture *texture, unsigned
|
||||
@@ -1695,7 +1748,11 @@ BOOL wined3d_texture_prepare_location(struct wined3d_texture *texture, unsigned
|
||||
return TRUE;
|
||||
|
||||
case WINED3D_LOCATION_BUFFER:
|
||||
@ -460,19 +441,7 @@ index 4fcec89..6d12d60 100644
|
||||
return TRUE;
|
||||
|
||||
case WINED3D_LOCATION_TEXTURE_RGB:
|
||||
@@ -1957,7 +2014,11 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in
|
||||
case WINED3D_LOCATION_BUFFER:
|
||||
if (sub_resource->locations & (WINED3D_LOCATION_TEXTURE_RGB | WINED3D_LOCATION_TEXTURE_SRGB))
|
||||
{
|
||||
+#if !defined(STAGING_CSMT)
|
||||
struct wined3d_bo_address data = {sub_resource->buffer_object, NULL};
|
||||
+#else /* STAGING_CSMT */
|
||||
+ struct wined3d_bo_address data = {sub_resource->buffer->name, NULL};
|
||||
+#endif /* STAGING_CSMT */
|
||||
|
||||
if (sub_resource->locations & WINED3D_LOCATION_TEXTURE_RGB)
|
||||
wined3d_texture_bind_and_dirtify(texture, context, FALSE);
|
||||
@@ -2304,8 +2365,13 @@ static void wined3d_texture_unload(struct wined3d_resource *resource)
|
||||
@@ -2073,8 +2130,13 @@ static void wined3d_texture_unload(struct wined3d_resource *resource)
|
||||
wined3d_texture_invalidate_location(texture, i, ~WINED3D_LOCATION_DISCARDED);
|
||||
}
|
||||
|
||||
@ -486,7 +455,7 @@ index 4fcec89..6d12d60 100644
|
||||
}
|
||||
|
||||
LIST_FOR_EACH_ENTRY_SAFE(entry, entry2, &texture->renderbuffers, struct wined3d_renderbuffer_entry, entry)
|
||||
@@ -3080,7 +3146,11 @@ static BOOL texture3d_load_location(struct wined3d_texture *texture, unsigned in
|
||||
@@ -2372,7 +2434,11 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in
|
||||
}
|
||||
else if (sub_resource->locations & WINED3D_LOCATION_BUFFER)
|
||||
{
|
||||
@ -498,7 +467,7 @@ index 4fcec89..6d12d60 100644
|
||||
struct wined3d_box src_box;
|
||||
|
||||
wined3d_texture_bind_and_dirtify(texture, context,
|
||||
@@ -3130,7 +3200,11 @@ static BOOL texture3d_load_location(struct wined3d_texture *texture, unsigned in
|
||||
@@ -2414,7 +2480,11 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in
|
||||
case WINED3D_LOCATION_BUFFER:
|
||||
if (sub_resource->locations & (WINED3D_LOCATION_TEXTURE_RGB | WINED3D_LOCATION_TEXTURE_SRGB))
|
||||
{
|
||||
@ -510,7 +479,31 @@ index 4fcec89..6d12d60 100644
|
||||
|
||||
if (sub_resource->locations & WINED3D_LOCATION_TEXTURE_RGB)
|
||||
wined3d_texture_bind_and_dirtify(texture, context, FALSE);
|
||||
@@ -3196,8 +3270,19 @@ HRESULT CDECL wined3d_texture_blt(struct wined3d_texture *dst_texture, unsigned
|
||||
@@ -2871,7 +2941,11 @@ static BOOL texture3d_load_location(struct wined3d_texture *texture, unsigned in
|
||||
}
|
||||
else if (sub_resource->locations & WINED3D_LOCATION_BUFFER)
|
||||
{
|
||||
+#if !defined(STAGING_CSMT)
|
||||
struct wined3d_const_bo_address data = {sub_resource->buffer_object, NULL};
|
||||
+#else /* STAGING_CSMT */
|
||||
+ struct wined3d_const_bo_address data = {sub_resource->buffer->name, NULL};
|
||||
+#endif /* STAGING_CSMT */
|
||||
struct wined3d_box src_box;
|
||||
|
||||
wined3d_texture_bind_and_dirtify(texture, context,
|
||||
@@ -2921,7 +2995,11 @@ static BOOL texture3d_load_location(struct wined3d_texture *texture, unsigned in
|
||||
case WINED3D_LOCATION_BUFFER:
|
||||
if (sub_resource->locations & (WINED3D_LOCATION_TEXTURE_RGB | WINED3D_LOCATION_TEXTURE_SRGB))
|
||||
{
|
||||
+#if !defined(STAGING_CSMT)
|
||||
struct wined3d_bo_address data = {sub_resource->buffer_object, NULL};
|
||||
+#else /* STAGING_CSMT */
|
||||
+ struct wined3d_bo_address data = {sub_resource->buffer->name, NULL};
|
||||
+#endif /* STAGING_CSMT */
|
||||
|
||||
if (sub_resource->locations & WINED3D_LOCATION_TEXTURE_RGB)
|
||||
wined3d_texture_bind_and_dirtify(texture, context, FALSE);
|
||||
@@ -2987,8 +3065,19 @@ HRESULT CDECL wined3d_texture_blt(struct wined3d_texture *dst_texture, unsigned
|
||||
if (dst_texture->sub_resources[dst_sub_resource_idx].map_count
|
||||
|| src_texture->sub_resources[src_sub_resource_idx].map_count)
|
||||
{
|
||||
@ -531,7 +524,6 @@ index 4fcec89..6d12d60 100644
|
||||
|
||||
if ((src_format_flags & (WINED3DFMT_FLAG_DEPTH | WINED3DFMT_FLAG_STENCIL))
|
||||
diff --git a/dlls/wined3d/view.c b/dlls/wined3d/view.c
|
||||
index 1eebce6..bed39db 100644
|
||||
--- a/dlls/wined3d/view.c
|
||||
+++ b/dlls/wined3d/view.c
|
||||
@@ -750,6 +750,10 @@ static void wined3d_shader_resource_view_cs_init(void *object)
|
||||
@ -577,10 +569,9 @@ index 1eebce6..bed39db 100644
|
||||
|
||||
return WINED3D_OK;
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index b240503..996da72 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -2904,6 +2904,16 @@ struct wined3d_dummy_textures
|
||||
@@ -2896,6 +2896,16 @@ struct wined3d_dummy_textures
|
||||
GLuint tex_2d_ms_array;
|
||||
};
|
||||
|
||||
@ -597,7 +588,7 @@ index b240503..996da72 100644
|
||||
#define WINED3D_UNMAPPED_STAGE ~0u
|
||||
|
||||
/* Multithreaded flag. Removed from the public header to signal that
|
||||
@@ -3004,6 +3014,12 @@ LRESULT device_process_message(struct wined3d_device *device, HWND window, BOOL
|
||||
@@ -2995,6 +3005,12 @@ LRESULT device_process_message(struct wined3d_device *device, HWND window, BOOL
|
||||
void device_resource_add(struct wined3d_device *device, struct wined3d_resource *resource) DECLSPEC_HIDDEN;
|
||||
void device_resource_released(struct wined3d_device *device, struct wined3d_resource *resource) DECLSPEC_HIDDEN;
|
||||
void device_invalidate_state(const struct wined3d_device *device, DWORD state) DECLSPEC_HIDDEN;
|
||||
@ -610,7 +601,7 @@ index b240503..996da72 100644
|
||||
|
||||
static inline BOOL isStateDirty(const struct wined3d_context *context, DWORD state)
|
||||
{
|
||||
@@ -3203,7 +3219,11 @@ struct wined3d_texture
|
||||
@@ -3194,7 +3210,11 @@ struct wined3d_texture
|
||||
|
||||
unsigned int map_count;
|
||||
DWORD locations;
|
||||
@ -622,7 +613,7 @@ index b240503..996da72 100644
|
||||
} sub_resources[1];
|
||||
};
|
||||
|
||||
@@ -3518,6 +3538,9 @@ struct wined3d_cs_queue
|
||||
@@ -3509,6 +3529,9 @@ struct wined3d_cs_queue
|
||||
|
||||
struct wined3d_cs_ops
|
||||
{
|
||||
@ -632,6 +623,3 @@ index b240503..996da72 100644
|
||||
void *(*require_space)(struct wined3d_cs *cs, size_t size, enum wined3d_cs_queue_id queue_id);
|
||||
void (*submit)(struct wined3d_cs *cs, enum wined3d_cs_queue_id queue_id);
|
||||
void (*finish)(struct wined3d_cs *cs, enum wined3d_cs_queue_id queue_id);
|
||||
--
|
||||
1.9.1
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 248a96ea17ba5998b1b2f759fec5736f43cf86ba Mon Sep 17 00:00:00 2001
|
||||
From 20a2042fef1594938d5591889c18832903e42911 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Fri, 18 Aug 2017 23:51:59 +0200
|
||||
Subject: [PATCH] wined3d: Implement dual source blending.
|
||||
@ -14,10 +14,10 @@ Subject: [PATCH] wined3d: Implement dual source blending.
|
||||
7 files changed, 92 insertions(+), 16 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3d11/tests/d3d11.c b/dlls/d3d11/tests/d3d11.c
|
||||
index 3732fbf..15c8abd 100644
|
||||
index ccc8846..207a5a2 100644
|
||||
--- a/dlls/d3d11/tests/d3d11.c
|
||||
+++ b/dlls/d3d11/tests/d3d11.c
|
||||
@@ -25560,7 +25560,7 @@ static void test_dual_blending(void)
|
||||
@@ -26315,7 +26315,7 @@ static void test_dual_blending(void)
|
||||
ID3D11DeviceContext_ClearRenderTargetView(context, rtv[1], white);
|
||||
ID3D11DeviceContext_Draw(context, 3, 0);
|
||||
|
||||
@ -27,10 +27,10 @@ index 3732fbf..15c8abd 100644
|
||||
|
||||
ID3D11BlendState_Release(blend_state);
|
||||
diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
|
||||
index 73327bd..384266b 100644
|
||||
index 4b2f263..9afbd43 100644
|
||||
--- a/dlls/wined3d/context.c
|
||||
+++ b/dlls/wined3d/context.c
|
||||
@@ -3131,10 +3131,19 @@ static DWORD find_draw_buffers_mask(const struct wined3d_context *context, const
|
||||
@@ -3108,10 +3108,19 @@ static DWORD find_draw_buffers_mask(const struct wined3d_context *context, const
|
||||
else if (!context->render_offscreen)
|
||||
return context_generate_rt_mask_from_resource(rts[0]->resource);
|
||||
|
||||
@ -52,10 +52,10 @@ index 73327bd..384266b 100644
|
||||
{
|
||||
i = wined3d_bit_scan(&mask);
|
||||
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
|
||||
index 7c3a07c..cc45ed7 100644
|
||||
index 3492d8d..8a55d27 100644
|
||||
--- a/dlls/wined3d/directx.c
|
||||
+++ b/dlls/wined3d/directx.c
|
||||
@@ -3545,6 +3545,12 @@ static void wined3d_adapter_init_limits(struct wined3d_gl_info *gl_info)
|
||||
@@ -3532,6 +3532,12 @@ static void wined3d_adapter_init_limits(struct wined3d_gl_info *gl_info)
|
||||
gl_info->limits.buffers = min(MAX_RENDER_TARGET_VIEWS, gl_max);
|
||||
TRACE("Max draw buffers: %u.\n", gl_max);
|
||||
}
|
||||
@ -68,7 +68,7 @@ index 7c3a07c..cc45ed7 100644
|
||||
if (gl_info->supported[ARB_MULTITEXTURE])
|
||||
{
|
||||
if (gl_info->supported[WINED3D_GL_LEGACY_CONTEXT])
|
||||
@@ -4340,6 +4346,10 @@ static BOOL wined3d_adapter_init_gl_caps(struct wined3d_adapter *adapter,
|
||||
@@ -4321,6 +4327,10 @@ static BOOL wined3d_adapter_init_gl_caps(struct wined3d_adapter *adapter,
|
||||
for (i = 0; i < gl_info->limits.buffers; ++i)
|
||||
adapter->d3d_info.valid_rt_mask |= (1u << i);
|
||||
|
||||
@ -80,7 +80,7 @@ index 7c3a07c..cc45ed7 100644
|
||||
{
|
||||
/* We do not want to deal with re-creating immutable texture storage for color keying emulation. */
|
||||
diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
|
||||
index 7edec82..7f7ad3f 100644
|
||||
index 3c2b870..2cbab85 100644
|
||||
--- a/dlls/wined3d/glsl_shader.c
|
||||
+++ b/dlls/wined3d/glsl_shader.c
|
||||
@@ -3008,6 +3008,7 @@ static void shader_glsl_get_register_name(const struct wined3d_shader_register *
|
||||
@ -119,7 +119,7 @@ index 7edec82..7f7ad3f 100644
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10250,13 +10263,25 @@ static void set_glsl_shader_program(const struct wined3d_context *context, const
|
||||
@@ -10247,13 +10260,25 @@ static void set_glsl_shader_program(const struct wined3d_context *context, const
|
||||
|
||||
if (!needs_legacy_glsl_syntax(gl_info))
|
||||
{
|
||||
@ -152,10 +152,10 @@ index 7edec82..7f7ad3f 100644
|
||||
}
|
||||
}
|
||||
diff --git a/dlls/wined3d/shader.c b/dlls/wined3d/shader.c
|
||||
index 66e1bbf..0513c9e 100644
|
||||
index c20c1da..9fd7338 100644
|
||||
--- a/dlls/wined3d/shader.c
|
||||
+++ b/dlls/wined3d/shader.c
|
||||
@@ -4011,6 +4011,8 @@ void find_ps_compile_args(const struct wined3d_state *state, const struct wined3
|
||||
@@ -4008,6 +4008,8 @@ void find_ps_compile_args(const struct wined3d_state *state, const struct wined3
|
||||
|
||||
args->render_offscreen = shader->reg_maps.vpos && gl_info->supported[ARB_FRAGMENT_COORD_CONVENTIONS]
|
||||
? context->render_offscreen : 0;
|
||||
@ -165,7 +165,7 @@ index 66e1bbf..0513c9e 100644
|
||||
|
||||
static HRESULT pixel_shader_init(struct wined3d_shader *shader, struct wined3d_device *device,
|
||||
diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
|
||||
index 486d22a..4ecd336 100644
|
||||
index c234758..a293be2 100644
|
||||
--- a/dlls/wined3d/state.c
|
||||
+++ b/dlls/wined3d/state.c
|
||||
@@ -534,12 +534,14 @@ static void state_blend(struct wined3d_context *context, const struct wined3d_st
|
||||
@ -208,7 +208,7 @@ index 486d22a..4ecd336 100644
|
||||
state->render_states[WINED3D_RS_SRCBLEND],
|
||||
state->render_states[WINED3D_RS_DESTBLEND], rt_format);
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index c008124..098be97 100644
|
||||
index 288e4a8..0a6bc5a 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -194,6 +194,7 @@ struct wined3d_d3d_info
|
||||
@ -239,7 +239,7 @@ index c008124..098be97 100644
|
||||
|
||||
DWORD constant_update_mask;
|
||||
DWORD numbered_array_mask;
|
||||
@@ -2521,6 +2524,7 @@ struct wined3d_fbo_ops
|
||||
@@ -2518,6 +2521,7 @@ struct wined3d_fbo_ops
|
||||
struct wined3d_gl_limits
|
||||
{
|
||||
UINT buffers;
|
||||
@ -247,7 +247,7 @@ index c008124..098be97 100644
|
||||
UINT lights;
|
||||
UINT textures;
|
||||
UINT texture_coords;
|
||||
@@ -2867,6 +2871,22 @@ struct wined3d_state
|
||||
@@ -2857,6 +2861,22 @@ struct wined3d_state
|
||||
struct wined3d_rasterizer_state *rasterizer_state;
|
||||
};
|
||||
|
||||
@ -269,7 +269,7 @@ index c008124..098be97 100644
|
||||
+
|
||||
struct wined3d_dummy_textures
|
||||
{
|
||||
GLuint tex_2d;
|
||||
GLuint tex_1d;
|
||||
--
|
||||
2.7.4
|
||||
|
||||
|
@ -1,2 +1,3 @@
|
||||
Fixes: Implement dual source blending in wined3d
|
||||
Depends: wined3d-Viewports
|
||||
Depends: wined3d-Viewports
|
||||
Depends: d3d11-ID3D11Texture1D_Rebased
|
Loading…
x
Reference in New Issue
Block a user