diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c index ed1ca21117f..116b8db28b9 100644 --- a/dlls/wined3d/texture.c +++ b/dlls/wined3d/texture.c @@ -32,8 +32,8 @@ WINE_DECLARE_DEBUG_CHANNEL(winediag); static BOOL wined3d_texture_use_pbo(const struct wined3d_texture *texture, const struct wined3d_gl_info *gl_info) { - return (texture->resource.access & (WINED3D_RESOURCE_ACCESS_CPU - | WINED3D_RESOURCE_ACCESS_MAP)) == WINED3D_RESOURCE_ACCESS_MAP + return !(texture->resource.access & WINED3D_RESOURCE_ACCESS_CPU) + && texture->resource.usage & WINED3DUSAGE_DYNAMIC && gl_info->supported[ARB_PIXEL_BUFFER_OBJECT] && !texture->resource.format->conv_byte_count && !(texture->flags & (WINED3D_TEXTURE_PIN_SYSMEM | WINED3D_TEXTURE_COND_NP2_EMULATED));