4 ms·
Android allows apps to use an arbitrary GPU driver? How does that work? (I didn't even know Dolphin existed for Android, nothing on the web page points to that
by matsemann 3y ago
Android allows apps to use an arbitrary GPU driver? How does that work?
(I didn't even know Dolphin existed for Android, nothing on the web page points to that. Not that I've ever even used Dolphin, they just have so good release notes that I always check them)
- hrydgard 3y agoOnly the user mode part of the driver is replaced, the kernel interface is actually shared between the closed source and the open source driver. So it's just loaded like a DLL/.so and hooked up to the API.
- sylware 3y agoandroid is linux, and linux kernel interface is the drm (Direct Rendering Manager). BTW, the NVIDIA opensource vulkan driver was dropped in mesa...
- kmeisthax 3y agoThis is only possible because of a very specific quirk of Linux: the interface between the kernel and user mode halves of the GPU driver is considered as sacrosanct as normal Linux syscalls[0]. If you want to get a graphics card driver in kernel you have to get your driver's UAPI approved by the kernel maintainers because it will be supported in Linux until the end of time. No other operating system does it this way, nor will this work on Nvidia proprietary drivers. Everywhere else, the point of demarcation for graphics is OpenGL, DirectX, Metal, or Vulkan entrypoints in userspace. To be clear, there IS a UAPI here too - hardware isolation demands it - but it breaks constantly and nobody bats an eye. If you were willing to deal with that fragility, you could do the same trick on Windows or macOS. [0] For those unaware, Linux has a very explicit policy of never breaking userspace. That means no ABI changes whatsoever.
- zirgs 3y ago> Linux has a very explicit policy of never breaking userspace. And when someone tries to do it - Linus gets very angry. https://lkml.org/lkml/2012/12/23/75 https://lkml.org/lkml/2012/12/23/75
- ftaghn 3y ago> For those unaware, Linux has a very explicit policy of never breaking userspace But has no qualm with constantly refactoring the kernel side of the coin for the most minor of reasons, which causes endless trouble when it comes to supporting out of tree drivers and is the true reason why Android will never be able to provide long term support. SOC manufacturers are not interested in the churn involved in updating their drivers to support the newer kernels that come with new android versions. Most often, it's because they want to keep their driver proprietary, but it is not the only reason, there is a cold hard truth about the nature of the market: new phones are released at a high cadence, while the process of mainlining a driver into upstream linux kernel is arduous, depending on the attitudes of kernel maintainers, truly painful, and no company out there could see any value in waiting for this process to end before releasing their hardware onto the market. Since they're already going to make it out of tree and release it as is, why would they bother? a year later, they'll repeat this process again, and again. Then Android updates, and the devices are obsoleted. On the other hand, you can install the latest GPU driver on Windows 10 just fine, and it is the same driver as the one on 11. Windows doesn't constantly break your not-maintained-by-microsoft drivers with newer versions of their kernel.
- rstat1 3y agoFor the part that most people care about (which is the userspace side, that comes from the Mesa Project) you can freely update it to whatever is the latest version without really having to care about the kernel side. The only point at which the kernel side of the GPU equation actually matters for Mesa is when new HW comes out. >>you can install the latest GPU driver on Windows 10 just fine, and it is the same driver as the one on 11 MS is certainly well known for breaking Windows drivers across major releases. The only reason that Win10 and 11 driver is the same is because Win10 and 11 are more or less the same thing.
- Dalewyn 3y ago>MS is certainly well known for breaking Windows drivers across major releases. The only reason that Win10 and 11 driver is the same is because Win10 and 11 are more or less the same thing. Not quite accurate, it depends on whether a new version of Windows has a significantly newer kernel. Windows 2000 and Windows XP (and all its derivatives) share the NT5.x kernel, and thus drivers for any of them generally work in the others. Likewise Windows Vista/7/8/8.1 which all share the NT6.x kernel, and Windows 10 and 11 which share the NT10.0 kernel.
- Rhedox 3y agoI don't think that's the case for Android GPU drivers. The kernel driver is just an out of tree kernel module.
- ls612 3y agoYuzu has a similar feature on their android release. I bet that’s the big reason why these emulators are on android and not iOS, the graphics hardware on modern iPhones is certainly capable.
- matsemann 3y agoI'd guess missing the ability to sideload is also a huge factor. If Google doesn't allow Dolphin, they can use a different store or distribute the apk themselves. If Apple doesn't allow Dolphin, all the effort is in vain. Walled gardens, eh?
- mdwalters 3y ago> If Apple doesn't allow Dolphin, all the effort is in vain. With a jailbreaked iPhone device, you can possibly install Dolphin through a separate package manager (Cydia, Sileo, etc.)
- mod50ack 3y agoYes, but iPhones are not uniformly jailbreakable, and restricting yourself to a niche like that makes it harder to get people in (as users or as developers). You've essentially moved from a popular platform (iOS) to a very niche one (jailbroken iOS).
- echelon 3y agoWe should use a term like liberated rather than jailbroken. The phrasing leads to a conclusion about the behavior which isn't correct.
- deleted 3y ago[deleted]
- ozarker 3y agoA Dolphin build for iOS exists and works well. You just have to jump through a bunch of hoops to sideload it. See https://altstore.io/ https://altstore.io/
- TillE 3y agoGame console emulators are surprisingly popular on Android. Even with a bluetooth controller, it seems like a terrible experience with a tiny screen that's even tinier if you're playing retro games with a 4:3 aspect ratio.
- rodgerd 3y agoI mean we played the originals on screens where 14-21" TVs were very normal for people.
- jdiff 3y agoAnd if it's a handheld console, the phone screen certainly dwarfs the original console's.
- andrepd 3y ago>tiny screen I wish! Have you seen phones nowadays? They're bigger than tablets were in 2014!
- imiric 3y agoAndroid has quite a capable emulation ecosystem. There are emulators for most major platforms, and frontends like Daijishou make the experience very user friendly. There's a plethora of handheld devices from Anbernic, Retroid and others, with built-in controllers, so no latency from BT, or you can just get something like a Razer Kishi for a regular phone. Modern chipsets are very fast and efficient, screens are large and high resolution, battery life is excellent, etc. We're really in the golden age of emulation on mobile devices.
- Rebelgecko 3y agoIMO with the upscaling it's great for GB/GBA, and even PSP games. Even though the controls aren't "native", the experience overall is better because you avoid a lot of the monetization hell most Android games have become.
- extraduder_ire 3y ago