Fix missing handling of dynamic offsets. Closes #3547

This commit is contained in:
baldurk
2025-03-04 13:14:55 +00:00
parent 78d67d334a
commit 5b2ec79df3
3 changed files with 35 additions and 22 deletions
+5 -2
View File
@@ -1042,7 +1042,7 @@ rdcarray<UsedDescriptor> PipeState::GetSamplers(ShaderStage stage, bool onlyUsed
if(m_Access[i].stage == stage && IsSamplerDescriptor(m_Access[i].type) &&
(onlyUsed == false || !m_Access[i].staticallyUnused))
{
if(i < m_Descriptors.size())
if(i < m_SamplerDescriptors.size())
{
ret.push_back({m_Access[i], Descriptor(), m_SamplerDescriptors[i]});
ApplyVulkanDynamicOffsets(ret.back());
@@ -1062,8 +1062,11 @@ rdcarray<UsedDescriptor> PipeState::GetReadWriteResources(ShaderStage stage, boo
if(m_Access[i].stage == stage && IsReadWriteDescriptor(m_Access[i].type) &&
(onlyUsed == false || !m_Access[i].staticallyUnused))
{
if(i < m_SamplerDescriptors.size())
if(i < m_Descriptors.size())
{
ret.push_back({m_Access[i], m_Descriptors[i], SamplerDescriptor()});
ApplyVulkanDynamicOffsets(ret.back());
}
}
}