@@ -321,6 +321,24 @@ WEB_GPU_BINDING_TYPE GetWebGPUTextureBindingType(WGSLShaderResourceAttribs::Text
321321 }
322322}
323323
324+ SHADER_CODE_BASIC_TYPE TintOverrideTypeToShaderCodeBasicType (tint::inspector::Override::Type OverrideType)
325+ {
326+ using TintOverrideType = tint::inspector::Override::Type;
327+ switch (OverrideType)
328+ {
329+ // clang-format off
330+ case TintOverrideType::kBool : return SHADER_CODE_BASIC_TYPE_BOOL;
331+ case TintOverrideType::kFloat32 : return SHADER_CODE_BASIC_TYPE_FLOAT;
332+ case TintOverrideType::kUint32 : return SHADER_CODE_BASIC_TYPE_UINT;
333+ case TintOverrideType::kInt32 : return SHADER_CODE_BASIC_TYPE_INT;
334+ case TintOverrideType::kFloat16 : return SHADER_CODE_BASIC_TYPE_FLOAT16;
335+ // clang-format on
336+ default :
337+ UNEXPECTED (" Unexpected override type" );
338+ return SHADER_CODE_BASIC_TYPE_UNKNOWN;
339+ }
340+ }
341+
324342} // namespace
325343
326344WGSLShaderResourceAttribs::WGSLShaderResourceAttribs (const char * _Name,
@@ -904,7 +922,7 @@ WGSLShaderResources::WGSLShaderResources(IMemoryAllocator& Allocator,
904922 // Count override constants (specialization constants)
905923 const auto & Overrides = EntryPoints[EntryPointIdx].overrides ;
906924 Uint32 NumSpecConstants = static_cast <Uint32>(Overrides.size ());
907- for (const auto & Override : Overrides)
925+ for (const tint::inspector::Override & Override : Overrides)
908926 {
909927 ResourceNamesPoolSize += Override.name .length () + 1 ;
910928 }
@@ -989,24 +1007,11 @@ WGSLShaderResources::WGSLShaderResources(IMemoryAllocator& Allocator,
9891007
9901008 // Construct specialization constant attribs
9911009 {
992- using TintOverrideType = tint::inspector::Override::Type;
993- Uint32 SpecConstIdx = 0 ;
994- for (const auto & Override : Overrides)
1010+ Uint32 SpecConstIdx = 0 ;
1011+ for (const tint::inspector::Override& Override : Overrides)
9951012 {
9961013 const char * SCName = ResourceNamesPool.CopyString (Override.name );
997- SHADER_CODE_BASIC_TYPE SCType = SHADER_CODE_BASIC_TYPE_UNKNOWN;
998- switch (Override.type )
999- {
1000- // clang-format off
1001- case TintOverrideType::kBool : SCType = SHADER_CODE_BASIC_TYPE_BOOL; break ;
1002- case TintOverrideType::kFloat32 : SCType = SHADER_CODE_BASIC_TYPE_FLOAT; break ;
1003- case TintOverrideType::kUint32 : SCType = SHADER_CODE_BASIC_TYPE_UINT; break ;
1004- case TintOverrideType::kInt32 : SCType = SHADER_CODE_BASIC_TYPE_INT; break ;
1005- case TintOverrideType::kFloat16 : SCType = SHADER_CODE_BASIC_TYPE_FLOAT16; break ;
1006- // clang-format on
1007- default :
1008- UNEXPECTED (" Unexpected override type" );
1009- }
1014+ SHADER_CODE_BASIC_TYPE SCType = TintOverrideTypeToShaderCodeBasicType (Override.type );
10101015 new (&GetSpecConstant (SpecConstIdx++)) WGSLSpecializationConstantAttribs{SCName, Override.id .value , SCType};
10111016 }
10121017 VERIFY_EXPR (SpecConstIdx == GetNumSpecConstants ());
@@ -1066,7 +1071,7 @@ void WGSLShaderResources::Initialize(IMemoryAllocator& Allocator,
10661071 static_assert (sizeof (WGSLSpecializationConstantAttribs) % sizeof (void *) == 0 , " Size of WGSLSpecializationConstantAttribs struct must be a multiple of sizeof(void*)" );
10671072 // clang-format off
10681073 size_t MemorySize = m_TotalResources * sizeof (WGSLShaderResourceAttribs) +
1069- m_NumSpecConstants * sizeof (WGSLSpecializationConstantAttribs) +
1074+ m_NumSpecConstants * sizeof (WGSLSpecializationConstantAttribs) +
10701075 AlignedResourceNamesPoolSize * sizeof (char );
10711076
10721077 VERIFY_EXPR (GetNumUBs () == Counters.NumUBs );
0 commit comments