[Bug 42738] New: Annoying flickering in Renegade Ops ( needs StrictDrawOrdering=enabled to remove it)
wine-bugs at winehq.org
wine-bugs at winehq.org
Thu Mar 30 00:33:49 CDT 2017
https://bugs.winehq.org/show_bug.cgi?id=42738
Bug ID: 42738
Summary: Annoying flickering in Renegade Ops (needs
StrictDrawOrdering=enabled to remove it)
Product: Wine
Version: 2.1
Hardware: x86
URL: http://store.steampowered.com/app/99300/
OS: Linux
Status: NEW
Keywords: regression
Severity: normal
Priority: P2
Component: directx-d3d
Assignee: wine-bugs at winehq.org
Reporter: gyebro69 at gmail.com
CC: hverbeet at gmail.com
Regression SHA1: 602a23a60aaab164acb8a2767094d545172ab4cf
Distribution: ---
Created attachment 57732
--> https://bugs.winehq.org/attachment.cgi?id=57732
terminal output
This is a DX10 game and needs native d3dcompiler_43 and d3dx10_42 to start.
>From the opening videos throughout the menus and in the main game the screen is
flickering heavily.
Changing in-game options e.g. screen resolution, MSAA, Vsync doesn't remove
this annoyance.
The problem doesn't occur in Wine Staging when CSMT is enabled or when
StrictDrawOrdering is enabled in pure Wine.
What makes this bug different from other similar issues reported here is that
that the problem is fairly new, there was no need to enable the
StrictDrawOrdering in the registry to avoid the screen flickering until
commit 602a23a60aaab164acb8a2767094d545172ab4cf
Author: Henri Verbeet <hverbeet at codeweavers.com>
Date: Fri Jan 27 11:36:31 2017 +0100
wined3d: Just use glBufferSubData() in buffer_direct_upload().
It might seem like a good idea to try to use glMapBufferRange() in
buffer_direct_upload(), but it really isn't. The interesting cases for
glMapBufferRange() are GL_MAP_INVALIDATE_BUFFER_BIT or
GL_MAP_UNSYNCHRONIZED_BIT, but the only way for those to be set here
would be for the buffer to be mapped with WINED3D_MAP_DISCARD or
WINED3D_MAP_NOOVERWRITE before the buffer object was created. In that
case the GPU is obviously not using the buffer object, so
glMapBufferRange() doesn't help. On the other hand, if the buffer is
currently in use by the application and neither WINED3D_MAP_DISCARD nor
WINED3D_MAP_NOOVERWRITE is set, glMapBufferRange() would need to wait
for the GPU to finish using the buffer object, while glBufferSubData()
may decide not to.
With the previous commit there is no flickering at all.
No demo version available, let me know if you need debug logs.
wine-2.4-256-g4bfa0d829f
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GT 730/PCIe/SSE2
OpenGL core profile version string: 4.5.0 NVIDIA 378.13
OpenGL core profile shading language version string: 4.50 NVIDIA
--
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.
More information about the wine-bugs
mailing list