What is the "gdi" Video Output?

Not to be confused with the Dreamcast Disc format. I was looking for Graphics APIs on “Setting > Drivers > Video” and I found out something called “gdi” I wonder what that is?

It’s a very old and basic OpenGL v1.1 driver from Microsoft. It stands for “graphics device interface”.

Intel decided not to provide OpenGL drivers for their older integrated graphics chipsets starting in Win10, so these devices fall back to the GDI driver despite being capable of much more.

So it’s for OpenGL 1.1. I also heard of “gl1” is that also for really old OpenGL versions? What’s the difference between the two?

Yes. I honestly don’t know the specific differences between them, other than GDI being MS-specific. You don’t want to use either of them if at all possible, and situations where one works will probably preclude using the other.

1 Like

So you’re saying that using one of them will prevent using the other? That sounds strange. Besides, I would like the Modern Windows version of Retroarch (the one that requires 7 and up) to remove both since the RA version probably requires OpenGL 3.3 (or 3.1).

No, I’m saying that if you need to use one of them for whatever reason, the other one probably isn’t going to be compatible. They cover different usecases.

Not gonna happen. As I mentioned, many common GPUs/IGPs fall back to GDI, so if that driver wasn’t there, it would just crash instead.

1 Like

So maybe you’re saying that Microsoft made a heavily modified variant of OpenGL 1.1 which is why it’s different from the usual one.

So many common GPUs/IGPs including those made after 2010, right? I was thinking Retroarch should make another unique version just for Windows 10 (since version 2004) and up (64-bit only, no 32-bit version should be made) to forget about older hardware and the Current version should become a legacy version for Windows 7, 8, 8.1 and pre-2004 Win 10 (as 3 of these versions will become unsupported by Microsoft in January 10th 2023).

Not likely to happen any time soon. Spinning off a new “legacy” version is the same from a maintenance perspective as adding a new platform, only this one would provide no additional benefits, aside from removing potentially useful features.

As you may have noticed, we choose to support lots of different hardware and software configurations, including many that are no longer supported by their manufacturers (32-bit CPUs and Windows XP and DOS and old Linuxes, etc.) or sometimes never were (Gamecube/Wii, PS2, iOS).

Everyone thinks their personal usecase is the only one that matters and that we should sideline or completely remove everything else for simplicity. We disagree, but anyone else is welcome to make that happen by forking the project.

1 Like

I meant legacy version as in another version that will still be updated similar to how there’s a version for Windows 95/98, a version for Windows 98SE/ME/2000 and a version XP/Vista. There should be a fifth Windows version for those modern systems.

The reason those versions are on their own is because they can’t coexist with the modern one for various reasons (mostly related to requiring older compilers). If we could have a single version that covered all of them, we totally would because it means less for us to maintain; fewer releases to break, fewer binaries to store, fewer torpedo-bugs that arise from reduced tester pool, etc.

So, if something ends up happening that forces us to spin a different version off, we will, but we aren’t going to do it preemptively.

1 Like