diff options
-rw-r--r-- | dm/DMSrcSink.cpp | 4 | ||||
-rw-r--r-- | dm/DMSrcSink.h | 11 |
2 files changed, 11 insertions, 4 deletions
diff --git a/dm/DMSrcSink.cpp b/dm/DMSrcSink.cpp index 54ce44ce61..6561ad9da3 100644 --- a/dm/DMSrcSink.cpp +++ b/dm/DMSrcSink.cpp @@ -880,7 +880,9 @@ ImageGenSrc::ImageGenSrc(Path path, Mode mode, SkAlphaType alphaType, bool isGpu bool ImageGenSrc::veto(SinkFlags flags) const { if (fIsGpu) { - return flags.type != SinkFlags::kGPU || flags.approach != SinkFlags::kDirect; + // MSAA runs tend to run out of memory and tests the same code paths as regular gpu configs. + return flags.type != SinkFlags::kGPU || flags.approach != SinkFlags::kDirect || + flags.multisampled == SinkFlags::kMultisampled; } return flags.type != SinkFlags::kRaster || flags.approach != SinkFlags::kDirect; diff --git a/dm/DMSrcSink.h b/dm/DMSrcSink.h index 92c5773d36..220738b63b 100644 --- a/dm/DMSrcSink.h +++ b/dm/DMSrcSink.h @@ -57,8 +57,11 @@ private: }; struct SinkFlags { - enum { kNull, kGPU, kVector, kRaster } type; - enum { kDirect, kIndirect } approach; + enum Type { kNull, kGPU, kVector, kRaster } type; + enum Approach { kDirect, kIndirect } approach; + enum Multisampled { kNotMultisampled, kMultisampled } multisampled; + SinkFlags(Type t, Approach a, Multisampled ms = kNotMultisampled) + : type(t), approach(a), multisampled(ms) {} }; struct Src { @@ -310,7 +313,9 @@ public: Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const override; bool serial() const override { return !fThreaded; } const char* fileExtension() const override { return "png"; } - SinkFlags flags() const override { return SinkFlags{ SinkFlags::kGPU, SinkFlags::kDirect }; } + SinkFlags flags() const override { + return SinkFlags{ SinkFlags::kGPU, SinkFlags::kDirect, SinkFlags::kMultisampled }; + } private: sk_gpu_test::GrContextFactory::ContextType fContextType; sk_gpu_test::GrContextFactory::ContextOverrides fContextOverrides; |