diff options
author | Marek Olšák <marek.olsak@amd.com> | 2017-07-25 17:29:58 +0200 |
---|---|---|
committer | Marek Olšák <marek.olsak@amd.com> | 2017-07-26 19:53:26 +0200 |
commit | 433f6f7ac9ed6624fec02cc055c3bfa247dba185 (patch) | |
tree | 8a0a712137e9cf64de7c26b2f8d07d4d68dcd9e1 /src/gallium | |
parent | 033b4e434057a6cc885f443792167dfabfb077b6 (diff) |
gallium/radeon: make S_FIXED function signed and move it to shared code
This fixes a bug uncovered by:
2412c4c81ea0488df865817a0de91ec46e359b72
util: Make CLAMP turn NaN into MIN.
Cc: 17.2 <mesa-stable@lists.freedesktop.org>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Diffstat (limited to 'src/gallium')
-rw-r--r-- | src/gallium/drivers/r600/r600_pipe.h | 4 | ||||
-rw-r--r-- | src/gallium/drivers/radeon/r600_pipe_common.h | 5 | ||||
-rw-r--r-- | src/gallium/drivers/radeonsi/si_state.c | 5 |
3 files changed, 5 insertions, 9 deletions
diff --git a/src/gallium/drivers/r600/r600_pipe.h b/src/gallium/drivers/r600/r600_pipe.h index 3fa7d77d37..c9294a7c58 100644 --- a/src/gallium/drivers/r600/r600_pipe.h +++ b/src/gallium/drivers/r600/r600_pipe.h @@ -925,10 +925,6 @@ static inline void radeon_set_ctl_const(struct radeon_winsys_cs *cs, unsigned re /* * common helpers */ -static inline uint32_t S_FIXED(float value, uint32_t frac_bits) -{ - return value * (1 << frac_bits); -} /* 12.4 fixed-point */ static inline unsigned r600_pack_float_12p4(float x) diff --git a/src/gallium/drivers/radeon/r600_pipe_common.h b/src/gallium/drivers/radeon/r600_pipe_common.h index 5c761f3ee4..c2fb3690d2 100644 --- a/src/gallium/drivers/radeon/r600_pipe_common.h +++ b/src/gallium/drivers/radeon/r600_pipe_common.h @@ -1006,4 +1006,9 @@ vi_dcc_enabled(struct r600_texture *tex, unsigned level) (((unsigned)(s2x) & 0xf) << 16) | (((unsigned)(s2y) & 0xf) << 20) | \ (((unsigned)(s3x) & 0xf) << 24) | (((unsigned)(s3y) & 0xf) << 28)) +static inline int S_FIXED(float value, unsigned frac_bits) +{ + return value * (1 << frac_bits); +} + #endif diff --git a/src/gallium/drivers/radeonsi/si_state.c b/src/gallium/drivers/radeonsi/si_state.c index 7e3d1a02e0..42d81e7446 100644 --- a/src/gallium/drivers/radeonsi/si_state.c +++ b/src/gallium/drivers/radeonsi/si_state.c @@ -74,11 +74,6 @@ static unsigned si_map_swizzle(unsigned swizzle) } } -static uint32_t S_FIXED(float value, uint32_t frac_bits) -{ - return value * (1 << frac_bits); -} - /* 12.4 fixed-point */ static unsigned si_pack_float_12p4(float x) { |