Skip to content

Fix dialog box rendering - disable GL_SCISSOR before MSAA resolve blit#133

Open
matthewdotdev wants to merge 1 commit intoMorsGames:masterfrom
matthewdotdev:fix/dialog-box-rendering
Open

Fix dialog box rendering - disable GL_SCISSOR before MSAA resolve blit#133
matthewdotdev wants to merge 1 commit intoMorsGames:masterfrom
matthewdotdev:fix/dialog-box-rendering

Conversation

@matthewdotdev
Copy link
Copy Markdown

I am definitely not a graphics programmer, so this is based on testing and debugging rather than any deep or technical understanding of OpenGL internals. I also only tested this on my Steam Deck built on a Windows machine and run using Proton.

From what I could trace, the issue seems to be in the MSAA glBlitFramebuffer path running while scissor is still enabled. I believe that means only part of the destination framebuffer gets updated while the rest remains stale, which seems to match the weird artifacting that happens when dialog boxes render.

This change disables scissor before the MSAA resolve blits.

I originally narrowed this down by noticing that disabling anti_aliasing on the current master branch, which resolves the issue.

Claude Opus helped me narrow down the likely cause in the code here, along with some Googling (specifically, this wiki) and trial and error. I have not done broad regression testing yet, just a few levels and dialog boxes.

@matthewdotdev matthewdotdev changed the title fix: disable GL_SCISSOR before MSAA resolve blit Fix dialog box rendering - disable GL_SCISSOR before MSAA resolve blit Mar 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant