Module: wine Branch: master Commit: 8bddb9808eb5b79bc03a06c20a9b23fc34537d5e URL: https://gitlab.winehq.org/wine/wine/-/commit/8bddb9808eb5b79bc03a06c20a9b23f...
Author: Stefan Dösinger stefan@codeweavers.com Date: Mon Jul 25 10:09:29 2022 +0300
ddraw: Don't account video memory for sysmem surfaces' draw textures.
Star Trek Starfleet Academy does not like it when available video memory goes down after creating a system memory resource. It destroys all its textures and recreates them, and in some sitations forgets to recreate one or another texture, resulting in rendering bugs.
I suspect the game is trying to detect focus loss by monitoring for unexpected video memory changes.
---
dlls/ddraw/surface.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c index 421ce68fa1c..afba0d5ac4b 100644 --- a/dlls/ddraw/surface.c +++ b/dlls/ddraw/surface.c @@ -5998,6 +5998,7 @@ static HRESULT ddraw_surface_create_wined3d_texture(DDSURFACEDESC2 *desc, struct draw_texture_desc = *wined3d_desc; draw_texture_desc.bind_flags = bind_flags; draw_texture_desc.access = WINED3D_RESOURCE_ACCESS_GPU; + draw_texture_desc.usage = WINED3DUSAGE_PRIVATE;
if (FAILED(hr = wined3d_texture_create(wined3d_device, &draw_texture_desc, layers, levels, 0, NULL, texture, &ddraw_texture_wined3d_parent_ops, &draw_texture)))