Remove MoltenVK support
We haven't tested this in a while. Use the Metal backend instead.
Change-Id: Ic06bf4faff99950bd24e41bdea03962db99cfeee
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277612
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
diff --git a/src/sksl/SkSLMetalCodeGenerator.cpp b/src/sksl/SkSLMetalCodeGenerator.cpp
index c42061f..b8a6d9c 100644
--- a/src/sksl/SkSLMetalCodeGenerator.cpp
+++ b/src/sksl/SkSLMetalCodeGenerator.cpp
@@ -15,10 +15,6 @@
#include "src/sksl/ir/SkSLNop.h"
#include "src/sksl/ir/SkSLVariableReference.h"
-#ifdef SK_MOLTENVK
- static const uint32_t MVKMagicNum = 0x19960412;
-#endif
-
namespace SkSL {
void MetalCodeGenerator::setupIntrinsics() {
@@ -537,7 +533,7 @@
break;
case SK_CLOCKWISE_BUILTIN:
// We'd set the front facing winding in the MTLRenderCommandEncoder to be counter
- // clockwise to match Skia convention. This is also the default in MoltenVK.
+ // clockwise to match Skia convention.
this->write(fProgram.fSettings.fFlipY ? "_frontFacing" : "(!_frontFacing)");
break;
default:
@@ -789,18 +785,10 @@
if ("main" == f.fDeclaration.fName) {
switch (fProgram.fKind) {
case Program::kFragment_Kind:
-#ifdef SK_MOLTENVK
- this->write("fragment Outputs main0");
-#else
this->write("fragment Outputs fragmentMain");
-#endif
break;
case Program::kVertex_Kind:
-#ifdef SK_MOLTENVK
- this->write("vertex Outputs main0");
-#else
this->write("vertex Outputs vertexMain");
-#endif
break;
default:
SkASSERT(false);
@@ -842,21 +830,13 @@
this->write("& " );
this->write(fInterfaceBlockNameMap[&intf]);
this->write(" [[buffer(");
-#ifdef SK_MOLTENVK
- this->write(to_string(intf.fVariable.fModifiers.fLayout.fSet));
-#else
this->write(to_string(intf.fVariable.fModifiers.fLayout.fBinding));
-#endif
this->write(")]]");
}
}
if (fProgram.fKind == Program::kFragment_Kind) {
if (fProgram.fInputs.fRTHeight && fInterfaceBlockNameMap.empty()) {
-#ifdef SK_MOLTENVK
- this->write(", constant sksl_synthetic_uniforms& _anonInterface0 [[buffer(0)]]");
-#else
this->write(", constant sksl_synthetic_uniforms& _anonInterface0 [[buffer(1)]]");
-#endif
fRTHeightName = "_anonInterface0.u_skRTHeight";
}
this->write(", bool _frontFacing [[front_facing]]");
@@ -1030,11 +1010,7 @@
void MetalCodeGenerator::writeFields(const std::vector<Type::Field>& fields, int parentOffset,
const InterfaceBlock* parentIntf) {
-#ifdef SK_MOLTENVK
- MemoryLayout memoryLayout(MemoryLayout::k140_Standard);
-#else
MemoryLayout memoryLayout(MemoryLayout::kMetal_Standard);
-#endif
int currentOffset = 0;
for (const auto& field: fields) {
int fieldOffset = field.fModifiers.fLayout.fOffset;
@@ -1059,21 +1035,6 @@
to_string((int) alignment));
}
}
-#ifdef SK_MOLTENVK
- if (fieldType->kind() == Type::kVector_Kind &&
- fieldType->columns() == 3) {
- SkASSERT(memoryLayout.size(*fieldType) == 3);
- // Pack all vec3 types so that their size in bytes will match what was expected in the
- // original SkSL code since MSL has vec3 sizes equal to 4 * component type, while SkSL
- // has vec3 equal to 3 * component type.
-
- // FIXME - Packed vectors can't be accessed by swizzles, but can be indexed into. A
- // combination of this being a problem which only occurs when using MoltenVK and the
- // fact that we haven't swizzled a vec3 yet means that this problem hasn't been
- // addressed.
- this->write(PACKED_PREFIX);
- }
-#endif
currentOffset += memoryLayout.size(*fieldType);
std::vector<int> sizes;
while (fieldType->kind() == Type::kArray_Kind) {
@@ -1681,9 +1642,6 @@
bool MetalCodeGenerator::generateCode() {
OutputStream* rawOut = fOut;
fOut = &fHeader;
-#ifdef SK_MOLTENVK
- fOut->write((const char*) &MVKMagicNum, sizeof(MVKMagicNum));
-#endif
fProgramKind = fProgram.fKind;
this->writeHeader();
this->writeUniformStruct();
@@ -1701,9 +1659,6 @@
write_stringstream(fHeader, *rawOut);
write_stringstream(fExtraFunctions, *rawOut);
write_stringstream(body, *rawOut);
-#ifdef SK_MOLTENVK
- this->write("\0");
-#endif
return true;
}