Added patch to dirtify vertex shader on transformed update, fixes graphical corruption.

This commit is contained in:
Sebastian Lackner 2015-05-09 04:26:56 +02:00
parent da0ebd230f
commit 954aed181c
5 changed files with 53 additions and 2 deletions

View File

@ -39,10 +39,11 @@ Wine. All those differences are also documented on the
Included bug fixes and improvements
-----------------------------------
**Bug fixes and features included in the next upcoming release [6]:**
**Bug fixes and features included in the next upcoming release [7]:**
* Add stub for atl80.AtlIPersistPropertyBag_Save ([Wine Bug #33888](https://bugs.winehq.org/show_bug.cgi?id=33888))
* Add stub for winsta.WinStationEnumerateW ([Wine Bug #38102](https://bugs.winehq.org/show_bug.cgi?id=38102))
* Dirtify vertex shader on transformed update to fix graphical corruption ([Wine Bug #38539](https://bugs.winehq.org/show_bug.cgi?id=38539))
* Improve ReadDataAvailable handling in FilePipeLocalInformation class
* Return default palette entries from GetSystemPaletteEntries for non-palette-based devices
* Support for ObjectTypeInformation class support in NtQueryObject

4
debian/changelog vendored
View File

@ -17,9 +17,11 @@ wine-staging (1.7.43) UNRELEASED; urgency=low
NtQueryObject.
* Added patch to fix error handling in OpenSCManagerW (fixes testfailure in
advapi32/service tests when named pipe messagemode is available).
* Added patch to fix leak of async handle in pipe_server_flush.
* Added patch to dirtify vertex shader on transformed update, fixes graphical
corruption.
* Removed patch to use lockfree implementation for FD cache (accepted
upstream).
* Added patch to fix leak of async handle in pipe_server_flush.
* Removed patch to properly handle closing sockets during a select call
(accepted upstream).
* Removed patches to fix behaviour of VirtualProtect / NtProtectVirtualMemory

View File

@ -253,6 +253,7 @@ patch_enable_all ()
enable_wined3d_CSMT_Helper="$1"
enable_wined3d_CSMT_Main="$1"
enable_wined3d_DXTn="$1"
enable_wined3d_Dirtify_Vertex_Shader="$1"
enable_wined3d_Multisampling="$1"
enable_wined3d_Revert_PixelFormat="$1"
enable_wined3d_UnhandledBlendFactor="$1"
@ -818,6 +819,9 @@ patch_enable ()
wined3d-DXTn)
enable_wined3d_DXTn="$2"
;;
wined3d-Dirtify_Vertex_Shader)
enable_wined3d_Dirtify_Vertex_Shader="$2"
;;
wined3d-Multisampling)
enable_wined3d_Multisampling="$2"
;;
@ -2467,6 +2471,21 @@ if test "$enable_wined3d_CSMT_Helper" -eq 1; then
) >> "$patchlist"
fi
# Patchset wined3d-Dirtify_Vertex_Shader
# |
# | This patchset fixes the following Wine bugs:
# | * [#38539] Dirtify vertex shader on transformed update to fix graphical corruption
# |
# | Modified files:
# | * dlls/wined3d/glsl_shader.c
# |
if test "$enable_wined3d_Dirtify_Vertex_Shader" -eq 1; then
patch_apply wined3d-Dirtify_Vertex_Shader/0001-wined3d-Dirtify-vertex-shader-on-transformed-untrans.patch
(
echo '+ { "Matteo Bruni", "wined3d: Dirtify vertex shader on transformed <-> untransformed transition.", 1 },';
) >> "$patchlist"
fi
# Patchset wined3d-Multisampling
# |
# | This patchset fixes the following Wine bugs:

View File

@ -0,0 +1,28 @@
From e921966b9073171d4a76ef6a96ba93413023e029 Mon Sep 17 00:00:00 2001
From: Matteo Bruni <mbruni@codeweavers.com>
Date: Thu, 7 May 2015 16:07:53 +0200
Subject: wined3d: Dirtify vertex shader on transformed <-> untransformed
transition.
---
dlls/wined3d/glsl_shader.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
index 0a130e1..8e618e5 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
@@ -7682,6 +7682,10 @@ static void glsl_vertex_pipe_vdecl(struct wined3d_context *context,
context->last_was_rhw = transformed;
+ /* Transformed position forces FFP draws. */
+ if (transformed != wasrhw)
+ context->shader_update_mask |= 1 << WINED3D_SHADER_TYPE_VERTEX;
+
if (!use_vs(state))
{
if (context->last_was_vshader)
--
2.4.0

View File

@ -0,0 +1 @@
Fixes: [38539] Dirtify vertex shader on transformed update to fix graphical corruption