diff options
Diffstat (limited to 'Ryujinx.Graphics.Shader/StructuredIr/StructuredProgram.cs')
| -rw-r--r-- | Ryujinx.Graphics.Shader/StructuredIr/StructuredProgram.cs | 18 |
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; } |
