summaryrefslogtreecommitdiffstats
path: root/src/mesa
diff options
context:
space:
mode:
authorNeil Roberts <[email protected]>2014-08-06 16:52:14 +0100
committerNeil Roberts <[email protected]>2014-08-12 18:23:38 +0100
commitcc9c30b8a746691316ae7757b68cea1b1cd3ea84 (patch)
tree7195c7fc5af7de4322ab0bef384d4ed21c3b7904 /src/mesa
parent84218b598f429bcc4474aa620da906b7b9aadc2b (diff)
mesa/format_info: Add support for the BPTC layout
Adds the ‘bptc’ layout to get_channel_bits. The channel bits for BPTC depend on the mode but as it only has to be an approximation this sets it to 8 for the two UNORM formats and 16 for the two half-float formats. These represent the minimum number of bits of variation that can be generated by the interpolation of the two formats. This doesn't quite match what we do for S3TC which only returns 4 even though it can similarly generate 8 bits from the interpolation. However it does match what we return for ETC2. For reference, NVidia seems to return 8 bits for the UNORM formats and 32 bits for the half-float formats. v2: Change the number of bits to 8/8/8/8 for the UNORM formats and 16/16/16 for the half-float formats. Reviewed-by: Jason Ekstrand <[email protected]>
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/main/format_info.py3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/mesa/main/format_info.py b/src/mesa/main/format_info.py
index a0eecd30951..7424fe0cd5a 100644
--- a/src/mesa/main/format_info.py
+++ b/src/mesa/main/format_info.py
@@ -127,6 +127,9 @@ def get_channel_bits(fmat, chan_name):
bits = 11 if fmat.name.endswith('11_EAC') else 8
return bits if fmat.has_channel(chan_name) else 0
+ elif fmat.layout == 'bptc':
+ bits = 16 if fmat.name.endswith('_FLOAT') else 8
+ return bits if fmat.has_channel(chan_name) else 0
else:
assert False
else: