diff --git a/OptiScaler/framegen/Streamline_Inputs_Dx12.cpp b/OptiScaler/framegen/Streamline_Inputs_Dx12.cpp index d05b4992..7ea7a1b5 100644 --- a/OptiScaler/framegen/Streamline_Inputs_Dx12.cpp +++ b/OptiScaler/framegen/Streamline_Inputs_Dx12.cpp @@ -16,11 +16,6 @@ bool Sl_Inputs_Dx12::setConstants(const sl::Constants& values, uint32_t frameId) if (fgOutput == nullptr) return false; - auto index = frameBasedTracking ? frameId % BUFFER_COUNT : 0; - auto& data = slConstants[index]; - - LOG_DEBUG("Setting consts for streamline index: {}", index); - // Streamline already log this error, keep using the previous data static uint32_t lastFrameId = UINT32_MAX; if (lastFrameId == frameId) @@ -29,6 +24,11 @@ bool Sl_Inputs_Dx12::setConstants(const sl::Constants& values, uint32_t frameId) return false; } + auto index = frameBasedTracking ? frameId % BUFFER_COUNT : 0; + auto& data = slConstants[index]; + + LOG_DEBUG("Setting consts for streamline index: {}", index); + data = sl::Constants {}; if (data.has_value()) diff --git a/OptiScaler/hooks/Streamline_Hooks.cpp b/OptiScaler/hooks/Streamline_Hooks.cpp index 332f28ee..531c1b40 100644 --- a/OptiScaler/hooks/Streamline_Hooks.cpp +++ b/OptiScaler/hooks/Streamline_Hooks.cpp @@ -121,12 +121,15 @@ sl::Result StreamlineHooks::hkslInit(sl::Preferences* pref, uint64_t sdkVersion) sl::Result StreamlineHooks::hkslSetTag(sl::ViewportHandle& viewport, sl::ResourceTag* tags, uint32_t numTags, sl::CommandBuffer* cmdBuffer) { - if (renderApi != sl::RenderAPI::eD3D12) + if (renderApi == sl::RenderAPI::eD3D11 || renderApi == sl::RenderAPI::eVulkan) { LOG_ERROR("hkslSetTag only supports DX12"); return o_slSetTag(viewport, tags, numTags, cmdBuffer); } + if (renderApi == sl::RenderAPI::eCount) + LOG_WARN("Incomplete Streamline hooks"); + for (uint32_t i = 0; i < numTags; i++) { if (tags[i].resource == nullptr || tags[i].resource->native == nullptr) @@ -163,12 +166,15 @@ sl::Result StreamlineHooks::hkslSetTagForFrame(const sl::FrameToken& frame, cons const sl::ResourceTag* resources, uint32_t numResources, sl::CommandBuffer* cmdBuffer) { - if (renderApi != sl::RenderAPI::eD3D12) + if (renderApi == sl::RenderAPI::eD3D11 || renderApi == sl::RenderAPI::eVulkan) { LOG_ERROR("hkslSetTagForFrame only supports DX12"); return o_slSetTagForFrame(frame, viewport, resources, numResources, cmdBuffer); } + if (renderApi == sl::RenderAPI::eCount) + LOG_WARN("Incomplete Streamline hooks"); + for (uint32_t i = 0; i < numResources; i++) { if (resources[i].resource == nullptr)