prog_to_nir: Fix fragment depth writes.
authorKenneth Graunke <kenneth@whitecape.org>
Fri, 5 Jun 2015 00:00:17 +0000 (17:00 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Sat, 6 Jun 2015 20:26:10 +0000 (13:26 -0700)
commit7b8f20ec5505a25958bcd98aabe73a7ca2b6cbba
treec399b0bd6e0ff32b57425d6198514e7399161790
parent52e5ad7bf8c731280ca4506b7d38e8c7a8e734b9
prog_to_nir: Fix fragment depth writes.

In the ARB_fragment_program specification, the result.depth output
variable is treated as a vec4, where the fragment depth is stored in the
.z component, and the other three components are undefined.

This is different than GLSL, which uses a scalar value (gl_FragDepth).

To make this consistent for driver backends, this patch makes
prog_to_nir use a scalar output variable for FRAG_RESULT_DEPTH,
moving result.depth.z into the first component.

Fixes Glean's fragProg1 "Z-write test" subtest.

Cc: mesa-stable@lists.freedesktop.org
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90000
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Matt Turner <mattst88@gmail.com>
src/mesa/program/prog_to_nir.c