summaryrefslogtreecommitdiffstats
path: root/HLSL2GLSLConverter/testshaders/SelectArraySlice.gsh
diff options
context:
space:
mode:
Diffstat (limited to 'HLSL2GLSLConverter/testshaders/SelectArraySlice.gsh')
-rw-r--r--HLSL2GLSLConverter/testshaders/SelectArraySlice.gsh27
1 files changed, 27 insertions, 0 deletions
diff --git a/HLSL2GLSLConverter/testshaders/SelectArraySlice.gsh b/HLSL2GLSLConverter/testshaders/SelectArraySlice.gsh
new file mode 100644
index 0000000..a2176ec
--- /dev/null
+++ b/HLSL2GLSLConverter/testshaders/SelectArraySlice.gsh
@@ -0,0 +1,27 @@
+#include "CommonShaderStructs.shinc"
+
+struct SelectArraySliceGSOut
+{
+ QuadVSOut VSOutput;
+ int RenderTargetIndex : SV_RenderTargetArrayIndex;
+};
+
+cbuffer cbTileAttribs
+{
+ int g_TileArrayIndex[4];
+}
+
+[maxvertexcount(3)]
+void SelectArraySliceGS(triangle QuadVSOut In[3],
+ inout TriangleStream<SelectArraySliceGSOut> triStream )
+{
+ uint InstID = In[0].m_uiInstID;
+ int RTIndex = g_TileArrayIndex[InstID];
+ for(int i=0; i<3; i++)
+ {
+ SelectArraySliceGSOut Out;
+ Out.VSOutput = In[i];
+ Out.RenderTargetIndex = RTIndex;
+ triStream.Append( Out );
+ }
+}