From 0e90f9849a7ba4c745478694f0b2c99736561830 Mon Sep 17 00:00:00 2001 From: Alexis Hetu Date: Thu, 15 Mar 2018 10:08:42 -0400 Subject: Check GL_EXT_texture_format_BGRA8888 before GL_APPLE_texture_format_BGRA8888 When both GL_EXT_texture_format_BGRA8888 and GL_APPLE_texture_format_BGRA8888 extensions are present, the presence of GL_APPLE_texture_format_BGRA8888 was preventing GL_EXT_texture_format_BGRA8888 from allowing BGRA8888 to be used as a render target. By checking for GL_EXT_texture_format_BGRA8888 first, this solves the issue. The issue was encountered trying to run vr_pixeltests on top of SwiftShader on the bots with a version of SwiftShader exposing both extension strings. Change-Id: I446ec502a4703d24c24339708dcbbe9c334a7533 Reviewed-on: https://skia-review.googlesource.com/114495 Reviewed-by: Brian Salomon Commit-Queue: Alexis Hetu --- src/gpu/gl/GrGLCaps.cpp | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/src/gpu/gl/GrGLCaps.cpp b/src/gpu/gl/GrGLCaps.cpp index 4def7b7427..5134314fef 100644 --- a/src/gpu/gl/GrGLCaps.cpp +++ b/src/gpu/gl/GrGLCaps.cpp @@ -1445,7 +1445,19 @@ void GrGLCaps::initConfigTable(const GrContextOptions& contextOptions, } else { fConfigTable[kBGRA_8888_GrPixelConfig].fFormats.fBaseInternalFormat = GR_GL_BGRA; fConfigTable[kBGRA_8888_GrPixelConfig].fFormats.fSizedInternalFormat = GR_GL_BGRA8; - if (ctxInfo.hasExtension("GL_APPLE_texture_format_BGRA8888")) { + if (ctxInfo.hasExtension("GL_EXT_texture_format_BGRA8888")) { + fConfigTable[kBGRA_8888_GrPixelConfig].fFlags = ConfigInfo::kTextureable_Flag | + nonMSAARenderFlags; + + if (ctxInfo.hasExtension("GL_EXT_texture_storage")) { + supportsBGRATexStorage = true; + } + if (ctxInfo.hasExtension("GL_CHROMIUM_renderbuffer_format_BGRA8888") && + (this->usesMSAARenderBuffers() || this->fMSFBOType == kMixedSamples_MSFBOType)) { + fConfigTable[kBGRA_8888_GrPixelConfig].fFlags |= + ConfigInfo::kRenderableWithMSAA_Flag; + } + } else if (ctxInfo.hasExtension("GL_APPLE_texture_format_BGRA8888")) { // This APPLE extension introduces complexity on ES2. It leaves the internal format // as RGBA, but allows BGRA as the external format. From testing, it appears that the // driver remembers the external format when the texture is created (with TexImage). @@ -1458,18 +1470,6 @@ void GrGLCaps::initConfigTable(const GrContextOptions& contextOptions, fConfigTable[kBGRA_8888_GrPixelConfig].fFlags = ConfigInfo::kTextureable_Flag; supportsBGRATexStorage = true; } - } else if (ctxInfo.hasExtension("GL_EXT_texture_format_BGRA8888")) { - fConfigTable[kBGRA_8888_GrPixelConfig].fFlags = ConfigInfo::kTextureable_Flag | - nonMSAARenderFlags; - - if (ctxInfo.hasExtension("GL_EXT_texture_storage")) { - supportsBGRATexStorage = true; - } - if (ctxInfo.hasExtension("GL_CHROMIUM_renderbuffer_format_BGRA8888") && - (this->usesMSAARenderBuffers() || this->fMSFBOType == kMixedSamples_MSFBOType)) { - fConfigTable[kBGRA_8888_GrPixelConfig].fFlags |= - ConfigInfo::kRenderableWithMSAA_Flag; - } } } -- cgit v1.2.3