Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(653)

Unified Diff: tests/GpuSampleLocationsTest.cpp

Issue 2120403002: Revert of Fix caching of sample locations (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/gpu/vk/GrVkGpu.cpp ('k') | tools/gpu/GrTest.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/GpuSampleLocationsTest.cpp
diff --git a/tests/GpuSampleLocationsTest.cpp b/tests/GpuSampleLocationsTest.cpp
deleted file mode 100644
index 5207c6b3ddfb29c6a5a423254f9af17531033d99..0000000000000000000000000000000000000000
--- a/tests/GpuSampleLocationsTest.cpp
+++ /dev/null
@@ -1,193 +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 "SkTypes.h"
-#include "SkPoint.h"
-#include "Test.h"
-#include <vector>
-
-#if SK_SUPPORT_GPU
-
-#include "GrRenderTargetPriv.h"
-#include "gl/GrGLGpu.h"
-#include "gl/debug/DebugGLTestContext.h"
-
-typedef std::vector<SkPoint> SamplePattern;
-
-static const SamplePattern kTestPatterns[] = {
- SamplePattern{ // Intel on mac, msaa8, offscreen.
- {0.562500, 0.312500},
- {0.437500, 0.687500},
- {0.812500, 0.562500},
- {0.312500, 0.187500},
- {0.187500, 0.812500},
- {0.062500, 0.437500},
- {0.687500, 0.937500},
- {0.937500, 0.062500}
- },
-
- SamplePattern{ // Intel on mac, msaa8, on-screen.
- {0.562500, 0.687500},
- {0.437500, 0.312500},
- {0.812500, 0.437500},
- {0.312500, 0.812500},
- {0.187500, 0.187500},
- {0.062500, 0.562500},
- {0.687500, 0.062500},
- {0.937500, 0.937500}
- },
-
- SamplePattern{ // NVIDIA, msaa16.
- {0.062500, 0.000000},
- {0.250000, 0.125000},
- {0.187500, 0.375000},
- {0.437500, 0.312500},
- {0.500000, 0.062500},
- {0.687500, 0.187500},
- {0.750000, 0.437500},
- {0.937500, 0.250000},
- {0.000000, 0.500000},
- {0.312500, 0.625000},
- {0.125000, 0.750000},
- {0.375000, 0.875000},
- {0.562500, 0.562500},
- {0.812500, 0.687500},
- {0.625000, 0.812500},
- {0.875000, 0.937500}
- },
-
- SamplePattern{ // NVIDIA, mixed samples, 16:1.
- {0.250000, 0.125000},
- {0.625000, 0.812500},
- {0.500000, 0.062500},
- {0.812500, 0.687500},
- {0.187500, 0.375000},
- {0.875000, 0.937500},
- {0.125000, 0.750000},
- {0.750000, 0.437500},
- {0.937500, 0.250000},
- {0.312500, 0.625000},
- {0.437500, 0.312500},
- {0.000000, 0.500000},
- {0.375000, 0.875000},
- {0.687500, 0.187500},
- {0.062500, 0.000000},
- {0.562500, 0.562500}
- }
-};
-constexpr int numTestPatterns = SK_ARRAY_COUNT(kTestPatterns);
-
-class TestSampleLocationsInterface : public SkNoncopyable {
-public:
- virtual void overrideSamplePattern(const SamplePattern&) = 0;
- virtual ~TestSampleLocationsInterface() {}
-};
-
-GrRenderTarget* SK_WARN_UNUSED_RESULT create_render_target(GrContext* ctx, GrSurfaceOrigin origin,
- int numSamples) {
- GrSurfaceDesc desc;
- desc.fFlags = kRenderTarget_GrSurfaceFlag;
- desc.fOrigin = origin;
- desc.fWidth = 100;
- desc.fHeight = 100;
- desc.fConfig = kBGRA_8888_GrPixelConfig;
- desc.fSampleCnt = numSamples;
- return ctx->textureProvider()->createTexture(desc, SkBudgeted::kNo, 0, 0)->asRenderTarget();
-}
-
-void assert_equal(skiatest::Reporter* reporter, const SamplePattern& pattern,
- const GrGpu::MultisampleSpecs& specs, bool flipY) {
- GrAlwaysAssert(specs.fSampleLocations);
- if ((int)pattern.size() != specs.fEffectiveSampleCnt) {
- REPORTER_ASSERT_MESSAGE(reporter, false, "Sample pattern has wrong number of samples.");
- return;
- }
- for (int i = 0; i < specs.fEffectiveSampleCnt; ++i) {
- SkPoint expectedLocation = specs.fSampleLocations[i];
- if (flipY) {
- expectedLocation.fY = 1 - expectedLocation.fY;
- }
- if (pattern[i] != expectedLocation) {
- REPORTER_ASSERT_MESSAGE(reporter, false, "Sample pattern has wrong sample location.");
- return;
- }
- }
-}
-
-void test_sampleLocations(skiatest::Reporter* reporter, TestSampleLocationsInterface* testInterface,
- GrContext* ctx) {
- SkRandom rand;
- SkAutoTUnref<GrRenderTarget> bottomUps[numTestPatterns];
- SkAutoTUnref<GrRenderTarget> topDowns[numTestPatterns];
- for (int i = 0; i < numTestPatterns; ++i) {
- int numSamples = (int)kTestPatterns[i].size();
- GrAlwaysAssert(numSamples > 1 && SkIsPow2(numSamples));
- bottomUps[i].reset(create_render_target(ctx, kBottomLeft_GrSurfaceOrigin,
- rand.nextRangeU(1 + numSamples / 2, numSamples)));
- topDowns[i].reset(create_render_target(ctx, kTopLeft_GrSurfaceOrigin,
- rand.nextRangeU(1 + numSamples / 2, numSamples)));
- }
-
- // Ensure all sample locations get queried and/or cached properly.
- GrStencilSettings dummyStencil;
- for (int repeat = 0; repeat < 2; ++repeat) {
- for (int i = 0; i < numTestPatterns; ++i) {
- testInterface->overrideSamplePattern(kTestPatterns[i]);
- assert_equal(reporter, kTestPatterns[i],
- topDowns[i]->renderTargetPriv().getMultisampleSpecs(dummyStencil), false);
- assert_equal(reporter, kTestPatterns[i],
- bottomUps[i]->renderTargetPriv().getMultisampleSpecs(dummyStencil), true);
- }
- }
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-class GLTestSampleLocationsInterface : public TestSampleLocationsInterface, public GrGLInterface {
-public:
- GLTestSampleLocationsInterface() : fTestContext(sk_gpu_test::CreateDebugGLTestContext()) {
- fStandard = fTestContext->gl()->fStandard;
- fExtensions = fTestContext->gl()->fExtensions;
- fFunctions = fTestContext->gl()->fFunctions;
-
- fFunctions.fGetIntegerv = [&](GrGLenum pname, GrGLint* params) {
- GrAlwaysAssert(GR_GL_EFFECTIVE_RASTER_SAMPLES != pname);
- if (GR_GL_SAMPLES == pname) {
- GrAlwaysAssert(!fSamplePattern.empty());
- *params = (int)fSamplePattern.size();
- } else {
- fTestContext->gl()->fFunctions.fGetIntegerv(pname, params);
- }
- };
-
- fFunctions.fGetMultisamplefv = [&](GrGLenum pname, GrGLuint index, GrGLfloat* val) {
- GrAlwaysAssert(GR_GL_SAMPLE_POSITION == pname);
- val[0] = fSamplePattern[index].fX;
- val[1] = fSamplePattern[index].fY;
- };
- }
-
- operator GrBackendContext() {
- return reinterpret_cast<GrBackendContext>(static_cast<GrGLInterface*>(this));
- }
-
- void overrideSamplePattern(const SamplePattern& newPattern) override {
- fSamplePattern = newPattern;
- }
-
-private:
- SkAutoTDelete<sk_gpu_test::GLTestContext> fTestContext;
- SamplePattern fSamplePattern;
-};
-
-DEF_GPUTEST(GLSampleLocations, reporter, /*factory*/) {
- GLTestSampleLocationsInterface testInterface;
- SkAutoTUnref<GrContext> ctx(GrContext::Create(kOpenGL_GrBackend, testInterface));
- test_sampleLocations(reporter, &testInterface, ctx);
-}
-
-#endif
« no previous file with comments | « src/gpu/vk/GrVkGpu.cpp ('k') | tools/gpu/GrTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698