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&,