From 17c55e0d12eaa7ee00330a321d7dd446f1016603 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Wed, 28 Dec 2022 15:53:41 -0500 Subject: [PATCH] panfrost: Don't use DECODE_FIXED16 for sample position Strictly this is a signed fixed-point, anyway. Signed-off-by: Alyssa Rosenzweig Part-of: --- src/panfrost/lib/pan_samples.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/panfrost/lib/pan_samples.c b/src/panfrost/lib/pan_samples.c index 18205f2e3e6..f23810d7ce4 100644 --- a/src/panfrost/lib/pan_samples.c +++ b/src/panfrost/lib/pan_samples.c @@ -60,6 +60,12 @@ struct mali_sample_positions { #define SAMPLE8(x, y) SAMPLE16((x)*2, (y)*2) #define SAMPLE4(x, y) SAMPLE16((x)*4, (y)*4) +static float +decode_position(int16_t raw) +{ + return ((float)raw) / 256.0; +} + /* clang-format off */ const struct mali_sample_positions sample_position_lut[] = { [MALI_SAMPLE_PATTERN_SINGLE_SAMPLED] = { @@ -155,6 +161,6 @@ panfrost_query_sample_position(enum mali_sample_pattern pattern, struct mali_sample_position pos = sample_position_lut[pattern].positions[sample_idx]; - out[0] = DECODE_FIXED_16(pos.x); - out[1] = DECODE_FIXED_16(pos.y); + out[0] = decode_position(pos.x); + out[1] = decode_position(pos.y); }