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):
always_supported = set()
never_supported = set()
optionally_supported = set()
fl_10_1_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():
......@@ -158,6 +162,11 @@ def do_format(format_data):
always_supported.update(d3d_flag)
elif support == 'never':
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':
fl_11_0_supported.update(d3d_flag)
elif support == '11_1':
......@@ -166,18 +175,35 @@ def do_format(format_data):
elif support == 'dxgi1_2':
# TODO(jmadill): DXGI 1.2 handling.
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:
print("Data specification error: " + support)
sys.exit(1)
for feature_level in ['10_0', '10_1', '11_0']:
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 = ' | '.join(sorted(always_for_fl))
never = ' | '.join(sorted(never_supported))
optional = ' | '.join(sorted(optionally_supported))
optional = ' | '.join(sorted(optional_for_fl))
if not always: always = '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