aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/sksl/SkSLSPIRVCodeGenerator.cpp
diff options
context:
space:
mode:
authorGravatar Ethan Nicholas <ethannicholas@google.com>2017-11-27 13:12:30 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-11-27 18:39:26 +0000
commit39204fd5dd289864973d151fc08d6f7985cecbf8 (patch)
treefc8b17451acac4135b149ecc697a98f9d678a96d /src/sksl/SkSLSPIRVCodeGenerator.cpp
parenta475afd840fde33183dd3d0c91eb71d371435ceb (diff)
added SkSL support for all blend mode layouts
Bug: skia: Change-Id: Id39c068b15d0ae51520dc2169cdbf21402a43f69 Reviewed-on: https://skia-review.googlesource.com/76200 Commit-Queue: Ethan Nicholas <ethannicholas@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>
Diffstat (limited to 'src/sksl/SkSLSPIRVCodeGenerator.cpp')
-rw-r--r--src/sksl/SkSLSPIRVCodeGenerator.cpp16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/sksl/SkSLSPIRVCodeGenerator.cpp b/src/sksl/SkSLSPIRVCodeGenerator.cpp
index 1366c090c1..9f24ed3f1b 100644
--- a/src/sksl/SkSLSPIRVCodeGenerator.cpp
+++ b/src/sksl/SkSLSPIRVCodeGenerator.cpp
@@ -1839,13 +1839,13 @@ SpvId SPIRVCodeGenerator::writeConstructor(const Constructor& c, OutputStream& o
SpvStorageClass_ get_storage_class(const Modifiers& modifiers) {
if (modifiers.fFlags & Modifiers::kIn_Flag) {
- ASSERT(!modifiers.fLayout.fPushConstant);
+ ASSERT(!(modifiers.fLayout.fFlags & Layout::kPushConstant_Flag));
return SpvStorageClassInput;
} else if (modifiers.fFlags & Modifiers::kOut_Flag) {
- ASSERT(!modifiers.fLayout.fPushConstant);
+ ASSERT(!(modifiers.fLayout.fFlags & Layout::kPushConstant_Flag));
return SpvStorageClassOutput;
} else if (modifiers.fFlags & Modifiers::kUniform_Flag) {
- if (modifiers.fLayout.fPushConstant) {
+ if (modifiers.fLayout.fFlags & Layout::kPushConstant_Flag) {
return SpvStorageClassPushConstant;
}
return SpvStorageClassUniform;
@@ -2091,9 +2091,9 @@ SpvId SPIRVCodeGenerator::writeVariableReference(const VariableReference& ref, O
fields.emplace_back(Modifiers(), SKSL_RTHEIGHT_NAME, fContext.fFloat_Type.get());
StringFragment name("sksl_synthetic_uniforms");
Type intfStruct(-1, name, fields);
- Layout layout(-1, -1, 1, -1, -1, -1, -1, false, false, false,
- Layout::Format::kUnspecified, false, Layout::kUnspecified_Primitive, -1,
- -1, "", Layout::kNo_Key, StringFragment());
+ Layout layout(0, -1, -1, 1, -1, -1, -1, -1, Layout::Format::kUnspecified,
+ Layout::kUnspecified_Primitive, -1, -1, "", Layout::kNo_Key,
+ StringFragment());
Variable* intfVar = new Variable(-1,
Modifiers(layout, Modifiers::kUniform_Flag),
name,
@@ -2858,7 +2858,9 @@ void SPIRVCodeGenerator::writeLayout(const Layout& layout, SpvId target, int mem
SpvId SPIRVCodeGenerator::writeInterfaceBlock(const InterfaceBlock& intf) {
bool isBuffer = (0 != (intf.fVariable.fModifiers.fFlags & Modifiers::kBuffer_Flag));
- MemoryLayout layout = (intf.fVariable.fModifiers.fLayout.fPushConstant || isBuffer) ?
+ bool pushConstant = (0 != (intf.fVariable.fModifiers.fLayout.fFlags &
+ Layout::kPushConstant_Flag));
+ MemoryLayout layout = (pushConstant || isBuffer) ?
MemoryLayout(MemoryLayout::k430_Standard) :
fDefaultLayout;
SpvId result = this->nextId();