Delete GrGpu::querySampleLocations

Change-Id: I9f02b1e07bf7a20a90f259d94ca58c26d2783ea6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/392993
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
diff --git a/src/gpu/GrGpu.h b/src/gpu/GrGpu.h
index 0c106e7..c5d2a44 100644
--- a/src/gpu/GrGpu.h
+++ b/src/gpu/GrGpu.h
@@ -720,10 +720,6 @@
     // Implementation of resetTextureBindings.
     virtual void onResetTextureBindings() {}
 
-    // Queries the effective number of samples in use by the hardware for the given render target,
-    // and queries the individual sample locations.
-    virtual void querySampleLocations(GrRenderTarget*, SkTArray<SkPoint>*) = 0;
-
     // overridden by backend-specific derived class to create objects.
     // Texture size, renderablility, format support, sample count will have already been validated
     // in base class before onCreateTexture is called.
diff --git a/src/gpu/d3d/GrD3DGpu.cpp b/src/gpu/d3d/GrD3DGpu.cpp
index 81d9ebb..d75efb2 100644
--- a/src/gpu/d3d/GrD3DGpu.cpp
+++ b/src/gpu/d3d/GrD3DGpu.cpp
@@ -240,61 +240,6 @@
     fCurrentDirectCommandList->addFinishedCallback(std::move(finishedCallback));
 }
 
-void GrD3DGpu::querySampleLocations(GrRenderTarget* renderTarget,
-                                    SkTArray<SkPoint>* sampleLocations) {
-    // By default, the Direct3D backend uses the standard sample locations defined by the docs.
-    // These are transformed from D3D's integer coordinate system with origin at the center,
-    // to our normalized coordinate system with origin at the upper left.
-    // This ends up corresponding with Vulkan's sample locations.
-    SkASSERT(this->caps()->sampleLocationsSupport());
-    static constexpr SkPoint kStandardSampleLocations_1[1] = {
-        {0.5f, 0.5f} };
-    static constexpr SkPoint kStandardSampleLocations_2[2] = {
-        {0.75f, 0.75f}, {0.25f, 0.25f} };
-    static constexpr SkPoint kStandardSampleLocations_4[4] = {
-        {0.375f, 0.125f}, {0.875f, 0.375f}, {0.125f, 0.625f}, {0.625f, 0.875f} };
-    static constexpr SkPoint kStandardSampleLocations_8[8] = {
-        {0.5625f, 0.3125f}, {0.4375f, 0.6875f}, {0.8125f, 0.5625f}, {0.3125f, 0.1875f},
-        {0.1875f, 0.8125f}, {0.0625f, 0.4375f}, {0.6875f, 0.9375f}, {0.9375f, 0.0625f} };
-    static constexpr SkPoint kStandardSampleLocations_16[16] = {
-        {0.5625f, 0.5625f}, {0.4375f, 0.3125f}, {0.3125f, 0.625f}, {0.75f, 0.4375f},
-        {0.1875f, 0.375f}, {0.625f, 0.8125f}, {0.8125f, 0.6875f}, {0.6875f, 0.1875f},
-        {0.375f, 0.875f}, {0.5f, 0.0625f}, {0.25f, 0.125f}, {0.125f, 0.75f},
-        {0.0f, 0.5f}, {0.9375f, 0.25f}, {0.875f, 0.9375f}, {0.0625f, 0.0f} };
-
-    int numSamples = renderTarget->numSamples();
-    // TODO: support mixed samples?
-    SkASSERT(numSamples > 1);
-    SkASSERT(!renderTarget->getStencilAttachment() ||
-             numSamples == renderTarget->getStencilAttachment()->numSamples());
-
-    GrD3DRenderTarget* d3dRT = static_cast<GrD3DRenderTarget*>(renderTarget);
-    unsigned int pattern = d3dRT->msaaTextureResource()->sampleQualityPattern();
-    if (pattern == DXGI_CENTER_MULTISAMPLE_QUALITY_PATTERN) {
-        sampleLocations->push_back_n(numSamples, kStandardSampleLocations_1[0]);
-        return;
-    }
-    SkASSERT(pattern == DXGI_STANDARD_MULTISAMPLE_QUALITY_PATTERN);
-
-    switch (numSamples) {
-    case 2:
-        sampleLocations->push_back_n(2, kStandardSampleLocations_2);
-        break;
-    case 4:
-        sampleLocations->push_back_n(4, kStandardSampleLocations_4);
-        break;
-    case 8:
-        sampleLocations->push_back_n(8, kStandardSampleLocations_8);
-        break;
-    case 16:
-        sampleLocations->push_back_n(16, kStandardSampleLocations_16);
-        break;
-    default:
-        SK_ABORT("Invalid sample count.");
-        break;
-    }
-}
-
 sk_sp<GrD3DTexture> GrD3DGpu::createD3DTexture(SkISize dimensions,
                                                DXGI_FORMAT dxgiFormat,
                                                GrRenderable renderable,
diff --git a/src/gpu/d3d/GrD3DGpu.h b/src/gpu/d3d/GrD3DGpu.h
index 9d66f15..ff470c3 100644
--- a/src/gpu/d3d/GrD3DGpu.h
+++ b/src/gpu/d3d/GrD3DGpu.h
@@ -53,8 +53,6 @@
 
     bool protectedContext() const { return false; }
 
-    void querySampleLocations(GrRenderTarget*, SkTArray<SkPoint>* sampleLocations) override;
-
     void xferBarrier(GrRenderTarget*, GrXferBarrierType) override {}
 
     void deleteBackendTexture(const GrBackendTexture&) override;
diff --git a/src/gpu/dawn/GrDawnGpu.h b/src/gpu/dawn/GrDawnGpu.h
index 53bfc1b..9d7abbc 100644
--- a/src/gpu/dawn/GrDawnGpu.h
+++ b/src/gpu/dawn/GrDawnGpu.h
@@ -109,8 +109,6 @@
 private:
     GrDawnGpu(GrDirectContext*, const GrContextOptions&, const wgpu::Device&);
 
-    virtual void querySampleLocations(GrRenderTarget*, SkTArray<SkPoint>*) override {}
-
     sk_sp<GrTexture> onCreateTexture(SkISize,
                                      const GrBackendFormat&,
                                      GrRenderable,
diff --git a/src/gpu/gl/GrGLGpu.cpp b/src/gpu/gl/GrGLGpu.cpp
index 15ed8f0..fe80ff7 100644
--- a/src/gpu/gl/GrGLGpu.cpp
+++ b/src/gpu/gl/GrGLGpu.cpp
@@ -3519,20 +3519,6 @@
     return true;
 }
 
-void GrGLGpu::querySampleLocations(
-        GrRenderTarget* renderTarget, SkTArray<SkPoint>* sampleLocations) {
-    this->flushRenderTargetNoColorWrites(static_cast<GrGLRenderTarget*>(renderTarget));
-
-    int effectiveSampleCnt;
-    GR_GL_GetIntegerv(this->glInterface(), GR_GL_SAMPLES, &effectiveSampleCnt);
-    SkASSERT(effectiveSampleCnt >= renderTarget->numSamples());
-
-    sampleLocations->reset(effectiveSampleCnt);
-    for (int i = 0; i < effectiveSampleCnt; ++i) {
-        GL_CALL(GetMultisamplefv(GR_GL_SAMPLE_POSITION, i, &(*sampleLocations)[i].fX));
-    }
-}
-
 void GrGLGpu::xferBarrier(GrRenderTarget* rt, GrXferBarrierType type) {
     SkASSERT(type);
     switch (type) {
diff --git a/src/gpu/gl/GrGLGpu.h b/src/gpu/gl/GrGLGpu.h
index ac868cf..e8c7e83 100644
--- a/src/gpu/gl/GrGLGpu.h
+++ b/src/gpu/gl/GrGLGpu.h
@@ -221,8 +221,6 @@
 
     void onResetTextureBindings() override;
 
-    void querySampleLocations(GrRenderTarget*, SkTArray<SkPoint>*) override;
-
     void xferBarrier(GrRenderTarget*, GrXferBarrierType) override;
 
     sk_sp<GrTexture> onCreateTexture(SkISize dimensions,
diff --git a/src/gpu/mock/GrMockGpu.cpp b/src/gpu/mock/GrMockGpu.cpp
index 1927b18..b9ccd68 100644
--- a/src/gpu/mock/GrMockGpu.cpp
+++ b/src/gpu/mock/GrMockGpu.cpp
@@ -90,63 +90,6 @@
     return nullptr;
 }
 
-void GrMockGpu::querySampleLocations(GrRenderTarget* rt, SkTArray<SkPoint>* sampleLocations) {
-    sampleLocations->reset();
-    int numRemainingSamples = rt->numSamples();
-    while (numRemainingSamples > 0) {
-        // Use standard D3D sample locations.
-        switch (numRemainingSamples) {
-            case 0:
-            case 1:
-                sampleLocations->push_back().set(.5, .5);
-                break;
-            case 2:
-                sampleLocations->push_back().set(.75, .75);
-                sampleLocations->push_back().set(.25, .25);
-                break;
-            case 3:
-            case 4:
-                sampleLocations->push_back().set(.375, .125);
-                sampleLocations->push_back().set(.875, .375);
-                sampleLocations->push_back().set(.125, .625);
-                sampleLocations->push_back().set(.625, .875);
-                break;
-            case 5:
-            case 6:
-            case 7:
-            case 8:
-                sampleLocations->push_back().set(.5625, .3125);
-                sampleLocations->push_back().set(.4375, .6875);
-                sampleLocations->push_back().set(.8125, .5625);
-                sampleLocations->push_back().set(.3125, .1875);
-                sampleLocations->push_back().set(.1875, .8125);
-                sampleLocations->push_back().set(.0625, .4375);
-                sampleLocations->push_back().set(.6875, .4375);
-                sampleLocations->push_back().set(.4375, .0625);
-                break;
-            default:
-                sampleLocations->push_back().set(.5625, .5625);
-                sampleLocations->push_back().set(.4375, .3125);
-                sampleLocations->push_back().set(.3125, .6250);
-                sampleLocations->push_back().set(.2500, .4375);
-                sampleLocations->push_back().set(.1875, .3750);
-                sampleLocations->push_back().set(.6250, .8125);
-                sampleLocations->push_back().set(.8125, .6875);
-                sampleLocations->push_back().set(.6875, .1875);
-                sampleLocations->push_back().set(.3750, .8750);
-                sampleLocations->push_back().set(.5000, .0625);
-                sampleLocations->push_back().set(.2500, .1250);
-                sampleLocations->push_back().set(.1250, .2500);
-                sampleLocations->push_back().set(.0000, .5000);
-                sampleLocations->push_back().set(.4375, .2500);
-                sampleLocations->push_back().set(.8750, .4375);
-                sampleLocations->push_back().set(.0625, .0000);
-                break;
-        }
-        numRemainingSamples = rt->numSamples() - sampleLocations->count();
-    }
-}
-
 sk_sp<GrTexture> GrMockGpu::onCreateTexture(SkISize dimensions,
                                             const GrBackendFormat& format,
                                             GrRenderable renderable,
diff --git a/src/gpu/mock/GrMockGpu.h b/src/gpu/mock/GrMockGpu.h
index a3e0c76..07887a3 100644
--- a/src/gpu/mock/GrMockGpu.h
+++ b/src/gpu/mock/GrMockGpu.h
@@ -54,8 +54,6 @@
 private:
     GrMockGpu(GrDirectContext*, const GrMockOptions&, const GrContextOptions&);
 
-    void querySampleLocations(GrRenderTarget*, SkTArray<SkPoint>* sampleLocations) override;
-
     void xferBarrier(GrRenderTarget*, GrXferBarrierType) override {}
 
     sk_sp<GrTexture> onCreateTexture(SkISize,
diff --git a/src/gpu/mtl/GrMtlGpu.h b/src/gpu/mtl/GrMtlGpu.h
index d63e93af..894f61b 100644
--- a/src/gpu/mtl/GrMtlGpu.h
+++ b/src/gpu/mtl/GrMtlGpu.h
@@ -120,11 +120,6 @@
 
     void destroyResources();
 
-    void querySampleLocations(GrRenderTarget*, SkTArray<SkPoint>*) override {
-        SkASSERT(!this->caps()->sampleLocationsSupport());
-        SK_ABORT("Sample locations not yet implemented for Metal.");
-    }
-
     void xferBarrier(GrRenderTarget*, GrXferBarrierType) override {}
 
     GrStagingBufferManager* stagingBufferManager() override { return &fStagingBufferManager; }
diff --git a/src/gpu/vk/GrVkGpu.cpp b/src/gpu/vk/GrVkGpu.cpp
index 0b20b2d..e49f08a 100644
--- a/src/gpu/vk/GrVkGpu.cpp
+++ b/src/gpu/vk/GrVkGpu.cpp
@@ -1768,59 +1768,6 @@
                                         previousState);
 }
 
-void GrVkGpu::querySampleLocations(GrRenderTarget* renderTarget,
-                                   SkTArray<SkPoint>* sampleLocations) {
-    // In Vulkan, sampleLocationsSupport() means that the platform uses the standard sample
-    // locations defined by the spec.
-    SkASSERT(this->caps()->sampleLocationsSupport());
-    static constexpr SkPoint kStandardSampleLocations_1[1] = {
-        {0.5f, 0.5f}};
-    static constexpr SkPoint kStandardSampleLocations_2[2] = {
-        {0.75f, 0.75f}, {0.25f, 0.25f}};
-    static constexpr SkPoint kStandardSampleLocations_4[4] = {
-        {0.375f, 0.125f}, {0.875f, 0.375f}, {0.125f, 0.625f}, {0.625f, 0.875f}};
-    static constexpr SkPoint kStandardSampleLocations_8[8] = {
-        {0.5625f, 0.3125f}, {0.4375f, 0.6875f}, {0.8125f, 0.5625f}, {0.3125f, 0.1875f},
-        {0.1875f, 0.8125f}, {0.0625f, 0.4375f}, {0.6875f, 0.9375f}, {0.9375f, 0.0625f}};
-    static constexpr SkPoint kStandardSampleLocations_16[16] = {
-        {0.5625f, 0.5625f}, {0.4375f, 0.3125f}, {0.3125f, 0.625f}, {0.75f, 0.4375f},
-        {0.1875f, 0.375f}, {0.625f, 0.8125f}, {0.8125f, 0.6875f}, {0.6875f, 0.1875f},
-        {0.375f, 0.875f}, {0.5f, 0.0625f}, {0.25f, 0.125f}, {0.125f, 0.75f},
-        {0.0f, 0.5f}, {0.9375f, 0.25f}, {0.875f, 0.9375f}, {0.0625f, 0.0f}};
-
-    int numSamples = renderTarget->numSamples();
-    if (1 == numSamples) {
-        SkASSERT(this->caps()->mixedSamplesSupport());
-        if (auto* stencil = renderTarget->getStencilAttachment()) {
-            numSamples = stencil->numSamples();
-        }
-    }
-    SkASSERT(numSamples > 1);
-    SkASSERT(!renderTarget->getStencilAttachment() ||
-             numSamples == renderTarget->getStencilAttachment()->numSamples());
-
-    switch (numSamples) {
-        case 1:
-            sampleLocations->push_back_n(1, kStandardSampleLocations_1);
-            break;
-        case 2:
-            sampleLocations->push_back_n(2, kStandardSampleLocations_2);
-            break;
-        case 4:
-            sampleLocations->push_back_n(4, kStandardSampleLocations_4);
-            break;
-        case 8:
-            sampleLocations->push_back_n(8, kStandardSampleLocations_8);
-            break;
-        case 16:
-            sampleLocations->push_back_n(16, kStandardSampleLocations_16);
-            break;
-        default:
-            SK_ABORT("Invalid vulkan sample count.");
-            break;
-    }
-}
-
 void GrVkGpu::xferBarrier(GrRenderTarget* rt, GrXferBarrierType barrierType) {
     GrVkRenderTarget* vkRT = static_cast<GrVkRenderTarget*>(rt);
     VkPipelineStageFlags dstStage;
diff --git a/src/gpu/vk/GrVkGpu.h b/src/gpu/vk/GrVkGpu.h
index 4bca855..9bc889a 100644
--- a/src/gpu/vk/GrVkGpu.h
+++ b/src/gpu/vk/GrVkGpu.h
@@ -77,8 +77,6 @@
 
     GrVkPrimaryCommandBuffer* currentCommandBuffer() const { return fMainCmdBuffer; }
 
-    void querySampleLocations(GrRenderTarget*, SkTArray<SkPoint>*) override;
-
     void xferBarrier(GrRenderTarget*, GrXferBarrierType) override;
 
     bool setBackendTextureState(const GrBackendTexture&,