Index: src/gpu/gl/GrGLCaps.cpp |
diff --git a/src/gpu/gl/GrGLCaps.cpp b/src/gpu/gl/GrGLCaps.cpp |
index ddc52cc378196c77fcf852090dd935df4a3a2520..30181f692ae147ab6e06f2b122454583a79c0a8c 100644 |
--- a/src/gpu/gl/GrGLCaps.cpp |
+++ b/src/gpu/gl/GrGLCaps.cpp |
@@ -283,17 +283,19 @@ void GrGLCaps::init(const GrContextOptions& contextOptions, |
// We need dual source blending and the ability to disable multisample in order to support mixed |
// samples in every corner case. |
- if (fMultisampleDisableSupport && glslCaps->dualSourceBlendingSupport()) { |
- fMixedSamplesSupport = ctxInfo.hasExtension("GL_NV_framebuffer_mixed_samples") || |
+ if (fMultisampleDisableSupport && |
+ glslCaps->dualSourceBlendingSupport() && |
+ fShaderCaps->pathRenderingSupport()) { |
+ fUsesMixedSamples = ctxInfo.hasExtension("GL_NV_framebuffer_mixed_samples") || |
ctxInfo.hasExtension("GL_CHROMIUM_framebuffer_mixed_samples"); |
// Workaround NVIDIA bug related to glInvalidateFramebuffer and mixed samples. |
- if (fMixedSamplesSupport && kNVIDIA_GrGLDriver == ctxInfo.driver()) { |
+ if (fUsesMixedSamples && kNVIDIA_GrGLDriver == ctxInfo.driver()) { |
fDiscardRenderTargetSupport = false; |
fInvalidateFBType = kNone_InvalidateFBType; |
} |
} |
- // fPathRenderingSupport and fMixedSamplesSupport must be set before calling initFSAASupport. |
+ // fUsesMixedSamples must be set before calling initFSAASupport. |
this->initFSAASupport(ctxInfo, gli); |
this->initBlendEqationSupport(ctxInfo); |
this->initStencilFormats(ctxInfo); |
@@ -402,10 +404,11 @@ void GrGLCaps::init(const GrContextOptions& contextOptions, |
// initFSAASupport() must have been called before this point |
if (GrGLCaps::kES_IMG_MsToTexture_MSFBOType == fMSFBOType) { |
- GR_GL_GetIntegerv(gli, GR_GL_MAX_SAMPLES_IMG, &fMaxSampleCount); |
+ GR_GL_GetIntegerv(gli, GR_GL_MAX_SAMPLES_IMG, &fMaxColorSampleCount); |
} else if (GrGLCaps::kNone_MSFBOType != fMSFBOType) { |
- GR_GL_GetIntegerv(gli, GR_GL_MAX_SAMPLES, &fMaxSampleCount); |
+ GR_GL_GetIntegerv(gli, GR_GL_MAX_SAMPLES, &fMaxColorSampleCount); |
} |
+ fMaxStencilSampleCount = fMaxColorSampleCount; |
if (kPowerVR54x_GrGLRenderer == ctxInfo.renderer() || |
kPowerVRRogue_GrGLRenderer == ctxInfo.renderer() || |
@@ -684,7 +687,7 @@ void GrGLCaps::initFSAASupport(const GrGLContextInfo& ctxInfo, const GrGLInterfa |
fMSFBOType = kES_EXT_MsToTexture_MSFBOType; |
} else if (ctxInfo.hasExtension("GL_IMG_multisampled_render_to_texture")) { |
fMSFBOType = kES_IMG_MsToTexture_MSFBOType; |
- } else if (fMixedSamplesSupport && fShaderCaps->pathRenderingSupport()) { |
+ } else if (fUsesMixedSamples) { |
fMSFBOType = kMixedSamples_MSFBOType; |
} else if (ctxInfo.version() >= GR_GL_VER(3,0)) { |
fMSFBOType = GrGLCaps::kES_3_0_MSFBOType; |
@@ -696,7 +699,7 @@ void GrGLCaps::initFSAASupport(const GrGLContextInfo& ctxInfo, const GrGLInterfa |
fMSFBOType = kES_Apple_MSFBOType; |
} |
} else { |
- if (fMixedSamplesSupport && fShaderCaps->pathRenderingSupport()) { |
+ if (fUsesMixedSamples) { |
fMSFBOType = kMixedSamples_MSFBOType; |
} else if ((ctxInfo.version() >= GR_GL_VER(3,0)) || |
ctxInfo.hasExtension("GL_ARB_framebuffer_object")) { |