mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 20:08:06 +02:00
util/format: fix big endian compilation by not trying to byteswap single bytes
Conceivably, we could also have a dummy util_bswap8, but it seems better to not emit it in the first place.
This commit is contained in:
parent
2fb655d1db
commit
7326851757
1 changed files with 9 additions and 7 deletions
|
|
@ -147,7 +147,7 @@ def generate_srgb_tables():
|
|||
def bswap_format(format):
|
||||
'''Generate a structure that describes the format.'''
|
||||
|
||||
if format.is_bitmask() and not format.is_array():
|
||||
if format.is_bitmask() and not format.is_array() and format.block_size() > 8:
|
||||
print '#ifdef PIPE_ARCH_BIG_ENDIAN'
|
||||
print ' pixel.value = util_bswap%u(pixel.value);' % format.block_size()
|
||||
print '#endif'
|
||||
|
|
@ -353,9 +353,10 @@ def generate_unpack_kernel(format, dst_channel, dst_native_type):
|
|||
elif src_channel.type == SIGNED:
|
||||
print ' int%u_t %s;' % (depth, src_channel.name)
|
||||
|
||||
print '#ifdef PIPE_ARCH_BIG_ENDIAN'
|
||||
print ' value = util_bswap%u(value);' % depth
|
||||
print '#endif'
|
||||
if depth > 8:
|
||||
print '#ifdef PIPE_ARCH_BIG_ENDIAN'
|
||||
print ' value = util_bswap%u(value);' % depth
|
||||
print '#endif'
|
||||
|
||||
# Compute the intermediate unshifted values
|
||||
shift = 0
|
||||
|
|
@ -476,9 +477,10 @@ def generate_pack_kernel(format, src_channel, src_native_type):
|
|||
|
||||
shift += dst_channel.size
|
||||
|
||||
print '#ifdef PIPE_ARCH_BIG_ENDIAN'
|
||||
print ' value = util_bswap%u(value);' % depth
|
||||
print '#endif'
|
||||
if depth > 8:
|
||||
print '#ifdef PIPE_ARCH_BIG_ENDIAN'
|
||||
print ' value = util_bswap%u(value);' % depth
|
||||
print '#endif'
|
||||
|
||||
print ' *(uint%u_t *)dst = value;' % depth
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue