Stefan Dösinger : ddraw: Don't account video memory for sysmem surfaces' draw textures.

Alexandre Julliard julliard at winehq.org
Tue Aug 2 14:54:40 CDT 2022


Module: wine
Branch: master
Commit: 8bddb9808eb5b79bc03a06c20a9b23fc34537d5e
URL:    https://gitlab.winehq.org/wine/wine/-/commit/8bddb9808eb5b79bc03a06c20a9b23fc34537d5e

Author: Stefan Dösinger <stefan at 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)))




More information about the wine-cvs mailing list