Commit 91f44a9a by Alexis Hetu Committed by Commit Bot

ASTC: LDR support doesn't imply HDR support

There are SwiftShader related failures related to enabling the textureCompressionASTCHDRKHR feature without properly checking if the VK_EXT_texture_compression_astc_hdr extension is available, so HDR support shouldn't be enabled only based on the LDR support being enabled. Bug: angleproject:4447 Change-Id: Icde34892c9e2efff4b71e8c4e960c2fcff786700 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2080594 Commit-Queue: Alexis Hétu <sugoi@chromium.org> Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
parent cd6028de
...@@ -872,6 +872,7 @@ const ExtensionInfoMap &GetExtensionInfoMap() ...@@ -872,6 +872,7 @@ const ExtensionInfoMap &GetExtensionInfoMap()
map["GL_EXT_texture_compression_s3tc_srgb"] = enableableExtension(&Extensions::textureCompressionS3TCsRGB); map["GL_EXT_texture_compression_s3tc_srgb"] = enableableExtension(&Extensions::textureCompressionS3TCsRGB);
map["GL_KHR_texture_compression_astc_ldr"] = enableableExtension(&Extensions::textureCompressionASTCLDRKHR); map["GL_KHR_texture_compression_astc_ldr"] = enableableExtension(&Extensions::textureCompressionASTCLDRKHR);
map["GL_KHR_texture_compression_astc_hdr"] = enableableExtension(&Extensions::textureCompressionASTCHDRKHR); map["GL_KHR_texture_compression_astc_hdr"] = enableableExtension(&Extensions::textureCompressionASTCHDRKHR);
map["GL_KHR_texture_compression_astc_sliced_3d"] = enableableExtension(&Extensions::textureCompressionSliced3dASTCKHR);
map["GL_OES_texture_compression_astc"] = enableableExtension(&Extensions::textureCompressionASTCOES); map["GL_OES_texture_compression_astc"] = enableableExtension(&Extensions::textureCompressionASTCOES);
map["GL_EXT_texture_compression_bptc"] = enableableExtension(&Extensions::textureCompressionBPTC); map["GL_EXT_texture_compression_bptc"] = enableableExtension(&Extensions::textureCompressionBPTC);
map["GL_EXT_texture_compression_rgtc"] = enableableExtension(&Extensions::textureCompressionRGTC); map["GL_EXT_texture_compression_rgtc"] = enableableExtension(&Extensions::textureCompressionRGTC);
......
...@@ -213,6 +213,9 @@ struct Extensions ...@@ -213,6 +213,9 @@ struct Extensions
// GL_OES_texture_compression_astc // GL_OES_texture_compression_astc
bool textureCompressionASTCOES = false; bool textureCompressionASTCOES = false;
// GL_KHR_texture_compression_astc_sliced_3d
bool textureCompressionSliced3dASTCKHR = false;
// GL_EXT_texture_compression_bptc // GL_EXT_texture_compression_bptc
bool textureCompressionBPTC = false; bool textureCompressionBPTC = false;
......
...@@ -3543,7 +3543,8 @@ Extensions Context::generateSupportedExtensions() const ...@@ -3543,7 +3543,8 @@ Extensions Context::generateSupportedExtensions() const
supportedExtensions.loseContextCHROMIUM = true; supportedExtensions.loseContextCHROMIUM = true;
// The ASTC texture extensions have dependency requirements. // The ASTC texture extensions have dependency requirements.
if (supportedExtensions.textureCompressionASTCHDRKHR) if (supportedExtensions.textureCompressionASTCHDRKHR ||
supportedExtensions.textureCompressionSliced3dASTCKHR)
{ {
// GL_KHR_texture_compression_astc_hdr cannot be exposed without also exposing // GL_KHR_texture_compression_astc_hdr cannot be exposed without also exposing
// GL_KHR_texture_compression_astc_ldr // GL_KHR_texture_compression_astc_ldr
......
...@@ -1131,6 +1131,9 @@ void GenerateCaps(const FunctionsGL *functions, ...@@ -1131,6 +1131,9 @@ void GenerateCaps(const FunctionsGL *functions,
extensions->textureCompressionASTCHDRKHR = extensions->textureCompressionASTCHDRKHR =
extensions->textureCompressionASTCLDRKHR && extensions->textureCompressionASTCLDRKHR &&
functions->hasExtension("GL_KHR_texture_compression_astc_hdr"); functions->hasExtension("GL_KHR_texture_compression_astc_hdr");
extensions->textureCompressionSliced3dASTCKHR =
extensions->textureCompressionASTCLDRKHR &&
functions->hasExtension("GL_KHR_texture_compression_astc_sliced_3d");
extensions->elementIndexUintOES = functions->standard == STANDARD_GL_DESKTOP || extensions->elementIndexUintOES = functions->standard == STANDARD_GL_DESKTOP ||
functions->isAtLeastGLES(gl::Version(3, 0)) || functions->isAtLeastGLES(gl::Version(3, 0)) ||
functions->hasGLESExtension("GL_OES_element_index_uint"); functions->hasGLESExtension("GL_OES_element_index_uint");
......
...@@ -55,9 +55,12 @@ void RendererVk::ensureCapsInitialized() const ...@@ -55,9 +55,12 @@ void RendererVk::ensureCapsInitialized() const
(mPhysicalDeviceFeatures.textureCompressionETC2 == VK_TRUE) && (mPhysicalDeviceFeatures.textureCompressionETC2 == VK_TRUE) &&
gl::DetermineCompressedTextureETCSupport(mNativeTextureCaps); gl::DetermineCompressedTextureETCSupport(mNativeTextureCaps);
// Vulkan technically only supports the LDR profile but driver all appear to support the HDR // Vulkan doesn't support 3D ASTC textures, which are required by both
// profile as well. http://anglebug.com/1185#c8 // GL_OES_texture_compression_astc and GL_KHR_texture_compression_astc_hdr
mNativeExtensions.textureCompressionASTCHDRKHR = mNativeExtensions.textureCompressionASTCLDRKHR; mNativeExtensions.textureCompressionASTCHDRKHR = false;
mNativeExtensions.textureCompressionASTCOES = false;
mNativeExtensions.textureCompressionSliced3dASTCKHR =
mNativeExtensions.textureCompressionASTCLDRKHR;
// Enable this for simple buffer readback testing, but some functionality is missing. // Enable this for simple buffer readback testing, but some functionality is missing.
// TODO(jmadill): Support full mapBufferRange extension. // TODO(jmadill): Support full mapBufferRange extension.
......
...@@ -358,7 +358,8 @@ static bool ValidateES3CompressedFormatForTexture3D(const Context *context, GLen ...@@ -358,7 +358,8 @@ static bool ValidateES3CompressedFormatForTexture3D(const Context *context, GLen
return false; return false;
} }
if (IsASTC2DFormat(format) && !context->getExtensions().textureCompressionASTCHDRKHR) if (IsASTC2DFormat(format) && !(context->getExtensions().textureCompressionASTCHDRKHR ||
context->getExtensions().textureCompressionSliced3dASTCKHR))
{ {
// GL_KHR_texture_compression_astc_hdr, TEXTURE_3D is not supported without HDR profile // GL_KHR_texture_compression_astc_hdr, TEXTURE_3D is not supported without HDR profile
context->validationError(GL_INVALID_OPERATION, kInternalFormatRequiresTexture2DArrayASTC); context->validationError(GL_INVALID_OPERATION, kInternalFormatRequiresTexture2DArrayASTC);
......
...@@ -617,35 +617,3 @@ ...@@ -617,35 +617,3 @@
4416 SWIFTSHADER : dEQP-GLES3.functional.fbo.blit.conversion.rgba16f_to_r11f_g11f_b10f = FAIL 4416 SWIFTSHADER : dEQP-GLES3.functional.fbo.blit.conversion.rgba16f_to_r11f_g11f_b10f = FAIL
4418 SWIFTSHADER : dEQP-GLES3.functional.negative_api.buffer.framebuffer_texture_layer = FAIL 4418 SWIFTSHADER : dEQP-GLES3.functional.negative_api.buffer.framebuffer_texture_layer = FAIL
4447 SWIFTSHADER : dEQP-GLES3.functional.texture.compressed.astc.void_extent_hdr.* = FAIL
4447 SWIFTSHADER : dEQP-GLES3.functional.texture.compressed.astc.color_endpoint_modes.4x4 = FAIL
4447 SWIFTSHADER : dEQP-GLES3.functional.texture.compressed.astc.color_endpoint_modes.5x4 = FAIL
4447 SWIFTSHADER : dEQP-GLES3.functional.texture.compressed.astc.color_endpoint_modes.5x5 = FAIL
4447 SWIFTSHADER : dEQP-GLES3.functional.texture.compressed.astc.color_endpoint_modes.6x5 = FAIL
4447 SWIFTSHADER : dEQP-GLES3.functional.texture.compressed.astc.color_endpoint_modes.6x6 = FAIL
4447 SWIFTSHADER : dEQP-GLES3.functional.texture.compressed.astc.color_endpoint_modes.8x5 = FAIL
4447 SWIFTSHADER : dEQP-GLES3.functional.texture.compressed.astc.color_endpoint_modes.8x6 = FAIL
4447 SWIFTSHADER : dEQP-GLES3.functional.texture.compressed.astc.color_endpoint_modes.8x8 = FAIL
4447 SWIFTSHADER : dEQP-GLES3.functional.texture.compressed.astc.color_endpoint_modes.10x5 = FAIL
4447 SWIFTSHADER : dEQP-GLES3.functional.texture.compressed.astc.color_endpoint_modes.10x6 = FAIL
4447 SWIFTSHADER : dEQP-GLES3.functional.texture.compressed.astc.color_endpoint_modes.10x8 = FAIL
4447 SWIFTSHADER : dEQP-GLES3.functional.texture.compressed.astc.color_endpoint_modes.10x10 = FAIL
4447 SWIFTSHADER : dEQP-GLES3.functional.texture.compressed.astc.color_endpoint_modes.12x10 = FAIL
4447 SWIFTSHADER : dEQP-GLES3.functional.texture.compressed.astc.color_endpoint_modes.12x12 = FAIL
4447 SWIFTSHADER : dEQP-GLES3.functional.texture.compressed.astc.endpoint_value_hdr_cem_* = FAIL
4447 SWIFTSHADER : dEQP-GLES3.functional.texture.compressed.astc.random.4x4 = FAIL
4447 SWIFTSHADER : dEQP-GLES3.functional.texture.compressed.astc.random.5x4 = FAIL
4447 SWIFTSHADER : dEQP-GLES3.functional.texture.compressed.astc.random.5x5 = FAIL
4447 SWIFTSHADER : dEQP-GLES3.functional.texture.compressed.astc.random.6x5 = FAIL
4447 SWIFTSHADER : dEQP-GLES3.functional.texture.compressed.astc.random.6x6 = FAIL
4447 SWIFTSHADER : dEQP-GLES3.functional.texture.compressed.astc.random.8x5 = FAIL
4447 SWIFTSHADER : dEQP-GLES3.functional.texture.compressed.astc.random.8x6 = FAIL
4447 SWIFTSHADER : dEQP-GLES3.functional.texture.compressed.astc.random.8x8 = FAIL
4447 SWIFTSHADER : dEQP-GLES3.functional.texture.compressed.astc.random.10x5 = FAIL
4447 SWIFTSHADER : dEQP-GLES3.functional.texture.compressed.astc.random.10x6 = FAIL
4447 SWIFTSHADER : dEQP-GLES3.functional.texture.compressed.astc.random.10x8 = FAIL
4447 SWIFTSHADER : dEQP-GLES3.functional.texture.compressed.astc.random.10x10 = FAIL
4447 SWIFTSHADER : dEQP-GLES3.functional.texture.compressed.astc.random.12x10 = FAIL
4447 SWIFTSHADER : dEQP-GLES3.functional.texture.compressed.astc.random.12x12 = FAIL
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment