radeonsi: fix guardband handling for large values
authorPierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Fri, 11 Sep 2020 09:52:18 +0000 (11:52 +0200)
committerPierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Wed, 16 Sep 2020 07:54:11 +0000 (09:54 +0200)
commitf1730bed8f05e0b017875e383c9f413e7ef10b79
treee7e46d2ebb0042c3d0796a84680d9a354de5f7e3
parentc493bb9a5700e3db02279a0073abac697c01d8d8
radeonsi: fix guardband handling for large values

When minx = -32768 (ViewportBounds.Min) we'll hit the "left <= -1, ..."
assert because 'left' is computed as:

   (-65535 / 2 - translate_x) / (minx - translate_x)

This commit fixes the problem by using the full max_viewport_size => [-32768, 32767]
instead of [-32767, 32767] for SI_QUANT_MODE_16_8_FIXED_POINT_1_256TH.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3502
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6685>
src/gallium/drivers/radeonsi/si_state_viewport.c