From b34727f1a3150de2e3e95beb79900a0a848a984c Mon Sep 17 00:00:00 2001 From: Robert Phillips Date: Fri, 10 Feb 2017 14:44:58 -0500 Subject: [PATCH] Remove unused/barely-supported compressed GrPixelConfigs Change-Id: Ie7b813c8b0523ae53cf9f2328645ddf4c5af49a8 Reviewed-on: https://skia-review.googlesource.com/8326 Reviewed-by: Brian Salomon Commit-Queue: Robert Phillips --- gm/deferredtextureimage.cpp | 2 +- include/gpu/GrTypes.h | 57 ---------------------- src/gpu/GrCaps.cpp | 3 -- src/gpu/GrShaderCaps.cpp | 5 +- src/gpu/gl/GrGLCaps.cpp | 94 ++++++++----------------------------- src/gpu/gl/GrGLGpu.cpp | 3 -- src/gpu/vk/GrVkCaps.cpp | 6 --- src/gpu/vk/GrVkUtil.cpp | 17 +------ 8 files changed, 23 insertions(+), 164 deletions(-) diff --git a/gm/deferredtextureimage.cpp b/gm/deferredtextureimage.cpp index ed1717d5cd..c88b878ccb 100644 --- a/gm/deferredtextureimage.cpp +++ b/gm/deferredtextureimage.cpp @@ -13,7 +13,7 @@ #if SK_SUPPORT_GPU #include "GrContext.h" -// Helper function that uploads the given SkImage using MakdeFromDeferredTextureImageData and then +// Helper function that uploads the given SkImage using MakeFromDeferredTextureImageData and then // draws the uploaded version at the specified coordinates. static void DrawDeferredTextureImageData(SkCanvas* canvas, SkImage::DeferredTextureImageUsageParams* params) { diff --git a/include/gpu/GrTypes.h b/include/gpu/GrTypes.h index 173e7f138d..330aefd0e4 100644 --- a/include/gpu/GrTypes.h +++ b/include/gpu/GrTypes.h @@ -252,28 +252,6 @@ enum GrPixelConfig { * ETC1 Compressed Data */ kETC1_GrPixelConfig, - /** - * LATC/RGTC/3Dc/BC4 Compressed Data - */ - kLATC_GrPixelConfig, - /** - * R11 EAC Compressed Data - * (Corresponds to section C.3.5 of the OpenGL 4.4 core profile spec) - */ - kR11_EAC_GrPixelConfig, - - /** - * 12x12 ASTC Compressed Data - * ASTC stands for Adaptive Scalable Texture Compression. It is a technique - * that allows for a lot of customization in the compressed representataion - * of a block. The only thing fixed in the representation is the block size, - * which means that a texture that contains ASTC data must be treated as - * having RGBA values. However, there are single-channel encodings which set - * the alpha to opaque and all three RGB channels equal effectively making the - * compression format a single channel such as R11 EAC and LATC. - */ - kASTC_12x12_GrPixelConfig, - /** * Byte order is r, g, b, a. This color format is 32 bits per channel */ @@ -314,9 +292,6 @@ static const int kGrPixelConfigCnt = kLast_GrPixelConfig + 1; static inline bool GrPixelConfigIsCompressed(GrPixelConfig config) { switch (config) { case kETC1_GrPixelConfig: - case kLATC_GrPixelConfig: - case kR11_EAC_GrPixelConfig: - case kASTC_12x12_GrPixelConfig: return true; case kUnknown_GrPixelConfig: case kAlpha_8_GrPixelConfig: @@ -342,11 +317,7 @@ static inline bool GrPixelConfigIsCompressed(GrPixelConfig config) { static inline GrPixelConfig GrMakePixelConfigUncompressed(GrPixelConfig config) { switch (config) { case kETC1_GrPixelConfig: - case kASTC_12x12_GrPixelConfig: return kRGBA_8888_GrPixelConfig; - case kLATC_GrPixelConfig: - case kR11_EAC_GrPixelConfig: - return kAlpha_8_GrPixelConfig; case kUnknown_GrPixelConfig: case kAlpha_8_GrPixelConfig: case kGray_8_GrPixelConfig: @@ -383,9 +354,6 @@ static inline bool GrPixelConfigIs8888Unorm(GrPixelConfig config) { case kRGBA_4444_GrPixelConfig: case kRGBA_8888_sint_GrPixelConfig: case kETC1_GrPixelConfig: - case kLATC_GrPixelConfig: - case kR11_EAC_GrPixelConfig: - case kASTC_12x12_GrPixelConfig: case kRGBA_float_GrPixelConfig: case kRG_float_GrPixelConfig: case kAlpha_half_GrPixelConfig: @@ -412,9 +380,6 @@ static inline bool GrPixelConfigIsSRGB(GrPixelConfig config) { case kBGRA_8888_GrPixelConfig: case kRGBA_8888_sint_GrPixelConfig: case kETC1_GrPixelConfig: - case kLATC_GrPixelConfig: - case kR11_EAC_GrPixelConfig: - case kASTC_12x12_GrPixelConfig: case kRGBA_float_GrPixelConfig: case kRG_float_GrPixelConfig: case kAlpha_half_GrPixelConfig: @@ -444,9 +409,6 @@ static inline GrPixelConfig GrPixelConfigSwapRAndB(GrPixelConfig config) { case kRGBA_4444_GrPixelConfig: case kRGBA_8888_sint_GrPixelConfig: case kETC1_GrPixelConfig: - case kLATC_GrPixelConfig: - case kR11_EAC_GrPixelConfig: - case kASTC_12x12_GrPixelConfig: case kRGBA_float_GrPixelConfig: case kRG_float_GrPixelConfig: case kAlpha_half_GrPixelConfig: @@ -481,9 +443,6 @@ static inline size_t GrBytesPerPixel(GrPixelConfig config) { return 8; case kUnknown_GrPixelConfig: case kETC1_GrPixelConfig: - case kLATC_GrPixelConfig: - case kR11_EAC_GrPixelConfig: - case kASTC_12x12_GrPixelConfig: return 0; } SkFAIL("Invalid pixel config"); @@ -508,9 +467,6 @@ static inline bool GrPixelConfigIsOpaque(GrPixelConfig config) { case kRGBA_float_GrPixelConfig: case kRG_float_GrPixelConfig: case kUnknown_GrPixelConfig: - case kLATC_GrPixelConfig: - case kR11_EAC_GrPixelConfig: - case kASTC_12x12_GrPixelConfig: return false; } SkFAIL("Invalid pixel config"); @@ -519,9 +475,6 @@ static inline bool GrPixelConfigIsOpaque(GrPixelConfig config) { static inline bool GrPixelConfigIsAlphaOnly(GrPixelConfig config) { switch (config) { - case kR11_EAC_GrPixelConfig: - case kLATC_GrPixelConfig: - case kASTC_12x12_GrPixelConfig: case kAlpha_8_GrPixelConfig: case kAlpha_half_GrPixelConfig: return true; @@ -562,9 +515,6 @@ static inline bool GrPixelConfigIsFloatingPoint(GrPixelConfig config) { case kSBGRA_8888_GrPixelConfig: case kRGBA_8888_sint_GrPixelConfig: case kETC1_GrPixelConfig: - case kLATC_GrPixelConfig: - case kR11_EAC_GrPixelConfig: - case kASTC_12x12_GrPixelConfig: return false; } SkFAIL("Invalid pixel config"); @@ -796,18 +746,11 @@ static inline size_t GrCompressedFormatDataSize(GrPixelConfig config, SkASSERT(GrPixelConfigIsCompressed(config)); switch (config) { - case kR11_EAC_GrPixelConfig: - case kLATC_GrPixelConfig: case kETC1_GrPixelConfig: SkASSERT((width & 3) == 0); SkASSERT((height & 3) == 0); return (width >> 2) * (height >> 2) * 8; - case kASTC_12x12_GrPixelConfig: - SkASSERT((width % 12) == 0); - SkASSERT((height % 12) == 0); - return (width / 12) * (height / 12) * 16; - case kUnknown_GrPixelConfig: case kAlpha_8_GrPixelConfig: case kGray_8_GrPixelConfig: diff --git a/src/gpu/GrCaps.cpp b/src/gpu/GrCaps.cpp index 25bcbe9ff3..1efea17bdc 100644 --- a/src/gpu/GrCaps.cpp +++ b/src/gpu/GrCaps.cpp @@ -22,9 +22,6 @@ static const char* pixel_config_name(GrPixelConfig config) { case kSBGRA_8888_GrPixelConfig: return "SBGRA8888"; case kRGBA_8888_sint_GrPixelConfig: return "RGBA8888_sint"; case kETC1_GrPixelConfig: return "ETC1"; - case kLATC_GrPixelConfig: return "LATC"; - case kR11_EAC_GrPixelConfig: return "R11EAC"; - case kASTC_12x12_GrPixelConfig: return "ASTC12x12"; case kRGBA_float_GrPixelConfig: return "RGBAFloat"; case kRG_float_GrPixelConfig: return "RGFloat"; case kAlpha_half_GrPixelConfig: return "AlphaHalf"; diff --git a/src/gpu/GrShaderCaps.cpp b/src/gpu/GrShaderCaps.cpp index 8d26b96920..621ac3db03 100644 --- a/src/gpu/GrShaderCaps.cpp +++ b/src/gpu/GrShaderCaps.cpp @@ -212,15 +212,12 @@ void GrShaderCaps::initSamplerPrecisionTable() { table[kSBGRA_8888_GrPixelConfig] = lowp; table[kRGBA_8888_sint_GrPixelConfig] = lowp; table[kETC1_GrPixelConfig] = lowp; - table[kLATC_GrPixelConfig] = lowp; - table[kR11_EAC_GrPixelConfig] = lowp; - table[kASTC_12x12_GrPixelConfig] = lowp; table[kRGBA_float_GrPixelConfig] = kHigh_GrSLPrecision; table[kRG_float_GrPixelConfig] = kHigh_GrSLPrecision; table[kAlpha_half_GrPixelConfig] = mediump; table[kRGBA_half_GrPixelConfig] = mediump; - GR_STATIC_ASSERT(18 == kGrPixelConfigCnt); + GR_STATIC_ASSERT(15 == kGrPixelConfigCnt); } } diff --git a/src/gpu/gl/GrGLCaps.cpp b/src/gpu/gl/GrGLCaps.cpp index c9a24c0c0b..7289d3dc93 100644 --- a/src/gpu/gl/GrGLCaps.cpp +++ b/src/gpu/gl/GrGLCaps.cpp @@ -1925,82 +1925,28 @@ void GrGLCaps::initConfigTable(const GrContextOptions& contextOptions, // No sized/unsized internal format distinction for compressed formats, no external format. // Below we set the external formats and types to 0. - - // May change the internal format based on extensions. - fConfigTable[kLATC_GrPixelConfig].fFormats.fBaseInternalFormat = - GR_GL_COMPRESSED_LUMINANCE_LATC1; - fConfigTable[kLATC_GrPixelConfig].fFormats.fSizedInternalFormat = - GR_GL_COMPRESSED_LUMINANCE_LATC1; - if (ctxInfo.hasExtension("GL_EXT_texture_compression_latc") || - ctxInfo.hasExtension("GL_NV_texture_compression_latc")) { - fConfigTable[kLATC_GrPixelConfig].fFlags = ConfigInfo::kTextureable_Flag; - } else if ((kGL_GrGLStandard == standard && version >= GR_GL_VER(3, 0)) || - ctxInfo.hasExtension("GL_EXT_texture_compression_rgtc") || - ctxInfo.hasExtension("GL_ARB_texture_compression_rgtc")) { - // RGTC is identical and available on OpenGL 3.0+ as well as with extensions - fConfigTable[kLATC_GrPixelConfig].fFlags = ConfigInfo::kTextureable_Flag; - fConfigTable[kLATC_GrPixelConfig].fFormats.fBaseInternalFormat = - GR_GL_COMPRESSED_RED_RGTC1; - fConfigTable[kLATC_GrPixelConfig].fFormats.fSizedInternalFormat = - GR_GL_COMPRESSED_RED_RGTC1; - } else if (ctxInfo.hasExtension("GL_AMD_compressed_3DC_texture")) { - fConfigTable[kLATC_GrPixelConfig].fFlags = ConfigInfo::kTextureable_Flag; - fConfigTable[kLATC_GrPixelConfig].fFormats.fBaseInternalFormat = GR_GL_COMPRESSED_3DC_X; - fConfigTable[kLATC_GrPixelConfig].fFormats.fSizedInternalFormat = - GR_GL_COMPRESSED_3DC_X; - - } - fConfigTable[kLATC_GrPixelConfig].fFormats.fExternalFormat[kOther_ExternalFormatUsage] = 0; - fConfigTable[kLATC_GrPixelConfig].fFormats.fExternalType = 0; - fConfigTable[kLATC_GrPixelConfig].fFormatType = kNormalizedFixedPoint_FormatType; - fConfigTable[kLATC_GrPixelConfig].fSwizzle = GrSwizzle::RRRR(); - - fConfigTable[kETC1_GrPixelConfig].fFormats.fBaseInternalFormat = GR_GL_COMPRESSED_ETC1_RGB8; - fConfigTable[kETC1_GrPixelConfig].fFormats.fSizedInternalFormat = GR_GL_COMPRESSED_ETC1_RGB8; - fConfigTable[kETC1_GrPixelConfig].fFormats.fExternalFormat[kOther_ExternalFormatUsage] = 0; - fConfigTable[kETC1_GrPixelConfig].fFormats.fExternalType = 0; - fConfigTable[kETC1_GrPixelConfig].fFormatType = kNormalizedFixedPoint_FormatType; - if (kGL_GrGLStandard == standard) { - if (version >= GR_GL_VER(4, 3) || ctxInfo.hasExtension("GL_ARB_ES3_compatibility")) { - fConfigTable[kETC1_GrPixelConfig].fFlags = ConfigInfo::kTextureable_Flag; - } - } else { - if (version >= GR_GL_VER(3, 0) || - ctxInfo.hasExtension("GL_OES_compressed_ETC1_RGB8_texture") || - // ETC2 is a superset of ETC1, so we can just check for that, too. - (ctxInfo.hasExtension("GL_OES_compressed_ETC2_RGB8_texture") && - ctxInfo.hasExtension("GL_OES_compressed_ETC2_RGBA8_texture"))) { - fConfigTable[kETC1_GrPixelConfig].fFlags = ConfigInfo::kTextureable_Flag; + { + fConfigTable[kETC1_GrPixelConfig].fFormats.fBaseInternalFormat = GR_GL_COMPRESSED_ETC1_RGB8; + fConfigTable[kETC1_GrPixelConfig].fFormats.fSizedInternalFormat = + GR_GL_COMPRESSED_ETC1_RGB8; + fConfigTable[kETC1_GrPixelConfig].fFormats.fExternalFormat[kOther_ExternalFormatUsage] = 0; + fConfigTable[kETC1_GrPixelConfig].fFormats.fExternalType = 0; + fConfigTable[kETC1_GrPixelConfig].fFormatType = kNormalizedFixedPoint_FormatType; + if (kGL_GrGLStandard == standard) { + if (version >= GR_GL_VER(4, 3) || ctxInfo.hasExtension("GL_ARB_ES3_compatibility")) { + fConfigTable[kETC1_GrPixelConfig].fFlags = ConfigInfo::kTextureable_Flag; + } + } else { + if (version >= GR_GL_VER(3, 0) || + ctxInfo.hasExtension("GL_OES_compressed_ETC1_RGB8_texture") || + // ETC2 is a superset of ETC1, so we can just check for that, too. + (ctxInfo.hasExtension("GL_OES_compressed_ETC2_RGB8_texture") && + ctxInfo.hasExtension("GL_OES_compressed_ETC2_RGBA8_texture"))) { + fConfigTable[kETC1_GrPixelConfig].fFlags = ConfigInfo::kTextureable_Flag; + } } + fConfigTable[kETC1_GrPixelConfig].fSwizzle = GrSwizzle::RGBA(); } - fConfigTable[kETC1_GrPixelConfig].fSwizzle = GrSwizzle::RGBA(); - - fConfigTable[kR11_EAC_GrPixelConfig].fFormats.fBaseInternalFormat = GR_GL_COMPRESSED_R11_EAC; - fConfigTable[kR11_EAC_GrPixelConfig].fFormats.fSizedInternalFormat = GR_GL_COMPRESSED_R11_EAC; - fConfigTable[kR11_EAC_GrPixelConfig].fFormats.fExternalFormat[kOther_ExternalFormatUsage] = 0; - fConfigTable[kR11_EAC_GrPixelConfig].fFormats.fExternalType = 0; - fConfigTable[kR11_EAC_GrPixelConfig].fFormatType = kNormalizedFixedPoint_FormatType; - // Check for R11_EAC. We don't support R11_EAC on desktop, as most cards default to - // decompressing the textures in the driver, and is generally slower. - if (kGLES_GrGLStandard == standard && version >= GR_GL_VER(3,0)) { - fConfigTable[kR11_EAC_GrPixelConfig].fFlags = ConfigInfo::kTextureable_Flag; - } - fConfigTable[kR11_EAC_GrPixelConfig].fSwizzle = GrSwizzle::RRRR(); - - fConfigTable[kASTC_12x12_GrPixelConfig].fFormats.fBaseInternalFormat = - GR_GL_COMPRESSED_RGBA_ASTC_12x12; - fConfigTable[kASTC_12x12_GrPixelConfig].fFormats.fSizedInternalFormat = - GR_GL_COMPRESSED_RGBA_ASTC_12x12; - fConfigTable[kASTC_12x12_GrPixelConfig].fFormats.fExternalFormat[kOther_ExternalFormatUsage] = - 0; - fConfigTable[kASTC_12x12_GrPixelConfig].fFormats.fExternalType = 0; - fConfigTable[kASTC_12x12_GrPixelConfig].fFormatType = kNormalizedFixedPoint_FormatType; - if (ctxInfo.hasExtension("GL_KHR_texture_compression_astc_hdr") || - ctxInfo.hasExtension("GL_KHR_texture_compression_astc_ldr") || - ctxInfo.hasExtension("GL_OES_texture_compression_astc")) { - fConfigTable[kASTC_12x12_GrPixelConfig].fFlags = ConfigInfo::kTextureable_Flag; - } - fConfigTable[kASTC_12x12_GrPixelConfig].fSwizzle = GrSwizzle::RGBA(); // Bulk populate the texture internal/external formats here and then deal with exceptions below. diff --git a/src/gpu/gl/GrGLGpu.cpp b/src/gpu/gl/GrGLGpu.cpp index 102eddf3ea..ad00b0a90c 100644 --- a/src/gpu/gl/GrGLGpu.cpp +++ b/src/gpu/gl/GrGLGpu.cpp @@ -946,9 +946,6 @@ static inline GrGLint config_alignment(GrPixelConfig config) { return 4; case kUnknown_GrPixelConfig: case kETC1_GrPixelConfig: - case kLATC_GrPixelConfig: - case kR11_EAC_GrPixelConfig: - case kASTC_12x12_GrPixelConfig: return 0; } SkFAIL("Invalid pixel config"); diff --git a/src/gpu/vk/GrVkCaps.cpp b/src/gpu/vk/GrVkCaps.cpp index 04f0eaa6b9..94c1a50d2b 100644 --- a/src/gpu/vk/GrVkCaps.cpp +++ b/src/gpu/vk/GrVkCaps.cpp @@ -260,12 +260,6 @@ void GrVkCaps::initConfigTable(const GrVkInterface* interface, VkPhysicalDevice const uint16_t kFlagsToRemove = ConfigInfo::kTextureable_Flag|ConfigInfo::kRenderable_Flag; fConfigTable[kETC1_GrPixelConfig].fOptimalFlags &= ~kFlagsToRemove; fConfigTable[kETC1_GrPixelConfig].fLinearFlags &= ~kFlagsToRemove; - fConfigTable[kLATC_GrPixelConfig].fOptimalFlags &= ~kFlagsToRemove; - fConfigTable[kLATC_GrPixelConfig].fLinearFlags &= ~kFlagsToRemove; - fConfigTable[kR11_EAC_GrPixelConfig].fOptimalFlags &= ~kFlagsToRemove; - fConfigTable[kR11_EAC_GrPixelConfig].fLinearFlags &= ~kFlagsToRemove; - fConfigTable[kASTC_12x12_GrPixelConfig].fOptimalFlags &= ~kFlagsToRemove; - fConfigTable[kASTC_12x12_GrPixelConfig].fLinearFlags &= ~kFlagsToRemove; } void GrVkCaps::ConfigInfo::InitConfigFlags(VkFormatFeatureFlags vkFlags, uint16_t* flags) { diff --git a/src/gpu/vk/GrVkUtil.cpp b/src/gpu/vk/GrVkUtil.cpp index ad477e3907..1a73f9a2c0 100644 --- a/src/gpu/vk/GrVkUtil.cpp +++ b/src/gpu/vk/GrVkUtil.cpp @@ -52,15 +52,6 @@ bool GrPixelConfigToVkFormat(GrPixelConfig config, VkFormat* format) { // converting to ETC2 which is a superset of ETC1 *format = VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK; return true; - case kLATC_GrPixelConfig: - // No current vulkan support for this config - return false; - case kR11_EAC_GrPixelConfig: - *format = VK_FORMAT_EAC_R11_UNORM_BLOCK; - return true; - case kASTC_12x12_GrPixelConfig: - *format = VK_FORMAT_ASTC_12x12_UNORM_BLOCK; - return true; case kRGBA_float_GrPixelConfig: *format = VK_FORMAT_R32G32B32A32_SFLOAT; return true; @@ -112,13 +103,7 @@ bool GrVkFormatToPixelConfig(VkFormat format, GrPixelConfig* config) { *config = kAlpha_8_GrPixelConfig; break; case VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK: - *config = kETC1_GrPixelConfig; - break; - case VK_FORMAT_EAC_R11_UNORM_BLOCK: - *config = kR11_EAC_GrPixelConfig; - break; - case VK_FORMAT_ASTC_12x12_UNORM_BLOCK: - *config = kASTC_12x12_GrPixelConfig; + *config = kETC1_GrPixelConfig; // this conversion seems a bit sketchy break; case VK_FORMAT_R32G32B32A32_SFLOAT: *config = kRGBA_float_GrPixelConfig;