diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c index 0976603b283..9b845d2dc49 100644 --- a/dlls/ddraw/surface.c +++ b/dlls/ddraw/surface.c @@ -5873,7 +5873,10 @@ HRESULT ddraw_surface_create(struct ddraw *ddraw, const DDSURFACEDESC2 *surface_ { /* Undocumented feature: Create sublevels until either the * width or the height is 1. */ - desc->u2.dwMipMapCount = wined3d_log2i(min(desc->dwWidth, desc->dwHeight)) + 1; + if (version == 7) + desc->u2.dwMipMapCount = wined3d_log2i(max(desc->dwWidth, desc->dwHeight)) + 1; + else + desc->u2.dwMipMapCount = wined3d_log2i(min(desc->dwWidth, desc->dwHeight)) + 1; } } else