diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index a3fbe25..ba94604 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -3565,11 +3566,11 @@ HRESULT CDECL wined3d_device_update_texture(struct wined3d_device *device, return WINED3DERR_INVALIDCALL; } - /* Check that both textures have the identical numbers of levels. */ - level_count = wined3d_texture_get_level_count(src_texture); - if (wined3d_texture_get_level_count(dst_texture) != level_count) + /* Check that both textures have the compatible numbers of levels. */ + level_count = wined3d_texture_get_level_count(dst_texture); + if (wined3d_texture_get_level_count(src_texture) < level_count) { - WARN("Source and destination have different level counts, returning WINED3DERR_INVALIDCALL.\n"); + WARN("Source has fewer level counts then destination, returning WINED3DERR_INVALIDCALL.\n"); return WINED3DERR_INVALIDCALL; }