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

Tracking issue for rendering bugs on certain SDL_Renderer backends #65

Open
nmlgc opened this issue Aug 27, 2024 · 0 comments
Open

Tracking issue for rendering bugs on certain SDL_Renderer backends #65

nmlgc opened this issue Aug 27, 2024 · 0 comments
Labels

Comments

@nmlgc
Copy link
Owner

nmlgc commented Aug 27, 2024

Trying to run every SDL_Renderer backend on every GPU ever released will invariably uncover a potentially overwhelming number of bugs. Since these aren't really my fault, the policy is as follows: If the game works without issues on at least one of the backends (including the software one), the bug is in SDL_Renderer or (more likely) the GPU or its driver, and it's not eligible for a free fix according to the ReC98 bugfix policy. If these backend-specific bugs really bother you, file an issue with SDL and investigate it there. If SDL fixes or works around such a bug, I will release a fixed build of the latest version of this fork, with a recompiled SDL DLL, for free.

OpenGL ES 2 × Intel iGPUs × Geometry scaling: Last render call on each frame is omitted

Screenshot of Shuusou Gyoku's main menu as rendered with SDL_Renderer's OpenGL ES 2 backend on an Intel iGPU, showing off the missing Exit option
Exit is not rendered.

OpenGL.ES.2.x.Intel.iGPUs.3.webm
Note how the game flips between omitting the number of credits and the Y of DEMO PLAY, depending on what is rendered last on each frame.

Introduced in SDL commit f9b918ff403782986f2a6712e6e2a462767a0457 with the move to client-side arrays. Can be reproduced with the testsprite2 example program:

Screenshot of SDL's testsprite2 example program as rendered with SDL_Renderer's OpenGL ES 2 backend on an Intel iGPU, showing off how specifiying two smiley faces on the command line will nevertheless only show a single one
testsprite2 --renderer opengles2 2 will only show a single bouncing smiley face on this iGPU.

Confirmed on two separate Intel iGPUs (HD Graphics 630 and UHD Graphics 630); switching to a discrete Nvidia GPU made the error go away, as does using framebuffer scaling.

Direct3D 12: Slowdowns with lots of sprites on screen (particularly with large bullet cancels after the Extra Stage midboss)

Tracked in #35.

Direct3D 11: Not working on Wine

SDL 2's Direct3D 11 backend uses the IDXGISwapChain1::SetRotation() method, which Wine (as of version 9.18) doesn't implement:
The exact erro: Error creating Direct3D 11 renderer: D3D11_CreateWindowSizeDependentResources, IDXGISwapChain1::SetRotation: Not implemented.

Repository owner deleted a comment Aug 27, 2024
Repository owner deleted a comment Aug 27, 2024
Repository owner deleted a comment Aug 27, 2024
Repository owner deleted a comment Aug 27, 2024
@nmlgc nmlgc added the Graphics label Sep 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant