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>
This commit is contained in:
@@ -389,11 +389,6 @@ nir_visitor::visit(ir_variable *ir)
|
||||
var->data.pixel_center_integer = ir->data.pixel_center_integer;
|
||||
var->data.location_frac = ir->data.location_frac;
|
||||
|
||||
if (var->data.pixel_center_integer) {
|
||||
assert(shader->info.stage == MESA_SHADER_FRAGMENT);
|
||||
shader->info.fs.pixel_center_integer = true;
|
||||
}
|
||||
|
||||
switch (ir->data.depth_layout) {
|
||||
case ir_depth_layout_none:
|
||||
var->data.depth_layout = nir_depth_layout_none;
|
||||
|
Reference in New Issue
Block a user