http://bugs.winehq.org/show_bug.cgi?id=11674
Pierre-Loup Griffais pierreloup.griffais@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |pierreloup.griffais@gmail.c | |om
--- Comment #261 from Pierre-Loup Griffais pierreloup.griffais@gmail.com 2012-12-17 14:37:56 CST --- (In reply to comment #260)
You mostly noticed this already, but you really have to use WINEDEBUG=-all for benchmarking and playing.
Wine calls glGetError() after every opengl call to report any possible error through ERRs. If you use WINEDEBUG=-all wined3d knows that you won't see those messages and doesn't bother calling glGetError or glCheckFramebufferStatus.
Redirecting stderr to /dev/null has the same effect. Ideally this happens when you launch a game via start menu entries, but in some situations output is redirected to ~/.xsession-errors in that case.
I did some testing myself with Nvidia's threaded optimizations. It seems to be an improvement for apps that just use state changes and draws. My impression is that it doesn't handle buffer uploads properly, and most modern games use dynamic vertex buffers heavily. You may get some performance improvements by commenting out the GL_ARB_map_buffer_range extension in dlls/wined3d/directx.c and maybe GL_ARB_vertex_buffer_object and GL_ARB_pixel_buffer_object as well. This might help in older apps(which run fast enough anyways), in newer apps it seems that there's just too much geometry data to get decent performance without buffer objects.
Hi Stefan,
You're right that MapBuffer (and by extension, MapBufferRange) is not a fast path for the threaded optimizations. The preferred path for geometry is buffer objects updated through BufferSubData. We actually have optimizations that cause BufferSubData used with dynamic vertex buffer patterns to be faster when threaded optimizations are enabled, which is the preferred path for heavy dynamic uploads in modern games. We can have a chat about it if you'd like, either through email or IRC.
Thanks, - Pierre-Loup