From 0ce897a8d4eeb796ab48d9ef84f751be68e44ed3 Mon Sep 17 00:00:00 2001 From: Turanszki Janos Date: Wed, 30 Apr 2025 16:54:50 +0200 Subject: [PATCH] variable rate shading fix #1098 --- WickedEngine/wiGraphicsDevice_Vulkan.cpp | 4 ++++ WickedEngine/wiHelper.cpp | 6 +++++- WickedEngine/wiRenderer.cpp | 4 ---- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/WickedEngine/wiGraphicsDevice_Vulkan.cpp b/WickedEngine/wiGraphicsDevice_Vulkan.cpp index 3fd0055dc..a4a102126 100644 --- a/WickedEngine/wiGraphicsDevice_Vulkan.cpp +++ b/WickedEngine/wiGraphicsDevice_Vulkan.cpp @@ -5395,6 +5395,10 @@ using namespace vulkan_internal; VkGraphicsPipelineCreateInfo& pipelineInfo = internal_state->pipelineInfo; //pipelineInfo.flags = VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT; + //if (CheckCapability(GraphicsDeviceCapability::VARIABLE_RATE_SHADING_TIER2)) + //{ + // pipelineInfo.flags |= VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR; + //} pipelineInfo.sType = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO; pipelineInfo.layout = internal_state->pipelineLayout; pipelineInfo.basePipelineHandle = VK_NULL_HANDLE; diff --git a/WickedEngine/wiHelper.cpp b/WickedEngine/wiHelper.cpp index be668bde4..e47bf6f4a 100644 --- a/WickedEngine/wiHelper.cpp +++ b/WickedEngine/wiHelper.cpp @@ -66,7 +66,11 @@ namespace wi::helper void messageBox(const std::string& msg, const std::string& caption) { #ifdef PLATFORM_WINDOWS_DESKTOP - MessageBoxA(GetActiveWindow(), msg.c_str(), caption.c_str(), 0); + std::wstring wmsg; + std::wstring wcaption; + StringConvert(msg, wmsg); + StringConvert(caption, wcaption); + MessageBox(GetActiveWindow(), wmsg.c_str(), wcaption.c_str(), 0); #endif // PLATFORM_WINDOWS_DESKTOP #ifdef SDL2 diff --git a/WickedEngine/wiRenderer.cpp b/WickedEngine/wiRenderer.cpp index 812d57385..0f0f567da 100644 --- a/WickedEngine/wiRenderer.cpp +++ b/WickedEngine/wiRenderer.cpp @@ -11090,16 +11090,12 @@ void ComputeShadingRateClassification( }; device->BindUAVs(uavs, 0, arraysize(uavs), cmd); - device->Barrier(GPUBarrier::Image(&output, output.desc.layout, ResourceState::UNORDERED_ACCESS), cmd); - device->ClearUAV(&output, 0, cmd); device->Barrier(GPUBarrier::Memory(&output), cmd); // Whole threadgroup for each tile: device->Dispatch(desc.width, desc.height, 1, cmd); - device->Barrier(GPUBarrier::Image(&output, ResourceState::UNORDERED_ACCESS, output.desc.layout), cmd); - wi::profiler::EndRange(range); device->EventEnd(cmd); }