Commit 2e9161e4 by Jamie Madill Committed by Commit Bot

Vulkan: Add YUV G8_B8_R8_3PLANE_420_UNORM format.

Bug: angleproject:5438 Change-Id: I525a51256a5ee83fa69c8705aa90790fb32a6602 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2623813Reviewed-by: 's avatarShahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: 's avatarIan Elliott <ianelliott@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
parent d38b9f86
{ {
"src/libANGLE/renderer/FormatID_autogen.h": "src/libANGLE/renderer/FormatID_autogen.h":
"ce83c2449cc723131e4681ff380b59a2", "6f4f189645a02e35e5f0c07c65d8124f",
"src/libANGLE/renderer/Format_table_autogen.cpp": "src/libANGLE/renderer/Format_table_autogen.cpp":
"b50d9c578bda1a859e61832d96860296", "22666d912bb7ce0a6f25b1da1d7fed8b",
"src/libANGLE/renderer/angle_format.py": "src/libANGLE/renderer/angle_format.py":
"32ba71942c0fd00e6807104f1bb80a3c", "32ba71942c0fd00e6807104f1bb80a3c",
"src/libANGLE/renderer/angle_format_data.json": "src/libANGLE/renderer/angle_format_data.json":
"e5cc162abe241ea9ba270309c8ec1330", "6d7adfa00bbff38c4d3dc81eff826958",
"src/libANGLE/renderer/angle_format_map.json": "src/libANGLE/renderer/angle_format_map.json":
"aa4a0d3463b76858a75787b9cdec8e98", "ae32dfce450f7b7ffc62d746d6fddf83",
"src/libANGLE/renderer/gen_angle_format_table.py": "src/libANGLE/renderer/gen_angle_format_table.py":
"a9b364f5dc971890351e2ef8e5700cb7" "27be642dae863060e942ca8be5f293e5"
} }
\ No newline at end of file
...@@ -2,9 +2,9 @@ ...@@ -2,9 +2,9 @@
"src/libANGLE/renderer/angle_format.py": "src/libANGLE/renderer/angle_format.py":
"32ba71942c0fd00e6807104f1bb80a3c", "32ba71942c0fd00e6807104f1bb80a3c",
"src/libANGLE/renderer/gen_load_functions_table.py": "src/libANGLE/renderer/gen_load_functions_table.py":
"9b4ea6bcb4eb4c43f48a097a9ec920f1", "bbc2f2cbce34313d7c06a3511eff5a1f",
"src/libANGLE/renderer/load_functions_data.json": "src/libANGLE/renderer/load_functions_data.json":
"142960e2ff434fa41276c96bf095f2ac", "15c8cb8e78a1491c4befa7921c5194e3",
"src/libANGLE/renderer/load_functions_table_autogen.cpp": "src/libANGLE/renderer/load_functions_table_autogen.cpp":
"7de6ba06d86acae6c2662c28e697b42b" "3439701afe487ff33d9eccc5febb8421"
} }
\ No newline at end of file
...@@ -2,11 +2,11 @@ ...@@ -2,11 +2,11 @@
"src/libANGLE/renderer/angle_format.py": "src/libANGLE/renderer/angle_format.py":
"32ba71942c0fd00e6807104f1bb80a3c", "32ba71942c0fd00e6807104f1bb80a3c",
"src/libANGLE/renderer/angle_format_map.json": "src/libANGLE/renderer/angle_format_map.json":
"aa4a0d3463b76858a75787b9cdec8e98", "ae32dfce450f7b7ffc62d746d6fddf83",
"src/libANGLE/renderer/dxgi_format_data.json": "src/libANGLE/renderer/dxgi_format_data.json":
"3428e4761ccd05f960adffd6ccbd86c5", "3428e4761ccd05f960adffd6ccbd86c5",
"src/libANGLE/renderer/dxgi_format_map_autogen.cpp": "src/libANGLE/renderer/dxgi_format_map_autogen.cpp":
"974308ca798476dfaa076fb864478310", "974308ca798476dfaa076fb864478310",
"src/libANGLE/renderer/gen_dxgi_format_table.py": "src/libANGLE/renderer/gen_dxgi_format_table.py":
"40ec74c693a846d2a180ff801a3845b9" "8540567c885f88cbac66b7dc96b2dc10"
} }
\ No newline at end of file
...@@ -2,9 +2,9 @@ ...@@ -2,9 +2,9 @@
"src/libANGLE/renderer/angle_format.py": "src/libANGLE/renderer/angle_format.py":
"32ba71942c0fd00e6807104f1bb80a3c", "32ba71942c0fd00e6807104f1bb80a3c",
"src/libANGLE/renderer/angle_format_map.json": "src/libANGLE/renderer/angle_format_map.json":
"aa4a0d3463b76858a75787b9cdec8e98", "ae32dfce450f7b7ffc62d746d6fddf83",
"src/libANGLE/renderer/gen_angle_format_table.py": "src/libANGLE/renderer/gen_angle_format_table.py":
"a9b364f5dc971890351e2ef8e5700cb7", "27be642dae863060e942ca8be5f293e5",
"src/libANGLE/renderer/metal/shaders/blit.metal": "src/libANGLE/renderer/metal/shaders/blit.metal":
"2f6286729703039d41d0f6a109a23ac2", "2f6286729703039d41d0f6a109a23ac2",
"src/libANGLE/renderer/metal/shaders/clear.metal": "src/libANGLE/renderer/metal/shaders/clear.metal":
...@@ -16,15 +16,15 @@ ...@@ -16,15 +16,15 @@
"src/libANGLE/renderer/metal/shaders/copy_buffer.metal": "src/libANGLE/renderer/metal/shaders/copy_buffer.metal":
"83d33cc789cb5df7b173b98c50770c0f", "83d33cc789cb5df7b173b98c50770c0f",
"src/libANGLE/renderer/metal/shaders/format_autogen.h": "src/libANGLE/renderer/metal/shaders/format_autogen.h":
"b1d6512b904a7eb151b0095b7898b0e5", "01f206f1fd873c5f9da2f3627b49bcf2",
"src/libANGLE/renderer/metal/shaders/gen_indices.metal": "src/libANGLE/renderer/metal/shaders/gen_indices.metal":
"06e2b6f259fe019b46e2a9710eb11bff", "06e2b6f259fe019b46e2a9710eb11bff",
"src/libANGLE/renderer/metal/shaders/gen_mipmap.metal": "src/libANGLE/renderer/metal/shaders/gen_mipmap.metal":
"54dca94c48bead446624079070b9b309", "54dca94c48bead446624079070b9b309",
"src/libANGLE/renderer/metal/shaders/gen_mtl_internal_shaders.py": "src/libANGLE/renderer/metal/shaders/gen_mtl_internal_shaders.py":
"b48af61c8b02dda646b4c8febce50227", "af7a98ffaa3f3885b1e3cc7160c8549b",
"src/libANGLE/renderer/metal/shaders/mtl_default_shaders_src_autogen.inc": "src/libANGLE/renderer/metal/shaders/mtl_default_shaders_src_autogen.inc":
"0658278106de1fe5147e1367ecc896b9", "80ebc484aa7fea40e5a8a9078b0a7c81",
"src/libANGLE/renderer/metal/shaders/visibility.metal": "src/libANGLE/renderer/metal/shaders/visibility.metal":
"b82aa740cf4b0aed606aacef1024beea" "b82aa740cf4b0aed606aacef1024beea"
} }
\ No newline at end of file
...@@ -2,9 +2,9 @@ ...@@ -2,9 +2,9 @@
"src/libANGLE/renderer/angle_format.py": "src/libANGLE/renderer/angle_format.py":
"32ba71942c0fd00e6807104f1bb80a3c", "32ba71942c0fd00e6807104f1bb80a3c",
"src/libANGLE/renderer/angle_format_map.json": "src/libANGLE/renderer/angle_format_map.json":
"aa4a0d3463b76858a75787b9cdec8e98", "ae32dfce450f7b7ffc62d746d6fddf83",
"src/libANGLE/renderer/metal/gen_mtl_format_table.py": "src/libANGLE/renderer/metal/gen_mtl_format_table.py":
"60bf684695cd552e85fc11eba2a1d5bc", "5e3a7d6e95784fa0276e4b689c01cdec",
"src/libANGLE/renderer/metal/mtl_format_map.json": "src/libANGLE/renderer/metal/mtl_format_map.json":
"22b62b3705e53c5a6ecf5a173f2e7dc9", "22b62b3705e53c5a6ecf5a173f2e7dc9",
"src/libANGLE/renderer/metal/mtl_format_table_autogen.mm": "src/libANGLE/renderer/metal/mtl_format_table_autogen.mm":
......
...@@ -2,11 +2,11 @@ ...@@ -2,11 +2,11 @@
"src/libANGLE/renderer/angle_format.py": "src/libANGLE/renderer/angle_format.py":
"32ba71942c0fd00e6807104f1bb80a3c", "32ba71942c0fd00e6807104f1bb80a3c",
"src/libANGLE/renderer/angle_format_map.json": "src/libANGLE/renderer/angle_format_map.json":
"aa4a0d3463b76858a75787b9cdec8e98", "ae32dfce450f7b7ffc62d746d6fddf83",
"src/libANGLE/renderer/vulkan/gen_vk_format_table.py": "src/libANGLE/renderer/vulkan/gen_vk_format_table.py":
"0bc8a6deefd856387da0bccf3817dde7", "0bc8a6deefd856387da0bccf3817dde7",
"src/libANGLE/renderer/vulkan/vk_format_map.json": "src/libANGLE/renderer/vulkan/vk_format_map.json":
"b62588b1e9f6d9fa98aeea886d8ed2bd", "d7bb44b9fa6f6e4038c2a415fe1711a1",
"src/libANGLE/renderer/vulkan/vk_format_table_autogen.cpp": "src/libANGLE/renderer/vulkan/vk_format_table_autogen.cpp":
"ff081c37d8dfabdf87f46af9bf8e295a" "1f1587af2b31877abe281a1a1b84e15e"
} }
\ No newline at end of file
...@@ -4,11 +4,11 @@ ...@@ -4,11 +4,11 @@
"src/libANGLE/renderer/vulkan/gen_vk_mandatory_format_support_table.py": "src/libANGLE/renderer/vulkan/gen_vk_mandatory_format_support_table.py":
"0d798546ff1b4932164a64b9404396bb", "0d798546ff1b4932164a64b9404396bb",
"src/libANGLE/renderer/vulkan/vk_format_map.json": "src/libANGLE/renderer/vulkan/vk_format_map.json":
"b62588b1e9f6d9fa98aeea886d8ed2bd", "d7bb44b9fa6f6e4038c2a415fe1711a1",
"src/libANGLE/renderer/vulkan/vk_mandatory_format_support_data.json": "src/libANGLE/renderer/vulkan/vk_mandatory_format_support_data.json":
"fa2bd54c1bb0ab2cf1d386061a4bc5c5", "fa2bd54c1bb0ab2cf1d386061a4bc5c5",
"src/libANGLE/renderer/vulkan/vk_mandatory_format_support_table_autogen.cpp": "src/libANGLE/renderer/vulkan/vk_mandatory_format_support_table_autogen.cpp":
"ed2e75f0b4eec5ad9f55227c5578e0d6", "201340f2709707e5ce88a7c2f6d21f9a",
"third_party/vulkan-deps/vulkan-headers/src/registry/vk.xml": "third_party/vulkan-deps/vulkan-headers/src/registry/vk.xml":
"e7129a174322b4f0a2c8c1229e91f04c" "e7129a174322b4f0a2c8c1229e91f04c"
} }
\ No newline at end of file
...@@ -290,6 +290,9 @@ inline bool IsLittleEndian() ...@@ -290,6 +290,9 @@ inline bool IsLittleEndian()
#define GL_X2_RGB10_UNORM_ANGLEX 0x6AF7 #define GL_X2_RGB10_UNORM_ANGLEX 0x6AF7
#define GL_X2_RGB10_SNORM_ANGLEX 0x6AF8 #define GL_X2_RGB10_SNORM_ANGLEX 0x6AF8
// YUV formats
#define GL_G8_B8_R8_3PLANE_420_UNORM_ANGLEX 0x6B00
#define ANGLE_CHECK_GL_ALLOC(context, result) \ #define ANGLE_CHECK_GL_ALLOC(context, result) \
ANGLE_CHECK(context, result, "Failed to allocate host memory", GL_OUT_OF_MEMORY) ANGLE_CHECK(context, result, "Failed to allocate host memory", GL_OUT_OF_MEMORY)
......
...@@ -120,6 +120,7 @@ enum class FormatID ...@@ -120,6 +120,7 @@ enum class FormatID
ETC2_R8G8B8A8_UNORM_BLOCK, ETC2_R8G8B8A8_UNORM_BLOCK,
ETC2_R8G8B8_SRGB_BLOCK, ETC2_R8G8B8_SRGB_BLOCK,
ETC2_R8G8B8_UNORM_BLOCK, ETC2_R8G8B8_UNORM_BLOCK,
G8_B8_R8_3PLANE_420_UNORM,
L16A16_FLOAT, L16A16_FLOAT,
L16_FLOAT, L16_FLOAT,
L32A32_FLOAT, L32A32_FLOAT,
...@@ -243,7 +244,7 @@ enum class FormatID ...@@ -243,7 +244,7 @@ enum class FormatID
X2R10G10B10_USCALED_VERTEX X2R10G10B10_USCALED_VERTEX
}; };
constexpr uint32_t kNumANGLEFormats = 224; constexpr uint32_t kNumANGLEFormats = 225;
} // namespace angle } // namespace angle
......
...@@ -127,6 +127,7 @@ const Format gFormatInfoTable[] = { ...@@ -127,6 +127,7 @@ const Format gFormatInfoTable[] = {
{ FormatID::ETC2_R8G8B8A8_UNORM_BLOCK, GL_COMPRESSED_RGBA8_ETC2_EAC, GL_COMPRESSED_RGBA8_ETC2_EAC, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 8, 0, 0, 0, 16, 0, true, false, false, false, gl::VertexAttribType::UnsignedByte }, { FormatID::ETC2_R8G8B8A8_UNORM_BLOCK, GL_COMPRESSED_RGBA8_ETC2_EAC, GL_COMPRESSED_RGBA8_ETC2_EAC, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 8, 0, 0, 0, 16, 0, true, false, false, false, gl::VertexAttribType::UnsignedByte },
{ FormatID::ETC2_R8G8B8_SRGB_BLOCK, GL_COMPRESSED_SRGB8_ETC2, GL_COMPRESSED_SRGB8_ETC2, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 0, 0, 0, 0, 8, 0, true, false, false, true, gl::VertexAttribType::Byte }, { FormatID::ETC2_R8G8B8_SRGB_BLOCK, GL_COMPRESSED_SRGB8_ETC2, GL_COMPRESSED_SRGB8_ETC2, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 0, 0, 0, 0, 8, 0, true, false, false, true, gl::VertexAttribType::Byte },
{ FormatID::ETC2_R8G8B8_UNORM_BLOCK, GL_COMPRESSED_RGB8_ETC2, GL_COMPRESSED_RGB8_ETC2, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 0, 0, 0, 0, 8, 0, true, false, false, false, gl::VertexAttribType::UnsignedByte }, { FormatID::ETC2_R8G8B8_UNORM_BLOCK, GL_COMPRESSED_RGB8_ETC2, GL_COMPRESSED_RGB8_ETC2, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 0, 0, 0, 0, 8, 0, true, false, false, false, gl::VertexAttribType::UnsignedByte },
{ FormatID::G8_B8_R8_3PLANE_420_UNORM, GL_G8_B8_R8_3PLANE_420_UNORM_ANGLEX, GL_G8_B8_R8_3PLANE_420_UNORM_ANGLEX, GenerateMip<R8G8B8>, NoCopyFunctions, ReadColor<R8G8B8, GLfloat>, WriteColor<R8G8B8, GLfloat>, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 0, 0, 0, 0, 3, 0, false, false, false, false, gl::VertexAttribType::UnsignedByte },
{ FormatID::L16A16_FLOAT, GL_LUMINANCE_ALPHA16F_EXT, GL_LUMINANCE_ALPHA16F_EXT, GenerateMip<L16A16F>, NoCopyFunctions, ReadColor<L16A16F, GLfloat>, WriteColor<L16A16F, GLfloat>, GL_FLOAT, 0, 0, 0, 16, 16, 0, 0, 4, std::numeric_limits<GLuint>::max(), false, false, false, false, gl::VertexAttribType::Float }, { FormatID::L16A16_FLOAT, GL_LUMINANCE_ALPHA16F_EXT, GL_LUMINANCE_ALPHA16F_EXT, GenerateMip<L16A16F>, NoCopyFunctions, ReadColor<L16A16F, GLfloat>, WriteColor<L16A16F, GLfloat>, GL_FLOAT, 0, 0, 0, 16, 16, 0, 0, 4, std::numeric_limits<GLuint>::max(), false, false, false, false, gl::VertexAttribType::Float },
{ FormatID::L16_FLOAT, GL_LUMINANCE16F_EXT, GL_LUMINANCE16F_EXT, GenerateMip<L16F>, NoCopyFunctions, ReadColor<L16F, GLfloat>, WriteColor<L16F, GLfloat>, GL_FLOAT, 0, 0, 0, 0, 16, 0, 0, 2, std::numeric_limits<GLuint>::max(), false, false, false, false, gl::VertexAttribType::Float }, { FormatID::L16_FLOAT, GL_LUMINANCE16F_EXT, GL_LUMINANCE16F_EXT, GenerateMip<L16F>, NoCopyFunctions, ReadColor<L16F, GLfloat>, WriteColor<L16F, GLfloat>, GL_FLOAT, 0, 0, 0, 0, 16, 0, 0, 2, std::numeric_limits<GLuint>::max(), false, false, false, false, gl::VertexAttribType::Float },
{ FormatID::L32A32_FLOAT, GL_LUMINANCE_ALPHA32F_EXT, GL_LUMINANCE_ALPHA32F_EXT, GenerateMip<L32A32F>, NoCopyFunctions, ReadColor<L32A32F, GLfloat>, WriteColor<L32A32F, GLfloat>, GL_FLOAT, 0, 0, 0, 32, 32, 0, 0, 8, std::numeric_limits<GLuint>::max(), false, false, false, false, gl::VertexAttribType::Float }, { FormatID::L32A32_FLOAT, GL_LUMINANCE_ALPHA32F_EXT, GL_LUMINANCE_ALPHA32F_EXT, GenerateMip<L32A32F>, NoCopyFunctions, ReadColor<L32A32F, GLfloat>, WriteColor<L32A32F, GLfloat>, GL_FLOAT, 0, 0, 0, 32, 32, 0, 0, 8, std::numeric_limits<GLuint>::max(), false, false, false, false, gl::VertexAttribType::Float },
...@@ -470,6 +471,8 @@ FormatID Format::InternalFormatToID(GLenum internalFormat) ...@@ -470,6 +471,8 @@ FormatID Format::InternalFormatToID(GLenum internalFormat)
return FormatID::ETC1_LOSSY_DECODE_R8G8B8_UNORM_BLOCK; return FormatID::ETC1_LOSSY_DECODE_R8G8B8_UNORM_BLOCK;
case GL_ETC1_RGB8_OES: case GL_ETC1_RGB8_OES:
return FormatID::ETC1_R8G8B8_UNORM_BLOCK; return FormatID::ETC1_R8G8B8_UNORM_BLOCK;
case GL_G8_B8_R8_3PLANE_420_UNORM_ANGLEX:
return FormatID::G8_B8_R8_3PLANE_420_UNORM;
case GL_INT_10_10_10_2_OES: case GL_INT_10_10_10_2_OES:
return FormatID::A2R10G10B10_SINT_VERTEX; return FormatID::A2R10G10B10_SINT_VERTEX;
case GL_LUMINANCE16F_EXT: case GL_LUMINANCE16F_EXT:
......
...@@ -284,5 +284,8 @@ ...@@ -284,5 +284,8 @@
}, },
"PVRTC1_RGBA_4BPP_UNORM_SRGB_BLOCK": { "PVRTC1_RGBA_4BPP_UNORM_SRGB_BLOCK": {
"blockPixelBytes": "8" "blockPixelBytes": "8"
},
"G8_B8_R8_3PLANE_420_UNORM": {
"channelStruct": "R8G8B8"
} }
} }
...@@ -224,5 +224,6 @@ ...@@ -224,5 +224,6 @@
[ "GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT", "PVRTC1_RGB_2BPP_UNORM_SRGB_BLOCK" ], [ "GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT", "PVRTC1_RGB_2BPP_UNORM_SRGB_BLOCK" ],
[ "GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT", "PVRTC1_RGB_4BPP_UNORM_SRGB_BLOCK" ], [ "GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT", "PVRTC1_RGB_4BPP_UNORM_SRGB_BLOCK" ],
[ "GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT", "PVRTC1_RGBA_2BPP_UNORM_SRGB_BLOCK" ], [ "GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT", "PVRTC1_RGBA_2BPP_UNORM_SRGB_BLOCK" ],
[ "GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT", "PVRTC1_RGBA_4BPP_UNORM_SRGB_BLOCK" ] [ "GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT", "PVRTC1_RGBA_4BPP_UNORM_SRGB_BLOCK" ],
[ "GL_G8_B8_R8_3PLANE_420_UNORM_ANGLEX", "G8_B8_R8_3PLANE_420_UNORM" ]
] ]
...@@ -9,7 +9,6 @@ ...@@ -9,7 +9,6 @@
# #
import angle_format import angle_format
from datetime import date
import json import json
import math import math
import pprint import pprint
...@@ -19,7 +18,7 @@ import sys ...@@ -19,7 +18,7 @@ import sys
template_autogen_h = """// GENERATED FILE - DO NOT EDIT. template_autogen_h = """// GENERATED FILE - DO NOT EDIT.
// Generated by {script_name} using data from {data_source_name} // Generated by {script_name} using data from {data_source_name}
// //
// Copyright {copyright_year} The ANGLE Project Authors. All rights reserved. // Copyright 2020 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// //
...@@ -48,7 +47,7 @@ constexpr uint32_t kNumANGLEFormats = {num_angle_formats}; ...@@ -48,7 +47,7 @@ constexpr uint32_t kNumANGLEFormats = {num_angle_formats};
template_autogen_inl = """// GENERATED FILE - DO NOT EDIT. template_autogen_inl = """// GENERATED FILE - DO NOT EDIT.
// Generated by {script_name} using data from {data_source_name} // Generated by {script_name} using data from {data_source_name}
// //
// Copyright {copyright_year} The ANGLE Project Authors. All rights reserved. // Copyright 2020 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// //
...@@ -423,7 +422,6 @@ def main(): ...@@ -423,7 +422,6 @@ def main():
switch_data = gen_map_switch_string(gl_to_angle) switch_data = gen_map_switch_string(gl_to_angle)
output_cpp = template_autogen_inl.format( output_cpp = template_autogen_inl.format(
script_name=sys.argv[0], script_name=sys.argv[0],
copyright_year=date.today().year,
angle_format_info_cases=angle_format_cases, angle_format_info_cases=angle_format_cases,
angle_format_switch=switch_data, angle_format_switch=switch_data,
data_source_name=data_source_name) data_source_name=data_source_name)
...@@ -435,7 +433,6 @@ def main(): ...@@ -435,7 +433,6 @@ def main():
num_angle_formats = len(all_angle) num_angle_formats = len(all_angle)
output_h = template_autogen_h.format( output_h = template_autogen_h.format(
script_name=sys.argv[0], script_name=sys.argv[0],
copyright_year=date.today().year,
angle_format_enum=enum_data, angle_format_enum=enum_data,
data_source_name=data_source_name, data_source_name=data_source_name,
num_angle_formats=num_angle_formats) num_angle_formats=num_angle_formats)
......
...@@ -7,14 +7,13 @@ ...@@ -7,14 +7,13 @@
# Code generation for DXGI format map. # Code generation for DXGI format map.
# NOTE: don't run this script directly. Run scripts/run_code_generation.py. # NOTE: don't run this script directly. Run scripts/run_code_generation.py.
from datetime import date
import sys import sys
import angle_format import angle_format
template_cpp = """// GENERATED FILE - DO NOT EDIT. template_cpp = """// GENERATED FILE - DO NOT EDIT.
// Generated by {script_name} using data from {data_source_name}. // Generated by {script_name} using data from {data_source_name}.
// //
// Copyright {copyright_year} The ANGLE Project Authors. All rights reserved. // Copyright 2020 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// //
...@@ -146,7 +145,6 @@ def main(): ...@@ -146,7 +145,6 @@ def main():
output_cpp = template_cpp.format( output_cpp = template_cpp.format(
script_name=sys.argv[0], script_name=sys.argv[0],
data_source_name=input_data, data_source_name=input_data,
copyright_year=date.today().year,
component_type_cases=component_cases, component_type_cases=component_cases,
format_cases=format_cases) format_cases=format_cases)
out_file.write(output_cpp) out_file.write(output_cpp)
......
...@@ -11,7 +11,6 @@ ...@@ -11,7 +11,6 @@
# #
import json, sys import json, sys
from datetime import date
sys.path.append('../..') sys.path.append('../..')
import angle_format import angle_format
...@@ -19,7 +18,7 @@ import angle_format ...@@ -19,7 +18,7 @@ import angle_format
template = """// GENERATED FILE - DO NOT EDIT. template = """// GENERATED FILE - DO NOT EDIT.
// Generated by gen_load_functions_table.py using data from load_functions_data.json // Generated by gen_load_functions_table.py using data from load_functions_data.json
// //
// Copyright {copyright_year} The ANGLE Project Authors. All rights reserved. // Copyright 2020 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// //
...@@ -217,8 +216,7 @@ def main(): ...@@ -217,8 +216,7 @@ def main():
internal_format=internal_format_param, internal_format=internal_format_param,
angle_format=angle_format_param, angle_format=angle_format_param,
switch_data=switch_data, switch_data=switch_data,
load_functions_data=load_functions_data, load_functions_data=load_functions_data)
copyright_year=date.today().year)
with open('load_functions_table_autogen.cpp', 'wt') as out_file: with open('load_functions_table_autogen.cpp', 'wt') as out_file:
out_file.write(output) out_file.write(output)
......
...@@ -1170,5 +1170,10 @@ ...@@ -1170,5 +1170,10 @@
"NONE": { "NONE": {
"GL_UNSIGNED_BYTE": "LoadCompressedToNative<6, 6, 6, 16>" "GL_UNSIGNED_BYTE": "LoadCompressedToNative<6, 6, 6, 16>"
} }
},
"GL_G8_B8_R8_3PLANE_420_UNORM_ANGLEX": {
"NONE": {
"GL_UNSIGNED_BYTE": "UnimplementedLoadFunction"
}
} }
} }
...@@ -1608,6 +1608,18 @@ LoadImageFunctionInfo ETC1_RGB8_OES_to_R8G8B8A8_UNORM(GLenum type) ...@@ -1608,6 +1608,18 @@ LoadImageFunctionInfo ETC1_RGB8_OES_to_R8G8B8A8_UNORM(GLenum type)
} }
} }
LoadImageFunctionInfo G8_B8_R8_3PLANE_420_UNORM_ANGLEX_to_default(GLenum type)
{
switch (type)
{
case GL_UNSIGNED_BYTE:
return LoadImageFunctionInfo(UnimplementedLoadFunction, true);
default:
UNREACHABLE();
return LoadImageFunctionInfo(UnreachableLoadFunction, true);
}
}
LoadImageFunctionInfo LUMINANCE_to_R16G16B16A16_FLOAT(GLenum type) LoadImageFunctionInfo LUMINANCE_to_R16G16B16A16_FLOAT(GLenum type)
{ {
switch (type) switch (type)
...@@ -3678,6 +3690,8 @@ LoadFunctionMap GetLoadFunctionsMap(GLenum internalFormat, FormatID angleFormat) ...@@ -3678,6 +3690,8 @@ LoadFunctionMap GetLoadFunctionsMap(GLenum internalFormat, FormatID angleFormat)
} }
break; break;
} }
case GL_G8_B8_R8_3PLANE_420_UNORM_ANGLEX:
return G8_B8_R8_3PLANE_420_UNORM_ANGLEX_to_default;
case GL_LUMINANCE: case GL_LUMINANCE:
{ {
switch (angleFormat) switch (angleFormat)
......
...@@ -8,7 +8,6 @@ ...@@ -8,7 +8,6 @@
# NOTE: don't run this script directly. Run scripts/run_code_generation.py. # NOTE: don't run this script directly. Run scripts/run_code_generation.py.
# #
from datetime import date
import json import json
import math import math
import pprint import pprint
...@@ -21,7 +20,7 @@ import angle_format as angle_format_utils ...@@ -21,7 +20,7 @@ import angle_format as angle_format_utils
template_autogen_inl = """// GENERATED FILE - DO NOT EDIT. template_autogen_inl = """// GENERATED FILE - DO NOT EDIT.
// Generated by {script_name} using data from {data_source_name} // Generated by {script_name} using data from {data_source_name}
// //
// Copyright {copyright_year} The ANGLE Project Authors. All rights reserved. // Copyright 2020 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// //
...@@ -494,7 +493,6 @@ def main(): ...@@ -494,7 +493,6 @@ def main():
output_cpp = template_autogen_inl.format( output_cpp = template_autogen_inl.format(
script_name=sys.argv[0], script_name=sys.argv[0],
copyright_year=date.today().year,
data_source_name=data_source_name, data_source_name=data_source_name,
angle_image_format_switch=image_switch_data, angle_image_format_switch=image_switch_data,
angle_vertex_format_switch=vertex_switch_data, angle_vertex_format_switch=vertex_switch_data,
......
...@@ -120,6 +120,7 @@ enum ...@@ -120,6 +120,7 @@ enum
ETC2_R8G8B8A8_UNORM_BLOCK, ETC2_R8G8B8A8_UNORM_BLOCK,
ETC2_R8G8B8_SRGB_BLOCK, ETC2_R8G8B8_SRGB_BLOCK,
ETC2_R8G8B8_UNORM_BLOCK, ETC2_R8G8B8_UNORM_BLOCK,
G8_B8_R8_3PLANE_420_UNORM,
L16A16_FLOAT, L16A16_FLOAT,
L16_FLOAT, L16_FLOAT,
L32A32_FLOAT, L32A32_FLOAT,
......
...@@ -12,8 +12,6 @@ import os ...@@ -12,8 +12,6 @@ import os
import subprocess import subprocess
import sys import sys
from datetime import datetime
sys.path.append('../..') sys.path.append('../..')
import angle_format import angle_format
import gen_angle_format_table import gen_angle_format_table
...@@ -21,7 +19,7 @@ import gen_angle_format_table ...@@ -21,7 +19,7 @@ import gen_angle_format_table
template_header_boilerplate = """// GENERATED FILE - DO NOT EDIT. template_header_boilerplate = """// GENERATED FILE - DO NOT EDIT.
// Generated by {script_name} // Generated by {script_name}
// //
// Copyright {copyright_year} The ANGLE Project Authors. All rights reserved. // Copyright 2020 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// //
...@@ -93,8 +91,7 @@ def main(): ...@@ -93,8 +91,7 @@ def main():
os.chdir(sys.path[0]) os.chdir(sys.path[0])
boilerplate_code = template_header_boilerplate.format( boilerplate_code = template_header_boilerplate.format(script_name=sys.argv[0])
script_name=sys.argv[0], copyright_year=datetime.today().year)
# -------- Generate shader constants ----------- # -------- Generate shader constants -----------
angle_to_gl = angle_format.load_inverse_table('../../angle_format_map.json') angle_to_gl = angle_format.load_inverse_table('../../angle_format_map.json')
......
...@@ -14,7 +14,7 @@ static char gDefaultMetallibSrc[] = R"( ...@@ -14,7 +14,7 @@ static char gDefaultMetallibSrc[] = R"(
# 1 "temp_master_source.metal" # 1 "temp_master_source.metal"
# 1 "<built-in>" 1 # 1 "<built-in>" 1
# 1 "<built-in>" 3 # 1 "<built-in>" 3
# 392 "<built-in>" 3 # 367 "<built-in>" 3
# 1 "<command line>" 1 # 1 "<command line>" 1
# 1 "<built-in>" 2 # 1 "<built-in>" 2
# 1 "temp_master_source.metal" 2 # 1 "temp_master_source.metal" 2
...@@ -1238,6 +1238,7 @@ enum ...@@ -1238,6 +1238,7 @@ enum
ETC2_R8G8B8A8_UNORM_BLOCK, ETC2_R8G8B8A8_UNORM_BLOCK,
ETC2_R8G8B8_SRGB_BLOCK, ETC2_R8G8B8_SRGB_BLOCK,
ETC2_R8G8B8_UNORM_BLOCK, ETC2_R8G8B8_UNORM_BLOCK,
G8_B8_R8_3PLANE_420_UNORM,
L16A16_FLOAT, L16A16_FLOAT,
L16_FLOAT, L16_FLOAT,
L32A32_FLOAT, L32A32_FLOAT,
......
...@@ -164,7 +164,8 @@ ...@@ -164,7 +164,8 @@
"ASTC_12x10_UNORM_BLOCK": "VK_FORMAT_ASTC_12x10_UNORM_BLOCK", "ASTC_12x10_UNORM_BLOCK": "VK_FORMAT_ASTC_12x10_UNORM_BLOCK",
"ASTC_12x10_SRGB_BLOCK": "VK_FORMAT_ASTC_12x10_SRGB_BLOCK", "ASTC_12x10_SRGB_BLOCK": "VK_FORMAT_ASTC_12x10_SRGB_BLOCK",
"ASTC_12x12_UNORM_BLOCK": "VK_FORMAT_ASTC_12x12_UNORM_BLOCK", "ASTC_12x12_UNORM_BLOCK": "VK_FORMAT_ASTC_12x12_UNORM_BLOCK",
"ASTC_12x12_SRGB_BLOCK": "VK_FORMAT_ASTC_12x12_SRGB_BLOCK" "ASTC_12x12_SRGB_BLOCK": "VK_FORMAT_ASTC_12x12_SRGB_BLOCK",
"G8_B8_R8_3PLANE_420_UNORM": "VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM"
}, },
"fallbacks": { "fallbacks": {
"A16_FLOAT": { "A16_FLOAT": {
......
...@@ -960,6 +960,16 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat) ...@@ -960,6 +960,16 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
vertexLoadRequiresConversion = false; vertexLoadRequiresConversion = false;
break; break;
case angle::FormatID::G8_B8_R8_3PLANE_420_UNORM:
intendedGLFormat = GL_G8_B8_R8_3PLANE_420_UNORM_ANGLEX;
actualImageFormatID = angle::FormatID::G8_B8_R8_3PLANE_420_UNORM;
imageInitializerFunction = nullptr;
actualBufferFormatID = angle::FormatID::G8_B8_R8_3PLANE_420_UNORM;
vkBufferFormatIsPacked = false;
vertexLoadFunction = CopyNativeVertexData<GLubyte, 3, 3, 0>;
vertexLoadRequiresConversion = false;
break;
case angle::FormatID::L16A16_FLOAT: case angle::FormatID::L16A16_FLOAT:
intendedGLFormat = GL_LUMINANCE_ALPHA16F_EXT; intendedGLFormat = GL_LUMINANCE_ALPHA16F_EXT;
actualImageFormatID = angle::FormatID::R16G16_FLOAT; actualImageFormatID = angle::FormatID::R16G16_FLOAT;
...@@ -2486,6 +2496,7 @@ VkFormat GetVkFormatFromFormatID(angle::FormatID formatID) ...@@ -2486,6 +2496,7 @@ VkFormat GetVkFormatFromFormatID(angle::FormatID formatID)
{angle::FormatID::R8G8_UINT, VK_FORMAT_R8G8_UINT}, {angle::FormatID::R8G8_UINT, VK_FORMAT_R8G8_UINT},
{angle::FormatID::R5G5B5A1_UNORM, VK_FORMAT_R5G5B5A1_UNORM_PACK16}, {angle::FormatID::R5G5B5A1_UNORM, VK_FORMAT_R5G5B5A1_UNORM_PACK16},
{angle::FormatID::R8G8B8_UINT, VK_FORMAT_R8G8B8_UINT}, {angle::FormatID::R8G8B8_UINT, VK_FORMAT_R8G8B8_UINT},
{angle::FormatID::G8_B8_R8_3PLANE_420_UNORM, VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM},
{angle::FormatID::ETC2_R8G8B8_UNORM_BLOCK, VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK}, {angle::FormatID::ETC2_R8G8B8_UNORM_BLOCK, VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK},
{angle::FormatID::R32_UINT, VK_FORMAT_R32_UINT}, {angle::FormatID::R32_UINT, VK_FORMAT_R32_UINT},
{angle::FormatID::R9G9B9E5_SHAREDEXP, VK_FORMAT_E5B9G9R9_UFLOAT_PACK32}, {angle::FormatID::R9G9B9E5_SHAREDEXP, VK_FORMAT_E5B9G9R9_UFLOAT_PACK32},
...@@ -2777,6 +2788,8 @@ angle::FormatID GetFormatIDFromVkFormat(VkFormat vkFormat) ...@@ -2777,6 +2788,8 @@ angle::FormatID GetFormatIDFromVkFormat(VkFormat vkFormat)
return angle::FormatID::R5G5B5A1_UNORM; return angle::FormatID::R5G5B5A1_UNORM;
case VK_FORMAT_R8G8B8_UINT: case VK_FORMAT_R8G8B8_UINT:
return angle::FormatID::R8G8B8_UINT; return angle::FormatID::R8G8B8_UINT;
case VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM:
return angle::FormatID::G8_B8_R8_3PLANE_420_UNORM;
case VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK: case VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK:
return angle::FormatID::ETC2_R8G8B8_UNORM_BLOCK; return angle::FormatID::ETC2_R8G8B8_UNORM_BLOCK;
case VK_FORMAT_R32_UINT: case VK_FORMAT_R32_UINT:
......
...@@ -274,6 +274,7 @@ constexpr FormatMap<VkFormatProperties> kFormatProperties = { ...@@ -274,6 +274,7 @@ constexpr FormatMap<VkFormatProperties> kFormatProperties = {
UNIFORM_TEXEL_BUFFER | VERTEX_BUFFER}}, UNIFORM_TEXEL_BUFFER | VERTEX_BUFFER}},
{FormatID::R5G5B5A1_UNORM, {0, 0, 0}}, {FormatID::R5G5B5A1_UNORM, {0, 0, 0}},
{FormatID::R8G8B8_UINT, {0, 0, 0}}, {FormatID::R8G8B8_UINT, {0, 0, 0}},
{FormatID::G8_B8_R8_3PLANE_420_UNORM, {0, 0, 0}},
{FormatID::ETC2_R8G8B8_UNORM_BLOCK, {0, 0, 0}}, {FormatID::ETC2_R8G8B8_UNORM_BLOCK, {0, 0, 0}},
{FormatID::R32_UINT, {FormatID::R32_UINT,
{0, {0,
......
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