Emulate large and negative viewports on D3D11 Feature Level 9_3
Like D3D9, D3D11 Feature Level 9_3 doesn't support large or negative
viewports. We have to emulate these in the vertex shader.
BUG=angle:858
Change-Id: I2bd53e3921dc3590cc7193164d73596deafca9ea
Reviewed-on: https://chromium-review.googlesource.com/236040
Tested-by: Austin Kinross <aukinros@microsoft.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libANGLE/renderer/d3d/DynamicHLSL.cpp b/src/libANGLE/renderer/d3d/DynamicHLSL.cpp
index 1225f58..215c71f 100644
--- a/src/libANGLE/renderer/d3d/DynamicHLSL.cpp
+++ b/src/libANGLE/renderer/d3d/DynamicHLSL.cpp
@@ -728,7 +728,8 @@
"{\n"
" initAttributes(input);\n";
- if (shaderModel >= 4)
+ // On D3D9 or D3D11 Feature Level 9, we need to emulate large viewports using dx_ViewAdjust.
+ if (shaderModel >= 4 && mRenderer->getShaderModelSuffix() == "")
{
vertexHLSL += "\n"
" gl_main();\n"