@@ -305,7 +305,7 @@ static spv::Dim TranslateDimensionality(const glslang::TSampler& sampler)
305305static spv::Decoration TranslatePrecisionDecoration (glslang::TPrecisionQualifier glslangPrecision)
306306{
307307 switch (glslangPrecision) {
308- case glslang::EpqLow: return spv::DecorationRelaxedPrecision;
308+ case glslang::EpqLow:
309309 case glslang::EpqMedium: return spv::DecorationRelaxedPrecision;
310310 default : break ;
311311 }
@@ -321,11 +321,14 @@ static spv::Decoration TranslatePrecisionDecoration(const glslang::TType& type)
321321// Translate glslang type to SPIR-V block decorations.
322322static spv::Decoration TranslateBlockDecoration (const glslang::TType& type, bool useStorageBuffer)
323323{
324- if (type.getBasicType () == glslang::EbtBlock) {
324+ if (type.getBasicType () == glslang::EbtBlock)
325+ {
325326 switch (type.getQualifier ().storage ) {
326- case glslang::EvqUniform: return spv::DecorationBlock;
327- case glslang::EvqBuffer: return useStorageBuffer ? spv::DecorationBlock : spv::DecorationBufferBlock;
328- case glslang::EvqVaryingIn: return spv::DecorationBlock;
327+ case glslang::EvqBuffer:
328+ if (!useStorageBuffer) return spv::DecorationBufferBlock;
329+ /* fallthrough */
330+ case glslang::EvqUniform:
331+ case glslang::EvqVaryingIn:
329332 case glslang::EvqVaryingOut: return spv::DecorationBlock;
330333 default :
331334 break ;
@@ -355,37 +358,41 @@ void TranslateMemoryDecoration(const glslang::TQualifier& qualifier, std::vector
355358// Translate glslang type to SPIR-V layout decorations.
356359spv::Decoration TranslateLayoutDecoration (const glslang::TType& type, glslang::TLayoutMatrix matrixLayout)
357360{
358- if (type.isMatrix ()) {
361+ if (type.isMatrix ())
362+ {
359363 switch (matrixLayout) {
360364 case glslang::ElmRowMajor:
361365 return spv::DecorationRowMajor;
362366 case glslang::ElmColumnMajor:
363367 return spv::DecorationColMajor;
364368 default :
365369 // opaque layouts don't need a majorness
366- return spv::DecorationMax ;
370+ break ;
367371 }
368- } else {
372+ }
373+ else
374+ {
369375 switch (type.getBasicType ()) {
370376 default :
371- return spv::DecorationMax ;
377+ break ;
372378 case glslang::EbtBlock:
373379 switch (type.getQualifier ().storage ) {
374380 case glslang::EvqUniform:
375381 case glslang::EvqBuffer:
376382 switch (type.getQualifier ().layoutPacking ) {
377383 case glslang::ElpShared: return spv::DecorationGLSLShared;
378384 case glslang::ElpPacked: return spv::DecorationGLSLPacked;
379- default :
380- return spv::DecorationMax;
385+ default : break ;
381386 }
387+ break ;
382388 case glslang::EvqVaryingIn:
383389 case glslang::EvqVaryingOut:
384390 default :
385- return spv::DecorationMax ;
391+ break ;
386392 }
387393 }
388394 }
395+ return spv::DecorationMax;
389396}
390397
391398// Translate glslang type to SPIR-V interpolation decorations.
@@ -419,11 +426,12 @@ spv::Decoration TGlslangToSpvTraverser::TranslateAuxiliaryStorageDecoration(cons
419426 return spv::DecorationPatch;
420427 else if (qualifier.centroid )
421428 return spv::DecorationCentroid;
422- else if (qualifier.sample ) {
429+ else if (qualifier.sample )
430+ {
423431 builder.addCapability (spv::CapabilitySampleRateShading);
424432 return spv::DecorationSample;
425- } else
426- return spv::DecorationMax;
433+ }
434+ return spv::DecorationMax;
427435}
428436
429437// If glslang type is invariant, return SPIR-V invariant decoration.
0 commit comments