Allow for incomplete Streamline hooks

This commit is contained in:
FakeMichau
2025-08-12 20:13:26 +02:00
parent 889ceee24b
commit a90d91a18f
2 changed files with 13 additions and 7 deletions
@@ -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())
+8 -2
View File
@@ -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)