diff --git a/src/dxvk/dxvk_extensions.h b/src/dxvk/dxvk_extensions.h index d6637910..bb513684 100644 --- a/src/dxvk/dxvk_extensions.h +++ b/src/dxvk/dxvk_extensions.h @@ -129,7 +129,6 @@ namespace dxvk { * used by DXVK if supported by the implementation. */ struct DxvkDeviceExtensions : public DxvkExtensionList { - DxvkExtension amdRasterizationOrder = { this, VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME, DxvkExtensionType::Optional }; DxvkExtension khrDescriptorUpdateTemplate = { this, VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME, DxvkExtensionType::Required }; DxvkExtension khrMaintenance1 = { this, VK_KHR_MAINTENANCE1_EXTENSION_NAME, DxvkExtensionType::Required }; DxvkExtension khrMaintenance2 = { this, VK_KHR_MAINTENANCE2_EXTENSION_NAME, DxvkExtensionType::Desired }; diff --git a/src/dxvk/dxvk_graphics.cpp b/src/dxvk/dxvk_graphics.cpp index c61cc898..4d2b5098 100644 --- a/src/dxvk/dxvk_graphics.cpp +++ b/src/dxvk/dxvk_graphics.cpp @@ -163,14 +163,9 @@ namespace dxvk { vpInfo.scissorCount = state.rsViewportCount; vpInfo.pScissors = nullptr; - VkPipelineRasterizationStateRasterizationOrderAMD rsOrder; - rsOrder.sType = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD; - rsOrder.pNext = nullptr; - rsOrder.rasterizationOrder = this->pickRasterizationOrder(state); - VkPipelineRasterizationStateCreateInfo rsInfo; rsInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO; - rsInfo.pNext = m_device->extensions().amdRasterizationOrder.enabled() ? &rsOrder : rsOrder.pNext; + rsInfo.pNext = nullptr; rsInfo.flags = 0; rsInfo.depthClampEnable = state.rsEnableDepthClamp; rsInfo.rasterizerDiscardEnable= state.rsEnableDiscard; @@ -309,31 +304,6 @@ namespace dxvk { } - VkRasterizationOrderAMD DxvkGraphicsPipeline::pickRasterizationOrder( - const DxvkGraphicsPipelineStateInfo& state) const { - // If blending is not enabled, we can enable out-of-order - // rasterization for certain depth-compare modes. - bool blendingEnabled = false; - - for (uint32_t i = 0; i < MaxNumRenderTargets; i++) { - if (m_fsOut & (1u << i)) - blendingEnabled |= state.omBlendAttachments[i].blendEnable; - } - - if (!blendingEnabled) { - if (m_device->hasOption(DxvkOption::AssumeNoZfight)) - return VK_RASTERIZATION_ORDER_RELAXED_AMD; - - if (state.dsEnableDepthTest && state.dsEnableDepthWrite - && (state.dsDepthCompareOp == VK_COMPARE_OP_LESS - || state.dsDepthCompareOp == VK_COMPARE_OP_GREATER)) - return VK_RASTERIZATION_ORDER_RELAXED_AMD; - } - - return VK_RASTERIZATION_ORDER_STRICT_AMD; - } - - void DxvkGraphicsPipeline::logPipelineState( LogLevel level, const DxvkGraphicsPipelineStateInfo& state) const { diff --git a/src/dxvk/dxvk_graphics.h b/src/dxvk/dxvk_graphics.h index 5bfa2bee..283ec2b2 100644 --- a/src/dxvk/dxvk_graphics.h +++ b/src/dxvk/dxvk_graphics.h @@ -160,9 +160,6 @@ namespace dxvk { bool validatePipelineState( const DxvkGraphicsPipelineStateInfo& state) const; - VkRasterizationOrderAMD pickRasterizationOrder( - const DxvkGraphicsPipelineStateInfo& state) const; - void logPipelineState( LogLevel level, const DxvkGraphicsPipelineStateInfo& state) const; diff --git a/src/dxvk/dxvk_options.cpp b/src/dxvk/dxvk_options.cpp index 609bae76..3b7ec62b 100644 --- a/src/dxvk/dxvk_options.cpp +++ b/src/dxvk/dxvk_options.cpp @@ -5,7 +5,7 @@ namespace dxvk { const static std::unordered_map g_appOptions = {{ - { "NieRAutomata.exe", DxvkOptionSet(DxvkOption::AssumeNoZfight) }, + }}; @@ -23,9 +23,7 @@ namespace dxvk { void DxvkOptions::logOptions() const { - #define LOG_OPTION(opt) this->logOption(DxvkOption::opt, #opt) - LOG_OPTION(AssumeNoZfight); - #undef LOG_OPTION + } diff --git a/src/dxvk/dxvk_options.h b/src/dxvk/dxvk_options.h index a92c74c4..c544416d 100644 --- a/src/dxvk/dxvk_options.h +++ b/src/dxvk/dxvk_options.h @@ -8,11 +8,7 @@ namespace dxvk { * \brief App- and driver-specific options */ enum class DxvkOption : uint64_t { - /// Assume that the application will not render - /// multiple polygons with the exact same depth - /// value. Allows out-of-order rasterization to - /// be enabled for more rendering modes. - AssumeNoZfight = 0, + }; using DxvkOptionSet = Flags;