[Bug 42355] New: Artifacts in GTAIV appear and disappear when driving

wine-bugs at winehq.org wine-bugs at winehq.org
Wed Feb 1 10:06:10 CST 2017


https://bugs.winehq.org/show_bug.cgi?id=42355

            Bug ID: 42355
           Summary: Artifacts in GTAIV appear and disappear when driving
           Product: Wine
           Version: 2.0
          Hardware: x86
                OS: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: directx-d3d
          Assignee: wine-bugs at winehq.org
          Reporter: b7.10110111 at gmail.com
      Distribution: ---

Created attachment 57123
  --> https://bugs.winehq.org/attachment.cgi?id=57123
Screenshot of the artifact

When you enter a car and they try driving, you'll sometimes notice strange
artifacts appear. They fade in, then sometimes persist for several frames, and
then disappear. See screenshots attached.

This is a regression introduced by the following commit. In this version the
artifacts appear not too often — I have to play for about a minute until I
notice one. In wine-2.0-235-g2dd0fb8 they appear after about 10 seconds of
driving in the game.

602a23a60aaab164acb8a2767094d545172ab4cf is the first bad commit
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.

    Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
    Signed-off-by: Alexandre Julliard <julliard at winehq.org>

:040000 040000 259531ef529ef96cbec7388bca99af40efaa9874
3e0b99a8b0fba782ad69ed0a8e00d2a64c363ae3 M      dlls

-- 
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