Use 'inout' qualifiers in generated HLSL for 'out' parameters.
With our added padding to some structures, using only 'out' in the
generated HLSL can cause warnings because not all of the structure members
are initialized.
BUG=angle:286
Change-Id: I866960883de487f19883fb2bc086c02703ea6271
Reviewed-on: https://chromium-review.googlesource.com/201364
Reviewed-by: Nicolas Capens <nicolascapens@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
diff --git a/src/compiler/translator/OutputHLSL.cpp b/src/compiler/translator/OutputHLSL.cpp
index 17223f1..d747ddd 100644
--- a/src/compiler/translator/OutputHLSL.cpp
+++ b/src/compiler/translator/OutputHLSL.cpp
@@ -3303,7 +3303,7 @@
switch(qualifier)
{
case EvqIn: return "in";
- case EvqOut: return "out";
+ case EvqOut: return "inout"; // 'out' results in an HLSL error if not all fields are written, for GLSL it's undefined
case EvqInOut: return "inout";
case EvqConstReadOnly: return "const";
default: UNREACHABLE();