GeometryShaderGen: Write the layer for every vertex #10387
Merged
+23
−19
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
At least in GLSL, after calling
EmitVertex()the value of all 'out' variables (includinggl_Layerandps) becomes undefined. On OpenGL it seems like they were unchanged, but on Vulkan they became 0, resulting in bad rendering. Note that this isn't exactly true; for the fire man stage the old behavior resulted in flickering even when looping the same frame of the fifolog, so there was an additional element of nondeterminism.Fixes https://bugs.dolphin-emu.org/issues/12001.
Fifologs (megaman-heat, line-width-test, and the fifolog from issue 12001):
Old
New
I've also included images with wireframes enabled, since both are implemented with geometry shaders (I doubt anyone actually uses both of these features together normally). It seems like the way wireframes render for lines is a bit silly (this applies even without stereo 3D), but eh, I don't think that's important enough to deal with fixing currently.