diff options
Diffstat (limited to 'src/gpu/gl/GrGLCaps.cpp')
-rw-r--r-- | src/gpu/gl/GrGLCaps.cpp | 29 |
1 files changed, 6 insertions, 23 deletions
diff --git a/src/gpu/gl/GrGLCaps.cpp b/src/gpu/gl/GrGLCaps.cpp index 93a7e614fd..3b90676be1 100644 --- a/src/gpu/gl/GrGLCaps.cpp +++ b/src/gpu/gl/GrGLCaps.cpp @@ -1958,8 +1958,6 @@ void GrGLCaps::initConfigTable(const GrContextOptions& contextOptions, for (int i = 0; i < kGrPixelConfigCnt; ++i) { if (ConfigInfo::kRenderableWithMSAA_Flag & fConfigTable[i].fFlags) { - // We assume that MSAA rendering is supported only if we support non-MSAA rendering. - SkASSERT(ConfigInfo::kRenderable_Flag & fConfigTable[i].fFlags); if ((kGL_GrGLStandard == ctxInfo.standard() && (ctxInfo.version() >= GR_GL_VER(4,2) || ctxInfo.hasExtension("GL_ARB_internalformat_query"))) || @@ -1972,15 +1970,10 @@ void GrGLCaps::initConfigTable(const GrContextOptions& contextOptions, int* temp = new int[count]; GR_GL_GetInternalformativ(gli, GR_GL_RENDERBUFFER, format, GR_GL_SAMPLES, count, temp); - // GL has a concept of MSAA rasterization with a single sample but we do not. - if (count && temp[count - 1] == 1) { - --count; - SkASSERT(!count || temp[count -1] > 1); - } fConfigTable[i].fColorSampleCounts.setCount(count+1); - // We initialize our supported values with 1 (no msaa) and reverse the order + // We initialize our supported values with 0 (no msaa) and reverse the order // returned by GL so that the array is ascending. - fConfigTable[i].fColorSampleCounts[0] = 1; + fConfigTable[i].fColorSampleCounts[0] = 0; for (int j = 0; j < count; ++j) { fConfigTable[i].fColorSampleCounts[j+1] = temp[count - j - 1]; } @@ -1989,16 +1982,14 @@ void GrGLCaps::initConfigTable(const GrContextOptions& contextOptions, } else { // Fake out the table using some semi-standard counts up to the max allowed sample // count. - int maxSampleCnt = 1; + int maxSampleCnt = 0; if (GrGLCaps::kES_IMG_MsToTexture_MSFBOType == fMSFBOType) { GR_GL_GetIntegerv(gli, GR_GL_MAX_SAMPLES_IMG, &maxSampleCnt); } else if (GrGLCaps::kNone_MSFBOType != fMSFBOType) { GR_GL_GetIntegerv(gli, GR_GL_MAX_SAMPLES, &maxSampleCnt); } - // Chrome has a mock GL implementation that returns 0. - maxSampleCnt = SkTMax(1, maxSampleCnt); - static constexpr int kDefaultSamples[] = {1, 2, 4, 8}; + static constexpr int kDefaultSamples[] = {0, 1, 2, 4, 8}; int count = SK_ARRAY_COUNT(kDefaultSamples); for (; count > 0; --count) { if (kDefaultSamples[count - 1] <= maxSampleCnt) { @@ -2009,9 +2000,6 @@ void GrGLCaps::initConfigTable(const GrContextOptions& contextOptions, fConfigTable[i].fColorSampleCounts.append(count, kDefaultSamples); } } - } else if (ConfigInfo::kRenderable_Flag & fConfigTable[i].fFlags) { - fConfigTable[i].fColorSampleCounts.setCount(1); - fConfigTable[i].fColorSampleCounts[0] = 1; } } @@ -2469,22 +2457,17 @@ void GrGLCaps::onApplyOptionsOverrides(const GrContextOptions& options) { } int GrGLCaps::getSampleCount(int requestedCount, GrPixelConfig config) const { - requestedCount = SkTMax(1, requestedCount); int count = fConfigTable[config].fColorSampleCounts.count(); - if (!count || !this->isConfigRenderable(config, requestedCount > 1)) { + if (!count || !this->isConfigRenderable(config, true)) { return 0; } - if (1 == requestedCount) { - return fConfigTable[config].fColorSampleCounts[0] == 1 ? 1 : 0; - } - for (int i = 0; i < count; ++i) { if (fConfigTable[config].fColorSampleCounts[i] >= requestedCount) { return fConfigTable[config].fColorSampleCounts[i]; } } - return 0; + return fConfigTable[config].fColorSampleCounts[count-1]; } bool validate_sized_format(GrGLenum format, SkColorType ct, GrPixelConfig* config, |