isl: Use util_sign_extend
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Reviewed-by: Kristian H. Kristensen <hoegsberg@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17214>
This commit is contained in:
parent
efc63ea02d
commit
bc5e77a9f2
|
@ -1274,18 +1274,6 @@ isl_color_value_pack(const union isl_color_value *value,
|
||||||
assert(fmtl->channels.p.bits == 0);
|
assert(fmtl->channels.p.bits == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Extend an N-bit signed integer to 32 bits */
|
|
||||||
static inline int32_t
|
|
||||||
sign_extend(int32_t x, unsigned bits)
|
|
||||||
{
|
|
||||||
if (bits < 32) {
|
|
||||||
unsigned shift = 32 - bits;
|
|
||||||
return (x << shift) >> shift;
|
|
||||||
} else {
|
|
||||||
return x;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
unpack_channel(union isl_color_value *value,
|
unpack_channel(union isl_color_value *value,
|
||||||
unsigned start, unsigned count,
|
unsigned start, unsigned count,
|
||||||
|
@ -1323,7 +1311,7 @@ unpack_channel(union isl_color_value *value,
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ISL_SNORM:
|
case ISL_SNORM:
|
||||||
unpacked.f32 = _mesa_snorm_to_float(sign_extend(packed, layout->bits),
|
unpacked.f32 = _mesa_snorm_to_float(util_sign_extend(packed, layout->bits),
|
||||||
layout->bits);
|
layout->bits);
|
||||||
break;
|
break;
|
||||||
case ISL_SFLOAT:
|
case ISL_SFLOAT:
|
||||||
|
@ -1338,7 +1326,7 @@ unpack_channel(union isl_color_value *value,
|
||||||
unpacked.u32 = packed;
|
unpacked.u32 = packed;
|
||||||
break;
|
break;
|
||||||
case ISL_SINT:
|
case ISL_SINT:
|
||||||
unpacked.u32 = sign_extend(packed, layout->bits);
|
unpacked.u32 = util_sign_extend(packed, layout->bits);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
Loading…
Reference in New Issue