Commit a986c834 by Jamie Madill

Implement DXGI shader sample format tables.

This saves us some startup time in the D3D11 Renderer. BUG=angleproject:1014 Change-Id: I5d2607b58a86ee0a8932032a0f8a31b21d39b525 Reviewed-on: https://chromium-review.googlesource.com/275774Tested-by: 's avatarJamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarBrandon Jones <bajones@chromium.org> Reviewed-by: 's avatarKenneth Russell <kbr@chromium.org>
parent 7f165fd9
...@@ -146,7 +146,11 @@ def do_format(format_data): ...@@ -146,7 +146,11 @@ def do_format(format_data):
always_supported = set() always_supported = set()
never_supported = set() never_supported = set()
optionally_supported = set() optionally_supported = set()
fl_10_1_supported = set()
fl_11_0_supported = set() fl_11_0_supported = set()
fl_11_0_check = set()
fl_10_0_check_10_1_supported = set()
fl_10_0_check_11_0_supported = set()
for json_flag, support in format_support.iteritems(): for json_flag, support in format_support.iteritems():
...@@ -158,6 +162,11 @@ def do_format(format_data): ...@@ -158,6 +162,11 @@ def do_format(format_data):
always_supported.update(d3d_flag) always_supported.update(d3d_flag)
elif support == 'never': elif support == 'never':
never_supported.update(d3d_flag) never_supported.update(d3d_flag)
elif support == '10_0':
# TODO(jmadill): FL 9_3 handling
always_supported.update(d3d_flag)
elif support == '10_1':
fl_10_1_supported.update(d3d_flag)
elif support == '11_0': elif support == '11_0':
fl_11_0_supported.update(d3d_flag) fl_11_0_supported.update(d3d_flag)
elif support == '11_1': elif support == '11_1':
...@@ -166,18 +175,35 @@ def do_format(format_data): ...@@ -166,18 +175,35 @@ def do_format(format_data):
elif support == 'dxgi1_2': elif support == 'dxgi1_2':
# TODO(jmadill): DXGI 1.2 handling. # TODO(jmadill): DXGI 1.2 handling.
always_supported.update(d3d_flag) always_supported.update(d3d_flag)
elif support == '10_0check10_1always':
fl_10_0_check_10_1_supported.update(d3d_flag)
elif support == '10_0check11_0always':
fl_10_0_check_11_0_supported.update(d3d_flag)
elif support == '11_0check':
fl_11_0_check.update(d3d_flag)
else: else:
print("Data specification error: " + support) print("Data specification error: " + support)
sys.exit(1) sys.exit(1)
for feature_level in ['10_0', '10_1', '11_0']: for feature_level in ['10_0', '10_1', '11_0']:
always_for_fl = always_supported always_for_fl = always_supported
if feature_level == '11_0': optional_for_fl = optionally_supported
if feature_level == '10_0':
optional_for_fl = fl_10_0_check_10_1_supported.union(optional_for_fl)
optional_for_fl = fl_10_0_check_11_0_supported.union(optional_for_fl)
if feature_level == '10_1':
always_for_fl = fl_10_1_supported.union(always_for_fl)
always_for_fl = fl_10_0_check_10_1_supported.union(always_for_fl)
optional_for_fl = fl_10_0_check_11_0_supported.union(optional_for_fl)
elif feature_level == '11_0':
always_for_fl = fl_10_0_check_10_1_supported.union(always_for_fl)
always_for_fl = fl_10_0_check_11_0_supported.union(always_for_fl)
always_for_fl = fl_10_1_supported.union(always_for_fl)
always_for_fl = fl_11_0_supported.union(always_for_fl) always_for_fl = fl_11_0_supported.union(always_for_fl)
always = ' | '.join(sorted(always_for_fl)) always = ' | '.join(sorted(always_for_fl))
never = ' | '.join(sorted(never_supported)) never = ' | '.join(sorted(never_supported))
optional = ' | '.join(sorted(optionally_supported)) optional = ' | '.join(sorted(optional_for_fl))
if not always: always = '0' if not always: always = '0'
if not never: never = '0' if not never: never = '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