| Index: src/gpu/gl/GrGLCaps.cpp
|
| diff --git a/src/gpu/gl/GrGLCaps.cpp b/src/gpu/gl/GrGLCaps.cpp
|
| index af31480ba74d80db4716ccffaf3aad370f9d4c0a..40885359fba40b43d51aba8a8752f0e96f56ce5b 100644
|
| --- a/src/gpu/gl/GrGLCaps.cpp
|
| +++ b/src/gpu/gl/GrGLCaps.cpp
|
| @@ -1435,30 +1435,26 @@
|
| }
|
| fConfigTable[kBGRA_8888_GrPixelConfig].fSwizzle = GrSwizzle::RGBA();
|
|
|
| - // We only enable srgb support if both textures and FBOs support srgb,
|
| - // *and* we can disable sRGB decode-on-read, to support "legacy" mode.
|
| + // We only enable srgb support if both textures and FBOs support srgb.
|
| + bool srgbSupport = false;
|
| if (kGL_GrGLStandard == standard) {
|
| if (ctxInfo.version() >= GR_GL_VER(3,0)) {
|
| - fSRGBSupport = true;
|
| + srgbSupport = true;
|
| } else if (ctxInfo.hasExtension("GL_EXT_texture_sRGB")) {
|
| if (ctxInfo.hasExtension("GL_ARB_framebuffer_sRGB") ||
|
| ctxInfo.hasExtension("GL_EXT_framebuffer_sRGB")) {
|
| - fSRGBSupport = true;
|
| + srgbSupport = true;
|
| }
|
| }
|
| // All the above srgb extensions support toggling srgb writes
|
| - fSRGBWriteControl = fSRGBSupport;
|
| + fSRGBWriteControl = srgbSupport;
|
| } else {
|
| // See https://bug.skia.org/4148 for PowerVR issue.
|
| - fSRGBSupport = kPowerVRRogue_GrGLRenderer != ctxInfo.renderer() &&
|
| + srgbSupport = kPowerVRRogue_GrGLRenderer != ctxInfo.renderer() &&
|
| (ctxInfo.version() >= GR_GL_VER(3,0) || ctxInfo.hasExtension("GL_EXT_sRGB"));
|
| // ES through 3.1 requires EXT_srgb_write_control to support toggling
|
| // sRGB writing for destinations.
|
| fSRGBWriteControl = ctxInfo.hasExtension("GL_EXT_sRGB_write_control");
|
| - }
|
| - if (!ctxInfo.hasExtension("GL_EXT_texture_sRGB_decode")) {
|
| - // To support "legacy" L32 mode, we require the ability to turn off sRGB decode:
|
| - fSRGBSupport = false;
|
| }
|
| fConfigTable[kSRGBA_8888_GrPixelConfig].fFormats.fBaseInternalFormat = GR_GL_SRGB_ALPHA;
|
| fConfigTable[kSRGBA_8888_GrPixelConfig].fFormats.fSizedInternalFormat = GR_GL_SRGB8_ALPHA8;
|
| @@ -1468,7 +1464,7 @@
|
| GR_GL_RGBA;
|
| fConfigTable[kSRGBA_8888_GrPixelConfig].fFormats.fExternalType = GR_GL_UNSIGNED_BYTE;
|
| fConfigTable[kSRGBA_8888_GrPixelConfig].fFormatType = kNormalizedFixedPoint_FormatType;
|
| - if (fSRGBSupport) {
|
| + if (srgbSupport) {
|
| fConfigTable[kSRGBA_8888_GrPixelConfig].fFlags = ConfigInfo::kTextureable_Flag |
|
| allRenderFlags;
|
| }
|
| @@ -1476,26 +1472,6 @@
|
| fConfigTable[kSRGBA_8888_GrPixelConfig].fFlags |= ConfigInfo::kCanUseTexStorage_Flag;
|
| }
|
| fConfigTable[kSRGBA_8888_GrPixelConfig].fSwizzle = GrSwizzle::RGBA();
|
| -
|
| - // sBGRA is not a "real" thing in OpenGL, but GPUs support it, and on platforms where
|
| - // kN32 == BGRA, we need some way to work with it. (The default framebuffer on Windows
|
| - // is in this format, for example).
|
| - fConfigTable[kSBGRA_8888_GrPixelConfig].fFormats.fBaseInternalFormat = GR_GL_SRGB_ALPHA;
|
| - fConfigTable[kSBGRA_8888_GrPixelConfig].fFormats.fSizedInternalFormat = GR_GL_SRGB8_ALPHA8;
|
| - // GL does not do srgb<->rgb conversions when transferring between cpu and gpu. Thus, the
|
| - // external format is GL_BGRA.
|
| - fConfigTable[kSBGRA_8888_GrPixelConfig].fFormats.fExternalFormat[kOther_ExternalFormatUsage] =
|
| - GR_GL_BGRA;
|
| - fConfigTable[kSBGRA_8888_GrPixelConfig].fFormats.fExternalType = GR_GL_UNSIGNED_BYTE;
|
| - fConfigTable[kSBGRA_8888_GrPixelConfig].fFormatType = kNormalizedFixedPoint_FormatType;
|
| - if (fSRGBSupport) {
|
| - fConfigTable[kSBGRA_8888_GrPixelConfig].fFlags = ConfigInfo::kTextureable_Flag |
|
| - allRenderFlags;
|
| - }
|
| - if (texStorageSupported) {
|
| - fConfigTable[kSBGRA_8888_GrPixelConfig].fFlags |= ConfigInfo::kCanUseTexStorage_Flag;
|
| - }
|
| - fConfigTable[kSBGRA_8888_GrPixelConfig].fSwizzle = GrSwizzle::RGBA();
|
|
|
| fConfigTable[kRGB_565_GrPixelConfig].fFormats.fBaseInternalFormat = GR_GL_RGB;
|
| if (this->ES2CompatibilitySupport()) {
|
| @@ -1816,11 +1792,6 @@
|
| if (ctxInfo.standard() == kGLES_GrGLStandard && ctxInfo.version() == GR_GL_VER(2,0)) {
|
| fConfigTable[kSRGBA_8888_GrPixelConfig].fFormats.fExternalFormat[kTexImage_ExternalFormatUsage] =
|
| GR_GL_SRGB_ALPHA;
|
| -
|
| - // Additionally, because we had to "invent" sBGRA, there is no way to make it work
|
| - // in ES 2.0, because there is no <internalFormat> we can use. So just make that format
|
| - // unsupported. (If we have no sRGB support at all, this will get overwritten below).
|
| - fConfigTable[kSBGRA_8888_GrPixelConfig].fFlags = 0;
|
| }
|
|
|
| // If BGRA is supported as an internal format it must always be specified to glTex[Sub]Image
|
|
|