summaryrefslogtreecommitdiff
path: root/source/slang/slang-emit-wgsl.cpp
diff options
context:
space:
mode:
authorEllie Hermaszewska <ellieh@nvidia.com>2024-11-06 01:47:26 +0800
committerGitHub <noreply@github.com>2024-11-05 09:47:26 -0800
commitb118451e301d734e3e783b3acdf871f3f6ea851c (patch)
tree277f160d31e2c442f724bc6a2d3c09fabff403ca /source/slang/slang-emit-wgsl.cpp
parent53dd5928c35d5a5cb1f7d2a563348fd1fa87d672 (diff)
Move switch statement bodies to their own lines (#5493)
* Move switch statement bodies to their own lines * format --------- Co-authored-by: Yong He <yonghe@outlook.com>
Diffstat (limited to 'source/slang/slang-emit-wgsl.cpp')
-rw-r--r--source/slang/slang-emit-wgsl.cpp161
1 files changed, 116 insertions, 45 deletions
diff --git a/source/slang/slang-emit-wgsl.cpp b/source/slang/slang-emit-wgsl.cpp
index d8ec01776..52ff790d7 100644
--- a/source/slang/slang-emit-wgsl.cpp
+++ b/source/slang/slang-emit-wgsl.cpp
@@ -114,8 +114,12 @@ void WGSLSourceEmitter::emitEntryPointAttributesImpl(
switch (stage)
{
- case Stage::Fragment: m_writer->emit("@fragment\n"); break;
- case Stage::Vertex: m_writer->emit("@vertex\n"); break;
+ case Stage::Fragment:
+ m_writer->emit("@fragment\n");
+ break;
+ case Stage::Vertex:
+ m_writer->emit("@vertex\n");
+ break;
case Stage::Compute:
{
@@ -137,7 +141,8 @@ void WGSLSourceEmitter::emitEntryPointAttributesImpl(
}
break;
- default: SLANG_ABORT_COMPILATION("unsupported stage.");
+ default:
+ SLANG_ABORT_COMPILATION("unsupported stage.");
}
}
@@ -231,15 +236,25 @@ void WGSLSourceEmitter::emit(const AddressSpace addressSpace)
{
switch (addressSpace)
{
- case AddressSpace::Uniform: m_writer->emit("uniform"); break;
+ case AddressSpace::Uniform:
+ m_writer->emit("uniform");
+ break;
- case AddressSpace::StorageBuffer: m_writer->emit("storage"); break;
+ case AddressSpace::StorageBuffer:
+ m_writer->emit("storage");
+ break;
- case AddressSpace::Generic: m_writer->emit("function"); break;
+ case AddressSpace::Generic:
+ m_writer->emit("function");
+ break;
- case AddressSpace::ThreadLocal: m_writer->emit("private"); break;
+ case AddressSpace::ThreadLocal:
+ m_writer->emit("private");
+ break;
- case AddressSpace::GroupShared: m_writer->emit("workgroup"); break;
+ case AddressSpace::GroupShared:
+ m_writer->emit("workgroup");
+ break;
}
}
@@ -252,22 +267,38 @@ static const char* getWgslImageFormat(IRTextureTypeBase* type)
type->hasFormat() ? (ImageFormat)type->getFormat() : ImageFormat::unknown;
switch (imageFormat)
{
- case ImageFormat::rgba8: return "rgba8unorm";
- case ImageFormat::rgba8_snorm: return "rgba8snorm";
- case ImageFormat::rgba8ui: return "rgba8uint";
- case ImageFormat::rgba8i: return "rgba8sint";
- case ImageFormat::rgba16ui: return "rgba16uint";
- case ImageFormat::rgba16i: return "rgba16sint";
- case ImageFormat::rgba16f: return "rgba16float";
- case ImageFormat::r32ui: return "r32uint";
- case ImageFormat::r32i: return "r32sint";
- case ImageFormat::r32f: return "r32float";
- case ImageFormat::rg32ui: return "rg32uint";
- case ImageFormat::rg32i: return "rg32sint";
- case ImageFormat::rg32f: return "rg32float";
- case ImageFormat::rgba32ui: return "rgba32uint";
- case ImageFormat::rgba32i: return "rgba32sint";
- case ImageFormat::rgba32f: return "rgba32float";
+ case ImageFormat::rgba8:
+ return "rgba8unorm";
+ case ImageFormat::rgba8_snorm:
+ return "rgba8snorm";
+ case ImageFormat::rgba8ui:
+ return "rgba8uint";
+ case ImageFormat::rgba8i:
+ return "rgba8sint";
+ case ImageFormat::rgba16ui:
+ return "rgba16uint";
+ case ImageFormat::rgba16i:
+ return "rgba16sint";
+ case ImageFormat::rgba16f:
+ return "rgba16float";
+ case ImageFormat::r32ui:
+ return "r32uint";
+ case ImageFormat::r32i:
+ return "r32sint";
+ case ImageFormat::r32f:
+ return "r32float";
+ case ImageFormat::rg32ui:
+ return "rg32uint";
+ case ImageFormat::rg32i:
+ return "rg32sint";
+ case ImageFormat::rg32f:
+ return "rg32float";
+ case ImageFormat::rgba32ui:
+ return "rgba32uint";
+ case ImageFormat::rgba32i:
+ return "rgba32sint";
+ case ImageFormat::rgba32f:
+ return "rgba32float";
case ImageFormat::unknown:
// Unlike SPIR-V, WGSL doesn't have a texel format for "unknown".
return "rgba32float";
@@ -317,7 +348,9 @@ void WGSLSourceEmitter::emitSimpleTypeImpl(IRType* type)
return;
}
- case kIROp_FloatType: m_writer->emit("f32"); break;
+ case kIROp_FloatType:
+ m_writer->emit("f32");
+ break;
case kIROp_DoubleType:
// There is no "f64" type in WGSL
SLANG_UNEXPECTED("'double' type emitted");
@@ -331,20 +364,34 @@ void WGSLSourceEmitter::emitSimpleTypeImpl(IRType* type)
m_f16ExtensionEnabled = true;
m_writer->emit("f16");
break;
- case kIROp_BoolType: m_writer->emit("bool"); break;
- case kIROp_IntType: m_writer->emit("i32"); break;
- case kIROp_UIntType: m_writer->emit("u32"); break;
+ case kIROp_BoolType:
+ m_writer->emit("bool");
+ break;
+ case kIROp_IntType:
+ m_writer->emit("i32");
+ break;
+ case kIROp_UIntType:
+ m_writer->emit("u32");
+ break;
case kIROp_UInt64Type:
{
m_writer->emit(getDefaultBuiltinTypeName(type->getOp()));
return;
}
case kIROp_Int16Type:
- case kIROp_UInt16Type: SLANG_UNEXPECTED("16 bit integer value emitted"); return;
+ case kIROp_UInt16Type:
+ SLANG_UNEXPECTED("16 bit integer value emitted");
+ return;
case kIROp_Int64Type:
- case kIROp_IntPtrType: m_writer->emit("i64"); return;
- case kIROp_UIntPtrType: m_writer->emit("u64"); return;
- case kIROp_StructType: m_writer->emit(getName(type)); return;
+ case kIROp_IntPtrType:
+ m_writer->emit("i64");
+ return;
+ case kIROp_UIntPtrType:
+ m_writer->emit("u64");
+ return;
+ case kIROp_StructType:
+ m_writer->emit(getName(type));
+ return;
case kIROp_VectorType:
{
@@ -406,8 +453,12 @@ void WGSLSourceEmitter::emitSimpleTypeImpl(IRType* type)
switch (texType->getAccess())
{
case SLANG_RESOURCE_ACCESS_WRITE:
- case SLANG_RESOURCE_ACCESS_READ_WRITE: m_writer->emit("texture_storage"); break;
- default: m_writer->emit("texture"); break;
+ case SLANG_RESOURCE_ACCESS_READ_WRITE:
+ m_writer->emit("texture_storage");
+ break;
+ default:
+ m_writer->emit("texture");
+ break;
}
if (texType->isShadow())
@@ -422,10 +473,18 @@ void WGSLSourceEmitter::emitSimpleTypeImpl(IRType* type)
switch (texType->GetBaseShape())
{
- case SLANG_TEXTURE_1D: m_writer->emit("_1d"); break;
- case SLANG_TEXTURE_2D: m_writer->emit("_2d"); break;
- case SLANG_TEXTURE_3D: m_writer->emit("_3d"); break;
- case SLANG_TEXTURE_CUBE: m_writer->emit("_cube"); break;
+ case SLANG_TEXTURE_1D:
+ m_writer->emit("_1d");
+ break;
+ case SLANG_TEXTURE_2D:
+ m_writer->emit("_2d");
+ break;
+ case SLANG_TEXTURE_3D:
+ m_writer->emit("_3d");
+ break;
+ case SLANG_TEXTURE_CUBE:
+ m_writer->emit("_cube");
+ break;
}
if (texType->isArray())
@@ -467,7 +526,8 @@ void WGSLSourceEmitter::emitSimpleTypeImpl(IRType* type)
m_writer->emit(">");
return;
}
- default: break;
+ default:
+ break;
}
}
@@ -531,7 +591,9 @@ void WGSLSourceEmitter::emitVarKeywordImpl(IRType* type, IRInst* varDecl)
{
case kIROp_GlobalParam:
case kIROp_GlobalVar:
- case kIROp_Var: m_writer->emit("var"); break;
+ case kIROp_Var:
+ m_writer->emit("var");
+ break;
default:
if (isStaticConst(varDecl))
m_writer->emit("const");
@@ -587,8 +649,12 @@ void WGSLSourceEmitter::_emitType(IRType* type, DeclaratorInfo* declarator)
{
case kIROp_ArrayType:
case kIROp_AttributedType:
- case kIROp_UnsizedArrayType: emitSimpleTypeAndDeclarator(type, declarator); break;
- default: CLikeSourceEmitter::_emitType(type, declarator); break;
+ case kIROp_UnsizedArrayType:
+ emitSimpleTypeAndDeclarator(type, declarator);
+ break;
+ default:
+ CLikeSourceEmitter::_emitType(type, declarator);
+ break;
}
}
@@ -665,7 +731,9 @@ void WGSLSourceEmitter::emitDeclaratorImpl(DeclaratorInfo* declarator)
}
break;
- default: SLANG_DIAGNOSE_UNEXPECTED(getSink(), SourceLoc(), "unknown declarator flavor"); break;
+ default:
+ SLANG_DIAGNOSE_UNEXPECTED(getSink(), SourceLoc(), "unknown declarator flavor");
+ break;
}
}
@@ -838,7 +906,9 @@ void WGSLSourceEmitter::emitSimpleValueImpl(IRInst* inst)
}
break;
- default: SLANG_UNIMPLEMENTED_X("val case for emit"); break;
+ default:
+ SLANG_UNIMPLEMENTED_X("val case for emit");
+ break;
}
}
@@ -851,7 +921,8 @@ bool WGSLSourceEmitter::tryEmitInstStmtImpl(IRInst* inst)
{
switch (inst->getOp())
{
- default: return false;
+ default:
+ return false;
case kIROp_AtomicLoad:
{
emitInstResultDecl(inst);