Switch from querying swizzle on caps to using swizzles stored on proxies.
Change-Id: I03f4a3affd6dda7a83bee8eec768dcaa93a6b801
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220534
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
diff --git a/src/gpu/GrPipeline.cpp b/src/gpu/GrPipeline.cpp
index 895c223..9a338f3 100644
--- a/src/gpu/GrPipeline.cpp
+++ b/src/gpu/GrPipeline.cpp
@@ -18,7 +18,8 @@
GrPipeline::GrPipeline(const InitArgs& args,
GrProcessorSet&& processors,
- GrAppliedClip&& appliedClip) {
+ GrAppliedClip&& appliedClip)
+ : fOutputSwizzle(args.fOutputSwizzle) {
SkASSERT(processors.isFinalized());
fFlags = (Flags)args.fInputFlags;
@@ -93,14 +94,16 @@
return this->getXferProcessor().xferBarrierType(caps);
}
-GrPipeline::GrPipeline(GrScissorTest scissorTest, SkBlendMode blendmode, InputFlags inputFlags,
+GrPipeline::GrPipeline(GrScissorTest scissorTest, SkBlendMode blendmode,
+ const GrSwizzle& outputSwizzle, InputFlags inputFlags,
const GrUserStencilSettings* userStencil)
: fWindowRectsState()
, fUserStencilSettings(userStencil)
, fFlags((Flags)inputFlags)
, fXferProcessor(GrPorterDuffXPFactory::MakeNoCoverageXP(blendmode))
, fFragmentProcessors()
- , fNumColorProcessors(0) {
+ , fNumColorProcessors(0)
+ , fOutputSwizzle(outputSwizzle) {
if (GrScissorTest::kEnabled == scissorTest) {
fFlags |= Flags::kScissorEnabled;
}