nir: Record info->fs.pixel_center_integer in lower_system_values
authorKenneth Graunke <kenneth@whitecape.org>
Sat, 2 Feb 2019 08:43:42 +0000 (00:43 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Tue, 5 Feb 2019 21:51:52 +0000 (13:51 -0800)
commit3327c93510b2956ef979778e52848331b597cbf0
treec0c1a656e01c176767fe02a20713126567c648f1
parent536abd453bfedd4a424d94f4559371fd38cfaa7b
nir: Record info->fs.pixel_center_integer in lower_system_values

radeonsi uses a system value for gl_FragCoord rather than an input var.
These get translated into load_frag_coord NIR intrinsics, which lose the
pixel_center_integer and origin_upper_left decorations.  To cope with
this, Tim added a shader_info field for pixel_center_integer, and made
glsl_to_nir set it accordingly.

prog_to_nir also needs to handle these fragcoord conventions.  Instead
of duplicating the logic to set the info field, just move it to
nir_lower_system_values so it'll happen regardless of who makes the NIR.

(For what it's worth, we don't need an info flag for origin_upper_left,
because radeonsi lowers origin conventions in nir_lower_wpos_ytransform
before nir_lower_system_values destroys the variable and qualifiers.)

Reviewed-by: Eric Anholt <eric@anholt.net>
src/compiler/glsl/glsl_to_nir.cpp
src/compiler/nir/nir_lower_system_values.c