From 0b4d8aa108f2fd14f1ee4de1affacab166d7a357 Mon Sep 17 00:00:00 2001 From: Brian Salomon Date: Wed, 11 Oct 2017 15:34:27 -0400 Subject: Add benchmark for comparing multitexturing to non-multitexturing image draws. Allows benchmarks to override GrContextOptions. Removes the ability to use the same GrContext for all benchmarks in a config. Change-Id: I5ab9f6e81055451ac912a66537843d1a49f3b479 Reviewed-on: https://skia-review.googlesource.com/34080 Reviewed-by: Brian Osman Commit-Queue: Brian Salomon --- src/gpu/GrShaderCaps.cpp | 7 +++++++ src/gpu/ops/GrTextureOp.cpp | 4 +++- 2 files changed, 10 insertions(+), 1 deletion(-) (limited to 'src/gpu') diff --git a/src/gpu/GrShaderCaps.cpp b/src/gpu/GrShaderCaps.cpp index 0ee9339b45..7e44188074 100644 --- a/src/gpu/GrShaderCaps.cpp +++ b/src/gpu/GrShaderCaps.cpp @@ -96,6 +96,12 @@ GrShaderCaps::GrShaderCaps(const GrContextOptions& options) { fMaxFragmentImageStorages = 0; fMaxCombinedImageStorages = 0; fAdvBlendEqInteraction = kNotSupported_AdvBlendEqInteraction; + +#if GR_TEST_UTILS + fDisableImageMultitexturing = options.fDisableImageMultitexturing; +#else + fDisableImageMultitexturing = false; +#endif } void GrShaderCaps::dumpJSON(SkJSONWriter* writer) const { @@ -175,6 +181,7 @@ void GrShaderCaps::dumpJSON(SkJSONWriter* writer) const { writer->appendS32("Max Combined Image Storages", fMaxFragmentImageStorages); writer->appendString("Advanced blend equation interaction", kAdvBlendEqInteractionStr[fAdvBlendEqInteraction]); + writer->appendBool("Disable image multitexturing", fDisableImageMultitexturing); writer->endObject(); } diff --git a/src/gpu/ops/GrTextureOp.cpp b/src/gpu/ops/GrTextureOp.cpp index ab82a9cc87..3606a01096 100644 --- a/src/gpu/ops/GrTextureOp.cpp +++ b/src/gpu/ops/GrTextureOp.cpp @@ -54,7 +54,9 @@ public: static constexpr int kMaxTextures = 8; #endif - static int SupportsMultitexture(const GrShaderCaps& caps) { return caps.integerSupport(); } + static int SupportsMultitexture(const GrShaderCaps& caps) { + return caps.integerSupport() && !caps.disableImageMultitexturingSupport(); + } static sk_sp Make(sk_sp proxies[], int proxyCnt, sk_sp csxf, -- cgit v1.2.3