GLSL: perform Y flip in vertex shader.

Change-Id: If7d038b4739f475bd26e0f7b3eaeec364df35ad5
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/67860
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
diff --git a/src/writer/glsl/generator_impl.cc b/src/writer/glsl/generator_impl.cc
index 80db771..0909adc 100644
--- a/src/writer/glsl/generator_impl.cc
+++ b/src/writer/glsl/generator_impl.cc
@@ -1914,6 +1914,9 @@
       out << " = outputs." << name << ";" << std::endl;
     }
   }
+  if (func->PipelineStage() == ast::PipelineStage::kVertex) {
+    out << "  gl_Position.y = -gl_Position.y;" << std::endl;
+  }
 
   out << "}" << std::endl << std::endl;
 
diff --git a/src/writer/glsl/generator_impl_function_test.cc b/src/writer/glsl/generator_impl_function_test.cc
index 0cd8b97..9f82acb 100644
--- a/src/writer/glsl/generator_impl_function_test.cc
+++ b/src/writer/glsl/generator_impl_function_test.cc
@@ -292,6 +292,7 @@
   col1 = outputs.col1;
   col2 = outputs.col2;
   gl_Position = outputs.pos;
+  gl_Position.y = -gl_Position.y;
 }