Am 08.12.2015 um 20:42 schrieb Henri Verbeet hverbeet@codeweavers.com:
- if (device->create_parms.flags & WINED3DCREATE_SOFTWARE_VERTEXPROCESSING)
- if (device->create_parms.flags & WINED3DCREATE_SOFTWARE_VERTEXPROCESSING || pool == WINED3D_POOL_MANAGED)
This also helps bugs like 29878, or the Crysis bug that was I think incorrectly closed.
However, the reason why I've never made this seemingly obvious change is that you'll get other applications that crash due to VM exhaustion now. So I'm afraid you'll just trade one kind of breakage for another. The proper fix is probably somewhere in GL_ARB_buffer_storage, but that is too complicated for 1.8.
One app that needed direct mapping of managed buffers to run properly was Half Life 2. I think the game changed since then and sets the LAA flag, but there are other games with the same problem.