Vincas Miliūnas | 1 Jul 2012 12:10
Picon

[PATCH] wined3d: Add a switch to preserve vertex buffer copy in system memory.

CryENGINEs 2 and 3 have a feature of accessing system memory copy of
vertex buffer after it's been unlocked, this leads to crashes when
running under WINE [1]. This will also affect upcoming games like
MechWarrior Online, which are based on the same engine.

As suggested [2], it would be good to have a switch to force
preservation of vertex buffer copy in system memory [3].

The new registry key is named PreserveVertexBufferSysMemCopy and is
located in the Direct3D section.

[1] http://bugs.winehq.org/show_bug.cgi?id=18799
[2] http://bugs.winehq.org/show_bug.cgi?id=18799#c37
[3] http://bugs.winehq.org/show_bug.cgi?id=18040#c21

---
 dlls/wined3d/buffer.c          |    5 +++++
 dlls/wined3d/wined3d_main.c    |    7 +++++++
 dlls/wined3d/wined3d_private.h |    1 +
 3 files changed, 13 insertions(+), 0 deletions(-)


Henri Verbeet | 1 Jul 2012 12:41
Picon

Re: [PATCH] wined3d: Add a switch to preserve vertex buffer copy in system memory.

In general we don't do hacks like this.

Stefan Dösinger | 2 Jul 2012 12:38
Picon
Gravatar

Re: [PATCH] wined3d: Add a switch to preserve vertex buffer copy in system memory.


Am 01.07.2012 12:43 schrieb "Henri Verbeet"
> In general we don't do hacks like this.
The VBOs in question might be managed pool buffers, which would make keeping the sysmem around less hacky.

The unforunate issue is that other games(namely Source Engine games, probably others too) allocate hundreds of megabytes in managed vertex and index buffers. Keeping two copies of those buffers around(one GL copy, one wined3d sysmem copy) makes them run out of address space. So pick your poison...

Maybe we should at least try to contact the developers of the engine.



Gmane