aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/sksl/SkSLSPIRVCodeGenerator.h
diff options
context:
space:
mode:
authorGravatar Greg Daniel <egdaniel@google.com>2016-12-12 17:20:42 +0000
committerGravatar Greg Daniel <egdaniel@google.com>2016-12-12 17:22:28 +0000
commite8e4a3e6782586680086a0279eafb89969c29f3d (patch)
tree93e27a37cd75c69fe85fab990f6daf17c80ed794 /src/sksl/SkSLSPIRVCodeGenerator.h
parentd737bee1470bbba8af5c9d74cbec2d731da33804 (diff)
Revert "added sk_FragCoord support to skslc"
This reverts commit ce33f10677630e34187b661a02161378d8304d68. Reason for revert: Breaking many gpu bots Change-Id: I94c813ed6a9311458c872f74bb1b0792f46ff414 Reviewed-on: https://skia-review.googlesource.com/5737 Commit-Queue: Greg Daniel <egdaniel@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>
Diffstat (limited to 'src/sksl/SkSLSPIRVCodeGenerator.h')
-rw-r--r--src/sksl/SkSLSPIRVCodeGenerator.h28
1 files changed, 10 insertions, 18 deletions
diff --git a/src/sksl/SkSLSPIRVCodeGenerator.h b/src/sksl/SkSLSPIRVCodeGenerator.h
index 96ff187983..5567ec5404 100644
--- a/src/sksl/SkSLSPIRVCodeGenerator.h
+++ b/src/sksl/SkSLSPIRVCodeGenerator.h
@@ -62,21 +62,18 @@ public:
virtual void store(SpvId value, SkWStream& out) = 0;
};
- SPIRVCodeGenerator(const Context* context, const Program* program, ErrorReporter* errors,
- SkWStream* out)
- : INHERITED(program, errors, out)
- , fContext(*context)
+ SPIRVCodeGenerator(const Context* context)
+ : fContext(*context)
, fDefaultLayout(MemoryLayout::k140_Standard)
, fCapabilities(1 << SpvCapabilityShader)
, fIdCount(1)
, fBoolTrue(0)
, fBoolFalse(0)
- , fSetupFragPosition(false)
, fCurrentBlock(0) {
this->setupIntrinsics();
}
- bool generateCode() override;
+ void generateCode(const Program& program, ErrorReporter& errors, SkWStream& out) override;
private:
enum IntrinsicKind {
@@ -103,7 +100,7 @@ private:
SpvId getPointerType(const Type& type, SpvStorageClass_ storageClass);
- SpvId getPointerType(const Type& type, const MemoryLayout& layout,
+ SpvId getPointerType(const Type& type, const MemoryLayout& layout,
SpvStorageClass_ storageClass);
std::vector<SpvId> getAccessChain(const Expression& expr, SkWStream& out);
@@ -156,11 +153,11 @@ private:
SpvId writeSwizzle(const Swizzle& swizzle, SkWStream& out);
- SpvId writeBinaryOperation(const Type& resultType, const Type& operandType, SpvId lhs,
- SpvId rhs, SpvOp_ ifFloat, SpvOp_ ifInt, SpvOp_ ifUInt,
+ SpvId writeBinaryOperation(const Type& resultType, const Type& operandType, SpvId lhs,
+ SpvId rhs, SpvOp_ ifFloat, SpvOp_ ifInt, SpvOp_ ifUInt,
SpvOp_ ifBool, SkWStream& out);
- SpvId writeBinaryOperation(const BinaryExpression& expr, SpvOp_ ifFloat, SpvOp_ ifInt,
+ SpvId writeBinaryOperation(const BinaryExpression& expr, SpvOp_ ifFloat, SpvOp_ ifInt,
SpvOp_ ifUInt, SkWStream& out);
SpvId writeBinaryExpression(const BinaryExpression& b, SkWStream& out);
@@ -218,7 +215,7 @@ private:
void writeInstruction(SpvOp_ opCode, int32_t word1, int32_t word2, SkWStream& out);
- void writeInstruction(SpvOp_ opCode, int32_t word1, int32_t word2, int32_t word3,
+ void writeInstruction(SpvOp_ opCode, int32_t word1, int32_t word2, int32_t word3,
SkWStream& out);
void writeInstruction(SpvOp_ opCode, int32_t word1, int32_t word2, int32_t word3, int32_t word4,
@@ -234,11 +231,12 @@ private:
int32_t word5, int32_t word6, int32_t word7, SkWStream& out);
void writeInstruction(SpvOp_ opCode, int32_t word1, int32_t word2, int32_t word3, int32_t word4,
- int32_t word5, int32_t word6, int32_t word7, int32_t word8,
+ int32_t word5, int32_t word6, int32_t word7, int32_t word8,
SkWStream& out);
const Context& fContext;
const MemoryLayout fDefaultLayout;
+ ErrorReporter* fErrors;
uint64_t fCapabilities;
SpvId fIdCount;
@@ -252,7 +250,6 @@ private:
SkDynamicMemoryWStream fCapabilitiesBuffer;
SkDynamicMemoryWStream fGlobalInitializersBuffer;
SkDynamicMemoryWStream fConstantBuffer;
- SkDynamicMemoryWStream fExtraGlobalsBuffer;
SkDynamicMemoryWStream fExternalFunctionsBuffer;
SkDynamicMemoryWStream fVariableBuffer;
SkDynamicMemoryWStream fNameBuffer;
@@ -264,18 +261,13 @@ private:
std::unordered_map<uint64_t, SpvId> fUIntConstants;
std::unordered_map<float, SpvId> fFloatConstants;
std::unordered_map<double, SpvId> fDoubleConstants;
- bool fSetupFragPosition;
// label of the current block, or 0 if we are not in a block
SpvId fCurrentBlock;
std::stack<SpvId> fBreakTarget;
std::stack<SpvId> fContinueTarget;
- SpvId fRTHeightStructId = (SpvId) -1;
- SpvId fRTHeightFieldIndex = (SpvId) -1;
friend class PointerLValue;
friend class SwizzleLValue;
-
- typedef CodeGenerator INHERITED;
};
}