Use vector transform feedback outputs if possible (#3832)
This commit is contained in:
parent
51a27032f0
commit
9daf029f35
13 changed files with 180 additions and 82 deletions
|
@ -17,6 +17,7 @@ namespace Ryujinx.Graphics.Shader.Translation
|
|||
public ShaderStage Stage { get; }
|
||||
|
||||
public bool GpPassthrough { get; }
|
||||
public bool LastInPipeline { get; private set; }
|
||||
public bool LastInVertexPipeline { get; private set; }
|
||||
|
||||
public int ThreadsPerInputPrimitive { get; }
|
||||
|
@ -143,6 +144,7 @@ namespace Ryujinx.Graphics.Shader.Translation
|
|||
OmapSampleMask = header.OmapSampleMask;
|
||||
OmapDepth = header.OmapDepth;
|
||||
TransformFeedbackEnabled = gpuAccessor.QueryTransformFeedbackEnabled();
|
||||
LastInPipeline = true;
|
||||
LastInVertexPipeline = header.Stage < ShaderStage.Fragment;
|
||||
}
|
||||
|
||||
|
@ -306,6 +308,8 @@ namespace Ryujinx.Graphics.Shader.Translation
|
|||
config._perPatchAttributeLocations = locationsMap;
|
||||
}
|
||||
|
||||
LastInPipeline = false;
|
||||
|
||||
// We don't consider geometry shaders using the geometry shader passthrough feature
|
||||
// as being the last because when this feature is used, it can't actually modify any of the outputs,
|
||||
// so the stage that comes before it is the last one that can do modifications.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue