wined3d: Use the system memory pool for the logo surface.
joseph.kucia at gmail.com
Thu Jun 21 07:15:39 CDT 2012
It prevents the crash when device is resetted.
The crash happens in reset_enum_callback in d3d9/device.c because it
assumes that surfaces have a parent. Checking for NULL pointer isn't enough
because surfaces in the default memory pool are also blocking the device reset.
Also, the managed memory pool doesn't seem to be an option because
wined3d_device_color_fill doesn't work for surfaces in this memory pool.
dlls/wined3d/device.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index 8aadbbb..13e979e 100644
@@ -944,7 +944,7 @@ static void device_load_logo(struct wined3d_device *device, const char *filename
hr = wined3d_surface_create(device, bm.bmWidth, bm.bmHeight, WINED3DFMT_B5G6R5_UNORM, 0, 0,
- WINED3D_POOL_DEFAULT, WINED3D_MULTISAMPLE_NONE, 0, WINED3D_SURFACE_TYPE_OPENGL, WINED3D_SURFACE_MAPPABLE,
+ WINED3D_POOL_SYSTEM_MEM, WINED3D_MULTISAMPLE_NONE, 0, WINED3D_SURFACE_TYPE_OPENGL, WINED3D_SURFACE_MAPPABLE,
NULL, &wined3d_null_parent_ops, &device->logo_surface);
More information about the wine-patches