aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/mtl/GrMtlCaps.mm
diff options
context:
space:
mode:
authorGravatar Brian Salomon <bsalomon@google.com>2018-02-03 00:25:12 +0000
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-02-03 00:25:20 +0000
commit3a2cc2c2ec124de36d2544b2a523ef1dd317ca32 (patch)
treedf3154eabde3275c5a6b88f66233b9a3984bd04f /src/gpu/mtl/GrMtlCaps.mm
parent5bb82cbecd740d21b92e8d2944280ab6eb6af7a6 (diff)
Revert "Revert "Revert "Revert "Revert "Redefine the meaning of sample counts in GPU backend."""""
This reverts commit 5bb82cbecd740d21b92e8d2944280ab6eb6af7a6. Reason for revert: <INSERT REASONING HERE> Original change's description: > Revert "Revert "Revert "Revert "Redefine the meaning of sample counts in GPU backend."""" > > This reverts commit 18c52a7b52211de5d0dcd86dc048adef758c6c75. > > Also relands "More sample count cleanup:" and "Add new GrContext queries for imagability, surfacability, and max sample count of color types" > > > Bug: skia: > Change-Id: I4028105a3a1f16ce3944e134619eb6245af6b947 > Reviewed-on: https://skia-review.googlesource.com/102940 > Reviewed-by: Brian Salomon <bsalomon@google.com> > Commit-Queue: Brian Salomon <bsalomon@google.com> TBR=egdaniel@google.com,bsalomon@google.com Change-Id: Idee23be2f1719f0bdc9305043e95a2d589bee8d1 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/103220 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
Diffstat (limited to 'src/gpu/mtl/GrMtlCaps.mm')
-rw-r--r--src/gpu/mtl/GrMtlCaps.mm30
1 files changed, 10 insertions, 20 deletions
diff --git a/src/gpu/mtl/GrMtlCaps.mm b/src/gpu/mtl/GrMtlCaps.mm
index 0bb7530fe2..2bce74a261 100644
--- a/src/gpu/mtl/GrMtlCaps.mm
+++ b/src/gpu/mtl/GrMtlCaps.mm
@@ -121,7 +121,7 @@ void GrMtlCaps::initGrCaps(const id<MTLDevice> device) {
fMaxTextureSize = fMaxRenderTargetSize;
// Init sample counts. All devices support 1 (i.e. 0 in skia).
- fSampleCounts.push(1);
+ fSampleCounts.push(0);
for (auto sampleCnt : {2, 4, 8}) {
if ([device supportsTextureSampleCount:sampleCnt]) {
fSampleCounts.push(sampleCnt);
@@ -164,29 +164,19 @@ void GrMtlCaps::initGrCaps(const id<MTLDevice> device) {
fCrossContextTextureSupport = false;
}
-
-int GrMtlCaps::maxRenderTargetSampleCount(GrPixelConfig config) const {
- if (fConfigTable[config].fFlags & ConfigInfo::kMSAA_Flag) {
- return fSampleCounts[fSampleCounts.count() - 1];
- } else if (fConfigTable[config].fFlags & ConfigInfo::kRenderable_Flag) {
- return 1;
+int GrMtlCaps::getSampleCount(int requestedCount, GrPixelConfig config) const {
+ int count = fSampleCounts.count();
+ SkASSERT(count > 0); // We always add 0 as a valid sample count
+ if (!this->isConfigRenderable(config, true)) {
+ return 0;
}
- return 0;
-}
-int GrMtlCaps::getRenderTargetSampleCount(int requestedCount, GrPixelConfig config) const {
- requestedCount = SkTMax(requestedCount, 1);
- if (fConfigTable[config].fFlags & ConfigInfo::kMSAA_Flag) {
- int count = fSampleCounts.count();
- for (int i = 0; i < count; ++i) {
- if (fSampleCounts[i] >= requestedCount) {
- return fSampleCounts[i];
- }
+ for (int i = 0; i < count; ++i) {
+ if (fSampleCounts[i] >= requestedCount) {
+ return fSampleCounts[i];
}
- } else if (fConfigTable[config].fFlags & ConfigInfo::kRenderable_Flag) {
- return 1 == requestedCount ? 1 : 0;
}
- return 0;
+ return fSampleCounts[count-1];
}
void GrMtlCaps::initShaderCaps() {