Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

VideoCommon: Zero PortableVertexDeclarations on initialization #11246

Merged
merged 1 commit into from Nov 6, 2022

Conversation

TellowKrinkle
Copy link
Contributor

The default compiler-generated initializer isn't required to initialize padding, making for fun non-determinism when playing back fifologs

See: https://gcc.godbolt.org/z/vev3n47d9

Note: I'm not sure the compiler-generated copy constructor is required to copy padding either, but all notable C++ compilers do, and we static_assert that PortableVertexDeclaration is trivially copyable

(Fixes the random missing textures on the M1 fifoplayer)

Fixes an issue where the default initializer wouldn't initialize padding, making for fun non-determinism
@AdmiralCurtiss AdmiralCurtiss merged commit 1348337 into dolphin-emu:master Nov 6, 2022
11 checks passed
@TellowKrinkle TellowKrinkle deleted the PVDMemset branch November 7, 2022 03:02
TellowKrinkle added a commit to TellowKrinkle/fifoci that referenced this pull request Nov 12, 2022
…and mipmapping

Early memory updates should no longer be needed as of dolphin-emu/dolphin#11246
Disabling mipmapping works around an issue in M1-non-pros where the edges of triangles pick up wrong mip levels every now and then (see https://github.com/tellowkrinkle/MetalBugReproduction/releases/tag/BrokenMipmapRender)
Manual texture sampling was enabled in an attempt to work around the mipmapping issue, but didn't end up helping.  I'm guessing issue is actually in the derivative calculation, rather than the sampling operation itself.
delroth pushed a commit to dolphin-emu/fifoci that referenced this pull request Nov 13, 2022
…and mipmapping

Early memory updates should no longer be needed as of dolphin-emu/dolphin#11246
Disabling mipmapping works around an issue in M1-non-pros where the edges of triangles pick up wrong mip levels every now and then (see https://github.com/tellowkrinkle/MetalBugReproduction/releases/tag/BrokenMipmapRender)
Manual texture sampling was enabled in an attempt to work around the mipmapping issue, but didn't end up helping.  I'm guessing issue is actually in the derivative calculation, rather than the sampling operation itself.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
4 participants