Auto-detect GPU and select optimal graphics driver for new containers - #1998
Auto-detect GPU and select optimal graphics driver for new containers#1998gigachadmma69 wants to merge 1 commit into
Conversation
…ners When creating a new container, detect the device GPU and default to the appropriate graphics driver: - Adreno GPUs: default to Turnip + DXVK (best performance) - Mali/PowerVR/other GPUs: default to VirGL + WineD3D (compatible) Previously, all new containers defaulted to Turnip regardless of GPU, causing black screens and crashes on non-Adreno devices (Samsung Exynos, MediaTek Dimensity). Users had to manually discover they needed to switch to VirGL, which was the #1 source of "nothing works" reports. Added helper methods to GPUInformation: - isAdreno(), isMali(), isPowerVR() for GPU family detection - getRecommendedGraphicsDriver() returns optimal driver for detected GPU - getRecommendedDXWrapper() returns optimal DX wrapper for detected GPU
|
So problem when I download games |
|
@brunodev85 🙏🏻 |
|
Hello
…On Mon, Mar 2, 2026, 10:04 PM harahyu ***@***.***> wrote:
*harahyu* left a comment (brunodev85/winlator#1998)
<#1998 (comment)>
@gigachadmma69 <https://github.com/gigachadmma69> ability to add turnip
drivers using bylaws turnip tool will be good for newer devices
—
Reply to this email directly, view it on GitHub
<#1998 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/A4LINMP7UNLTKVRQPB2FTE34OWZX5AVCNFSM6AAAAACWCJR666VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTSOBVGQ3DCOBUG4>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
|
Similarly, ability to automatically detect or at least manually set/override to the more performant CPU topology would be nice - both custom masks and custom order. Notably, at least in my usage with Retroid pocket G2, it seems to completely ignore environment variables I try to adjust it with, or even the GUI's own affinity settings, leaving the most powerful core seemingly completely unutilized, and the order in which it's using the cores is inverted - using the weakest cores for the main thread. I suspect it's something to do with how hardcoded container setup might be? It should be made easy to override, not whatever it's doing right now. |
|
Op your idea is great but how you explained it is not, let me explain |
Summary
Problem
Currently, all new containers default to
turnipregardless of the actual GPU hardware. This causes immediate black screens or crashes on non-Adreno devices (Samsung Exynos with Mali, MediaTek Dimensity with Mali, etc.). Users have to manually discover they need to switch to VirGL, which is unintuitive and the most common source of "nothing works" first-run reports.Related issues: #145, #550, #586, #608, #1127
Changes
GPUInformation.java-- Added GPU family detection methods:isAdreno()/isMali()/isPowerVR()-- detect GPU family from GL_RENDERER stringgetRecommendedGraphicsDriver()-- returns"turnip"for Adreno,"virgl"for othersgetRecommendedDXWrapper()-- returns"dxvk"for Adreno,"wined3d"for othersContainerDetailFragment.java-- When creating a new container (not editing existing), use the detected GPU's recommended driver/wrapper instead of the hardcodedturnip/dxvkdefaults.Impact
Test plan