Revert "Add support for image load to SkSL"
This reverts commit bd85a105ba
.
Reason for revert: Needing to revert a dependent CL
Original change's description:
> Add support for image load to SkSL
>
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4865
>
> Change-Id: I4647e6b255946ced2b1b8cb05e62f0f5a8ad28b6
> Reviewed-on: https://skia-review.googlesource.com/4865
> Commit-Queue: Brian Salomon <bsalomon@google.com>
> Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
>
TBR=bsalomon@google.com,ethannicholas@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Change-Id: I45932a53c606aadd645ee2b8264f08ad63429939
Reviewed-on: https://skia-review.googlesource.com/4892
Commit-Queue: Stan Iliev <stani@google.com>
Reviewed-by: Stan Iliev <stani@google.com>
This commit is contained in:
parent
cfcf624c39
commit
cb115bdeed
@ -113,9 +113,6 @@ Compiler::Compiler()
|
||||
|
||||
ADD_TYPE(ISampler2D);
|
||||
|
||||
ADD_TYPE(Image2D);
|
||||
ADD_TYPE(IImage2D);
|
||||
|
||||
ADD_TYPE(GSampler1D);
|
||||
ADD_TYPE(GSampler2D);
|
||||
ADD_TYPE(GSampler3D);
|
||||
|
@ -78,14 +78,8 @@ public:
|
||||
, fSampler1DArrayShadow_Type(new Type("sampler1DArrayShadow"))
|
||||
, fSampler2DArrayShadow_Type(new Type("sampler2DArrayShadow"))
|
||||
, fSamplerCubeArrayShadow_Type(new Type("samplerCubeArrayShadow"))
|
||||
|
||||
// Related to below FIXME, gsampler*s don't currently expand to cover integer case.
|
||||
, fISampler2D_Type(new Type("isampler2D", SpvDim2D, false, false, false, true))
|
||||
|
||||
// FIXME express these as "gimage2D" that expand to image2D, iimage2D, and uimage2D.
|
||||
, fImage2D_Type(new Type("image2D", SpvDim2D, false, false, false, true))
|
||||
, fIImage2D_Type(new Type("iimage2D", SpvDim2D, false, false, false, true))
|
||||
|
||||
// FIXME figure out what we're supposed to do with the gsampler et al. types)
|
||||
, fGSampler1D_Type(new Type("$gsampler1D", static_type(*fSampler1D_Type)))
|
||||
, fGSampler2D_Type(new Type("$gsampler2D", static_type(*fSampler2D_Type)))
|
||||
@ -201,12 +195,8 @@ public:
|
||||
const std::unique_ptr<Type> fSampler2DArrayShadow_Type;
|
||||
const std::unique_ptr<Type> fSamplerCubeArrayShadow_Type;
|
||||
|
||||
|
||||
const std::unique_ptr<Type> fISampler2D_Type;
|
||||
|
||||
const std::unique_ptr<Type> fImage2D_Type;
|
||||
const std::unique_ptr<Type> fIImage2D_Type;
|
||||
|
||||
const std::unique_ptr<Type> fGSampler1D_Type;
|
||||
const std::unique_ptr<Type> fGSampler2D_Type;
|
||||
const std::unique_ptr<Type> fGSampler3D_Type;
|
||||
|
@ -474,12 +474,6 @@ void GLSLCodeGenerator::writeVarDeclarations(const VarDeclarations& decl, bool g
|
||||
this->write(" = ");
|
||||
this->writeExpression(*var.fValue, kTopLevel_Precedence);
|
||||
}
|
||||
if (!fFoundImageDecl && var.fVar->fType == *fContext.fImage2D_Type) {
|
||||
if (fCaps.imageLoadStoreExtensionString()) {
|
||||
fHeader << "#extension " << fCaps.imageLoadStoreExtensionString() << " : require\n";
|
||||
}
|
||||
fFoundImageDecl = true;
|
||||
}
|
||||
}
|
||||
this->write(";");
|
||||
}
|
||||
|
@ -169,7 +169,6 @@ private:
|
||||
std::vector<const Type*> fWrittenStructs;
|
||||
// true if we have run into usages of dFdx / dFdy
|
||||
bool fFoundDerivatives = false;
|
||||
bool fFoundImageDecl = false;
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -537,12 +537,11 @@ ASTLayout Parser::layout() {
|
||||
bool overrideCoverage = false;
|
||||
bool blendSupportAllEquations = false;
|
||||
bool pushConstant = false;
|
||||
ASTLayout::Format format = ASTLayout::Format::kUnspecified;
|
||||
if (this->peek().fKind == Token::LAYOUT) {
|
||||
this->nextToken();
|
||||
if (!this->expect(Token::LPAREN, "'('")) {
|
||||
return ASTLayout(location, binding, index, set, builtin, originUpperLeft,
|
||||
overrideCoverage, blendSupportAllEquations, pushConstant, format);
|
||||
overrideCoverage, blendSupportAllEquations, pushConstant);
|
||||
}
|
||||
for (;;) {
|
||||
Token t = this->nextToken();
|
||||
@ -564,8 +563,6 @@ ASTLayout Parser::layout() {
|
||||
blendSupportAllEquations = true;
|
||||
} else if (t.fText == "push_constant") {
|
||||
pushConstant = true;
|
||||
} else if (ASTLayout::ReadFormat(t.fText, &format)) {
|
||||
// AST::ReadFormat stored the result in 'format'.
|
||||
} else {
|
||||
this->error(t.fPosition, ("'" + t.fText +
|
||||
"' is not a valid layout qualifier").c_str());
|
||||
@ -580,7 +577,7 @@ ASTLayout Parser::layout() {
|
||||
}
|
||||
}
|
||||
return ASTLayout(location, binding, index, set, builtin, originUpperLeft, overrideCoverage,
|
||||
blendSupportAllEquations, pushConstant, format);
|
||||
blendSupportAllEquations, pushConstant);
|
||||
}
|
||||
|
||||
/* layout? (UNIFORM | CONST | IN | OUT | INOUT | LOWP | MEDIUMP | HIGHP | FLAT | NOPERSPECTIVE)* */
|
||||
|
@ -19,68 +19,9 @@ namespace SkSL {
|
||||
* layout (location = 0) int x;
|
||||
*/
|
||||
struct ASTLayout : public ASTNode {
|
||||
// These are used by images in GLSL. We only support a subset of what GL supports.
|
||||
enum class Format {
|
||||
kUnspecified = -1,
|
||||
kRGBA32F,
|
||||
kR32F,
|
||||
kRGBA16F,
|
||||
kR16F,
|
||||
kRGBA8,
|
||||
kR8,
|
||||
kRGBA8I,
|
||||
kR8I,
|
||||
};
|
||||
|
||||
static const char* FormatToStr(Format format) {
|
||||
switch (format) {
|
||||
case Format::kUnspecified: return "";
|
||||
case Format::kRGBA32F: return "rgba32f";
|
||||
case Format::kR32F: return "r32f";
|
||||
case Format::kRGBA16F: return "rgba16f";
|
||||
case Format::kR16F: return "r16f";
|
||||
case Format::kRGBA8: return "rgba8";
|
||||
case Format::kR8: return "r8";
|
||||
case Format::kRGBA8I: return "rgba8i";
|
||||
case Format::kR8I: return "r8i";
|
||||
}
|
||||
SkFAIL("Unexpected format");
|
||||
return "";
|
||||
}
|
||||
|
||||
static bool ReadFormat(std::string str, Format* format) {
|
||||
if (str == "rgba32f") {
|
||||
*format = Format::kRGBA32F;
|
||||
return true;
|
||||
} else if (str == "r32f") {
|
||||
*format = Format::kR32F;
|
||||
return true;
|
||||
} else if (str == "rgba16f") {
|
||||
*format = Format::kRGBA16F;
|
||||
return true;
|
||||
} else if (str == "r16f") {
|
||||
*format = Format::kR16F;
|
||||
return true;
|
||||
} else if (str == "rgba8") {
|
||||
*format = Format::kRGBA8;
|
||||
return true;
|
||||
} else if (str == "r8") {
|
||||
*format = Format::kR8;
|
||||
return true;
|
||||
} else if (str == "rgba8i") {
|
||||
*format = Format::kRGBA8I;
|
||||
return true;
|
||||
} else if (str == "r8i") {
|
||||
*format = Format::kR8I;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// For int parameters, a -1 means no value
|
||||
ASTLayout(int location, int binding, int index, int set, int builtin, bool originUpperLeft,
|
||||
bool overrideCoverage, bool blendSupportAllEquations, bool pushConstant,
|
||||
Format format)
|
||||
bool overrideCoverage, bool blendSupportAllEquations, bool pushConstant)
|
||||
: fLocation(location)
|
||||
, fBinding(binding)
|
||||
, fIndex(index)
|
||||
@ -89,8 +30,7 @@ struct ASTLayout : public ASTNode {
|
||||
, fOriginUpperLeft(originUpperLeft)
|
||||
, fOverrideCoverage(overrideCoverage)
|
||||
, fBlendSupportAllEquations(blendSupportAllEquations)
|
||||
, fPushConstant(pushConstant)
|
||||
, fFormat(format) {}
|
||||
, fPushConstant(pushConstant) {}
|
||||
|
||||
std::string description() const {
|
||||
std::string result;
|
||||
@ -131,10 +71,6 @@ struct ASTLayout : public ASTNode {
|
||||
result += separator + "push_constant";
|
||||
separator = ", ";
|
||||
}
|
||||
if (fFormat != Format::kUnspecified) {
|
||||
result += separator + FormatToStr(fFormat);
|
||||
separator = ", ";
|
||||
}
|
||||
if (result.length() > 0) {
|
||||
result = "layout (" + result + ")";
|
||||
}
|
||||
@ -150,7 +86,6 @@ struct ASTLayout : public ASTNode {
|
||||
const bool fOverrideCoverage;
|
||||
const bool fBlendSupportAllEquations;
|
||||
const bool fPushConstant;
|
||||
const Format fFormat;
|
||||
};
|
||||
|
||||
} // namespace
|
||||
|
@ -25,12 +25,10 @@ struct Layout {
|
||||
, fOriginUpperLeft(layout.fOriginUpperLeft)
|
||||
, fOverrideCoverage(layout.fOverrideCoverage)
|
||||
, fBlendSupportAllEquations(layout.fBlendSupportAllEquations)
|
||||
, fPushConstant(layout.fPushConstant)
|
||||
, fFormat(layout.fFormat) {}
|
||||
, fPushConstant(layout.fPushConstant) {}
|
||||
|
||||
Layout(int location, int binding, int index, int set, int builtin, bool originUpperLeft,
|
||||
bool overrideCoverage, bool blendSupportAllEquations, bool pushconstant,
|
||||
ASTLayout::Format format)
|
||||
bool overrideCoverage, bool blendSupportAllEquations, bool pushconstant)
|
||||
: fLocation(location)
|
||||
, fBinding(binding)
|
||||
, fIndex(index)
|
||||
@ -39,8 +37,7 @@ struct Layout {
|
||||
, fOriginUpperLeft(originUpperLeft)
|
||||
, fOverrideCoverage(overrideCoverage)
|
||||
, fBlendSupportAllEquations(blendSupportAllEquations)
|
||||
, fPushConstant(pushconstant)
|
||||
, fFormat(format) {}
|
||||
, fPushConstant(pushconstant) {}
|
||||
|
||||
Layout()
|
||||
: fLocation(-1)
|
||||
@ -51,8 +48,7 @@ struct Layout {
|
||||
, fOriginUpperLeft(false)
|
||||
, fOverrideCoverage(false)
|
||||
, fBlendSupportAllEquations(false)
|
||||
, fPushConstant(false)
|
||||
, fFormat(ASTLayout::Format::kUnspecified) {}
|
||||
, fPushConstant(false) {}
|
||||
|
||||
std::string description() const {
|
||||
std::string result;
|
||||
@ -93,10 +89,6 @@ struct Layout {
|
||||
result += separator + "push_constant";
|
||||
separator = ", ";
|
||||
}
|
||||
if (ASTLayout::Format::kUnspecified != fFormat) {
|
||||
result += separator + ASTLayout::FormatToStr(fFormat);
|
||||
separator = ", ";
|
||||
}
|
||||
if (result.length() > 0) {
|
||||
result = "layout (" + result + ")";
|
||||
}
|
||||
@ -111,8 +103,7 @@ struct Layout {
|
||||
fBuiltin == other.fBuiltin &&
|
||||
fOriginUpperLeft == other.fOriginUpperLeft &&
|
||||
fOverrideCoverage == other.fOverrideCoverage &&
|
||||
fBlendSupportAllEquations == other.fBlendSupportAllEquations &&
|
||||
fFormat == other.fFormat;
|
||||
fBlendSupportAllEquations == other.fBlendSupportAllEquations;
|
||||
}
|
||||
|
||||
bool operator!=(const Layout& other) const {
|
||||
@ -129,7 +120,6 @@ struct Layout {
|
||||
bool fOverrideCoverage;
|
||||
bool fBlendSupportAllEquations;
|
||||
bool fPushConstant;
|
||||
ASTLayout::Format fFormat;
|
||||
};
|
||||
|
||||
} // namespace
|
||||
|
@ -537,10 +537,8 @@ int atomicExchange(inout int mem, int data);
|
||||
uint atomicCompSwap(inout uint mem, uint compare, uint data);
|
||||
int atomicCompSwap(inout int mem, int compare, int data);
|
||||
*/
|
||||
// section 8.12 Additional Image Functions will go here if and when we add
|
||||
// support for them
|
||||
vec4 imageLoad(image2D image, ivec2 P);
|
||||
ivec4 imageLoad(iimage2D image, ivec2 P);
|
||||
// section 8.12 Image Functions will go here if and when we add support for them
|
||||
|
||||
$genType dFdx($genType p);
|
||||
$genType dFdy($genType p);
|
||||
float interpolateAtSample(float interpolant, int sample);
|
||||
|
Loading…
Reference in New Issue
Block a user