wined3d: Use GL_MAP_PERSISTENT_BIT even for non-persistent bo maps.
commit1908cb9501b3bdd87b211735f586eedb8b98a01a
authorHenri Verbeet <hverbeet@codeweavers.com>
Fri, 7 Jan 2022 11:58:45 +0000 (7 12:58 +0100)
committerAlexandre Julliard <julliard@winehq.org>
Fri, 7 Jan 2022 15:49:53 +0000 (7 16:49 +0100)
tree659c1214c421692dfa001c6b84dcc16f4ad83777
parent4dd6408e89bec13a475180784ee976c7b471dbbf
wined3d: Use GL_MAP_PERSISTENT_BIT even for non-persistent bo maps.

While the reason for doing this is to allow draws referencing mapped buffer
resources to succeed, the behaviour of the application in the referenced bug
report (FlatOut) appears to be slightly different; it does end up drawing
while buffer objects are mapped due to reordering of map operations inside the
command stream, but as far as I can tell those buffer objects are not
referenced by the draw. The driver in question (fglrx/Catalyst) appears to
simply be a bit overzealous with throwing errors, and unfortunately doesn't
provide much more information than "glDrawElementsBaseVertex has generated an
error (GL_INVALID_OPERATION)". The issue is not reproducible with Mesa
radeonsi.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46118
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
dlls/wined3d/context_gl.c