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