freedreno: Switch to exposing only half-integer pixel centers.
authorEric Anholt <eric@anholt.net>
Tue, 17 Mar 2020 23:03:11 +0000 (16:03 -0700)
committerMarge Bot <eric+marge@anholt.net>
Thu, 19 Mar 2020 21:35:49 +0000 (21:35 +0000)
commit5b57aa79e2bd244079639bcc696251ce0f7af7c7
tree972a29ec94f0186607a7349d511ad7c525487752
parent5c8ba96a54feaf9bb783bb165bce91ee0c3253f9
freedreno: Switch to exposing only half-integer pixel centers.

This is what the HW provides us.  If we need integer pixel centers, we
want the state tracker to do the lowering pass so that it gets to optimize
on the subtract.  This is also the shader instructions that the blob is
doing on GLES, and is what Vulkan wants too, as was noted in MR !4172.

shader-db on a630:
total instructions in shared programs: 186689 -> 186168 (-0.28%)
total nops in shared programs: 66253 -> 66139 (-0.17%)
total non-nops in shared programs: 120436 -> 120029 (-0.34%)
total dwords in shared programs: 292192 -> 291168 (-0.35%)
total last-baryf in shared programs: 4810 -> 4734 (-1.58%)
total full in shared programs: 10176 -> 10195 (0.19%)
total constlen in shared programs: 54589 -> 54575 (-0.03%)
total sstall in shared programs: 24582 -> 24802 (0.89%)
total (ss) in shared programs: 3921 -> 3925 (0.10%)
total (sy) in shared programs: 1934 -> 1923 (-0.57%)

Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4223>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4223>
src/freedreno/ir3/ir3_compiler_nir.c
src/gallium/drivers/freedreno/freedreno_screen.c