Commit e0eb7d2e by Le Hoang Quyen Committed by Commit Bot

Metal: Fix wrong FormatID enum order used by PBO autogen shaders.

FormatID_autogen.h's enums' order was altered by CL https://chromium-review.googlesource.com/c/angle/angle/+/2413165 However, Metal default shaders relied on old order thus the result PBO related computation based on enum value has become wrong. This CL reuse gen_angle_format_table.gen_enum_string() function to generate format enums for both - src/libANGLE/renderer/FormatID_autogen.h (used by C++) - src/libANGLE/renderer/metal/shaders/format_autogen.h (used by Metal default shaders) Bug: angleproject:2634 Change-Id: I52fad168d1932e0386dcf789574f06d341dbd9c3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2418500 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarJonah Ryan-Davis <jonahr@google.com>
parent dd0a9ec9
{
"src/libANGLE/renderer/angle_format.py":
"32ba71942c0fd00e6807104f1bb80a3c",
"src/libANGLE/renderer/angle_format_map.json":
"aa4a0d3463b76858a75787b9cdec8e98",
"src/libANGLE/renderer/gen_angle_format_table.py":
"34ab57bb88958e320f509bd5fbd04495",
"src/libANGLE/renderer/metal/shaders/blit.metal":
"f02720a0f3d9624b67bdb808cbc94c7f",
"src/libANGLE/renderer/metal/shaders/clear.metal":
......@@ -8,29 +12,29 @@
"src/libANGLE/renderer/metal/shaders/common.h":
"0cadef47fb785aa3102acb2a6eae94bb",
"src/libANGLE/renderer/metal/shaders/compiled/compiled_default_metallib_2_1_debug_ios_autogen.inc":
"242c1dcfed23f2ce130a5813b0845885",
"667ccb60f6127ffeba3cabb2f29f7f0b",
"src/libANGLE/renderer/metal/shaders/compiled/compiled_default_metallib_2_1_debug_ios_sim_autogen.inc":
"472d8b494249c8dd51900fbedf2bfc1e",
"11a14084d8eaa5cf0a3ba9a38417471b",
"src/libANGLE/renderer/metal/shaders/compiled/compiled_default_metallib_2_1_debug_mac_autogen.inc":
"71503cf6b999d7d34592851b623bd2ec",
"77a466620388a24f6e7c067c4f6cd946",
"src/libANGLE/renderer/metal/shaders/compiled/compiled_default_metallib_2_1_ios_autogen.inc":
"7bd32594077ff118df55d19607cb03cc",
"e854853c900e30e6d575dc3f22f9e48e",
"src/libANGLE/renderer/metal/shaders/compiled/compiled_default_metallib_2_1_ios_sim_autogen.inc":
"144649774236fb4c89ea333c6b7c7432",
"4eadb0536161f924bbf4455408358a3a",
"src/libANGLE/renderer/metal/shaders/compiled/compiled_default_metallib_2_1_mac_autogen.inc":
"5a88edbf58f094953b65ba76f7dbdbec",
"4235ba87ba7376892fa75c390beaf551",
"src/libANGLE/renderer/metal/shaders/compiled/compiled_default_metallib_debug_ios_autogen.inc":
"d1c9a9922b3dc5761f88e63f3f7715b6",
"613bf0c11a4378efa0a3322fc8540a65",
"src/libANGLE/renderer/metal/shaders/compiled/compiled_default_metallib_debug_ios_sim_autogen.inc":
"821c685f4ba29301b27eb4cff53fd6d9",
"b5544f6f0da8171c7f55170851aee854",
"src/libANGLE/renderer/metal/shaders/compiled/compiled_default_metallib_debug_mac_autogen.inc":
"4e7dd43bf0f6403a551052c6d83b4abe",
"29a37ffadaf34b5173e0e2016634c0f4",
"src/libANGLE/renderer/metal/shaders/compiled/compiled_default_metallib_ios_autogen.inc":
"e7421348d7b6168f78645f904b438129",
"d73863c24226fb81324401a377e3ef6d",
"src/libANGLE/renderer/metal/shaders/compiled/compiled_default_metallib_ios_sim_autogen.inc":
"eb0cb7ef0f1fcd26d2747cee596c4d1f",
"9f000ca8836462e77ffae09cdaaf78aa",
"src/libANGLE/renderer/metal/shaders/compiled/compiled_default_metallib_mac_autogen.inc":
"bce93a1c3e8283b96a41a0088f4d83ad",
"c93de972e555cd930c1d9437e4fb52a2",
"src/libANGLE/renderer/metal/shaders/compiled/mtl_default_shaders_autogen.inc":
"634a127f4e94f6bc3123e89850d010ee",
"src/libANGLE/renderer/metal/shaders/constants.h":
......@@ -38,13 +42,13 @@
"src/libANGLE/renderer/metal/shaders/copy_buffer.metal":
"97b258edbade1ed088e4c03a1102f974",
"src/libANGLE/renderer/metal/shaders/format_autogen.h":
"2d9f0752644dffd14423fa0c03ca8e65",
"b1d6512b904a7eb151b0095b7898b0e5",
"src/libANGLE/renderer/metal/shaders/gen_indices.metal":
"87a76d5e12825111c0595f69e79f5d20",
"src/libANGLE/renderer/metal/shaders/gen_mipmap.metal":
"54dca94c48bead446624079070b9b309",
"src/libANGLE/renderer/metal/shaders/gen_mtl_internal_shaders.py":
"691460118fccd9c7fd0c451adaa2b330",
"d5f23d645c0cb9d487e40d490414a772",
"src/libANGLE/renderer/metal/shaders/visibility.metal":
"998d705656c63849edd0187cd8062fc7"
}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -5,6 +5,9 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// This file is similar to src/libANGLE/renderer/FormatID_autogen.h but is used by Metal default
// shaders instead of C++ code.
//
namespace rx
{
namespace mtl_shader
......@@ -15,6 +18,13 @@ namespace FormatID
enum
{
NONE,
D16_UNORM,
D24_UNORM_S8_UINT,
D24_UNORM_X8_UINT,
D32_FLOAT,
D32_FLOAT_S8X24_UINT,
D32_UNORM,
S8_UINT,
A16_FLOAT,
A1R5G5B5_UNORM,
A2R10G10B10_SINT_VERTEX,
......@@ -98,12 +108,6 @@ enum
BPTC_RGB_SIGNED_FLOAT_BLOCK,
BPTC_RGB_UNSIGNED_FLOAT_BLOCK,
BPTC_SRGB_ALPHA_UNORM_BLOCK,
D16_UNORM,
D24_UNORM_S8_UINT,
D24_UNORM_X8_UINT,
D32_FLOAT,
D32_FLOAT_S8X24_UINT,
D32_UNORM,
EAC_R11G11_SNORM_BLOCK,
EAC_R11G11_UNORM_BLOCK,
EAC_R11_SNORM_BLOCK,
......@@ -231,13 +235,12 @@ enum
R8_UNORM_SRGB,
R8_USCALED,
R9G9B9E5_SHAREDEXP,
S8_UINT,
X2R10G10B10_SINT_VERTEX,
X2R10G10B10_SNORM_VERTEX,
X2R10G10B10_SSCALED_VERTEX,
X2R10G10B10_UINT_VERTEX,
X2R10G10B10_UNORM_VERTEX,
X2R10G10B10_USCALED_VERTEX,
X2R10G10B10_USCALED_VERTEX
};
}
......
......@@ -14,6 +14,7 @@ from datetime import datetime
sys.path.append('../..')
import angle_format
import gen_angle_format_table
template_header_boilerplate = """// GENERATED FILE - DO NOT EDIT.
// Generated by {script_name}
......@@ -166,7 +167,12 @@ def gen_precompiled_shaders(mac_version, ios_version, variable_name, additional_
def gen_shader_enums_code(angle_formats):
code = "namespace rx\n"
code = """// This file is similar to src/libANGLE/renderer/FormatID_autogen.h but is used by Metal default
// shaders instead of C++ code.
//
"""
code += "namespace rx\n"
code += "{\n"
code += "namespace mtl_shader\n"
code += "{\n"
......@@ -175,11 +181,7 @@ def gen_shader_enums_code(angle_formats):
code += "{\n"
code += "enum\n"
code += "{\n"
code += " NONE,\n"
for angle_format in sorted(angle_formats):
if angle_format == 'NONE': # NONE already moved to the beginning of enum declaration
continue
code += " " + angle_format + ",\n"
code += gen_angle_format_table.gen_enum_string(angle_formats) + '\n'
code += "};\n\n"
code += "}\n"
code += "\n"
......@@ -190,6 +192,9 @@ def gen_shader_enums_code(angle_formats):
def main():
angle_format_script_files = [
'../../angle_format_map.json', '../../angle_format.py', '../../gen_angle_format_table.py'
]
src_files = [
'blit.metal', 'clear.metal', 'gen_indices.metal', 'gen_mipmap.metal', 'copy_buffer.metal',
'visibility.metal'
......@@ -214,7 +219,7 @@ def main():
# auto_script parameters.
if len(sys.argv) > 1:
inputs = ['../../angle_format_map.json'] + src_files + ['common.h', 'constants.h']
inputs = angle_format_script_files + src_files + ['common.h', 'constants.h']
outputs = ['format_autogen.h', 'compiled/mtl_default_shaders_autogen.inc'
] + os_specific_autogen_files
......
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