From 8851a36fe754979887e65e9966845d48ceae843c Mon Sep 17 00:00:00 2001 From: Panos Karabelas Date: Mon, 3 Feb 2025 19:28:07 +0000 Subject: [PATCH] [vulkan] tempo workaround for nvidia (will fix tomorrow) --- runtime/RHI/Vulkan/Vulkan_FidelityFX.cpp | 6 ++++++ runtime/Rendering/Renderer.cpp | 2 +- runtime/Rendering/Renderer_Passes.cpp | 2 -- runtime/Rendering/Renderer_Resources.cpp | 3 ++- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/runtime/RHI/Vulkan/Vulkan_FidelityFX.cpp b/runtime/RHI/Vulkan/Vulkan_FidelityFX.cpp index 7ee85cfc4..f89590412 100644 --- a/runtime/RHI/Vulkan/Vulkan_FidelityFX.cpp +++ b/runtime/RHI/Vulkan/Vulkan_FidelityFX.cpp @@ -1120,6 +1120,9 @@ namespace spartan // documentation: https://github.com/GPUOpen-LibrariesAndSDKs/FidelityFX-SDK/blob/main/docs/techniques/stochastic-screen-space-reflections.md + // end the render pass (if there is one) as third-party code takes over here + cmd_list->RenderPassEnd(); + // set resources sssr::description_dispatch.commandList = to_ffx_cmd_list(cmd_list); sssr::description_dispatch.color = to_ffx_resource(tex_color, L"sssr_color"); @@ -1368,6 +1371,9 @@ namespace spartan if (debug_update) return; + // end the render pass (if there is one) as third-party code takes over here + cmd_list->RenderPassEnd(); + // set camera matrices set_ffx_float16(brixelizer_gi::description_dispatch_gi.view, view); set_ffx_float16(brixelizer_gi::description_dispatch_gi.prevView, view_previous); diff --git a/runtime/Rendering/Renderer.cpp b/runtime/Rendering/Renderer.cpp index dcf69d048..a37685364 100644 --- a/runtime/Rendering/Renderer.cpp +++ b/runtime/Rendering/Renderer.cpp @@ -160,7 +160,7 @@ namespace spartan SetOption(Renderer_Option::DepthOfField, 1.0f); SetOption(Renderer_Option::ScreenSpaceAmbientOcclusion, 1.0f); SetOption(Renderer_Option::ScreenSpaceShadows, static_cast(Renderer_ScreenspaceShadow::Bend)); - SetOption(Renderer_Option::ScreenSpaceReflections, 1.0f); + SetOption(Renderer_Option::ScreenSpaceReflections, RHI_Device::GetPrimaryPhysicalDevice()->IsAmd() ? 1.0f : 0.0f); // temp workaround until I fix ssr for nvidia SetOption(Renderer_Option::GlobalIllumination, 0.5f); // 0.5 is the percentage of the internal resolution (options are 25%, 50%, 75% and 100%) SetOption(Renderer_Option::Anisotropy, 16.0f); SetOption(Renderer_Option::ShadowResolution, 4096.0f); diff --git a/runtime/Rendering/Renderer_Passes.cpp b/runtime/Rendering/Renderer_Passes.cpp index ad3cd58ab..614626339 100644 --- a/runtime/Rendering/Renderer_Passes.cpp +++ b/runtime/Rendering/Renderer_Passes.cpp @@ -946,8 +946,6 @@ namespace spartan { cmd_list->BeginTimeblock("ssr"); - cmd_list->RenderPassEnd(); - RHI_FidelityFX::SSSR_Dispatch( cmd_list, GetOption(Renderer_Option::ResolutionScale), diff --git a/runtime/Rendering/Renderer_Resources.cpp b/runtime/Rendering/Renderer_Resources.cpp index d1a8a65bc..85409ef94 100644 --- a/runtime/Rendering/Renderer_Resources.cpp +++ b/runtime/Rendering/Renderer_Resources.cpp @@ -481,7 +481,8 @@ namespace spartan const string dir_font = ResourceCache::GetResourceDirectory(ResourceDirectory::Fonts) + "\\"; // load a font - standard_font = make_shared(dir_font + "OpenSans/OpenSans-Medium.ttf", 16, Color(0.9f, 0.9f, 0.9f, 1.0f)); + uint32_t size = static_cast(16 * Window::GetDpiScale()); // maintain a consistent font size across different resolutions + standard_font = make_shared(dir_font + "OpenSans/OpenSans-Medium.ttf", size, Color(0.9f, 0.9f, 0.9f, 1.0f)); } void Renderer::CreateStandardMeshes()