Shader: Fix struct indexes in case of disabled field

This commit is contained in:
Jérôme Leclercq
2021-07-07 21:36:40 +02:00
parent 72edff30c7
commit d679eccb43
4 changed files with 48 additions and 11 deletions

View File

@@ -218,6 +218,9 @@ namespace Nz
std::size_t memberIndex = 0;
for (const auto& member : structDesc->members)
{
if (member.cond.HasValue() && !member.cond.GetResultingValue())
continue;
if (UInt32 varId = HandleEntryInOutType(*entryPointType, funcIndex, member, SpirvStorageClass::Input); varId != 0)
{
inputs.push_back({
@@ -248,6 +251,9 @@ namespace Nz
std::size_t memberIndex = 0;
for (const auto& member : structDesc->members)
{
if (member.cond.HasValue() && !member.cond.GetResultingValue())
continue;
if (UInt32 varId = HandleEntryInOutType(*entryPointType, funcIndex, member, SpirvStorageClass::Output); varId != 0)
{
outputs.push_back({