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 (merged).
My only concern here is a2xx: Does it actually do integer centers and we make fd_screen condition on that? That feels unlikely (why wouldn't the hardware give you the number you want?), but I don't have CI to test it.
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%)
Edited by Emma Anholt