mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-26 04:10:09 +01:00
intel/isl/format: Add field locations informations to channel_layout
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
This commit is contained in:
parent
96598fbc02
commit
8ab73790ef
2 changed files with 13 additions and 2 deletions
|
|
@ -76,7 +76,7 @@ isl_format_layouts[] = {
|
|||
% for mask in ['r', 'g', 'b', 'a', 'l', 'i', 'p']:
|
||||
<% channel = getattr(format, mask, None) %>\\
|
||||
% if channel.type is not None:
|
||||
.${mask} = { ISL_${channel.type}, ${channel.size} },
|
||||
.${mask} = { ISL_${channel.type}, ${channel.start}, ${channel.size} },
|
||||
% else:
|
||||
.${mask} = {},
|
||||
% endif
|
||||
|
|
@ -147,7 +147,10 @@ class Channel(object):
|
|||
else:
|
||||
grouped = self._splitter.match(line)
|
||||
self.type = self._types[grouped.group('type')].upper()
|
||||
self.size = grouped.group('size')
|
||||
self.size = int(grouped.group('size'))
|
||||
|
||||
# Default the start bit to -1
|
||||
self.start = -1;
|
||||
|
||||
|
||||
class Format(object):
|
||||
|
|
@ -168,7 +171,14 @@ class Format(object):
|
|||
self.l = Channel(line[9])
|
||||
self.i = Channel(line[10])
|
||||
self.p = Channel(line[11])
|
||||
|
||||
# Set the start bit value for each channel
|
||||
self.order = line[12].strip()
|
||||
bit = 0
|
||||
for c in self.order:
|
||||
chan = getattr(self, c)
|
||||
chan.start = bit;
|
||||
bit = bit + chan.size
|
||||
|
||||
# alpha doesn't have a colorspace of it's own.
|
||||
self.colorspace = line[13].strip().upper()
|
||||
|
|
|
|||
|
|
@ -1005,6 +1005,7 @@ struct isl_extent4d {
|
|||
|
||||
struct isl_channel_layout {
|
||||
enum isl_base_type type;
|
||||
uint8_t start_bit; /**< Bit at which this channel starts */
|
||||
uint8_t bits; /**< Size in bits */
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue