diff options
author | Brian Salomon <bsalomon@google.com> | 2018-02-01 18:34:32 +0000 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-02-01 18:34:40 +0000 |
commit | c1ce2f7966babaae0deb150f93f1227ee5af9285 (patch) | |
tree | ab4caf4bd03f6e642f618739e4283eb9ef62ebaf /src/gpu/GrGpu.cpp | |
parent | 130fb3f7aac19e40eddfc8fa85a9b39e7c99a7e8 (diff) |
Revert "Redefine the meaning of sample counts in GPU backend."
This reverts commit 48825b11ad25c98b9a4884d5cc0edd4e290c4409.
Reason for revert: nanobench
Original change's description:
> Redefine the meaning of sample counts in GPU backend.
>
> Old: 0 -> nonMSAA
> 1+ -> MSAA
>
> New:
> 0 -> error/unsupported
> 1 -> nonMSAA
> 2+ -> MSAA
>
> We still allow 0 to mean nonMSAA in three sets of public APIs for backwards compatibility:
>
> 1) SkSurface factories
> 2) GrBackendRenderTarget constructors
> 3) GrCaps::getSampleCnt()'s requestedCount parameter
>
> However, we immediately clamp to 1 and treat 0 as invalid/non-renderable internally.
>
> This also changes the behavior when using a large sample count. We now fail in that case rather than using the largest sample available sample count. GrCaps::getSampleCount() will return 0 in this case.
>
>
> Bug: skia:
> Change-Id: Ida22c6b22c1365e563c9046b611e88bf5eb3ff33
> Reviewed-on: https://skia-review.googlesource.com/101560
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>
TBR=egdaniel@google.com,bsalomon@google.com
Change-Id: Ic257619a8a5ee9ac15419ecf10259e42daed7f82
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/102662
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Diffstat (limited to 'src/gpu/GrGpu.cpp')
-rw-r--r-- | src/gpu/GrGpu.cpp | 26 |
1 files changed, 7 insertions, 19 deletions
diff --git a/src/gpu/GrGpu.cpp b/src/gpu/GrGpu.cpp index bea6a601e6..eb005d110a 100644 --- a/src/gpu/GrGpu.cpp +++ b/src/gpu/GrGpu.cpp @@ -94,16 +94,12 @@ static bool check_texture_creation_params(const GrCaps& caps, const GrSurfaceDes } *isRT = SkToBool(desc.fFlags & kRenderTarget_GrSurfaceFlag); - if (*isRT && !caps.isConfigRenderable(desc.fConfig, desc.fSampleCnt > 1)) { - return false; - } - - if (desc.fSampleCnt < 1) { + if (*isRT && !caps.isConfigRenderable(desc.fConfig, desc.fSampleCnt > 0)) { return false; } // We currently do not support multisampled textures - if (!*isRT && desc.fSampleCnt > 1) { + if (!*isRT && desc.fSampleCnt > 0) { return false; } @@ -135,14 +131,9 @@ sk_sp<GrTexture> GrGpu::createTexture(const GrSurfaceDesc& origDesc, SkBudgeted return nullptr; } - if (isRT) { - desc.fSampleCnt = caps->getSampleCount(desc.fSampleCnt, desc.fConfig); - if (!desc.fSampleCnt) { - return nullptr; - } - } + desc.fSampleCnt = caps->getSampleCount(desc.fSampleCnt, desc.fConfig); // Attempt to catch un- or wrongly initialized sample counts. - SkASSERT(desc.fSampleCnt > 0 && desc.fSampleCnt <= 64); + SkASSERT(desc.fSampleCnt >= 0 && desc.fSampleCnt <= 64); if (mipLevelCount && (desc.fFlags & kPerformInitialClear_GrSurfaceFlag)) { return nullptr; @@ -188,11 +179,8 @@ sk_sp<GrTexture> GrGpu::wrapBackendTexture(const GrBackendTexture& backendTex, sk_sp<GrTexture> GrGpu::wrapRenderableBackendTexture(const GrBackendTexture& backendTex, int sampleCnt, GrWrapOwnership ownership) { this->handleDirtyContext(); - if (sampleCnt < 1) { - return nullptr; - } if (!this->caps()->isConfigTexturable(backendTex.config()) || - !this->caps()->isConfigRenderable(backendTex.config(), sampleCnt > 1)) { + !this->caps()->isConfigRenderable(backendTex.config(), sampleCnt > 0)) { return nullptr; } @@ -209,7 +197,7 @@ sk_sp<GrTexture> GrGpu::wrapRenderableBackendTexture(const GrBackendTexture& bac } sk_sp<GrRenderTarget> GrGpu::wrapBackendRenderTarget(const GrBackendRenderTarget& backendRT) { - if (!this->caps()->isConfigRenderable(backendRT.config(), backendRT.sampleCnt() > 1)) { + if (!this->caps()->isConfigRenderable(backendRT.config(), backendRT.sampleCnt() > 0)) { return nullptr; } this->handleDirtyContext(); @@ -219,7 +207,7 @@ sk_sp<GrRenderTarget> GrGpu::wrapBackendRenderTarget(const GrBackendRenderTarget sk_sp<GrRenderTarget> GrGpu::wrapBackendTextureAsRenderTarget(const GrBackendTexture& tex, int sampleCnt) { this->handleDirtyContext(); - if (!this->caps()->isConfigRenderable(tex.config(), sampleCnt > 1)) { + if (!this->caps()->isConfigRenderable(tex.config(), sampleCnt > 0)) { return nullptr; } int maxSize = this->caps()->maxTextureSize(); |