diff options
| author | gdkchan <gab.dark.100@gmail.com> | 2022-01-21 12:35:21 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-01-21 12:35:21 -0300 |
| commit | 7e967d796cf572377f21af3817a22755c5b01cb1 (patch) | |
| tree | 3c05dfde7d6ddfa97b667649afa744a2eb25432f /Ryujinx.Graphics.Shader/StructuredIr/StructuredProgram.cs | |
| parent | 0e59573f2b55420c2c3fcfc3aaad56dba70e1492 (diff) | |
Stop using glTransformFeedbackVaryings and use explicit layout on the shader (#3012)
* Stop using glTransformFeedbackVarying and use explicit layout on the shader
* This is no longer needed
* Shader cache version bump
* Fix gl_PerVertex output for tessellation control shaders
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; } |
