mirror of
https://github.com/optiscaler/OptiScaler.git
synced 2026-09-22 05:15:50 +00:00
Allow for incomplete Streamline hooks
This commit is contained in:
@@ -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())
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user