diff options
author | 2016-11-22 08:39:36 -0800 | |
---|---|---|
committer | 2016-11-22 08:39:36 -0800 | |
commit | 8ac838d978578c44b75a801489c985e5284dd66f (patch) | |
tree | b53cdcf94cdd49e3d7867099d0d2018a41fc1a05 /src/sksl/SkSLSPIRVCodeGenerator.h | |
parent | 64773e6c9f61fb319f597a8d7dd7ee377d51a43a (diff) |
added support for push_constant layout
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2187433003
Committed: https://skia.googlesource.com/skia/+/fa5f65ac61fd525029aa9dab161ffe4896c10f6d
Review-Url: https://codereview.chromium.org/2187433003
Diffstat (limited to 'src/sksl/SkSLSPIRVCodeGenerator.h')
-rw-r--r-- | src/sksl/SkSLSPIRVCodeGenerator.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/sksl/SkSLSPIRVCodeGenerator.h b/src/sksl/SkSLSPIRVCodeGenerator.h index b79194500a..c885ffc3ff 100644 --- a/src/sksl/SkSLSPIRVCodeGenerator.h +++ b/src/sksl/SkSLSPIRVCodeGenerator.h @@ -14,6 +14,7 @@ #include "SkStream.h" #include "SkSLCodeGenerator.h" +#include "SkSLMemoryLayout.h" #include "ir/SkSLBinaryExpression.h" #include "ir/SkSLBoolLiteral.h" #include "ir/SkSLConstructor.h" @@ -63,6 +64,7 @@ public: SPIRVCodeGenerator(const Context* context) : fContext(*context) + , fDefaultLayout(MemoryLayout::k140_Standard) , fCapabilities(1 << SpvCapabilityShader) , fIdCount(1) , fBoolTrue(0) @@ -94,17 +96,22 @@ private: SpvId getType(const Type& type); + SpvId getType(const Type& type, const MemoryLayout& layout); + SpvId getFunctionType(const FunctionDeclaration& function); SpvId getPointerType(const Type& type, SpvStorageClass_ storageClass); + SpvId getPointerType(const Type& type, const MemoryLayout& layout, + SpvStorageClass_ storageClass); + std::vector<SpvId> getAccessChain(const Expression& expr, SkWStream& out); void writeLayout(const Layout& layout, SpvId target); void writeLayout(const Layout& layout, SpvId target, int member); - void writeStruct(const Type& type, SpvId resultId); + void writeStruct(const Type& type, const MemoryLayout& layout, SpvId resultId); void writeProgramElement(const ProgramElement& pe, SkWStream& out); @@ -230,6 +237,7 @@ private: SkWStream& out); const Context& fContext; + const MemoryLayout fDefaultLayout; uint64_t fCapabilities; SpvId fIdCount; |