nir/lower_wpos_center: support adding sample position to fragment coordinate

According to section 14.6 of the Vulkan specification:

   "When sample shading is enabled, the x and y components of FragCoord
    reflect the location of the sample corresponding to the shader
    invocation."

So add a boolean parameter to the lowering pass to select this behavior
when we need it.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
Iago Toral Quiroga
2017-03-23 11:54:16 +01:00
parent 4da1832c00
commit 023ea3772d
3 changed files with 26 additions and 9 deletions
+1 -1
View File
@@ -158,7 +158,7 @@ anv_shader_compile_to_nir(struct anv_device *device,
nir_var_shader_in | nir_var_shader_out | nir_var_system_value);
if (stage == MESA_SHADER_FRAGMENT)
NIR_PASS_V(nir, nir_lower_wpos_center);
NIR_PASS_V(nir, nir_lower_wpos_center, false);
/* Now that we've deleted all but the main function, we can go ahead and
* lower the rest of the constant initializers.