The macro was only used a few times; let's use it everywhere, simplifying the code. I also uniformised the use of curly brackets by adding them around all uses of the macro, removed a few unnecessary `else` after `return`, and turned a ternary op into an `if`.
Signed-off-by: Eric Engestrom <eric.engest...@imgtec.com> --- src/gallium/drivers/r600/r600_state_common.c | 108 +++++++++++++++------------ 1 file changed, 59 insertions(+), 49 deletions(-) diff --git a/src/gallium/drivers/r600/r600_state_common.c b/src/gallium/drivers/r600/r600_state_common.c index c1bce8304b..b3ccdfc498 100644 --- a/src/gallium/drivers/r600/r600_state_common.c +++ b/src/gallium/drivers/r600/r600_state_common.c @@ -2666,78 +2666,88 @@ uint32_t r600_translate_colorformat(enum chip_class chip, enum pipe_format forma switch (desc->nr_channels) { case 1: - switch (desc->channel[0].size) { - case 8: + if (HAS_SIZE(8,0,0,0)) { return V_0280A0_COLOR_8; - case 16: + } + if (HAS_SIZE(16,0,0,0)) { if (is_float) return V_0280A0_COLOR_16_FLOAT; else return V_0280A0_COLOR_16; - case 32: + } + if (HAS_SIZE(32,0,0,0)) { if (is_float) return V_0280A0_COLOR_32_FLOAT; else return V_0280A0_COLOR_32; } break; + case 2: - if (desc->channel[0].size == desc->channel[1].size) { - switch (desc->channel[0].size) { - case 4: - if (chip <= R700) - return V_0280A0_COLOR_4_4; - else - return ~0U; /* removed on Evergreen */ - case 8: - return V_0280A0_COLOR_8_8; - case 16: - if (is_float) - return V_0280A0_COLOR_16_16_FLOAT; - else - return V_0280A0_COLOR_16_16; - case 32: - if (is_float) - return V_0280A0_COLOR_32_32_FLOAT; - else - return V_0280A0_COLOR_32_32; - } - } else if (HAS_SIZE(8,24,0,0)) { - return (do_endian_swap ? V_0280A0_COLOR_8_24 : V_0280A0_COLOR_24_8); - } else if (HAS_SIZE(24,8,0,0)) { + if (HAS_SIZE(4,4,0,0)) { + if (chip <= R700) + return V_0280A0_COLOR_4_4; + else + return ~0U; /* removed on Evergreen */ + } + if (HAS_SIZE(8,8,0,0)) { + return V_0280A0_COLOR_8_8; + } + if (HAS_SIZE(16,16,0,0)) { + if (is_float) + return V_0280A0_COLOR_16_16_FLOAT; + else + return V_0280A0_COLOR_16_16; + } + if (HAS_SIZE(32,32,0,0)) { + if (is_float) + return V_0280A0_COLOR_32_32_FLOAT; + else + return V_0280A0_COLOR_32_32; + } + if (HAS_SIZE(8,24,0,0)) { + if (do_endian_swap) + return V_0280A0_COLOR_8_24; + else + return V_0280A0_COLOR_24_8; + } + if (HAS_SIZE(24,8,0,0)) { return V_0280A0_COLOR_8_24; } break; + case 3: if (HAS_SIZE(5,6,5,0)) { return V_0280A0_COLOR_5_6_5; - } else if (HAS_SIZE(32,8,24,0)) { + } + if (HAS_SIZE(32,8,24,0)) { return V_0280A0_COLOR_X24_8_32_FLOAT; } break; + case 4: - if (desc->channel[0].size == desc->channel[1].size && - desc->channel[0].size == desc->channel[2].size && - desc->channel[0].size == desc->channel[3].size) { - switch (desc->channel[0].size) { - case 4: - return V_0280A0_COLOR_4_4_4_4; - case 8: - return V_0280A0_COLOR_8_8_8_8; - case 16: - if (is_float) - return V_0280A0_COLOR_16_16_16_16_FLOAT; - else - return V_0280A0_COLOR_16_16_16_16; - case 32: - if (is_float) - return V_0280A0_COLOR_32_32_32_32_FLOAT; - else - return V_0280A0_COLOR_32_32_32_32; - } - } else if (HAS_SIZE(5,5,5,1)) { + if (HAS_SIZE(4,4,4,4)) { + return V_0280A0_COLOR_4_4_4_4; + } + if (HAS_SIZE(8,8,8,8)) { + return V_0280A0_COLOR_8_8_8_8; + } + if (HAS_SIZE(16,16,16,16)) { + if (is_float) + return V_0280A0_COLOR_16_16_16_16_FLOAT; + else + return V_0280A0_COLOR_16_16_16_16; + } + if (HAS_SIZE(32,32,32,32)) { + if (is_float) + return V_0280A0_COLOR_32_32_32_32_FLOAT; + else + return V_0280A0_COLOR_32_32_32_32; + } + if (HAS_SIZE(5,5,5,1)) { return V_0280A0_COLOR_1_5_5_5; - } else if (HAS_SIZE(10,10,10,2)) { + } + if (HAS_SIZE(10,10,10,2)) { return V_0280A0_COLOR_2_10_10_10; } break; -- Cheers, Eric _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev