summaryrefslogtreecommitdiffstats
path: root/source/slang/slang-type-layout.h
diff options
context:
space:
mode:
authorArielG-NV <159081215+ArielG-NV@users.noreply.github.com>2024-06-24 09:16:28 -0400
committerGitHub <noreply@github.com>2024-06-24 09:16:28 -0400
commitcf8d1ceffcfbbb64734e6180a2c0cebd033f5b2e (patch)
tree5ccbc854e3c363822d6e85c2fb5812d7c2572381 /source/slang/slang-type-layout.h
parentd349fd9e1f65fd32b2f4ea0e38c5084256d0dd04 (diff)
Implementing `tbuffer` layout(s) (#4436)
* Implementing `tbuffer` layouts. 1. Add to layout options 'TextureBuffer' layouts. 2. Add on to existing logic a way to allocate appropriate registers for TextureBufferType (this was made to work with parameter block logic). 3. Added asserts so objects missing a layout will gracefully crash This means `tbuffer` now works for hlsl,glsl,metal targets, spirv has yet to implement logic for `TextureBufferType`. * disable metal tests and fix emitting code a bit fixing the emitting code means metal compilation emits a useful error (help point users/developers to #4435) * fix warning
Diffstat (limited to 'source/slang/slang-type-layout.h')
-rw-r--r--source/slang/slang-type-layout.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/source/slang/slang-type-layout.h b/source/slang/slang-type-layout.h
index 6ca756e8c..f29a38435 100644
--- a/source/slang/slang-type-layout.h
+++ b/source/slang/slang-type-layout.h
@@ -1043,16 +1043,19 @@ struct LayoutRulesImpl
UniformLayoutInfo BeginStructLayout()
{
+ SLANG_ASSERT(simpleRules);
return simpleRules->BeginStructLayout();
}
LayoutSize AddStructField(UniformLayoutInfo* ioStructInfo, UniformLayoutInfo fieldInfo)
{
+ SLANG_ASSERT(simpleRules);
return simpleRules->AddStructField(ioStructInfo, fieldInfo);
}
void EndStructLayout(UniformLayoutInfo* ioStructInfo)
{
+ SLANG_ASSERT(simpleRules);
return simpleRules->EndStructLayout(ioStructInfo);
}
@@ -1080,7 +1083,7 @@ struct LayoutRulesFamilyImpl
virtual LayoutRulesImpl* getAnyValueRules() = 0;
virtual LayoutRulesImpl* getConstantBufferRules(CompilerOptionSet& compilerOptions) = 0;
virtual LayoutRulesImpl* getPushConstantBufferRules() = 0;
- virtual LayoutRulesImpl* getTextureBufferRules() = 0;
+ virtual LayoutRulesImpl* getTextureBufferRules(CompilerOptionSet& compilerOptions) = 0;
virtual LayoutRulesImpl* getVaryingInputRules() = 0;
virtual LayoutRulesImpl* getVaryingOutputRules() = 0;
virtual LayoutRulesImpl* getSpecializationConstantRules()= 0;