Add GL_RGBX8_SRGB_ANGLEX and GL_BGRX8_SRGB_ANGLEX formats

If app creates AHB with sRGBX format, and then create a EGLImage,
Image::initialize() will retrieve the sized format from AHB, which is
GL_RGBX_ANGLE, and then try to convert to sRGB color space. The bug here
is that GetNonLinearFormat will pick GL_SRGB8 for all these formats
:GL_RGB8, GL_BGRX8_ANGLEX, GL_RGBX8_ANGLE. This means that different
AHBS with these three different format will end up createing a tetxure
with same format which sRGB. I think the reason somone did it this way
initially simply because there is no sRGB corresponding format available
for BGRX8 and RGBX8. This CL adds sRGB internal version of these two
formats, thus make it straight forward to pick the correct sRGB format.

The other change here is for AHBs, right now we are always force
mRequiredImageAccess to be Renderable. This actually workedaround the
bug that mentioned earlier that we are picking the wrong format. Because
of forced renderable, we end up with SRGB fallback to SRGBA. But
external images should not fallback, we should use its existing format
as is since it can be accessed via AHB interface directly.

Bug: b/298037344
Change-Id: I6119c4015cc5bf0effdf0530cb756b6c4656c38f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4819053
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
This commit is contained in:
Charlie Lao 2023-08-28 15:41:18 -07:00 коммит произвёл Angle LUCI CQ
Родитель 3e333c7be0
Коммит 519d330c0d
31 изменённых файлов: 423 добавлений и 169 удалений

Просмотреть файл

@ -1,14 +1,14 @@
{
"src/libANGLE/renderer/FormatID_autogen.h":
"ce0e2c5067f4dd702e091e539f40ff20",
"0e0de4fd44ea34a9104e551552afc696",
"src/libANGLE/renderer/Format_table_autogen.cpp":
"2614262da65683427453a7a020699823",
"05729090d0ade5ef6791136079bf3d55",
"src/libANGLE/renderer/angle_format.py":
"601bfb757e052c50ac8f4cb4e0b58eb5",
"src/libANGLE/renderer/angle_format_data.json":
"bad90135a5d792928071aacdf80219c9",
"a9cd7bc79705c02b57b08ff3320dd003",
"src/libANGLE/renderer/angle_format_map.json":
"4c09d19204afa53cd9d137bb4edbabb1",
"eab6744df71f7bf6bfe9e8bb39949b79",
"src/libANGLE/renderer/gen_angle_format_table.py":
"2ec32d6ad86d2dece50bc7db3cd0d807"
}

Просмотреть файл

@ -4,7 +4,7 @@
"src/libANGLE/renderer/gen_load_functions_table.py":
"0bf24f3cde2810481ffd670a73922698",
"src/libANGLE/renderer/load_functions_data.json":
"962fee4e4d3993c8f5e14d6ecb3edf01",
"bbc5cd34a82089bf6c894e1bd6a6d5a9",
"src/libANGLE/renderer/load_functions_table_autogen.cpp":
"b7c79fe4a09c33f5925a92e4613bcdeb"
"13ce008e892096e659ebfd9c3a1ab76d"
}

Просмотреть файл

@ -4,9 +4,9 @@
"src/libANGLE/renderer/d3d/d3d11/gen_texture_format_table.py":
"1c50b4b5c46af329e72eaa07f51be6c9",
"src/libANGLE/renderer/d3d/d3d11/texture_format_data.json":
"82666d8112df2b6939d1335933ec5e3a",
"6c413f6e15521bd6872ec022e8807258",
"src/libANGLE/renderer/d3d/d3d11/texture_format_map.json":
"6a0587f36ab306c48d3a3d4f931db89d",
"src/libANGLE/renderer/d3d/d3d11/texture_format_table_autogen.cpp":
"dda7dea548bad87ae5105dde4b4f4e67"
"28f5641ebbc95b828149894c38f622ac"
}

Просмотреть файл

@ -2,11 +2,11 @@
"src/libANGLE/renderer/angle_format.py":
"601bfb757e052c50ac8f4cb4e0b58eb5",
"src/libANGLE/renderer/angle_format_map.json":
"4c09d19204afa53cd9d137bb4edbabb1",
"eab6744df71f7bf6bfe9e8bb39949b79",
"src/libANGLE/renderer/dxgi_format_data.json":
"3428e4761ccd05f960adffd6ccbd86c5",
"src/libANGLE/renderer/dxgi_format_map_autogen.cpp":
"974308ca798476dfaa076fb864478310",
"96f2462b4e2a2c641ac22327dec710d8",
"src/libANGLE/renderer/gen_dxgi_format_table.py":
"88fbd6be85ea84da8e6fdb709b6a54b7"
}

Просмотреть файл

@ -1,8 +1,8 @@
{
"src/libANGLE/es3_format_type_combinations.json":
"d053493ebea62e9baa5a9db40c1d90cf",
"91b6c6a3acbd7444639e5d15932d3e1c",
"src/libANGLE/format_map_autogen.cpp":
"2abfe0492ea1168d0d5ebac4e2ea6247",
"c814a5d482d22c21cb450976a531aeb3",
"src/libANGLE/format_map_data.json":
"128723d1f10800a02c57879b50887e53",
"src/libANGLE/gen_format_map.py":

Просмотреть файл

@ -2,7 +2,7 @@
"src/libANGLE/renderer/angle_format.py":
"601bfb757e052c50ac8f4cb4e0b58eb5",
"src/libANGLE/renderer/angle_format_map.json":
"4c09d19204afa53cd9d137bb4edbabb1",
"eab6744df71f7bf6bfe9e8bb39949b79",
"src/libANGLE/renderer/gen_angle_format_table.py":
"2ec32d6ad86d2dece50bc7db3cd0d807",
"src/libANGLE/renderer/metal/shaders/blit.metal":
@ -22,13 +22,13 @@
"src/libANGLE/renderer/metal/shaders/gen_mtl_internal_shaders.py":
"35717adb82858bca41bc931284845805",
"src/libANGLE/renderer/metal/shaders/mtl_internal_shaders_autogen.metal":
"a1702393217d8207e29d6b227ce7102c",
"466ec382cacbfd6bf3165353cb2c41fc",
"src/libANGLE/renderer/metal/shaders/mtl_internal_shaders_ios_autogen.h":
"ac88213ca61c8837ba8c101a0fc71485",
"ca97e64fd75fb1772123bc679e27575d",
"src/libANGLE/renderer/metal/shaders/mtl_internal_shaders_macos_autogen.h":
"934553350ca085dbbd25631e8abb935c",
"e67f5bcd3b44fa913f8ac7c4cbf621dc",
"src/libANGLE/renderer/metal/shaders/mtl_internal_shaders_src_autogen.h":
"17239931d52be112c99658b7dab000e1",
"1f096f11a6ea3d843a82531112e5a3e5",
"src/libANGLE/renderer/metal/shaders/rewrite_indices.metal":
"a29210b023ed3393e1342d94e338d449",
"src/libANGLE/renderer/metal/shaders/visibility.metal":

Просмотреть файл

@ -2,7 +2,7 @@
"src/libANGLE/renderer/angle_format.py":
"601bfb757e052c50ac8f4cb4e0b58eb5",
"src/libANGLE/renderer/angle_format_map.json":
"4c09d19204afa53cd9d137bb4edbabb1",
"eab6744df71f7bf6bfe9e8bb39949b79",
"src/libANGLE/renderer/metal/gen_mtl_format_table.py":
"28f3065f5d1bc65803b1218b706430ae",
"src/libANGLE/renderer/metal/mtl_format_map.json":

Просмотреть файл

@ -2,11 +2,11 @@
"src/libANGLE/renderer/angle_format.py":
"601bfb757e052c50ac8f4cb4e0b58eb5",
"src/libANGLE/renderer/angle_format_map.json":
"4c09d19204afa53cd9d137bb4edbabb1",
"eab6744df71f7bf6bfe9e8bb39949b79",
"src/libANGLE/renderer/vulkan/gen_vk_format_table.py":
"6e4c403c145549c0baa69d65b5e73152",
"src/libANGLE/renderer/vulkan/vk_format_map.json":
"3828950da790bd3841d085effb235fdf",
"e6347f078d5ed2a225ba3834cd85778d",
"src/libANGLE/renderer/vulkan/vk_format_table_autogen.cpp":
"48ed55edecc05c6e64d8081bb5dd9467"
"92531655e872af665b92c336b87258f1"
}

Просмотреть файл

@ -4,7 +4,7 @@
"src/libANGLE/renderer/vulkan/gen_vk_mandatory_format_support_table.py":
"ffb3d44c853669c2c260b96b3808fcf3",
"src/libANGLE/renderer/vulkan/vk_format_map.json":
"3828950da790bd3841d085effb235fdf",
"e6347f078d5ed2a225ba3834cd85778d",
"src/libANGLE/renderer/vulkan/vk_mandatory_format_support_data.json":
"fa2bd54c1bb0ab2cf1d386061a4bc5c5",
"src/libANGLE/renderer/vulkan/vk_mandatory_format_support_table_autogen.cpp":

Просмотреть файл

@ -424,6 +424,9 @@ class ConditionalMutex final : angle::NonCopyable
#define GL_UINT_64_ANGLEX 0x6ABF
#define GL_BGRA8_SRGB_ANGLEX 0x6AC0
#define GL_BGR10_A2_ANGLEX 0x6AF9
#define GL_BGRX8_SRGB_ANGLEX 0x6AFC
// fake format for GL_ANGLE_rgbx_internal_format
#define GL_RGBX8_SRGB_ANGLEX 0x6AFA
// These are fake formats used to fit typeless D3D textures that can be bound to EGL pbuffers into
// the format system (for extension EGL_ANGLE_d3d_texture_client_buffer):

Просмотреть файл

@ -187,6 +187,7 @@
],
"From GL_ANGLE_rgbx_internal_format":
[
[ "GL_RGBX8_ANGLE", "GL_RGB", "GL_UNSIGNED_BYTE" ]
[ "GL_RGBX8_ANGLE", "GL_RGB", "GL_UNSIGNED_BYTE" ],
[ "GL_RGBX8_SRGB_ANGLEX", "GL_RGB", "GL_UNSIGNED_BYTE" ]
]
}

Просмотреть файл

@ -1272,6 +1272,7 @@ bool ValidES3FormatCombination(GLenum format, GLenum type, GLenum internalFormat
case GL_SRGB8:
case GL_RGB:
case GL_RGBX8_ANGLE:
case GL_RGBX8_SRGB_ANGLEX:
return true;
default:
break;

Просмотреть файл

@ -1157,9 +1157,11 @@ static InternalFormatInfoMap BuildInternalFormatInfoMap()
// Special format to emulate RGB8 with RGBA8 within ANGLE.
AddRGBAXFormat(&map, GL_RGBX8_ANGLE, true, FB< 8, 8, 8, 0, 8, 0>(), GL_RGB, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, false, AlwaysSupported, AlwaysSupported, AlwaysSupported, AlwaysSupported, NeverSupported);
AddRGBAXFormat(&map, GL_RGBX8_SRGB_ANGLEX, true, FB< 8, 8, 8, 0, 8, 0>(), GL_RGB, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, true, AlwaysSupported, AlwaysSupported, AlwaysSupported, AlwaysSupported, NeverSupported);
// Special format to emulate BGR8 with BGRA8 within ANGLE.
AddRGBAXFormat(&map, GL_BGRX8_ANGLEX, true, FB< 8, 8, 8, 0, 8, 0>(), GL_BGRA_EXT, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, false, NeverSupported, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported);
AddRGBAXFormat(&map, GL_BGRX8_SRGB_ANGLEX, true, FB< 8, 8, 8, 0, 8, 0>(), GL_BGRA_EXT, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, true, NeverSupported, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported);
// This format is supported on ES 2.0 with two extensions, so keep it out-of-line to not widen the table above even more.
// | Internal format |sized| R | G | B | A |S | Format | Type | Component type | SRGB | Texture supported | Filterable | Texture attachment | Renderbuffer | Blend

Просмотреть файл

@ -66,9 +66,11 @@ ANGLE_INLINE GLenum GetNonLinearFormat(const GLenum format)
case GL_RGBA8:
return GL_SRGB8_ALPHA8;
case GL_RGB8:
case GL_BGRX8_ANGLEX:
case GL_RGBX8_ANGLE:
return GL_SRGB8;
case GL_BGRX8_ANGLEX:
return GL_BGRX8_SRGB_ANGLEX;
case GL_RGBX8_ANGLE:
return GL_RGBX8_SRGB_ANGLEX;
case GL_RGBA16F:
return GL_RGBA16F;
case GL_RGB10_A2_EXT:
@ -500,7 +502,6 @@ ANGLE_INLINE bool IsBGRAFormat(const GLenum internalFormat)
case GL_BGR5_A1_ANGLEX:
case GL_BGRA8_SRGB_ANGLEX:
case GL_BGRX8_ANGLEX:
case GL_RGBX8_ANGLE:
case GL_BGR565_ANGLEX:
case GL_BGR10_A2_ANGLEX:
return true;

Просмотреть файл

@ -92,6 +92,7 @@ enum class FormatID
B8G8R8A8_UNORM,
B8G8R8A8_UNORM_SRGB,
B8G8R8X8_UNORM,
B8G8R8X8_UNORM_SRGB,
BC1_RGBA_UNORM_BLOCK,
BC1_RGBA_UNORM_SRGB_BLOCK,
BC1_RGB_UNORM_BLOCK,
@ -227,6 +228,7 @@ enum class FormatID
R8G8B8A8_UNORM_SRGB,
R8G8B8A8_USCALED,
R8G8B8X8_UNORM,
R8G8B8X8_UNORM_SRGB,
R8G8B8_SINT,
R8G8B8_SNORM,
R8G8B8_SSCALED,
@ -257,7 +259,7 @@ enum class FormatID
X2R10G10B10_USCALED_VERTEX
};
constexpr uint32_t kNumANGLEFormats = 238;
constexpr uint32_t kNumANGLEFormats = 240;
} // namespace angle

Просмотреть файл

@ -99,6 +99,7 @@ const Format gFormatInfoTable[] = {
{ FormatID::B8G8R8A8_UNORM, GL_BGRA8_EXT, GL_BGRA8_EXT, GenerateMip<B8G8R8A8>, BGRACopyFunctions, ReadColor<B8G8R8A8, GLfloat>, WriteColor<B8G8R8A8, GLfloat>, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 8, 0, 0, 0, 4, 0, false, false, false, false, false, gl::VertexAttribType::UnsignedByte },
{ FormatID::B8G8R8A8_UNORM_SRGB, GL_BGRA8_SRGB_ANGLEX, GL_BGRA8_SRGB_ANGLEX, GenerateMip<B8G8R8A8>, NoCopyFunctions, ReadColor<B8G8R8A8, GLfloat>, WriteColor<B8G8R8A8, GLfloat>, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 8, 0, 0, 0, 4, 0, false, false, false, true, false, gl::VertexAttribType::Byte },
{ FormatID::B8G8R8X8_UNORM, GL_BGRA8_EXT, GL_BGRA8_EXT, GenerateMip<B8G8R8X8>, NoCopyFunctions, ReadColor<B8G8R8X8, GLfloat>, WriteColor<B8G8R8X8, GLfloat>, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 0, 0, 0, 0, 4, std::numeric_limits<GLuint>::max(), false, false, false, false, false, gl::VertexAttribType::UnsignedByte },
{ FormatID::B8G8R8X8_UNORM_SRGB, GL_BGRX8_SRGB_ANGLEX, GL_BGRX8_SRGB_ANGLEX, GenerateMip<B8G8R8X8>, NoCopyFunctions, ReadColor<B8G8R8X8, GLfloat>, WriteColor<B8G8R8X8, GLfloat>, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 0, 0, 0, 0, 4, std::numeric_limits<GLuint>::max(), false, false, false, true, false, gl::VertexAttribType::Byte },
{ FormatID::BC1_RGBA_UNORM_BLOCK, GL_COMPRESSED_RGBA_S3TC_DXT1_EXT, GL_COMPRESSED_RGBA_S3TC_DXT1_EXT, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 8, 0, 0, 0, 8, std::numeric_limits<GLuint>::max(), true, false, false, false, false, gl::VertexAttribType::InvalidEnum },
{ FormatID::BC1_RGBA_UNORM_SRGB_BLOCK, GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT, GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 8, 0, 0, 0, 8, std::numeric_limits<GLuint>::max(), true, false, false, true, false, gl::VertexAttribType::InvalidEnum },
{ FormatID::BC1_RGB_UNORM_BLOCK, GL_COMPRESSED_RGB_S3TC_DXT1_EXT, GL_COMPRESSED_RGB_S3TC_DXT1_EXT, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 0, 0, 0, 0, 8, std::numeric_limits<GLuint>::max(), true, false, false, false, false, gl::VertexAttribType::InvalidEnum },
@ -234,6 +235,7 @@ const Format gFormatInfoTable[] = {
{ FormatID::R8G8B8A8_UNORM_SRGB, GL_SRGB8_ALPHA8, GL_SRGB8_ALPHA8, GenerateMip<R8G8B8A8SRGB>, NoCopyFunctions, ReadColor<R8G8B8A8SRGB, GLfloat>, WriteColor<R8G8B8A8SRGB, GLfloat>, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 8, 0, 0, 0, 4, 0, false, false, false, true, false, gl::VertexAttribType::Byte },
{ FormatID::R8G8B8A8_USCALED, GL_RGBA8_USCALED_ANGLEX, GL_RGBA8_USCALED_ANGLEX, GenerateMip<R8G8B8A8>, NoCopyFunctions, ReadColor<R8G8B8A8, GLuint>, WriteColor<R8G8B8A8, GLuint>, GL_UNSIGNED_INT, 8, 8, 8, 8, 0, 0, 0, 4, 0, false, false, true, false, false, gl::VertexAttribType::UnsignedByte },
{ FormatID::R8G8B8X8_UNORM, GL_RGBA8, GL_RGBA8, GenerateMip<R8G8B8X8>, NoCopyFunctions, ReadColor<R8G8B8X8, GLfloat>, WriteColor<R8G8B8X8, GLfloat>, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 0, 0, 0, 0, 4, std::numeric_limits<GLuint>::max(), false, false, false, false, false, gl::VertexAttribType::UnsignedByte },
{ FormatID::R8G8B8X8_UNORM_SRGB, GL_RGBX8_SRGB_ANGLEX, GL_RGBX8_SRGB_ANGLEX, GenerateMip<R8G8B8X8>, NoCopyFunctions, ReadColor<R8G8B8X8, GLfloat>, WriteColor<R8G8B8X8, GLfloat>, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 0, 0, 0, 0, 4, std::numeric_limits<GLuint>::max(), false, false, false, true, false, gl::VertexAttribType::Byte },
{ FormatID::R8G8B8_SINT, GL_RGB8I, GL_RGB8I, GenerateMip<R8G8B8S>, NoCopyFunctions, ReadColor<R8G8B8S, GLint>, WriteColor<R8G8B8S, GLint>, GL_INT, 8, 8, 8, 0, 0, 0, 0, 3, 0, false, false, false, false, false, gl::VertexAttribType::Byte },
{ FormatID::R8G8B8_SNORM, GL_RGB8_SNORM, GL_RGB8_SNORM, GenerateMip<R8G8B8S>, NoCopyFunctions, ReadColor<R8G8B8S, GLfloat>, WriteColor<R8G8B8S, GLfloat>, GL_SIGNED_NORMALIZED, 8, 8, 8, 0, 0, 0, 0, 3, 0, false, false, false, false, false, gl::VertexAttribType::Byte },
{ FormatID::R8G8B8_SSCALED, GL_RGB8_SSCALED_ANGLEX, GL_RGB8_SSCALED_ANGLEX, GenerateMip<R8G8B8S>, NoCopyFunctions, ReadColor<R8G8B8S, GLint>, WriteColor<R8G8B8S, GLint>, GL_INT, 8, 8, 8, 0, 0, 0, 0, 3, 0, false, false, true, false, false, gl::VertexAttribType::Byte },
@ -304,6 +306,8 @@ FormatID Format::InternalFormatToID(GLenum internalFormat)
return FormatID::B8G8R8A8_TYPELESS_SRGB;
case GL_BGRX8_ANGLEX:
return FormatID::B8G8R8X8_UNORM;
case GL_BGRX8_SRGB_ANGLEX:
return FormatID::B8G8R8X8_UNORM_SRGB;
case GL_COMPRESSED_R11_EAC:
return FormatID::EAC_R11_UNORM_BLOCK;
case GL_COMPRESSED_RED_GREEN_RGTC2_EXT:
@ -726,6 +730,8 @@ FormatID Format::InternalFormatToID(GLenum internalFormat)
return FormatID::R8G8B8A8_USCALED;
case GL_RGBX8_ANGLE:
return FormatID::R8G8B8X8_UNORM;
case GL_RGBX8_SRGB_ANGLEX:
return FormatID::R8G8B8X8_UNORM_SRGB;
case GL_SR8_EXT:
return FormatID::R8_UNORM_SRGB;
case GL_SRG8_EXT:

Просмотреть файл

@ -37,6 +37,12 @@
"B8G8R8A8_TYPELESS_SRGB": {
"glInternalFormat": "GL_BGRA8_SRGB_ANGLEX"
},
"B8G8R8X8_UNORM_SRGB": {
"glInternalFormat": "GL_BGRX8_SRGB_ANGLEX"
},
"R8G8B8X8_UNORM_SRGB": {
"glInternalFormat": "GL_RGBX8_SRGB_ANGLEX"
},
"ASTC_4x4_SRGB_BLOCK": {
"blockPixelBytes": "16"
},

Просмотреть файл

@ -8,8 +8,10 @@
[ "GL_BGRA8_EXT", "B8G8R8A8_UNORM" ],
[ "GL_BGRA8_SRGB_ANGLEX", "B8G8R8A8_UNORM_SRGB"],
[ "GL_BGRX8_ANGLEX", "B8G8R8X8_UNORM" ],
[ "GL_BGRX8_SRGB_ANGLEX", "B8G8R8X8_UNORM_SRGB" ],
[ "GL_RGBX8_ANGLE", "R8G8B8X8_UNORM" ],
[ "GL_BGR10_A2_ANGLEX", "B10G10R10A2_UNORM" ],
[ "GL_RGBX8_SRGB_ANGLEX", "R8G8B8X8_UNORM_SRGB" ],
[ "GL_COMPRESSED_R11_EAC", "EAC_R11_UNORM_BLOCK" ],
[ "GL_COMPRESSED_RG11_EAC", "EAC_R11G11_UNORM_BLOCK" ],
[ "GL_COMPRESSED_RGB8_ETC2", "ETC2_R8G8B8_UNORM_BLOCK" ],

Просмотреть файл

@ -178,6 +178,23 @@
"fallbackFormat": "R8G8B8A8_UNORM",
"glInternalFormat": "GL_BGRX8_ANGLEX"
},
"B8G8R8X8_UNORM_SRGB": {
"texFormat": "DXGI_FORMAT_B8G8R8X8_UNORM_SRGB",
"srvFormat": "DXGI_FORMAT_B8G8R8X8_UNORM_SRGB",
"rtvFormat": "DXGI_FORMAT_B8G8R8X8_UNORM_SRGB",
"typelessFormat": "DXGI_FORMAT_B8G8R8X8_TYPELESS",
"channels": "bgra",
"componentType": "unorm",
"bits": {
"red": 8,
"green": 8,
"blue": 8,
"alpha": 8
},
"supportTest": "OnlyFL11_1Plus(deviceCaps)",
"fallbackFormat": "R8G8B8A8_UNORM",
"glInternalFormat": "GL_BGRX8_SRGB_ANGLEX"
},
"R8G8B8X8_UNORM": {
"texFormat": "DXGI_FORMAT_B8G8R8X8_UNORM",
"srvFormat": "DXGI_FORMAT_B8G8R8X8_UNORM",
@ -194,6 +211,22 @@
"fallbackFormat": "R8G8B8A8_UNORM",
"glInternalFormat": "GL_RGBX8_ANGLE"
},
"R8G8B8X8_UNORM_SRGB": {
"texFormat": "DXGI_FORMAT_B8G8R8X8_UNORM_SRGB",
"srvFormat": "DXGI_FORMAT_B8G8R8X8_UNORM_SRGB",
"rtvFormat": "DXGI_FORMAT_B8G8R8X8_UNORM_SRGB",
"channels": "rgba",
"componentType": "unorm",
"bits": {
"red": 8,
"green": 8,
"blue": 8,
"alpha": 8
},
"supportTest": "OnlyFL11_1Plus(deviceCaps)",
"fallbackFormat": "R8G8B8A8_UNORM_SRGB",
"glInternalFormat": "GL_RGBX8_SRGB_ANGLEX"
},
"B10G10R10A2_UNORM": {
"texFormat": "DXGI_FORMAT_R10G10B10A2_UNORM",
"srvFormat": "DXGI_FORMAT_R10G10B10A2_UNORM",

Просмотреть файл

@ -250,6 +250,41 @@ const Format &Format::Get(GLenum internalFormat, const Renderer11DeviceCaps &dev
return info;
}
}
case GL_BGRX8_SRGB_ANGLEX:
{
if (OnlyFL11_1Plus(deviceCaps))
{
static constexpr Format info(GL_BGRX8_SRGB_ANGLEX,
angle::FormatID::B8G8R8X8_UNORM_SRGB,
DXGI_FORMAT_B8G8R8X8_UNORM_SRGB,
DXGI_FORMAT_B8G8R8X8_UNORM_SRGB,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_B8G8R8X8_UNORM_SRGB,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_B8G8R8X8_UNORM_SRGB,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_B8G8R8X8_TYPELESS,
GL_BGRX8_SRGB_ANGLEX,
nullptr);
return info;
}
else
{
static constexpr Format info(GL_BGRX8_SRGB_ANGLEX,
angle::FormatID::R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8G8B8A8_TYPELESS,
GL_RGBA8,
nullptr);
return info;
}
}
case GL_COMPRESSED_R11_EAC:
{
static constexpr Format info(GL_COMPRESSED_R11_EAC,
@ -3154,6 +3189,41 @@ const Format &Format::Get(GLenum internalFormat, const Renderer11DeviceCaps &dev
return info;
}
}
case GL_RGBX8_SRGB_ANGLEX:
{
if (OnlyFL11_1Plus(deviceCaps))
{
static constexpr Format info(GL_RGBX8_SRGB_ANGLEX,
angle::FormatID::R8G8B8X8_UNORM_SRGB,
DXGI_FORMAT_B8G8R8X8_UNORM_SRGB,
DXGI_FORMAT_B8G8R8X8_UNORM_SRGB,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_B8G8R8X8_UNORM_SRGB,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_B8G8R8X8_UNORM_SRGB,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
GL_RGBX8_SRGB_ANGLEX,
nullptr);
return info;
}
else
{
static constexpr Format info(GL_RGBX8_SRGB_ANGLEX,
angle::FormatID::R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8G8B8A8_TYPELESS,
GL_SRGB8_ALPHA8,
nullptr);
return info;
}
}
case GL_SR8_EXT:
{
static constexpr Format info(GL_SR8_EXT,

Просмотреть файл

@ -298,7 +298,7 @@ const Format &GetFormat(DXGI_FORMAT dxgiFormat)
case DXGI_FORMAT_B8G8R8X8_UNORM:
return Format::Get(FormatID::B8G8R8X8_UNORM);
case DXGI_FORMAT_B8G8R8X8_UNORM_SRGB:
break;
return Format::Get(FormatID::B8G8R8X8_UNORM_SRGB);
case DXGI_FORMAT_BC1_TYPELESS:
break;
case DXGI_FORMAT_BC1_UNORM:

Просмотреть файл

@ -9,17 +9,17 @@
"GL_UNSIGNED_BYTE": "LoadToNative3To4<GLubyte, 0xFF>"
},
"R8G8B8_UNORM_SRGB": {
"GL_UNSIGNED_BYTE": "LoadToNative<GLbyte, 3>"
"GL_UNSIGNED_BYTE": "LoadToNative<GLubyte, 3>"
}
},
"GL_SR8_EXT": {
"R8_UNORM_SRGB": {
"GL_UNSIGNED_BYTE": "LoadToNative<GLbyte, 1>"
"GL_UNSIGNED_BYTE": "LoadToNative<GLubyte, 1>"
}
},
"GL_SRG8_EXT": {
"R8G8_UNORM_SRGB": {
"GL_UNSIGNED_BYTE": "LoadToNative<GLbyte, 2>"
"GL_UNSIGNED_BYTE": "LoadToNative<GLubyte, 2>"
}
},
"GL_RGBA8I": {
@ -409,10 +409,18 @@
},
"GL_BGRX8_ANGLEX" : {
"B8G8R8X8_UNORM": {
"GL_UNSIGNED_BYTE": "LoadToNative<GLubyte, 4>"
"GL_UNSIGNED_BYTE": "LoadToNative3To4<GLubyte, 0xFF>"
},
"B8G8R8A8_UNORM": {
"GL_UNSIGNED_BYTE": "LoadToNative<GLubyte, 4>"
"GL_UNSIGNED_BYTE": "LoadToNative3To4<GLubyte, 0xFF>"
}
},
"GL_BGRX8_SRGB_ANGLEX" : {
"B8G8R8X8_UNORM_SRGB": {
"GL_UNSIGNED_BYTE": "LoadToNative3To4<GLubyte, 0xFF>"
},
"B8G8R8A8_UNORM_SRGB": {
"GL_UNSIGNED_BYTE": "LoadToNative3To4<GLubyte, 0xFF>"
}
},
"GL_RGBX8_ANGLE" : {
@ -423,6 +431,14 @@
"GL_UNSIGNED_BYTE": "LoadToNative3To4<GLubyte, 0xFF>"
}
},
"GL_RGBX8_SRGB_ANGLEX" : {
"R8G8B8X8_UNORM_SRGB": {
"GL_UNSIGNED_BYTE": "LoadToNative3To4<GLubyte, 0xFF>"
},
"R8G8B8A8_UNORM_SRGB": {
"GL_UNSIGNED_BYTE": "LoadToNative3To4<GLubyte, 0xFF>"
}
},
"GL_BGR565_ANGLEX": {
"B5G6R5_UNORM": {
"GL_UNSIGNED_SHORT_5_6_5": "LoadRGB565ToBGR565",

Просмотреть файл

@ -297,7 +297,7 @@ LoadImageFunctionInfo BGRX8_ANGLEX_to_B8G8R8A8_UNORM(GLenum type)
switch (type)
{
case GL_UNSIGNED_BYTE:
return LoadImageFunctionInfo(LoadToNative<GLubyte, 4>, false);
return LoadImageFunctionInfo(LoadToNative3To4<GLubyte, 0xFF>, true);
default:
UNREACHABLE();
return LoadImageFunctionInfo(UnreachableLoadFunction, true);
@ -309,7 +309,31 @@ LoadImageFunctionInfo BGRX8_ANGLEX_to_B8G8R8X8_UNORM(GLenum type)
switch (type)
{
case GL_UNSIGNED_BYTE:
return LoadImageFunctionInfo(LoadToNative<GLubyte, 4>, false);
return LoadImageFunctionInfo(LoadToNative3To4<GLubyte, 0xFF>, true);
default:
UNREACHABLE();
return LoadImageFunctionInfo(UnreachableLoadFunction, true);
}
}
LoadImageFunctionInfo BGRX8_SRGB_ANGLEX_to_B8G8R8A8_UNORM_SRGB(GLenum type)
{
switch (type)
{
case GL_UNSIGNED_BYTE:
return LoadImageFunctionInfo(LoadToNative3To4<GLubyte, 0xFF>, true);
default:
UNREACHABLE();
return LoadImageFunctionInfo(UnreachableLoadFunction, true);
}
}
LoadImageFunctionInfo BGRX8_SRGB_ANGLEX_to_B8G8R8X8_UNORM_SRGB(GLenum type)
{
switch (type)
{
case GL_UNSIGNED_BYTE:
return LoadImageFunctionInfo(LoadToNative3To4<GLubyte, 0xFF>, true);
default:
UNREACHABLE();
return LoadImageFunctionInfo(UnreachableLoadFunction, true);
@ -3670,12 +3694,36 @@ LoadImageFunctionInfo RGBX8_ANGLE_to_R8G8B8X8_UNORM(GLenum type)
}
}
LoadImageFunctionInfo RGBX8_SRGB_ANGLEX_to_R8G8B8A8_UNORM_SRGB(GLenum type)
{
switch (type)
{
case GL_UNSIGNED_BYTE:
return LoadImageFunctionInfo(LoadToNative3To4<GLubyte, 0xFF>, true);
default:
UNREACHABLE();
return LoadImageFunctionInfo(UnreachableLoadFunction, true);
}
}
LoadImageFunctionInfo RGBX8_SRGB_ANGLEX_to_R8G8B8X8_UNORM_SRGB(GLenum type)
{
switch (type)
{
case GL_UNSIGNED_BYTE:
return LoadImageFunctionInfo(LoadToNative3To4<GLubyte, 0xFF>, true);
default:
UNREACHABLE();
return LoadImageFunctionInfo(UnreachableLoadFunction, true);
}
}
LoadImageFunctionInfo SR8_EXT_to_R8_UNORM_SRGB(GLenum type)
{
switch (type)
{
case GL_UNSIGNED_BYTE:
return LoadImageFunctionInfo(LoadToNative<GLbyte, 1>, false);
return LoadImageFunctionInfo(LoadToNative<GLubyte, 1>, false);
default:
UNREACHABLE();
return LoadImageFunctionInfo(UnreachableLoadFunction, true);
@ -3687,7 +3735,7 @@ LoadImageFunctionInfo SRG8_EXT_to_R8G8_UNORM_SRGB(GLenum type)
switch (type)
{
case GL_UNSIGNED_BYTE:
return LoadImageFunctionInfo(LoadToNative<GLbyte, 2>, false);
return LoadImageFunctionInfo(LoadToNative<GLubyte, 2>, false);
default:
UNREACHABLE();
return LoadImageFunctionInfo(UnreachableLoadFunction, true);
@ -3711,7 +3759,7 @@ LoadImageFunctionInfo SRGB8_to_R8G8B8_UNORM_SRGB(GLenum type)
switch (type)
{
case GL_UNSIGNED_BYTE:
return LoadImageFunctionInfo(LoadToNative<GLbyte, 3>, false);
return LoadImageFunctionInfo(LoadToNative<GLubyte, 3>, false);
default:
UNREACHABLE();
return LoadImageFunctionInfo(UnreachableLoadFunction, true);
@ -3885,6 +3933,19 @@ LoadFunctionMap GetLoadFunctionsMap(GLenum internalFormat, FormatID angleFormat)
}
break;
}
case GL_BGRX8_SRGB_ANGLEX:
{
switch (angleFormat)
{
case FormatID::B8G8R8A8_UNORM_SRGB:
return BGRX8_SRGB_ANGLEX_to_B8G8R8A8_UNORM_SRGB;
case FormatID::B8G8R8X8_UNORM_SRGB:
return BGRX8_SRGB_ANGLEX_to_B8G8R8X8_UNORM_SRGB;
default:
break;
}
break;
}
case GL_COMPRESSED_R11_EAC:
{
switch (angleFormat)
@ -5465,6 +5526,19 @@ LoadFunctionMap GetLoadFunctionsMap(GLenum internalFormat, FormatID angleFormat)
}
break;
}
case GL_RGBX8_SRGB_ANGLEX:
{
switch (angleFormat)
{
case FormatID::R8G8B8A8_UNORM_SRGB:
return RGBX8_SRGB_ANGLEX_to_R8G8B8A8_UNORM_SRGB;
case FormatID::R8G8B8X8_UNORM_SRGB:
return RGBX8_SRGB_ANGLEX_to_R8G8B8X8_UNORM_SRGB;
default:
break;
}
break;
}
case GL_SR8_EXT:
{
switch (angleFormat)

Просмотреть файл

@ -1567,6 +1567,7 @@ enum
B8G8R8A8_UNORM,
B8G8R8A8_UNORM_SRGB,
B8G8R8X8_UNORM,
B8G8R8X8_UNORM_SRGB,
BC1_RGBA_UNORM_BLOCK,
BC1_RGBA_UNORM_SRGB_BLOCK,
BC1_RGB_UNORM_BLOCK,
@ -1702,6 +1703,7 @@ enum
R8G8B8A8_UNORM_SRGB,
R8G8B8A8_USCALED,
R8G8B8X8_UNORM,
R8G8B8X8_UNORM_SRGB,
R8G8B8_SINT,
R8G8B8_SNORM,
R8G8B8_SSCALED,

Просмотреть файл

@ -104,55 +104,55 @@ static constexpr uint8_t gDefaultMetallib[] = {
83, 8, 0, 2, 0, 1, 0, 2, 0, 1, 0, 69, 78, 68, 84, 146, 0, 0, 0,
78, 65, 77, 69, 29, 0, 114, 101, 97, 100, 70, 114, 111, 109, 66, 117, 102, 102, 101,
114, 84, 111, 70, 108, 111, 97, 116, 84, 101, 120, 116, 117, 114, 101, 0, 84, 89, 80,
69, 1, 0, 2, 72, 65, 83, 72, 32, 0, 31, 100, 83, 20, 150, 84, 4, 157, 43,
150, 94, 166, 48, 130, 32, 0, 138, 16, 111, 218, 59, 5, 33, 138, 245, 49, 20, 75,
22, 254, 195, 66, 77, 68, 83, 90, 8, 0, 128, 63, 0, 0, 0, 0, 0, 0, 79,
69, 1, 0, 2, 72, 65, 83, 72, 32, 0, 102, 93, 119, 65, 255, 85, 197, 62, 183,
88, 89, 134, 64, 225, 218, 174, 157, 221, 13, 98, 209, 12, 43, 133, 105, 69, 51, 174,
203, 80, 121, 247, 77, 68, 83, 90, 8, 0, 128, 63, 0, 0, 0, 0, 0, 0, 79,
70, 70, 84, 24, 0, 134, 1, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0,
0, 0, 64, 10, 1, 0, 0, 0, 0, 0, 86, 69, 82, 83, 8, 0, 2, 0, 1,
0, 2, 0, 1, 0, 69, 78, 68, 84, 144, 0, 0, 0, 78, 65, 77, 69, 27, 0,
114, 101, 97, 100, 70, 114, 111, 109, 66, 117, 102, 102, 101, 114, 84, 111, 73, 110, 116,
84, 101, 120, 116, 117, 114, 101, 0, 84, 89, 80, 69, 1, 0, 2, 72, 65, 83, 72,
32, 0, 226, 113, 147, 143, 167, 152, 141, 124, 30, 71, 89, 178, 221, 151, 182, 94, 90,
167, 240, 210, 239, 6, 128, 16, 150, 33, 200, 111, 90, 163, 150, 82, 77, 68, 83, 90,
32, 0, 255, 217, 60, 174, 237, 224, 237, 223, 17, 186, 162, 77, 233, 46, 137, 139, 48,
109, 80, 15, 87, 41, 116, 201, 45, 237, 239, 78, 61, 120, 177, 61, 77, 68, 83, 90,
8, 0, 80, 38, 0, 0, 0, 0, 0, 0, 79, 70, 70, 84, 24, 0, 191, 1, 0,
0, 0, 0, 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 192, 73, 1, 0, 0, 0,
0, 0, 86, 69, 82, 83, 8, 0, 2, 0, 1, 0, 2, 0, 1, 0, 69, 78, 68,
84, 145, 0, 0, 0, 78, 65, 77, 69, 28, 0, 114, 101, 97, 100, 70, 114, 111, 109,
66, 117, 102, 102, 101, 114, 84, 111, 85, 73, 110, 116, 84, 101, 120, 116, 117, 114, 101,
0, 84, 89, 80, 69, 1, 0, 2, 72, 65, 83, 72, 32, 0, 134, 143, 231, 251, 106,
178, 27, 81, 182, 105, 228, 144, 38, 94, 82, 250, 113, 243, 25, 142, 10, 191, 23, 254,
40, 171, 212, 185, 136, 189, 28, 41, 77, 68, 83, 90, 8, 0, 48, 38, 0, 0, 0,
0, 84, 89, 80, 69, 1, 0, 2, 72, 65, 83, 72, 32, 0, 9, 173, 26, 197, 137,
234, 102, 222, 240, 231, 72, 59, 62, 190, 47, 66, 225, 115, 26, 110, 184, 237, 41, 8,
177, 46, 31, 206, 223, 217, 188, 232, 77, 68, 83, 90, 8, 0, 48, 38, 0, 0, 0,
0, 0, 0, 79, 70, 70, 84, 24, 0, 248, 1, 0, 0, 0, 0, 0, 0, 112, 0,
0, 0, 0, 0, 0, 0, 16, 112, 1, 0, 0, 0, 0, 0, 86, 69, 82, 83, 8,
0, 2, 0, 1, 0, 2, 0, 1, 0, 69, 78, 68, 84, 147, 0, 0, 0, 78, 65,
77, 69, 30, 0, 119, 114, 105, 116, 101, 70, 114, 111, 109, 70, 108, 111, 97, 116, 84,
101, 120, 116, 117, 114, 101, 84, 111, 66, 117, 102, 102, 101, 114, 0, 84, 89, 80, 69,
1, 0, 2, 72, 65, 83, 72, 32, 0, 135, 162, 181, 200, 115, 40, 55, 131, 64, 174,
219, 235, 246, 178, 24, 198, 209, 57, 116, 149, 117, 48, 87, 195, 252, 157, 77, 167, 90,
147, 100, 125, 77, 68, 83, 90, 8, 0, 16, 50, 0, 0, 0, 0, 0, 0, 79, 70,
1, 0, 2, 72, 65, 83, 72, 32, 0, 242, 240, 124, 114, 35, 250, 104, 213, 127, 212,
59, 222, 252, 244, 171, 62, 253, 56, 38, 3, 230, 167, 177, 73, 109, 206, 67, 148, 18,
200, 64, 8, 77, 68, 83, 90, 8, 0, 16, 50, 0, 0, 0, 0, 0, 0, 79, 70,
70, 84, 24, 0, 49, 2, 0, 0, 0, 0, 0, 0, 120, 0, 0, 0, 0, 0, 0,
0, 64, 150, 1, 0, 0, 0, 0, 0, 86, 69, 82, 83, 8, 0, 2, 0, 1, 0,
2, 0, 1, 0, 69, 78, 68, 84, 145, 0, 0, 0, 78, 65, 77, 69, 28, 0, 119,
114, 105, 116, 101, 70, 114, 111, 109, 73, 110, 116, 84, 101, 120, 116, 117, 114, 101, 84,
111, 66, 117, 102, 102, 101, 114, 0, 84, 89, 80, 69, 1, 0, 2, 72, 65, 83, 72,
32, 0, 160, 144, 4, 144, 102, 171, 133, 63, 56, 72, 13, 222, 232, 127, 132, 79, 3,
145, 63, 93, 207, 189, 183, 26, 91, 53, 219, 27, 195, 122, 130, 97, 77, 68, 83, 90,
32, 0, 38, 79, 214, 51, 250, 127, 137, 108, 201, 58, 95, 69, 101, 147, 87, 224, 5,
69, 248, 148, 54, 236, 13, 165, 104, 211, 63, 5, 89, 110, 67, 103, 77, 68, 83, 90,
8, 0, 48, 44, 0, 0, 0, 0, 0, 0, 79, 70, 70, 84, 24, 0, 106, 2, 0,
0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 80, 200, 1, 0, 0, 0,
0, 0, 86, 69, 82, 83, 8, 0, 2, 0, 1, 0, 2, 0, 1, 0, 69, 78, 68,
84, 146, 0, 0, 0, 78, 65, 77, 69, 29, 0, 119, 114, 105, 116, 101, 70, 114, 111,
109, 85, 73, 110, 116, 84, 101, 120, 116, 117, 114, 101, 84, 111, 66, 117, 102, 102, 101,
114, 0, 84, 89, 80, 69, 1, 0, 2, 72, 65, 83, 72, 32, 0, 2, 101, 9, 119,
236, 189, 99, 120, 214, 225, 163, 157, 169, 122, 192, 204, 24, 109, 123, 142, 199, 126, 57,
61, 214, 26, 191, 111, 26, 128, 97, 37, 77, 68, 83, 90, 8, 0, 48, 44, 0, 0,
114, 0, 84, 89, 80, 69, 1, 0, 2, 72, 65, 83, 72, 32, 0, 164, 234, 160, 120,
29, 254, 51, 169, 205, 136, 90, 172, 122, 228, 128, 237, 201, 189, 120, 105, 137, 155, 215,
24, 1, 150, 99, 36, 111, 101, 205, 78, 77, 68, 83, 90, 8, 0, 48, 44, 0, 0,
0, 0, 0, 0, 79, 70, 70, 84, 24, 0, 163, 2, 0, 0, 0, 0, 0, 0, 136,
0, 0, 0, 0, 0, 0, 0, 128, 244, 1, 0, 0, 0, 0, 0, 86, 69, 82, 83,
8, 0, 2, 0, 1, 0, 2, 0, 1, 0, 69, 78, 68, 84, 146, 0, 0, 0, 78,
65, 77, 69, 29, 0, 99, 111, 110, 118, 101, 114, 116, 84, 111, 70, 108, 111, 97, 116,
86, 101, 114, 116, 101, 120, 70, 111, 114, 109, 97, 116, 67, 83, 0, 84, 89, 80, 69,
1, 0, 2, 72, 65, 83, 72, 32, 0, 194, 91, 244, 172, 16, 91, 91, 151, 222, 208,
236, 23, 240, 11, 213, 212, 3, 251, 132, 236, 248, 37, 189, 209, 18, 128, 163, 216, 102,
102, 110, 11, 77, 68, 83, 90, 8, 0, 112, 177, 0, 0, 0, 0, 0, 0, 79, 70,
1, 0, 2, 72, 65, 83, 72, 32, 0, 236, 205, 9, 12, 73, 1, 245, 158, 178, 133,
142, 134, 157, 38, 241, 251, 56, 142, 181, 242, 231, 218, 88, 131, 84, 71, 23, 170, 221,
56, 92, 162, 77, 68, 83, 90, 8, 0, 112, 177, 0, 0, 0, 0, 0, 0, 79, 70,
70, 84, 24, 0, 220, 2, 0, 0, 0, 0, 0, 0, 144, 0, 0, 0, 0, 0, 0,
0, 176, 32, 2, 0, 0, 0, 0, 0, 86, 69, 82, 83, 8, 0, 2, 0, 1, 0,
2, 0, 1, 0, 69, 78, 68, 84, 148, 0, 0, 0, 78, 65, 77, 69, 31, 0, 101,
@ -200,9 +200,9 @@ static constexpr uint8_t gDefaultMetallib[] = {
2, 0, 1, 0, 2, 0, 1, 0, 69, 78, 68, 84, 146, 0, 0, 0, 78, 65, 77,
69, 29, 0, 99, 111, 110, 118, 101, 114, 116, 84, 111, 70, 108, 111, 97, 116, 86, 101,
114, 116, 101, 120, 70, 111, 114, 109, 97, 116, 86, 83, 0, 84, 89, 80, 69, 1, 0,
0, 72, 65, 83, 72, 32, 0, 128, 23, 195, 63, 157, 8, 32, 211, 195, 250, 78, 249,
127, 223, 62, 50, 154, 219, 68, 72, 117, 112, 202, 42, 43, 101, 161, 218, 157, 43, 173,
204, 77, 68, 83, 90, 8, 0, 48, 177, 0, 0, 0, 0, 0, 0, 79, 70, 70, 84,
0, 72, 65, 83, 72, 32, 0, 163, 223, 185, 130, 244, 209, 161, 189, 27, 211, 21, 160,
249, 28, 44, 186, 139, 182, 141, 136, 44, 148, 56, 74, 113, 163, 176, 44, 33, 138, 26,
184, 77, 68, 83, 90, 8, 0, 48, 177, 0, 0, 0, 0, 0, 0, 79, 70, 70, 84,
24, 0, 147, 3, 0, 0, 0, 0, 0, 0, 200, 0, 0, 0, 0, 0, 0, 0, 176,
74, 3, 0, 0, 0, 0, 0, 86, 69, 82, 83, 8, 0, 2, 0, 1, 0, 2, 0,
1, 0, 69, 78, 68, 84, 148, 0, 0, 0, 78, 65, 77, 69, 31, 0, 101, 120, 112,
@ -4213,11 +4213,11 @@ static constexpr uint8_t gDefaultMetallib[] = {
6, 68, 40, 4, 1, 48, 108, 64, 128, 194, 16, 0, 24, 16, 3, 0, 5, 0, 0,
0, 91, 6, 32, 72, 135, 45, 67, 16, 164, 195, 150, 65, 8, 210, 97, 203, 48, 4,
233, 0, 0, 0, 0, 0, 97, 32, 0, 0, 1, 10, 0, 0, 19, 4, 96, 17, 11,
4, 0, 0, 82, 0, 0, 0, 36, 20, 68, 193, 148, 67, 73, 148, 69, 57, 14, 20,
231, 64, 121, 14, 148, 228, 64, 65, 6, 148, 100, 64, 177, 14, 148, 235, 64, 153, 14,
20, 119, 64, 105, 7, 20, 227, 64, 41, 14, 20, 242, 64, 9, 15, 148, 238, 64, 209,
14, 20, 175, 64, 81, 7, 148, 116, 64, 185, 10, 20, 168, 64, 73, 10, 20, 191, 64,
97, 7, 148, 117, 64, 177, 11, 20, 183, 64, 49, 11, 20, 70, 105, 20, 71, 121, 80,
4, 0, 0, 82, 0, 0, 0, 36, 20, 68, 193, 148, 67, 73, 148, 69, 65, 14, 148,
231, 64, 129, 14, 20, 229, 64, 65, 6, 148, 100, 64, 193, 14, 148, 236, 64, 169, 14,
148, 119, 64, 113, 7, 148, 227, 64, 49, 14, 20, 243, 64, 25, 15, 148, 239, 64, 225,
14, 148, 175, 64, 89, 7, 20, 117, 64, 193, 10, 148, 168, 64, 81, 10, 148, 191, 64,
105, 7, 20, 118, 64, 185, 11, 148, 183, 64, 57, 11, 20, 70, 105, 20, 71, 121, 80,
83, 16, 229, 83, 6, 37, 80, 8, 229, 81, 10, 229, 87, 12, 244, 204, 0, 140, 53,
0, 129, 64, 220, 88, 2, 16, 144, 93, 4, 37, 80, 6, 148, 207, 0, 204, 65, 116,
93, 135, 141, 69, 8, 1, 48, 140, 69, 16, 133, 49, 204, 65, 116, 155, 134, 141, 69,
@ -5061,9 +5061,9 @@ static constexpr uint8_t gDefaultMetallib[] = {
1, 48, 108, 64, 232, 193, 16, 0, 24, 16, 3, 0, 5, 0, 0, 0, 91, 6, 32,
72, 135, 45, 67, 16, 164, 195, 150, 65, 8, 210, 97, 203, 48, 4, 233, 0, 0, 0,
0, 0, 97, 32, 0, 0, 30, 4, 0, 0, 19, 4, 161, 16, 11, 4, 0, 0, 22,
0, 0, 0, 36, 20, 68, 193, 148, 67, 73, 148, 69, 1, 15, 148, 236, 64, 145, 14,
20, 228, 64, 249, 10, 20, 172, 64, 137, 10, 20, 165, 64, 249, 11, 148, 187, 64, 121,
11, 148, 179, 64, 97, 148, 70, 113, 148, 7, 53, 5, 65, 207, 12, 192, 88, 3, 16,
0, 0, 0, 36, 20, 68, 193, 148, 67, 73, 148, 69, 17, 15, 148, 237, 64, 161, 14,
148, 228, 64, 1, 11, 148, 172, 64, 145, 10, 148, 165, 64, 1, 14, 20, 188, 64, 129,
11, 20, 180, 64, 97, 148, 70, 113, 148, 7, 53, 5, 65, 207, 12, 192, 88, 3, 16,
8, 196, 141, 37, 0, 1, 117, 51, 0, 115, 16, 210, 117, 85, 115, 16, 146, 116, 85,
115, 16, 146, 36, 85, 180, 22, 65, 9, 148, 1, 0, 0, 0, 0, 241, 48, 0, 0,
29, 0, 0, 0, 34, 71, 200, 144, 81, 6, 68, 6, 21, 0, 0, 0, 95, 90, 84,
@ -5578,8 +5578,8 @@ static constexpr uint8_t gDefaultMetallib[] = {
0, 5, 0, 0, 0, 91, 6, 32, 72, 135, 45, 67, 16, 164, 195, 150, 65, 8, 210,
97, 203, 48, 4, 233, 0, 0, 0, 0, 0, 97, 32, 0, 0, 23, 4, 0, 0, 19,
4, 161, 16, 11, 4, 0, 0, 21, 0, 0, 0, 36, 20, 68, 193, 148, 67, 73, 148,
69, 25, 15, 20, 238, 64, 169, 14, 148, 230, 64, 17, 11, 148, 173, 64, 161, 10, 148,
166, 64, 17, 14, 20, 189, 64, 145, 11, 20, 181, 64, 97, 148, 70, 113, 148, 7, 61,
69, 41, 15, 20, 239, 64, 185, 14, 20, 231, 64, 25, 11, 20, 174, 64, 169, 10, 20,
167, 64, 25, 14, 148, 189, 64, 153, 11, 148, 181, 64, 97, 148, 70, 113, 148, 7, 61,
51, 0, 99, 13, 64, 32, 16, 55, 150, 0, 4, 212, 205, 0, 204, 65, 72, 215, 85,
205, 65, 72, 210, 85, 205, 65, 72, 146, 84, 209, 90, 4, 37, 80, 6, 0, 0, 0,
241, 48, 0, 0, 29, 0, 0, 0, 34, 71, 200, 144, 81, 6, 68, 6, 21, 0, 0,
@ -6150,10 +6150,10 @@ static constexpr uint8_t gDefaultMetallib[] = {
216, 128, 96, 133, 34, 0, 48, 32, 6, 5, 0, 0, 0, 91, 6, 32, 216, 135, 45,
67, 16, 236, 195, 150, 65, 8, 246, 97, 203, 48, 4, 251, 0, 0, 0, 0, 0, 97,
32, 0, 0, 193, 4, 0, 0, 19, 4, 98, 16, 11, 4, 0, 0, 42, 0, 0, 0,
36, 40, 199, 129, 226, 28, 40, 207, 129, 146, 28, 40, 200, 128, 146, 12, 40, 214, 129,
114, 29, 40, 211, 129, 226, 14, 40, 145, 210, 14, 40, 198, 129, 82, 28, 40, 228, 129,
18, 30, 40, 221, 129, 162, 29, 40, 94, 129, 162, 14, 40, 233, 128, 114, 21, 40, 73,
129, 226, 23, 40, 236, 128, 178, 14, 40, 118, 129, 98, 22, 40, 137, 178, 40, 140, 210,
36, 40, 200, 129, 242, 28, 40, 208, 129, 162, 28, 40, 200, 128, 146, 12, 40, 216, 129,
146, 29, 40, 213, 129, 242, 14, 40, 145, 226, 14, 40, 199, 129, 98, 28, 40, 230, 129,
50, 30, 40, 223, 129, 194, 29, 40, 95, 129, 178, 14, 40, 234, 128, 130, 21, 40, 74,
129, 242, 23, 40, 237, 128, 194, 14, 40, 119, 129, 114, 22, 40, 137, 178, 40, 140, 210,
40, 142, 242, 160, 70, 65, 148, 69, 1, 114, 148, 64, 41, 148, 79, 49, 20, 95, 97,
20, 32, 79, 33, 148, 7, 245, 202, 160, 4, 138, 128, 128, 99, 17, 66, 0, 12, 244,
25, 35, 0, 65, 16, 132, 191, 49, 2, 16, 4, 253, 59, 12, 198, 8, 64, 16, 132,
@ -6780,8 +6780,8 @@ static constexpr uint8_t gDefaultMetallib[] = {
192, 176, 1, 65, 10, 69, 0, 96, 64, 12, 0, 5, 0, 0, 0, 91, 6, 32, 152,
135, 45, 67, 16, 204, 195, 150, 65, 8, 230, 97, 203, 48, 4, 243, 0, 0, 0, 0,
0, 97, 32, 0, 0, 46, 5, 0, 0, 19, 4, 181, 16, 11, 4, 0, 0, 15, 0,
0, 0, 36, 212, 64, 1, 15, 148, 236, 64, 65, 14, 148, 175, 64, 193, 10, 20, 165,
64, 249, 11, 148, 187, 64, 57, 11, 148, 68, 89, 20, 70, 105, 20, 71, 121, 80, 83,
0, 0, 36, 212, 64, 17, 15, 148, 237, 64, 73, 14, 20, 176, 64, 201, 10, 148, 165,
64, 1, 14, 20, 188, 64, 65, 11, 148, 68, 89, 20, 70, 105, 20, 71, 121, 80, 83,
16, 244, 204, 0, 208, 55, 2, 48, 3, 64, 226, 28, 195, 150, 89, 36, 151, 64, 17,
148, 1, 0, 0, 0, 241, 48, 0, 0, 40, 0, 0, 0, 34, 71, 200, 144, 81, 6,
132, 6, 22, 0, 0, 0, 95, 90, 84, 83, 49, 54, 87, 114, 105, 116, 101, 80, 105,
@ -7375,8 +7375,8 @@ static constexpr uint8_t gDefaultMetallib[] = {
1, 97, 10, 65, 0, 12, 27, 16, 165, 48, 4, 192, 176, 1, 65, 10, 69, 0, 96,
64, 12, 0, 5, 0, 0, 0, 91, 6, 32, 152, 135, 45, 67, 16, 204, 195, 150, 65,
8, 230, 97, 203, 48, 4, 243, 0, 0, 0, 0, 0, 97, 32, 0, 0, 46, 5, 0,
0, 19, 4, 181, 16, 11, 4, 0, 0, 15, 0, 0, 0, 36, 212, 64, 25, 15, 20,
238, 64, 105, 14, 20, 177, 64, 217, 10, 148, 166, 64, 17, 14, 20, 189, 64, 81, 11,
0, 19, 4, 181, 16, 11, 4, 0, 0, 15, 0, 0, 0, 36, 212, 64, 41, 15, 20,
239, 64, 113, 14, 148, 177, 64, 225, 10, 20, 167, 64, 25, 14, 148, 189, 64, 89, 11,
148, 68, 89, 20, 70, 105, 20, 71, 121, 80, 83, 16, 244, 204, 0, 208, 55, 2, 48,
3, 64, 226, 28, 195, 150, 89, 36, 151, 64, 17, 148, 1, 0, 0, 0, 241, 48, 0,
0, 40, 0, 0, 0, 34, 71, 200, 144, 81, 6, 132, 6, 22, 0, 0, 0, 95, 90,
@ -7961,19 +7961,19 @@ static constexpr uint8_t gDefaultMetallib[] = {
12, 130, 193, 179, 6, 135, 81, 16, 179, 4, 2, 6, 196, 0, 0, 0, 2, 0, 0,
0, 91, 134, 32, 200, 5, 0, 0, 0, 0, 0, 0, 0, 97, 32, 0, 0, 32, 39,
0, 0, 19, 4, 42, 18, 11, 4, 0, 0, 97, 0, 0, 0, 4, 148, 66, 49, 148,
67, 73, 148, 69, 105, 20, 71, 121, 148, 255, 67, 1, 50, 84, 66, 33, 15, 148, 240,
64, 25, 15, 20, 240, 64, 49, 15, 20, 241, 64, 233, 14, 20, 237, 64, 225, 14, 148,
236, 64, 249, 14, 148, 237, 64, 177, 14, 148, 233, 64, 169, 14, 20, 233, 64, 193, 14,
20, 234, 64, 113, 14, 148, 228, 64, 105, 14, 20, 228, 64, 129, 14, 20, 229, 64, 25,
11, 20, 176, 64, 17, 11, 148, 175, 64, 33, 11, 148, 176, 64, 225, 10, 148, 172, 64,
217, 10, 20, 172, 64, 233, 10, 20, 173, 64, 169, 10, 20, 169, 64, 161, 10, 148, 168,
64, 177, 10, 148, 169, 64, 113, 10, 148, 165, 64, 105, 10, 20, 165, 64, 121, 10, 20,
166, 64, 25, 14, 20, 224, 64, 17, 14, 148, 191, 64, 33, 14, 148, 224, 64, 217, 11,
20, 188, 64, 209, 11, 148, 187, 64, 225, 11, 148, 188, 64, 153, 11, 20, 184, 64, 145,
11, 148, 183, 64, 161, 11, 148, 184, 64, 89, 11, 20, 180, 64, 81, 11, 148, 179, 64,
97, 11, 148, 180, 64, 241, 10, 148, 171, 64, 129, 10, 148, 164, 64, 241, 11, 20, 187,
64, 113, 11, 20, 179, 64, 233, 11, 148, 186, 64, 105, 11, 148, 178, 64, 9, 10, 20,
162, 64, 25, 10, 20, 163, 0, 81, 5, 65, 93, 9, 20, 65, 25, 208, 55, 3, 48,
67, 73, 148, 69, 105, 20, 71, 121, 148, 255, 67, 1, 50, 84, 66, 49, 15, 148, 241,
64, 41, 15, 20, 241, 64, 65, 15, 20, 242, 64, 249, 14, 20, 238, 64, 241, 14, 148,
237, 64, 9, 15, 148, 238, 64, 193, 14, 148, 234, 64, 185, 14, 20, 234, 64, 209, 14,
20, 235, 64, 121, 14, 20, 229, 64, 113, 14, 148, 228, 64, 137, 14, 148, 229, 64, 33,
11, 148, 176, 64, 25, 11, 20, 176, 64, 41, 11, 20, 177, 64, 233, 10, 20, 173, 64,
225, 10, 148, 172, 64, 241, 10, 148, 173, 64, 177, 10, 148, 169, 64, 169, 10, 20, 169,
64, 185, 10, 20, 170, 64, 121, 10, 20, 166, 64, 113, 10, 148, 165, 64, 129, 10, 148,
166, 64, 33, 14, 148, 224, 64, 25, 14, 20, 224, 64, 41, 14, 20, 225, 64, 225, 11,
148, 188, 64, 217, 11, 20, 188, 64, 233, 11, 20, 189, 64, 161, 11, 148, 184, 64, 153,
11, 20, 184, 64, 169, 11, 20, 185, 64, 97, 11, 148, 180, 64, 89, 11, 20, 180, 64,
105, 11, 20, 181, 64, 249, 10, 20, 172, 64, 137, 10, 20, 165, 64, 249, 11, 148, 187,
64, 121, 11, 148, 179, 64, 241, 11, 20, 187, 64, 113, 11, 20, 179, 64, 17, 10, 148,
162, 64, 33, 10, 148, 163, 0, 81, 5, 65, 93, 9, 20, 65, 25, 208, 55, 3, 48,
7, 177, 64, 144, 51, 7, 177, 44, 144, 51, 7, 177, 44, 139, 51, 7, 1, 57, 205,
66, 225, 12, 192, 88, 67, 146, 36, 99, 13, 65, 16, 140, 53, 128, 224, 255, 255, 255,
0, 130, 255, 255, 255, 3, 8, 254, 255, 255, 15, 20, 141, 17, 128, 36, 8, 226, 219,
@ -11968,18 +11968,18 @@ static constexpr uint8_t gDefaultMetallib[] = {
32, 0, 0, 4, 0, 0, 0, 19, 4, 193, 136, 1, 82, 196, 32, 24, 60, 104, 64,
12, 66, 128, 0, 97, 32, 0, 0, 56, 39, 0, 0, 19, 4, 42, 18, 11, 4, 0,
0, 97, 0, 0, 0, 4, 148, 66, 49, 148, 67, 73, 148, 69, 105, 20, 71, 121, 148,
255, 67, 1, 50, 84, 66, 33, 15, 148, 240, 64, 25, 15, 20, 240, 64, 49, 15, 20,
241, 64, 233, 14, 20, 237, 64, 225, 14, 148, 236, 64, 249, 14, 148, 237, 64, 177, 14,
148, 233, 64, 169, 14, 20, 233, 64, 193, 14, 20, 234, 64, 113, 14, 148, 228, 64, 105,
14, 20, 228, 64, 129, 14, 20, 229, 64, 25, 11, 20, 176, 64, 17, 11, 148, 175, 64,
33, 11, 148, 176, 64, 225, 10, 148, 172, 64, 217, 10, 20, 172, 64, 233, 10, 20, 173,
64, 169, 10, 20, 169, 64, 161, 10, 148, 168, 64, 177, 10, 148, 169, 64, 113, 10, 148,
165, 64, 105, 10, 20, 165, 64, 121, 10, 20, 166, 64, 25, 14, 20, 224, 64, 17, 14,
148, 191, 64, 33, 14, 148, 224, 64, 217, 11, 20, 188, 64, 209, 11, 148, 187, 64, 225,
11, 148, 188, 64, 153, 11, 20, 184, 64, 145, 11, 148, 183, 64, 161, 11, 148, 184, 64,
89, 11, 20, 180, 64, 81, 11, 148, 179, 64, 97, 11, 148, 180, 64, 241, 10, 148, 171,
64, 129, 10, 148, 164, 64, 241, 11, 20, 187, 64, 113, 11, 20, 179, 64, 233, 11, 148,
186, 64, 105, 11, 148, 178, 64, 9, 10, 20, 162, 64, 25, 10, 20, 163, 0, 81, 5,
255, 67, 1, 50, 84, 66, 49, 15, 148, 241, 64, 41, 15, 20, 241, 64, 65, 15, 20,
242, 64, 249, 14, 20, 238, 64, 241, 14, 148, 237, 64, 9, 15, 148, 238, 64, 193, 14,
148, 234, 64, 185, 14, 20, 234, 64, 209, 14, 20, 235, 64, 121, 14, 20, 229, 64, 113,
14, 148, 228, 64, 137, 14, 148, 229, 64, 33, 11, 148, 176, 64, 25, 11, 20, 176, 64,
41, 11, 20, 177, 64, 233, 10, 20, 173, 64, 225, 10, 148, 172, 64, 241, 10, 148, 173,
64, 177, 10, 148, 169, 64, 169, 10, 20, 169, 64, 185, 10, 20, 170, 64, 121, 10, 20,
166, 64, 113, 10, 148, 165, 64, 129, 10, 148, 166, 64, 33, 14, 148, 224, 64, 25, 14,
20, 224, 64, 41, 14, 20, 225, 64, 225, 11, 148, 188, 64, 217, 11, 20, 188, 64, 233,
11, 20, 189, 64, 161, 11, 148, 184, 64, 153, 11, 20, 184, 64, 169, 11, 20, 185, 64,
97, 11, 148, 180, 64, 89, 11, 20, 180, 64, 105, 11, 20, 181, 64, 249, 10, 20, 172,
64, 137, 10, 20, 165, 64, 249, 11, 148, 187, 64, 121, 11, 148, 179, 64, 241, 11, 20,
187, 64, 113, 11, 20, 179, 64, 17, 10, 148, 162, 64, 33, 10, 148, 163, 0, 81, 5,
65, 93, 9, 20, 65, 25, 208, 55, 3, 48, 7, 177, 64, 144, 51, 7, 177, 44, 144,
51, 7, 177, 44, 139, 51, 7, 1, 57, 205, 66, 225, 12, 192, 88, 67, 146, 36, 99,
13, 65, 16, 140, 53, 128, 224, 255, 255, 255, 0, 130, 255, 255, 255, 3, 8, 254, 255,

Просмотреть файл

@ -104,55 +104,55 @@ static constexpr uint8_t gDefaultMetallib[] = {
83, 8, 0, 2, 0, 1, 0, 2, 0, 1, 0, 69, 78, 68, 84, 146, 0, 0, 0,
78, 65, 77, 69, 29, 0, 114, 101, 97, 100, 70, 114, 111, 109, 66, 117, 102, 102, 101,
114, 84, 111, 70, 108, 111, 97, 116, 84, 101, 120, 116, 117, 114, 101, 0, 84, 89, 80,
69, 1, 0, 2, 72, 65, 83, 72, 32, 0, 3, 247, 111, 47, 120, 82, 188, 99, 93,
124, 71, 41, 130, 218, 253, 148, 131, 44, 162, 242, 121, 24, 254, 99, 73, 234, 26, 73,
132, 189, 37, 61, 77, 68, 83, 90, 8, 0, 144, 63, 0, 0, 0, 0, 0, 0, 79,
69, 1, 0, 2, 72, 65, 83, 72, 32, 0, 34, 23, 160, 186, 10, 226, 191, 209, 225,
90, 96, 92, 73, 151, 97, 46, 231, 236, 189, 86, 224, 224, 144, 3, 170, 123, 166, 43,
18, 211, 165, 219, 77, 68, 83, 90, 8, 0, 144, 63, 0, 0, 0, 0, 0, 0, 79,
70, 70, 84, 24, 0, 134, 1, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0,
0, 0, 112, 12, 1, 0, 0, 0, 0, 0, 86, 69, 82, 83, 8, 0, 2, 0, 1,
0, 2, 0, 1, 0, 69, 78, 68, 84, 144, 0, 0, 0, 78, 65, 77, 69, 27, 0,
114, 101, 97, 100, 70, 114, 111, 109, 66, 117, 102, 102, 101, 114, 84, 111, 73, 110, 116,
84, 101, 120, 116, 117, 114, 101, 0, 84, 89, 80, 69, 1, 0, 2, 72, 65, 83, 72,
32, 0, 79, 143, 184, 248, 223, 235, 13, 144, 112, 226, 132, 206, 41, 252, 231, 254, 192,
95, 247, 218, 148, 235, 82, 7, 141, 113, 91, 225, 144, 231, 26, 37, 77, 68, 83, 90,
32, 0, 176, 128, 34, 4, 246, 214, 56, 13, 167, 130, 64, 225, 221, 158, 178, 93, 158,
110, 44, 87, 235, 103, 3, 24, 33, 230, 6, 225, 125, 37, 68, 76, 77, 68, 83, 90,
8, 0, 80, 38, 0, 0, 0, 0, 0, 0, 79, 70, 70, 84, 24, 0, 191, 1, 0,
0, 0, 0, 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 76, 1, 0, 0, 0,
0, 0, 86, 69, 82, 83, 8, 0, 2, 0, 1, 0, 2, 0, 1, 0, 69, 78, 68,
84, 145, 0, 0, 0, 78, 65, 77, 69, 28, 0, 114, 101, 97, 100, 70, 114, 111, 109,
66, 117, 102, 102, 101, 114, 84, 111, 85, 73, 110, 116, 84, 101, 120, 116, 117, 114, 101,
0, 84, 89, 80, 69, 1, 0, 2, 72, 65, 83, 72, 32, 0, 55, 230, 91, 228, 100,
162, 163, 103, 58, 232, 42, 108, 85, 215, 109, 254, 57, 31, 46, 206, 203, 242, 107, 11,
200, 213, 180, 179, 108, 98, 81, 158, 77, 68, 83, 90, 8, 0, 64, 38, 0, 0, 0,
0, 84, 89, 80, 69, 1, 0, 2, 72, 65, 83, 72, 32, 0, 155, 117, 47, 94, 111,
202, 76, 183, 25, 129, 110, 76, 149, 176, 204, 163, 90, 128, 208, 97, 149, 126, 189, 130,
211, 157, 204, 147, 49, 0, 46, 122, 77, 68, 83, 90, 8, 0, 64, 38, 0, 0, 0,
0, 0, 0, 79, 70, 70, 84, 24, 0, 248, 1, 0, 0, 0, 0, 0, 0, 112, 0,
0, 0, 0, 0, 0, 0, 80, 114, 1, 0, 0, 0, 0, 0, 86, 69, 82, 83, 8,
0, 2, 0, 1, 0, 2, 0, 1, 0, 69, 78, 68, 84, 147, 0, 0, 0, 78, 65,
77, 69, 30, 0, 119, 114, 105, 116, 101, 70, 114, 111, 109, 70, 108, 111, 97, 116, 84,
101, 120, 116, 117, 114, 101, 84, 111, 66, 117, 102, 102, 101, 114, 0, 84, 89, 80, 69,
1, 0, 2, 72, 65, 83, 72, 32, 0, 150, 61, 247, 133, 247, 193, 42, 101, 104, 168,
71, 162, 115, 94, 100, 82, 228, 211, 134, 150, 34, 221, 54, 31, 208, 194, 157, 193, 238,
252, 86, 233, 77, 68, 83, 90, 8, 0, 32, 50, 0, 0, 0, 0, 0, 0, 79, 70,
1, 0, 2, 72, 65, 83, 72, 32, 0, 26, 127, 11, 65, 134, 179, 176, 29, 227, 240,
192, 139, 7, 149, 125, 239, 80, 7, 146, 101, 49, 76, 223, 37, 139, 44, 87, 82, 173,
118, 104, 37, 77, 68, 83, 90, 8, 0, 32, 50, 0, 0, 0, 0, 0, 0, 79, 70,
70, 84, 24, 0, 49, 2, 0, 0, 0, 0, 0, 0, 120, 0, 0, 0, 0, 0, 0,
0, 144, 152, 1, 0, 0, 0, 0, 0, 86, 69, 82, 83, 8, 0, 2, 0, 1, 0,
2, 0, 1, 0, 69, 78, 68, 84, 145, 0, 0, 0, 78, 65, 77, 69, 28, 0, 119,
114, 105, 116, 101, 70, 114, 111, 109, 73, 110, 116, 84, 101, 120, 116, 117, 114, 101, 84,
111, 66, 117, 102, 102, 101, 114, 0, 84, 89, 80, 69, 1, 0, 2, 72, 65, 83, 72,
32, 0, 109, 82, 141, 35, 62, 132, 127, 229, 237, 204, 26, 114, 229, 173, 116, 147, 11,
151, 133, 123, 209, 171, 74, 50, 10, 163, 117, 142, 255, 144, 198, 121, 77, 68, 83, 90,
32, 0, 138, 188, 255, 226, 53, 44, 237, 54, 197, 23, 137, 4, 186, 79, 229, 135, 144,
120, 197, 128, 251, 200, 206, 116, 2, 1, 158, 58, 250, 44, 86, 108, 77, 68, 83, 90,
8, 0, 48, 44, 0, 0, 0, 0, 0, 0, 79, 70, 70, 84, 24, 0, 106, 2, 0,
0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 176, 202, 1, 0, 0, 0,
0, 0, 86, 69, 82, 83, 8, 0, 2, 0, 1, 0, 2, 0, 1, 0, 69, 78, 68,
84, 146, 0, 0, 0, 78, 65, 77, 69, 29, 0, 119, 114, 105, 116, 101, 70, 114, 111,
109, 85, 73, 110, 116, 84, 101, 120, 116, 117, 114, 101, 84, 111, 66, 117, 102, 102, 101,
114, 0, 84, 89, 80, 69, 1, 0, 2, 72, 65, 83, 72, 32, 0, 249, 11, 222, 7,
44, 65, 116, 166, 113, 139, 19, 209, 44, 126, 198, 73, 29, 180, 10, 180, 201, 202, 73,
142, 133, 164, 177, 9, 146, 203, 242, 114, 77, 68, 83, 90, 8, 0, 64, 44, 0, 0,
114, 0, 84, 89, 80, 69, 1, 0, 2, 72, 65, 83, 72, 32, 0, 246, 150, 26, 25,
252, 190, 227, 12, 121, 34, 183, 14, 243, 247, 223, 208, 221, 77, 205, 85, 232, 122, 41,
34, 128, 212, 128, 188, 110, 75, 249, 11, 77, 68, 83, 90, 8, 0, 64, 44, 0, 0,
0, 0, 0, 0, 79, 70, 70, 84, 24, 0, 163, 2, 0, 0, 0, 0, 0, 0, 136,
0, 0, 0, 0, 0, 0, 0, 224, 246, 1, 0, 0, 0, 0, 0, 86, 69, 82, 83,
8, 0, 2, 0, 1, 0, 2, 0, 1, 0, 69, 78, 68, 84, 146, 0, 0, 0, 78,
65, 77, 69, 29, 0, 99, 111, 110, 118, 101, 114, 116, 84, 111, 70, 108, 111, 97, 116,
86, 101, 114, 116, 101, 120, 70, 111, 114, 109, 97, 116, 67, 83, 0, 84, 89, 80, 69,
1, 0, 2, 72, 65, 83, 72, 32, 0, 62, 26, 73, 175, 214, 92, 91, 40, 69, 48,
239, 239, 158, 195, 148, 43, 79, 157, 201, 19, 164, 64, 115, 194, 102, 157, 74, 185, 201,
122, 233, 150, 77, 68, 83, 90, 8, 0, 128, 177, 0, 0, 0, 0, 0, 0, 79, 70,
1, 0, 2, 72, 65, 83, 72, 32, 0, 222, 108, 36, 173, 77, 117, 183, 208, 198, 107,
51, 201, 245, 89, 217, 60, 129, 118, 26, 110, 69, 245, 102, 253, 238, 132, 110, 93, 209,
141, 14, 38, 77, 68, 83, 90, 8, 0, 128, 177, 0, 0, 0, 0, 0, 0, 79, 70,
70, 84, 24, 0, 220, 2, 0, 0, 0, 0, 0, 0, 144, 0, 0, 0, 0, 0, 0,
0, 32, 35, 2, 0, 0, 0, 0, 0, 86, 69, 82, 83, 8, 0, 2, 0, 1, 0,
2, 0, 1, 0, 69, 78, 68, 84, 148, 0, 0, 0, 78, 65, 77, 69, 31, 0, 101,
@ -200,9 +200,9 @@ static constexpr uint8_t gDefaultMetallib[] = {
2, 0, 1, 0, 2, 0, 1, 0, 69, 78, 68, 84, 146, 0, 0, 0, 78, 65, 77,
69, 29, 0, 99, 111, 110, 118, 101, 114, 116, 84, 111, 70, 108, 111, 97, 116, 86, 101,
114, 116, 101, 120, 70, 111, 114, 109, 97, 116, 86, 83, 0, 84, 89, 80, 69, 1, 0,
0, 72, 65, 83, 72, 32, 0, 139, 106, 23, 4, 159, 118, 215, 226, 55, 115, 243, 29,
126, 109, 64, 174, 207, 167, 185, 6, 99, 102, 183, 150, 159, 227, 137, 15, 10, 20, 170,
22, 77, 68, 83, 90, 8, 0, 64, 177, 0, 0, 0, 0, 0, 0, 79, 70, 70, 84,
0, 72, 65, 83, 72, 32, 0, 79, 25, 247, 87, 229, 18, 171, 179, 116, 96, 113, 105,
79, 103, 221, 10, 29, 84, 196, 255, 140, 108, 242, 107, 152, 51, 194, 244, 136, 187, 9,
211, 77, 68, 83, 90, 8, 0, 64, 177, 0, 0, 0, 0, 0, 0, 79, 70, 70, 84,
24, 0, 147, 3, 0, 0, 0, 0, 0, 0, 200, 0, 0, 0, 0, 0, 0, 0, 96,
77, 3, 0, 0, 0, 0, 0, 86, 69, 82, 83, 8, 0, 2, 0, 1, 0, 2, 0,
1, 0, 69, 78, 68, 84, 148, 0, 0, 0, 78, 65, 77, 69, 31, 0, 101, 120, 112,
@ -4243,11 +4243,11 @@ static constexpr uint8_t gDefaultMetallib[] = {
40, 4, 1, 48, 108, 64, 128, 194, 16, 0, 24, 16, 3, 0, 5, 0, 0, 0, 91,
6, 32, 72, 135, 45, 67, 16, 164, 195, 150, 65, 8, 210, 97, 203, 48, 4, 233, 0,
0, 0, 0, 0, 97, 32, 0, 0, 1, 10, 0, 0, 19, 4, 96, 17, 11, 4, 0,
0, 82, 0, 0, 0, 36, 20, 68, 193, 148, 67, 73, 148, 69, 57, 14, 20, 231, 64,
121, 14, 148, 228, 64, 65, 6, 148, 100, 64, 177, 14, 148, 235, 64, 153, 14, 20, 119,
64, 105, 7, 20, 227, 64, 41, 14, 20, 242, 64, 9, 15, 148, 238, 64, 209, 14, 20,
175, 64, 81, 7, 148, 116, 64, 185, 10, 20, 168, 64, 73, 10, 20, 191, 64, 97, 7,
148, 117, 64, 177, 11, 20, 183, 64, 49, 11, 20, 70, 105, 20, 71, 121, 80, 83, 16,
0, 82, 0, 0, 0, 36, 20, 68, 193, 148, 67, 73, 148, 69, 65, 14, 148, 231, 64,
129, 14, 20, 229, 64, 65, 6, 148, 100, 64, 193, 14, 148, 236, 64, 169, 14, 148, 119,
64, 113, 7, 148, 227, 64, 49, 14, 20, 243, 64, 25, 15, 148, 239, 64, 225, 14, 148,
175, 64, 89, 7, 20, 117, 64, 193, 10, 148, 168, 64, 81, 10, 148, 191, 64, 105, 7,
20, 118, 64, 185, 11, 148, 183, 64, 57, 11, 20, 70, 105, 20, 71, 121, 80, 83, 16,
229, 83, 6, 37, 80, 8, 229, 81, 10, 229, 87, 12, 244, 204, 0, 140, 53, 0, 129,
64, 220, 88, 2, 16, 144, 93, 4, 37, 80, 6, 148, 207, 0, 204, 65, 116, 93, 135,
141, 69, 8, 1, 48, 140, 69, 16, 133, 49, 204, 65, 116, 155, 134, 141, 69, 0, 129,
@ -5092,8 +5092,8 @@ static constexpr uint8_t gDefaultMetallib[] = {
193, 16, 0, 24, 16, 3, 0, 5, 0, 0, 0, 91, 6, 32, 72, 135, 45, 67, 16,
164, 195, 150, 65, 8, 210, 97, 203, 48, 4, 233, 0, 0, 0, 0, 0, 97, 32, 0,
0, 30, 4, 0, 0, 19, 4, 161, 16, 11, 4, 0, 0, 22, 0, 0, 0, 36, 20,
68, 193, 148, 67, 73, 148, 69, 1, 15, 148, 236, 64, 145, 14, 20, 228, 64, 249, 10,
20, 172, 64, 137, 10, 20, 165, 64, 249, 11, 148, 187, 64, 121, 11, 148, 179, 64, 97,
68, 193, 148, 67, 73, 148, 69, 17, 15, 148, 237, 64, 161, 14, 148, 228, 64, 1, 11,
148, 172, 64, 145, 10, 148, 165, 64, 1, 14, 20, 188, 64, 129, 11, 20, 180, 64, 97,
148, 70, 113, 148, 7, 53, 5, 65, 207, 12, 192, 88, 3, 16, 8, 196, 141, 37, 0,
1, 117, 51, 0, 115, 16, 210, 117, 85, 115, 16, 146, 116, 85, 115, 16, 146, 36, 85,
180, 22, 65, 9, 148, 1, 0, 0, 0, 0, 241, 48, 0, 0, 29, 0, 0, 0, 34,
@ -5609,8 +5609,8 @@ static constexpr uint8_t gDefaultMetallib[] = {
5, 0, 0, 0, 91, 6, 32, 72, 135, 45, 67, 16, 164, 195, 150, 65, 8, 210, 97,
203, 48, 4, 233, 0, 0, 0, 0, 0, 97, 32, 0, 0, 23, 4, 0, 0, 19, 4,
161, 16, 11, 4, 0, 0, 21, 0, 0, 0, 36, 20, 68, 193, 148, 67, 73, 148, 69,
25, 15, 20, 238, 64, 169, 14, 148, 230, 64, 17, 11, 148, 173, 64, 161, 10, 148, 166,
64, 17, 14, 20, 189, 64, 145, 11, 20, 181, 64, 97, 148, 70, 113, 148, 7, 61, 51,
41, 15, 20, 239, 64, 185, 14, 20, 231, 64, 25, 11, 20, 174, 64, 169, 10, 20, 167,
64, 25, 14, 148, 189, 64, 153, 11, 148, 181, 64, 97, 148, 70, 113, 148, 7, 61, 51,
0, 99, 13, 64, 32, 16, 55, 150, 0, 4, 212, 205, 0, 204, 65, 72, 215, 85, 205,
65, 72, 210, 85, 205, 65, 72, 146, 84, 209, 90, 4, 37, 80, 6, 0, 0, 0, 241,
48, 0, 0, 29, 0, 0, 0, 34, 71, 200, 144, 81, 6, 68, 6, 21, 0, 0, 0,
@ -6181,10 +6181,10 @@ static constexpr uint8_t gDefaultMetallib[] = {
134, 13, 136, 86, 24, 2, 96, 216, 128, 96, 133, 34, 0, 48, 32, 6, 5, 0, 0,
0, 91, 6, 32, 216, 135, 45, 67, 16, 236, 195, 150, 65, 8, 246, 97, 203, 48, 4,
251, 0, 0, 0, 0, 0, 97, 32, 0, 0, 193, 4, 0, 0, 19, 4, 98, 16, 11,
4, 0, 0, 42, 0, 0, 0, 36, 40, 199, 129, 226, 28, 40, 207, 129, 146, 28, 40,
200, 128, 146, 12, 40, 214, 129, 114, 29, 40, 211, 129, 226, 14, 40, 145, 210, 14, 40,
198, 129, 82, 28, 40, 228, 129, 18, 30, 40, 221, 129, 162, 29, 40, 94, 129, 162, 14,
40, 233, 128, 114, 21, 40, 73, 129, 226, 23, 40, 236, 128, 178, 14, 40, 118, 129, 98,
4, 0, 0, 42, 0, 0, 0, 36, 40, 200, 129, 242, 28, 40, 208, 129, 162, 28, 40,
200, 128, 146, 12, 40, 216, 129, 146, 29, 40, 213, 129, 242, 14, 40, 145, 226, 14, 40,
199, 129, 98, 28, 40, 230, 129, 50, 30, 40, 223, 129, 194, 29, 40, 95, 129, 178, 14,
40, 234, 128, 130, 21, 40, 74, 129, 242, 23, 40, 237, 128, 194, 14, 40, 119, 129, 114,
22, 40, 137, 178, 40, 140, 210, 40, 142, 242, 160, 70, 65, 148, 69, 1, 114, 148, 64,
41, 148, 79, 49, 20, 95, 97, 20, 32, 79, 33, 148, 7, 245, 202, 160, 4, 138, 128,
128, 99, 17, 66, 0, 12, 244, 25, 35, 0, 65, 16, 132, 191, 49, 2, 16, 4, 253,
@ -6812,8 +6812,8 @@ static constexpr uint8_t gDefaultMetallib[] = {
65, 0, 12, 27, 16, 165, 48, 4, 192, 176, 1, 65, 10, 69, 0, 96, 64, 12, 0,
5, 0, 0, 0, 91, 6, 32, 152, 135, 45, 67, 16, 204, 195, 150, 65, 8, 230, 97,
203, 48, 4, 243, 0, 0, 0, 0, 0, 97, 32, 0, 0, 46, 5, 0, 0, 19, 4,
181, 16, 11, 4, 0, 0, 15, 0, 0, 0, 36, 212, 64, 1, 15, 148, 236, 64, 65,
14, 148, 175, 64, 193, 10, 20, 165, 64, 249, 11, 148, 187, 64, 57, 11, 148, 68, 89,
181, 16, 11, 4, 0, 0, 15, 0, 0, 0, 36, 212, 64, 17, 15, 148, 237, 64, 73,
14, 20, 176, 64, 201, 10, 148, 165, 64, 1, 14, 20, 188, 64, 65, 11, 148, 68, 89,
20, 70, 105, 20, 71, 121, 80, 83, 16, 244, 204, 0, 208, 55, 2, 48, 3, 64, 226,
28, 195, 150, 89, 36, 151, 64, 17, 148, 1, 0, 0, 0, 241, 48, 0, 0, 40, 0,
0, 0, 34, 71, 200, 144, 81, 6, 132, 6, 22, 0, 0, 0, 95, 90, 84, 83, 49,
@ -7408,8 +7408,8 @@ static constexpr uint8_t gDefaultMetallib[] = {
192, 176, 1, 65, 10, 69, 0, 96, 64, 12, 0, 5, 0, 0, 0, 91, 6, 32, 152,
135, 45, 67, 16, 204, 195, 150, 65, 8, 230, 97, 203, 48, 4, 243, 0, 0, 0, 0,
0, 97, 32, 0, 0, 46, 5, 0, 0, 19, 4, 181, 16, 11, 4, 0, 0, 15, 0,
0, 0, 36, 212, 64, 25, 15, 20, 238, 64, 105, 14, 20, 177, 64, 217, 10, 148, 166,
64, 17, 14, 20, 189, 64, 81, 11, 148, 68, 89, 20, 70, 105, 20, 71, 121, 80, 83,
0, 0, 36, 212, 64, 41, 15, 20, 239, 64, 113, 14, 148, 177, 64, 225, 10, 20, 167,
64, 25, 14, 148, 189, 64, 89, 11, 148, 68, 89, 20, 70, 105, 20, 71, 121, 80, 83,
16, 244, 204, 0, 208, 55, 2, 48, 3, 64, 226, 28, 195, 150, 89, 36, 151, 64, 17,
148, 1, 0, 0, 0, 241, 48, 0, 0, 40, 0, 0, 0, 34, 71, 200, 144, 81, 6,
132, 6, 22, 0, 0, 0, 95, 90, 84, 83, 49, 54, 87, 114, 105, 116, 101, 80, 105,
@ -7995,18 +7995,18 @@ static constexpr uint8_t gDefaultMetallib[] = {
0, 0, 2, 0, 0, 0, 91, 134, 32, 200, 5, 0, 0, 0, 0, 0, 0, 0, 97,
32, 0, 0, 32, 39, 0, 0, 19, 4, 42, 18, 11, 4, 0, 0, 97, 0, 0, 0,
4, 148, 66, 49, 148, 67, 73, 148, 69, 105, 20, 71, 121, 148, 255, 67, 1, 50, 84,
66, 33, 15, 148, 240, 64, 25, 15, 20, 240, 64, 49, 15, 20, 241, 64, 233, 14, 20,
237, 64, 225, 14, 148, 236, 64, 249, 14, 148, 237, 64, 177, 14, 148, 233, 64, 169, 14,
20, 233, 64, 193, 14, 20, 234, 64, 113, 14, 148, 228, 64, 105, 14, 20, 228, 64, 129,
14, 20, 229, 64, 25, 11, 20, 176, 64, 17, 11, 148, 175, 64, 33, 11, 148, 176, 64,
225, 10, 148, 172, 64, 217, 10, 20, 172, 64, 233, 10, 20, 173, 64, 169, 10, 20, 169,
64, 161, 10, 148, 168, 64, 177, 10, 148, 169, 64, 113, 10, 148, 165, 64, 105, 10, 20,
165, 64, 121, 10, 20, 166, 64, 25, 14, 20, 224, 64, 17, 14, 148, 191, 64, 33, 14,
148, 224, 64, 217, 11, 20, 188, 64, 209, 11, 148, 187, 64, 225, 11, 148, 188, 64, 153,
11, 20, 184, 64, 145, 11, 148, 183, 64, 161, 11, 148, 184, 64, 89, 11, 20, 180, 64,
81, 11, 148, 179, 64, 97, 11, 148, 180, 64, 241, 10, 148, 171, 64, 129, 10, 148, 164,
64, 241, 11, 20, 187, 64, 113, 11, 20, 179, 64, 233, 11, 148, 186, 64, 105, 11, 148,
178, 64, 9, 10, 20, 162, 64, 25, 10, 20, 163, 0, 81, 5, 65, 93, 9, 20, 65,
66, 49, 15, 148, 241, 64, 41, 15, 20, 241, 64, 65, 15, 20, 242, 64, 249, 14, 20,
238, 64, 241, 14, 148, 237, 64, 9, 15, 148, 238, 64, 193, 14, 148, 234, 64, 185, 14,
20, 234, 64, 209, 14, 20, 235, 64, 121, 14, 20, 229, 64, 113, 14, 148, 228, 64, 137,
14, 148, 229, 64, 33, 11, 148, 176, 64, 25, 11, 20, 176, 64, 41, 11, 20, 177, 64,
233, 10, 20, 173, 64, 225, 10, 148, 172, 64, 241, 10, 148, 173, 64, 177, 10, 148, 169,
64, 169, 10, 20, 169, 64, 185, 10, 20, 170, 64, 121, 10, 20, 166, 64, 113, 10, 148,
165, 64, 129, 10, 148, 166, 64, 33, 14, 148, 224, 64, 25, 14, 20, 224, 64, 41, 14,
20, 225, 64, 225, 11, 148, 188, 64, 217, 11, 20, 188, 64, 233, 11, 20, 189, 64, 161,
11, 148, 184, 64, 153, 11, 20, 184, 64, 169, 11, 20, 185, 64, 97, 11, 148, 180, 64,
89, 11, 20, 180, 64, 105, 11, 20, 181, 64, 249, 10, 20, 172, 64, 137, 10, 20, 165,
64, 249, 11, 148, 187, 64, 121, 11, 148, 179, 64, 241, 11, 20, 187, 64, 113, 11, 20,
179, 64, 17, 10, 148, 162, 64, 33, 10, 148, 163, 0, 81, 5, 65, 93, 9, 20, 65,
25, 208, 55, 3, 48, 7, 177, 64, 144, 51, 7, 177, 44, 144, 51, 7, 177, 44, 139,
51, 7, 1, 57, 205, 66, 225, 12, 192, 88, 67, 146, 36, 99, 13, 65, 16, 140, 53,
128, 224, 255, 255, 255, 0, 130, 255, 255, 255, 3, 8, 254, 255, 255, 15, 20, 141, 17,
@ -12004,19 +12004,19 @@ static constexpr uint8_t gDefaultMetallib[] = {
45, 67, 16, 184, 2, 0, 0, 0, 0, 0, 0, 97, 32, 0, 0, 4, 0, 0, 0,
19, 4, 193, 136, 1, 82, 196, 32, 24, 60, 104, 64, 12, 66, 128, 0, 97, 32, 0,
0, 56, 39, 0, 0, 19, 4, 42, 18, 11, 4, 0, 0, 97, 0, 0, 0, 4, 148,
66, 49, 148, 67, 73, 148, 69, 105, 20, 71, 121, 148, 255, 67, 1, 50, 84, 66, 33,
15, 148, 240, 64, 25, 15, 20, 240, 64, 49, 15, 20, 241, 64, 233, 14, 20, 237, 64,
225, 14, 148, 236, 64, 249, 14, 148, 237, 64, 177, 14, 148, 233, 64, 169, 14, 20, 233,
64, 193, 14, 20, 234, 64, 113, 14, 148, 228, 64, 105, 14, 20, 228, 64, 129, 14, 20,
229, 64, 25, 11, 20, 176, 64, 17, 11, 148, 175, 64, 33, 11, 148, 176, 64, 225, 10,
148, 172, 64, 217, 10, 20, 172, 64, 233, 10, 20, 173, 64, 169, 10, 20, 169, 64, 161,
10, 148, 168, 64, 177, 10, 148, 169, 64, 113, 10, 148, 165, 64, 105, 10, 20, 165, 64,
121, 10, 20, 166, 64, 25, 14, 20, 224, 64, 17, 14, 148, 191, 64, 33, 14, 148, 224,
64, 217, 11, 20, 188, 64, 209, 11, 148, 187, 64, 225, 11, 148, 188, 64, 153, 11, 20,
184, 64, 145, 11, 148, 183, 64, 161, 11, 148, 184, 64, 89, 11, 20, 180, 64, 81, 11,
148, 179, 64, 97, 11, 148, 180, 64, 241, 10, 148, 171, 64, 129, 10, 148, 164, 64, 241,
11, 20, 187, 64, 113, 11, 20, 179, 64, 233, 11, 148, 186, 64, 105, 11, 148, 178, 64,
9, 10, 20, 162, 64, 25, 10, 20, 163, 0, 81, 5, 65, 93, 9, 20, 65, 25, 208,
66, 49, 148, 67, 73, 148, 69, 105, 20, 71, 121, 148, 255, 67, 1, 50, 84, 66, 49,
15, 148, 241, 64, 41, 15, 20, 241, 64, 65, 15, 20, 242, 64, 249, 14, 20, 238, 64,
241, 14, 148, 237, 64, 9, 15, 148, 238, 64, 193, 14, 148, 234, 64, 185, 14, 20, 234,
64, 209, 14, 20, 235, 64, 121, 14, 20, 229, 64, 113, 14, 148, 228, 64, 137, 14, 148,
229, 64, 33, 11, 148, 176, 64, 25, 11, 20, 176, 64, 41, 11, 20, 177, 64, 233, 10,
20, 173, 64, 225, 10, 148, 172, 64, 241, 10, 148, 173, 64, 177, 10, 148, 169, 64, 169,
10, 20, 169, 64, 185, 10, 20, 170, 64, 121, 10, 20, 166, 64, 113, 10, 148, 165, 64,
129, 10, 148, 166, 64, 33, 14, 148, 224, 64, 25, 14, 20, 224, 64, 41, 14, 20, 225,
64, 225, 11, 148, 188, 64, 217, 11, 20, 188, 64, 233, 11, 20, 189, 64, 161, 11, 148,
184, 64, 153, 11, 20, 184, 64, 169, 11, 20, 185, 64, 97, 11, 148, 180, 64, 89, 11,
20, 180, 64, 105, 11, 20, 181, 64, 249, 10, 20, 172, 64, 137, 10, 20, 165, 64, 249,
11, 148, 187, 64, 121, 11, 148, 179, 64, 241, 11, 20, 187, 64, 113, 11, 20, 179, 64,
17, 10, 148, 162, 64, 33, 10, 148, 163, 0, 81, 5, 65, 93, 9, 20, 65, 25, 208,
55, 3, 48, 7, 177, 64, 144, 51, 7, 177, 44, 144, 51, 7, 177, 44, 139, 51, 7,
1, 57, 205, 66, 225, 12, 192, 88, 67, 146, 36, 99, 13, 65, 16, 140, 53, 128, 224,
255, 255, 255, 0, 130, 255, 255, 255, 3, 8, 254, 255, 255, 15, 20, 141, 17, 128, 36,

Просмотреть файл

@ -1568,6 +1568,7 @@ enum
B8G8R8A8_UNORM,
B8G8R8A8_UNORM_SRGB,
B8G8R8X8_UNORM,
B8G8R8X8_UNORM_SRGB,
BC1_RGBA_UNORM_BLOCK,
BC1_RGBA_UNORM_SRGB_BLOCK,
BC1_RGB_UNORM_BLOCK,
@ -1703,6 +1704,7 @@ enum
R8G8B8A8_UNORM_SRGB,
R8G8B8A8_USCALED,
R8G8B8X8_UNORM,
R8G8B8X8_UNORM_SRGB,
R8G8B8_SINT,
R8G8B8_SNORM,
R8G8B8_SSCALED,

Просмотреть файл

@ -1830,7 +1830,7 @@ angle::Result TextureVk::ensureImageAllocated(ContextVk *contextVk, const vk::Fo
void TextureVk::setImageHelper(ContextVk *contextVk,
vk::ImageHelper *imageHelper,
gl::TextureType eglImageNativeType,
const vk::Format &format,
const vk::Format &unused,
uint32_t imageLevelOffset,
uint32_t imageLayerOffset,
bool selfOwned,
@ -1845,7 +1845,7 @@ void TextureVk::setImageHelper(ContextVk *contextVk,
mImageSiblingSerial = siblingSerial;
// If image is shared between other container objects, force it to renderable format since we
// don't know if other container object will render or not.
if (!mOwnsImage)
if (!mOwnsImage && !imageHelper->isBackedByExternalMemory())
{
mRequiredImageAccess = vk::ImageAccess::Renderable;
}

Просмотреть файл

@ -211,10 +211,18 @@
"buffer": "NONE",
"image": "B8G8R8A8_UNORM"
},
"B8G8R8X8_UNORM_SRGB": {
"buffer": "NONE",
"image": "B8G8R8A8_UNORM_SRGB"
},
"R8G8B8X8_UNORM": {
"buffer": "NONE",
"image": "R8G8B8A8_UNORM"
},
"R8G8B8X8_UNORM_SRGB": {
"buffer": "NONE",
"image": "R8G8B8A8_UNORM_SRGB"
},
"D24_UNORM_X8_UINT": {
"image": ["D24_UNORM_S8_UINT", "D32_FLOAT_S8X24_UINT"]
},

Просмотреть файл

@ -664,6 +664,16 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
mVertexLoadRequiresConversion = true;
break;
case angle::FormatID::B8G8R8X8_UNORM_SRGB:
mIntendedGLFormat = GL_BGRX8_SRGB_ANGLEX;
mActualSampleOnlyImageFormatID = angle::FormatID::B8G8R8A8_UNORM_SRGB;
mImageInitializerFunction = nullptr;
mActualBufferFormatID = angle::FormatID::NONE;
mVkBufferFormatIsPacked = false;
mVertexLoadFunction = nullptr;
mVertexLoadRequiresConversion = true;
break;
case angle::FormatID::BC1_RGBA_UNORM_BLOCK:
mIntendedGLFormat = GL_COMPRESSED_RGBA_S3TC_DXT1_EXT;
mActualSampleOnlyImageFormatID = angle::FormatID::BC1_RGBA_UNORM_BLOCK;
@ -2222,6 +2232,16 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
mVertexLoadRequiresConversion = true;
break;
case angle::FormatID::R8G8B8X8_UNORM_SRGB:
mIntendedGLFormat = GL_RGBX8_SRGB_ANGLEX;
mActualSampleOnlyImageFormatID = angle::FormatID::R8G8B8A8_UNORM_SRGB;
mImageInitializerFunction = nullptr;
mActualBufferFormatID = angle::FormatID::NONE;
mVkBufferFormatIsPacked = false;
mVertexLoadFunction = nullptr;
mVertexLoadRequiresConversion = true;
break;
case angle::FormatID::R8G8B8_SINT:
mIntendedGLFormat = GL_RGB8I;
{

Просмотреть файл

@ -10,6 +10,7 @@
#define LIBANGLE_RENDERER_VULKAN_VK_HELPERS_H_
#include "common/MemoryBuffer.h"
#include "libANGLE/renderer/vulkan/MemoryTracking.h"
#include "libANGLE/renderer/vulkan/Suballocation.h"
#include "libANGLE/renderer/vulkan/vk_cache_utils.h"
#include "libANGLE/renderer/vulkan/vk_format_utils.h"
@ -2488,6 +2489,10 @@ class ImageHelper final : public Resource, public angle::Subject
}
const Semaphore &getAcquireNextImageSemaphore() const { return mAcquireNextImageSemaphore; }
void resetAcquireNextImageSemaphore() { mAcquireNextImageSemaphore.release(); }
bool isBackedByExternalMemory() const
{
return mMemoryAllocationType == MemoryAllocationType::ImageExternal;
}
private:
ANGLE_ENABLE_STRUCT_PADDING_WARNINGS