Commit 17605b61 by Jamie Madill Committed by Commit Bot

Replace DXGI with ANGLE format in the load tables.

BUG=angleproject:1455 Change-Id: I851848d8a28bd70ff921d76b19902f40a5e8b17d Reviewed-on: https://chromium-review.googlesource.com/367453Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
parent 46ad513f
...@@ -29,9 +29,6 @@ template = """// GENERATED FILE - DO NOT EDIT. ...@@ -29,9 +29,6 @@ template = """// GENERATED FILE - DO NOT EDIT.
#include "image_util/generatemip.h" #include "image_util/generatemip.h"
#include "image_util/loadimage.h" #include "image_util/loadimage.h"
#include "libANGLE/renderer/d3d/d3d11/formatutils11.h"
#include "libANGLE/renderer/d3d/d3d11/texture_format_table.h"
using namespace angle; using namespace angle;
namespace rx namespace rx
...@@ -78,7 +75,7 @@ void UnreachableLoadFunction(size_t width, ...@@ -78,7 +75,7 @@ void UnreachableLoadFunction(size_t width,
{load_functions_data}}} // namespace {load_functions_data}}} // namespace
LoadFunctionMap GetLoadFunctionsMap(GLenum {internal_format}, DXGI_FORMAT {dxgi_format}) LoadFunctionMap GetLoadFunctionsMap(GLenum {internal_format}, Format::ID {angle_format})
{{ {{
// clang-format off // clang-format off
switch ({internal_format}) switch ({internal_format})
...@@ -100,12 +97,11 @@ LoadFunctionMap GetLoadFunctionsMap(GLenum {internal_format}, DXGI_FORMAT {dxgi_ ...@@ -100,12 +97,11 @@ LoadFunctionMap GetLoadFunctionsMap(GLenum {internal_format}, DXGI_FORMAT {dxgi_
""" """
internal_format_param = 'internalFormat' internal_format_param = 'internalFormat'
dxgi_format_param = 'dxgiFormat' angle_format_param = 'angleFormat'
dxgi_format_unknown = "DXGI_FORMAT_UNKNOWN" angle_format_unknown = 'NONE'
def load_functions_name(internal_format, dxgi_format): def load_functions_name(internal_format, angle_format):
short_name = dxgi_format if dxgi_format == "default" else dxgi_format[len("DXGI_FORMAT_"):] return internal_format[3:] + "_to_" + angle_format
return internal_format[3:] + "_to_" + short_name
def unknown_func_name(internal_format): def unknown_func_name(internal_format):
return load_functions_name(internal_format, "default") return load_functions_name(internal_format, "default")
...@@ -128,41 +124,41 @@ def get_load_func(func_name, type_functions): ...@@ -128,41 +124,41 @@ def get_load_func(func_name, type_functions):
return snippet return snippet
def get_unknown_load_func(dxgi_to_type_map, internal_format): def get_unknown_load_func(angle_to_type_map, internal_format):
assert dxgi_format_unknown in dxgi_to_type_map assert angle_format_unknown in angle_to_type_map
return get_load_func(unknown_func_name(internal_format), dxgi_to_type_map[dxgi_format_unknown]) return get_load_func(unknown_func_name(internal_format), angle_to_type_map[angle_format_unknown])
def parse_json(json_data): def parse_json(json_data):
table_data = '' table_data = ''
load_functions_data = '' load_functions_data = ''
for internal_format, dxgi_to_type_map in sorted(json_data.iteritems()): for internal_format, angle_to_type_map in sorted(json_data.iteritems()):
s = ' ' s = ' '
table_data += s + 'case ' + internal_format + ':\n' table_data += s + 'case ' + internal_format + ':\n'
do_switch = len(dxgi_to_type_map) > 1 or dxgi_to_type_map.keys()[0] != dxgi_format_unknown do_switch = len(angle_to_type_map) > 1 or angle_to_type_map.keys()[0] != angle_format_unknown
if do_switch: if do_switch:
table_data += s + '{\n' table_data += s + '{\n'
s += ' ' s += ' '
table_data += s + 'switch (' + dxgi_format_param + ')\n' table_data += s + 'switch (' + angle_format_param + ')\n'
table_data += s + '{\n' table_data += s + '{\n'
s += ' ' s += ' '
for dxgi_format, type_functions in sorted(dxgi_to_type_map.iteritems()): for angle_format, type_functions in sorted(angle_to_type_map.iteritems()):
if dxgi_format == dxgi_format_unknown: if angle_format == angle_format_unknown:
continue continue
func_name = load_functions_name(internal_format, dxgi_format) func_name = load_functions_name(internal_format, angle_format)
# Main case statements # Main case statements
table_data += s + 'case ' + dxgi_format + ':\n' table_data += s + 'case Format::ID::' + angle_format + ':\n'
table_data += s + ' return ' + func_name + ';\n' table_data += s + ' return ' + func_name + ';\n'
if dxgi_format_unknown in dxgi_to_type_map: if angle_format_unknown in angle_to_type_map:
for gl_type, load_function in dxgi_to_type_map[dxgi_format_unknown].iteritems(): for gl_type, load_function in angle_to_type_map[angle_format_unknown].iteritems():
if gl_type not in type_functions: if gl_type not in type_functions:
type_functions[gl_type] = load_function type_functions[gl_type] = load_function
...@@ -171,9 +167,9 @@ def parse_json(json_data): ...@@ -171,9 +167,9 @@ def parse_json(json_data):
if do_switch: if do_switch:
table_data += s + 'default:\n' table_data += s + 'default:\n'
if dxgi_format_unknown in dxgi_to_type_map: if angle_format_unknown in angle_to_type_map:
table_data += s + ' return ' + unknown_func_name(internal_format) + ';\n' table_data += s + ' return ' + unknown_func_name(internal_format) + ';\n'
load_functions_data += get_unknown_load_func(dxgi_to_type_map, internal_format) load_functions_data += get_unknown_load_func(angle_to_type_map, internal_format)
else: else:
table_data += s + ' break;\n' table_data += s + ' break;\n'
...@@ -189,7 +185,7 @@ json_data = angle_format.load_json('load_functions_data.json') ...@@ -189,7 +185,7 @@ json_data = angle_format.load_json('load_functions_data.json')
switch_data, load_functions_data = parse_json(json_data) switch_data, load_functions_data = parse_json(json_data)
output = template.format(internal_format = internal_format_param, output = template.format(internal_format = internal_format_param,
dxgi_format = dxgi_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)
......
...@@ -10,10 +10,7 @@ ...@@ -10,10 +10,7 @@
#ifndef LIBANGLE_RENDERER_D3D_D3D11_LOADFUNCTIONSTABLE_H_ #ifndef LIBANGLE_RENDERER_D3D_D3D11_LOADFUNCTIONSTABLE_H_
#define LIBANGLE_RENDERER_D3D_D3D11_LOADFUNCTIONSTABLE_H_ #define LIBANGLE_RENDERER_D3D_D3D11_LOADFUNCTIONSTABLE_H_
#include <map> #include "libANGLE/renderer/Format.h"
#include "libANGLE/renderer/d3d/d3d11/Renderer11.h"
#include "libANGLE/renderer/d3d/d3d11/texture_format_table.h"
namespace rx namespace rx
{ {
...@@ -21,7 +18,7 @@ namespace rx ...@@ -21,7 +18,7 @@ namespace rx
namespace d3d11 namespace d3d11
{ {
LoadFunctionMap GetLoadFunctionsMap(GLenum internalFormat, DXGI_FORMAT dxgiFormat); LoadFunctionMap GetLoadFunctionsMap(GLenum internalFormat, angle::Format::ID angleFormat);
} // namespace d3d11 } // namespace d3d11
......
...@@ -47,7 +47,7 @@ Format::Format(GLenum internalFormat, ...@@ -47,7 +47,7 @@ Format::Format(GLenum internalFormat,
blitSRVFormat(blitSRVFormat), blitSRVFormat(blitSRVFormat),
swizzle(swizzleFormat == internalFormat ? *this : Format::Get(swizzleFormat, deviceCaps)), swizzle(swizzleFormat == internalFormat ? *this : Format::Get(swizzleFormat, deviceCaps)),
dataInitializerFunction(internalFormatInitializer), dataInitializerFunction(internalFormatInitializer),
loadFunctions(GetLoadFunctionsMap(internalFormat, texFormat)) loadFunctions(GetLoadFunctionsMap(internalFormat, formatID))
{ {
} }
......
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