aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Shader/StructuredIr/StructuredProgram.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.Graphics.Shader/StructuredIr/StructuredProgram.cs')
-rw-r--r--Ryujinx.Graphics.Shader/StructuredIr/StructuredProgram.cs18
1 files changed, 18 insertions, 0 deletions
diff --git a/Ryujinx.Graphics.Shader/StructuredIr/StructuredProgram.cs b/Ryujinx.Graphics.Shader/StructuredIr/StructuredProgram.cs
index 61cc167a..31c71f20 100644
--- a/Ryujinx.Graphics.Shader/StructuredIr/StructuredProgram.cs
+++ b/Ryujinx.Graphics.Shader/StructuredIr/StructuredProgram.cs
@@ -64,6 +64,24 @@ namespace Ryujinx.Graphics.Shader.StructuredIr
context.LeaveFunction();
}
+ if (config.TransformFeedbackEnabled)
+ {
+ for (int tfbIndex = 0; tfbIndex < 4; tfbIndex++)
+ {
+ var locations = config.GpuAccessor.QueryTransformFeedbackVaryingLocations(tfbIndex);
+ var stride = config.GpuAccessor.QueryTransformFeedbackStride(tfbIndex);
+
+ for (int j = 0; j < locations.Length; j++)
+ {
+ byte location = locations[j];
+ if (location < 0x80)
+ {
+ context.Info.TransformFeedbackOutputs[location] = new TransformFeedbackOutput(tfbIndex, j * 4, stride);
+ }
+ }
+ }
+ }
+
return context.Info;
}