From f27bab207aebca467c04ccc89d18c9f198a0d762 Mon Sep 17 00:00:00 2001 From: Robert Phillips Date: Mon, 14 Nov 2016 19:29:24 +0000 Subject: Revert "Add IORef capability to GrSurfaceProxy objects" This reverts commit 286b96f876953c94c178e3abbeb4eab186ad1fef. Reason for revert: Failure on Mac Mini: FAILURE: ../../../tests/ProxyRefTest.cpp:59 proxy->getPendingWriteCnt_TestOnly() == expectedNumWrites ../../../tests/ProxyRefTest.cpp:64: fatal error: "assert(proxy->getPendingWriteCnt_TestOnly() == expectedNumWrites)" Original change's description: > Add IORef capability to GrSurfaceProxy objects > > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4734 > > Change-Id: If10fbe555e9fa3331bfa01065028e1afe82adb78 > Reviewed-on: https://skia-review.googlesource.com/4734 > Commit-Queue: Robert Phillips > Reviewed-by: Brian Salomon > TBR=bsalomon@google.com,robertphillips@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I5e1c201e027d4e9687b01f28a418b1884d3f9ece Reviewed-on: https://skia-review.googlesource.com/4776 Commit-Queue: Robert Phillips Reviewed-by: Robert Phillips --- tests/ProxyRefTest.cpp | 200 ------------------------------------------------- 1 file changed, 200 deletions(-) delete mode 100644 tests/ProxyRefTest.cpp (limited to 'tests/ProxyRefTest.cpp') diff --git a/tests/ProxyRefTest.cpp b/tests/ProxyRefTest.cpp deleted file mode 100644 index bbbb02ccde..0000000000 --- a/tests/ProxyRefTest.cpp +++ /dev/null @@ -1,200 +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. - */ - -// This is a GPU-backend specific test. - -#include "Test.h" - -#if SK_SUPPORT_GPU -#include "GrSurfaceProxy.h" -#include "GrTextureProxy.h" -#include "GrRenderTargetPriv.h" -#include "GrRenderTargetProxy.h" - -static const int kWidthHeight = 128; - -int32_t GrIORefProxy::getProxyRefCnt_TestOnly() const { - return fRefCnt; -} - -int32_t GrIORefProxy::getBackingRefCnt_TestOnly() const { - if (fTarget) { - return fTarget->fRefCnt; - } - - return fRefCnt; -} - -int32_t GrIORefProxy::getPendingReadCnt_TestOnly() const { - if (fTarget) { - SkASSERT(!fPendingReads); - return fTarget->fPendingReads; - } - - return fPendingReads; -} - -int32_t GrIORefProxy::getPendingWriteCnt_TestOnly() const { - if (fTarget) { - SkASSERT(!fPendingWrites); - return fTarget->fPendingWrites; - } - - return fPendingWrites; -} - -static void check_refs(skiatest::Reporter* reporter, - GrSurfaceProxy* proxy, - int32_t expectedProxyRefs, - int32_t expectedBackingRefs, - int32_t expectedNumReads, - int32_t expectedNumWrites) { - REPORTER_ASSERT(reporter, proxy->getProxyRefCnt_TestOnly() == expectedProxyRefs); - REPORTER_ASSERT(reporter, proxy->getBackingRefCnt_TestOnly() == expectedBackingRefs); - REPORTER_ASSERT(reporter, proxy->getPendingReadCnt_TestOnly() == expectedNumReads); - REPORTER_ASSERT(reporter, proxy->getPendingWriteCnt_TestOnly() == expectedNumWrites); - - SkASSERT(proxy->getProxyRefCnt_TestOnly() == expectedProxyRefs); - SkASSERT(proxy->getBackingRefCnt_TestOnly() == expectedBackingRefs); - SkASSERT(proxy->getPendingReadCnt_TestOnly() == expectedNumReads); - SkASSERT(proxy->getPendingWriteCnt_TestOnly() == expectedNumWrites); -} - -static sk_sp make_deferred(const GrCaps& caps, GrTextureProvider* provider) { - GrSurfaceDesc desc; - desc.fFlags = kRenderTarget_GrSurfaceFlag; - desc.fWidth = kWidthHeight; - desc.fHeight = kWidthHeight; - desc.fConfig = kRGBA_8888_GrPixelConfig; - - return GrSurfaceProxy::MakeDeferred(caps, desc, SkBackingFit::kApprox, SkBudgeted::kYes); -} - -static sk_sp make_wrapped(const GrCaps& caps, GrTextureProvider* provider) { - GrSurfaceDesc desc; - desc.fFlags = kRenderTarget_GrSurfaceFlag; - desc.fWidth = kWidthHeight; - desc.fHeight = kWidthHeight; - desc.fConfig = kRGBA_8888_GrPixelConfig; - - sk_sp tex(provider->createTexture(desc, SkBudgeted::kNo)); - - // Flush the IOWrite from the initial discard or it will confuse the later ref count checks - tex->flushWrites(); - - return GrSurfaceProxy::MakeWrapped(std::move(tex)); -} - -DEF_GPUTEST_FOR_RENDERING_CONTEXTS(ProxyRefTest, reporter, ctxInfo) { - GrTextureProvider* provider = ctxInfo.grContext()->textureProvider(); - const GrCaps& caps = *ctxInfo.grContext()->caps(); - - for (auto make : { make_deferred, make_wrapped }) { - - // A single write - { - sk_sp sProxy((*make)(caps, provider)); - - GrPendingIOResource fWrite(sProxy.get()); - - check_refs(reporter, sProxy.get(), 1, 1, 0, 1); - - // In the deferred case, the discard batch created on instantiation adds an - // extra ref and write - int expectedRefs = !sProxy->isWrapped_ForTesting() ? 2 : 1; - - sProxy->instantiate(provider); - - // In the deferred case, this checks that the refs transfered to the GrSurface - check_refs(reporter, sProxy.get(), 1, expectedRefs, 0, expectedRefs); - } - - // A single read - { - sk_sp sProxy((*make)(caps, provider)); - - GrPendingIOResource fRead(sProxy.get()); - - check_refs(reporter, sProxy.get(), 1, 1, 1, 0); - - // In the deferred case, the discard batch created on instantiation adds an - // extra ref and write - int expectedBackingRefs = !sProxy->isWrapped_ForTesting() ? 2 : 1; - int expectedWrites = !sProxy->isWrapped_ForTesting() ? 1 : 0; - - sProxy->instantiate(provider); - - // In the deferred case, this checks that the refs transfered to the GrSurface - check_refs(reporter, sProxy.get(), 1, expectedBackingRefs, 1, expectedWrites); - } - - // A single read/write pair - { - sk_sp sProxy((*make)(caps, provider)); - - GrPendingIOResource fRW(sProxy.get()); - - check_refs(reporter, sProxy.get(), 1, 1, 1, 1); - - // In the deferred case, the discard batch created on instantiation adds an - // extra ref and write - int expectedBackingRefs = !sProxy->isWrapped_ForTesting() ? 2 : 1; - int expectedWrites = !sProxy->isWrapped_ForTesting() ? 2 : 1; - - sProxy->instantiate(provider); - - // In the deferred case, this checks that the refs transfered to the GrSurface - check_refs(reporter, sProxy.get(), 1, expectedBackingRefs, 1, expectedWrites); - } - - // Multiple normal refs - { - sk_sp sProxy((*make)(caps, provider)); - sProxy->ref(); - sProxy->ref(); - - check_refs(reporter, sProxy.get(), 3, 3, 0, 0); - - int expectedBackingRefs = !sProxy->isWrapped_ForTesting() ? 4 : 3; - int expectedWrites = !sProxy->isWrapped_ForTesting() ? 1 : 0; - - sProxy->instantiate(provider); - - // In the deferred case, this checks that the refs transfered to the GrSurface - check_refs(reporter, sProxy.get(), 3, expectedBackingRefs, 0, expectedWrites); - - sProxy->unref(); - sProxy->unref(); - } - - // Continue using (reffing) proxy after instantiation - { - sk_sp sProxy((*make)(caps, provider)); - sProxy->ref(); - - GrPendingIOResource fWrite(sProxy.get()); - - check_refs(reporter, sProxy.get(), 2, 2, 0, 1); - - int expectedBackingRefs = !sProxy->isWrapped_ForTesting() ? 3 : 2; - int expectedWrites = !sProxy->isWrapped_ForTesting() ? 2 : 1; - - sProxy->instantiate(provider); - - // In the deferred case, this checks that the refs transfered to the GrSurface - check_refs(reporter, sProxy.get(), 2, expectedBackingRefs, 0, expectedWrites); - - sProxy->unref(); - check_refs(reporter, sProxy.get(), 1, expectedBackingRefs-1, 0, expectedWrites); - - GrPendingIOResource fRead(sProxy.get()); - check_refs(reporter, sProxy.get(), 1, expectedBackingRefs-1, 1, expectedWrites); - } - } -} - -#endif -- cgit v1.2.3