diff --git a/src/d3d11/d3d11_context.cpp b/src/d3d11/d3d11_context.cpp index 3c807a3e..322267c3 100644 --- a/src/d3d11/d3d11_context.cpp +++ b/src/d3d11/d3d11_context.cpp @@ -1078,7 +1078,12 @@ namespace dxvk { if (!view || view->GetResourceType() == D3D11_RESOURCE_DIMENSION_BUFFER) return; - + + D3D11_COMMON_RESOURCE_DESC resourceDesc = view->GetResourceDesc(); + + if (!(resourceDesc.MiscFlags & D3D11_RESOURCE_MISC_GENERATE_MIPS)) + return; + EmitCs([cDstImageView = view->GetImageView()] (DxvkContext* ctx) { ctx->generateMipmaps(cDstImageView); diff --git a/src/d3d11/d3d11_view_srv.h b/src/d3d11/d3d11_view_srv.h index 4ea1f476..37d6f76d 100644 --- a/src/d3d11/d3d11_view_srv.h +++ b/src/d3d11/d3d11_view_srv.h @@ -37,6 +37,12 @@ namespace dxvk { m_resource->GetType(&type); return type; } + + D3D11_COMMON_RESOURCE_DESC GetResourceDesc() const { + D3D11_COMMON_RESOURCE_DESC desc; + GetCommonResourceDesc(m_resource, &desc); + return desc; + } Rc GetBufferView() const { return m_bufferView;