From 4ffddd1e40d9d156c2a711bbc7a5795909baf52d Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Thu, 13 Jun 2019 03:15:59 +0200 Subject: [PATCH] [d3d11] Skip GenerateMips if mip gen flag is not set on resource --- src/d3d11/d3d11_context.cpp | 7 ++++++- src/d3d11/d3d11_view_srv.h | 6 ++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/d3d11/d3d11_context.cpp b/src/d3d11/d3d11_context.cpp index 3c807a3e1..322267c39 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 4ea1f4762..37d6f76dd 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;