From 6c756c2dbee0f46ff1d7f13a5c994ce5e2ba9a31 Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Tue, 5 Jul 2022 00:01:07 +0200 Subject: [PATCH] [dxvk] Add check whether graphics pipeline libraries can be used --- src/dxvk/dxvk_device.cpp | 9 +++++++++ src/dxvk/dxvk_device.h | 6 ++++++ 2 files changed, 15 insertions(+) diff --git a/src/dxvk/dxvk_device.cpp b/src/dxvk/dxvk_device.cpp index 36d2563a7..49421bc85 100644 --- a/src/dxvk/dxvk_device.cpp +++ b/src/dxvk/dxvk_device.cpp @@ -41,6 +41,15 @@ namespace dxvk { } + bool DxvkDevice::canUseGraphicsPipelineLibrary() const { + // Without graphicsPipelineLibraryIndependentInterpolationDecoration, we + // cannot use this effectively in many games since no client API provides + // interpoation qualifiers in vertex shaders. + return m_features.extGraphicsPipelineLibrary.graphicsPipelineLibrary + && m_properties.extGraphicsPipelineLibrary.graphicsPipelineLibraryIndependentInterpolationDecoration; + } + + DxvkFramebufferSize DxvkDevice::getDefaultFramebufferSize() const { return DxvkFramebufferSize { m_properties.core.properties.limits.maxFramebufferWidth, diff --git a/src/dxvk/dxvk_device.h b/src/dxvk/dxvk_device.h index 65730cbd3..361640548 100644 --- a/src/dxvk/dxvk_device.h +++ b/src/dxvk/dxvk_device.h @@ -197,6 +197,12 @@ namespace dxvk { */ bool isUnifiedMemoryArchitecture() const; + /** + * \brief Checks whether graphics pipeline libraries can be used + * \returns \c true if all required features are supported. + */ + bool canUseGraphicsPipelineLibrary() const; + /** * \brief Queries default framebuffer size * \returns Default framebuffer size