aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/sksl/SkSLSPIRVCodeGenerator.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/sksl/SkSLSPIRVCodeGenerator.cpp')
-rw-r--r--src/sksl/SkSLSPIRVCodeGenerator.cpp41
1 files changed, 19 insertions, 22 deletions
diff --git a/src/sksl/SkSLSPIRVCodeGenerator.cpp b/src/sksl/SkSLSPIRVCodeGenerator.cpp
index 5f312afef1..c5a5d2c303 100644
--- a/src/sksl/SkSLSPIRVCodeGenerator.cpp
+++ b/src/sksl/SkSLSPIRVCodeGenerator.cpp
@@ -2854,9 +2854,9 @@ void SPIRVCodeGenerator::writeReturnStatement(const ReturnStatement& r, OutputSt
void SPIRVCodeGenerator::writeGeometryShaderExecutionMode(SpvId entryPoint, OutputStream& out) {
ASSERT(fProgram.fKind == Program::kGeometry_Kind);
int invocations = 1;
- for (size_t i = 0; i < fProgram.fElements.size(); i++) {
- if (fProgram.fElements[i]->fKind == ProgramElement::kModifiers_Kind) {
- const Modifiers& m = ((ModifiersDeclaration&) *fProgram.fElements[i]).fModifiers;
+ for (const auto& e : fProgram) {
+ if (e.fKind == ProgramElement::kModifiers_Kind) {
+ const Modifiers& m = ((ModifiersDeclaration&) e).fModifiers;
if (m.fFlags & Modifiers::kIn_Flag) {
if (m.fLayout.fInvocations != -1) {
invocations = m.fLayout.fInvocations;
@@ -2922,15 +2922,15 @@ void SPIRVCodeGenerator::writeInstructions(const Program& program, OutputStream&
std::set<SpvId> interfaceVars;
// assign IDs to functions, determine sk_in size
int skInSize = -1;
- for (size_t i = 0; i < program.fElements.size(); i++) {
- switch (program.fElements[i]->fKind) {
+ for (const auto& e : program) {
+ switch (e.fKind) {
case ProgramElement::kFunction_Kind: {
- FunctionDefinition& f = (FunctionDefinition&) *program.fElements[i];
+ FunctionDefinition& f = (FunctionDefinition&) e;
fFunctionMap[&f.fDeclaration] = this->nextId();
break;
}
case ProgramElement::kModifiers_Kind: {
- Modifiers& m = ((ModifiersDeclaration&) *program.fElements[i]).fModifiers;
+ Modifiers& m = ((ModifiersDeclaration&) e).fModifiers;
if (m.fFlags & Modifiers::kIn_Flag) {
switch (m.fLayout.fPrimitive) {
case Layout::kPoints_Primitive: // break
@@ -2954,9 +2954,9 @@ void SPIRVCodeGenerator::writeInstructions(const Program& program, OutputStream&
break;
}
}
- for (size_t i = 0; i < program.fElements.size(); i++) {
- if (program.fElements[i]->fKind == ProgramElement::kInterfaceBlock_Kind) {
- InterfaceBlock& intf = (InterfaceBlock&) *program.fElements[i];
+ for (const auto& e : program) {
+ if (e.fKind == ProgramElement::kInterfaceBlock_Kind) {
+ InterfaceBlock& intf = (InterfaceBlock&) e;
if (SK_IN_BUILTIN == intf.fVariable.fModifiers.fLayout.fBuiltin) {
ASSERT(skInSize != -1);
intf.fSizes.emplace_back(new IntLiteral(fContext, -1, skInSize));
@@ -2969,15 +2969,14 @@ void SPIRVCodeGenerator::writeInstructions(const Program& program, OutputStream&
}
}
}
- for (size_t i = 0; i < program.fElements.size(); i++) {
- if (program.fElements[i]->fKind == ProgramElement::kVar_Kind) {
- this->writeGlobalVars(program.fKind, ((VarDeclarations&) *program.fElements[i]),
- body);
+ for (const auto& e : program) {
+ if (e.fKind == ProgramElement::kVar_Kind) {
+ this->writeGlobalVars(program.fKind, ((VarDeclarations&) e), body);
}
}
- for (size_t i = 0; i < program.fElements.size(); i++) {
- if (program.fElements[i]->fKind == ProgramElement::kFunction_Kind) {
- this->writeFunction(((FunctionDefinition&) *program.fElements[i]), body);
+ for (const auto& e : program) {
+ if (e.fKind == ProgramElement::kFunction_Kind) {
+ this->writeFunction(((FunctionDefinition&) e), body);
}
}
const FunctionDeclaration* main = nullptr;
@@ -3030,11 +3029,9 @@ void SPIRVCodeGenerator::writeInstructions(const Program& program, OutputStream&
SpvExecutionModeOriginUpperLeft,
out);
}
- for (size_t i = 0; i < program.fElements.size(); i++) {
- if (program.fElements[i]->fKind == ProgramElement::kExtension_Kind) {
- this->writeInstruction(SpvOpSourceExtension,
- ((Extension&) *program.fElements[i]).fName.c_str(),
- out);
+ for (const auto& e : program) {
+ if (e.fKind == ProgramElement::kExtension_Kind) {
+ this->writeInstruction(SpvOpSourceExtension, ((Extension&) e).fName.c_str(), out);
}
}