diff options
author | brianosman <brianosman@google.com> | 2016-06-22 07:10:06 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-06-22 07:10:06 -0700 |
commit | 6efeda4838f5944e4e14ff156be5593aa59cf1aa (patch) | |
tree | 9cb0e77f479fb054345f035495d4cbbf7332a3ba /gm | |
parent | b105cff6e21afeb0f6357d63f695957fbb640694 (diff) |
Revert of Store mipmap levels in deferred texture image (patchset #15 id:280001 of https://codereview.chromium.org/2034933003/ )
Reason for revert:
Crashes on a few different bots (including ASAN). Examples:
https://build.chromium.org/p/client.skia.android/builders/Test-Android-GCC-Nexus7-GPU-Tegra3-Arm7-Release/builds/6324
https://build.chromium.org/p/client.skia/builders/Test-iOS-Clang-iPad4-GPU-SGX554-Arm7-Debug/builds/5400
https://build.chromium.org/p/client.skia/builders/Test-Ubuntu-GCC-Golo-GPU-GT610-x86_64-Debug-ASAN/builds/3539
Original issue's description:
> Store mipmap levels in deferred texture image
>
> When creating the deferred texture image, detect if using medium / high
> quality. If so, generate and store mipmaps in the deferred texture
> image.
>
> When creating a texture from that be sure to read it back out.
>
> BUG=578304
> R=bsalomon@google.com
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2034933003
>
> Committed: https://skia.googlesource.com/skia/+/b3105190a6e02d37f1d7f07a3a8bdd368ec7f157
TBR=bsalomon@google.com,ericrk@chromium.org,cblume@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=578304
Review-Url: https://codereview.chromium.org/2083393002
Diffstat (limited to 'gm')
-rw-r--r-- | gm/deferredtextureimage.cpp | 117 |
1 files changed, 0 insertions, 117 deletions
diff --git a/gm/deferredtextureimage.cpp b/gm/deferredtextureimage.cpp deleted file mode 100644 index 82dd90aa5f..0000000000 --- a/gm/deferredtextureimage.cpp +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright 2016 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ -#include <vector> - -#include "gm.h" -#include "GrContext.h" -#include "SkMipMap.h" -#include "Resources.h" - -#if SK_SUPPORT_GPU - -class DeferredTextureImage_Medium : public skiagm::GM { -protected: - SkString onShortName() override { - return SkString("deferredtextureimage_medium"); - } - - SkISize onISize() override { - return SkISize::Make(512 + 512 + 30, 1110); - } - - void onDraw(SkCanvas* canvas) override { - GrContext* context = canvas->getGrContext(); - if (!context) { - skiagm::GM::DrawGpuOnlyMessage(canvas); - return; - } - - SkPaint paint; - paint.setFilterQuality(kMedium_SkFilterQuality); - - int mipLevelCount = SkMipMap::ComputeLevelCount(512, 512); - - // create the deferred texture image - SkImage::DeferredTextureImageUsageParams params[1]; - // These should cause mipmaps to be generated - params[0].fMatrix = SkMatrix::MakeScale(0.25f, 0.25f); - params[0].fQuality = kMedium_SkFilterQuality; - size_t requiredMemoryInBytes = fDecodedImage->getDeferredTextureImageData( - *context->threadSafeProxy(), params, 1, nullptr, SkSourceGammaTreatment::kRespect); - if (requiredMemoryInBytes == 0) { - SkDebugf("\nCould not create DeferredTextureImageData.\n"); - return; - } - - std::vector<uint8_t> memory; - memory.resize(requiredMemoryInBytes); - fDecodedImage->getDeferredTextureImageData( - *context->threadSafeProxy(), params, 1, memory.data(), - SkSourceGammaTreatment::kRespect); - sk_sp<SkImage> uploadedImage = SkImage::MakeFromDeferredTextureImageData( - context, memory.data(), SkBudgeted::kNo); - - // draw a column using deferred texture images - SkScalar offsetHeight = 10.f; - // handle base mipmap level - canvas->save(); - canvas->translate(10.f, offsetHeight); - canvas->drawImage(uploadedImage, 0, 0, &paint); - canvas->restore(); - offsetHeight += 512 + 10; - // handle generated mipmap levels - for (int i = 0; i < mipLevelCount; i++) { - SkISize mipSize = SkMipMap::ComputeLevelSize(512, 512, i); - canvas->save(); - canvas->translate(10.f, offsetHeight); - canvas->scale(mipSize.width() / 512.f, mipSize.height() / 512.f); - canvas->drawImage(uploadedImage, 0, 0, &paint); - canvas->restore(); - offsetHeight += mipSize.height() + 10; - } - - // draw a column using SkImage - offsetHeight = 10; - // handle base mipmap level - canvas->save(); - canvas->translate(512.f + 20.f, offsetHeight); - canvas->drawImage(fDecodedImage, 0, 0, &paint); - canvas->restore(); - offsetHeight += 512 + 10; - // handle generated mipmap levels - for (int i = 0; i < mipLevelCount; i++) { - SkISize mipSize = SkMipMap::ComputeLevelSize(512, 512, i); - canvas->save(); - canvas->translate(512.f + 20.f, offsetHeight); - canvas->scale(mipSize.width() / 512.f, mipSize.height() / 512.f); - canvas->drawImage(fDecodedImage, 0, 0, &paint); - canvas->restore(); - offsetHeight += mipSize.height() + 10; - } - } - -private: - - void onOnceBeforeDraw() override { - SkBitmap bitmap; - if (!GetResourceAsBitmap("mandrill_512.png", &bitmap)) { - bitmap.allocN32Pixels(1, 1); - bitmap.eraseARGB(255, 255, 0, 0); // red == bad - } - fDecodedImage = SkImage::MakeFromBitmap(bitmap); - } - - sk_sp<SkImage> fDecodedImage; - - typedef skiagm::GM INHERITED; -}; - -////////////////////////////////////////////////////////////////////////////// - -DEF_GM( return new DeferredTextureImage_Medium; ) - -#endif |