The problem with all that is that DirectX is tightly integrated into Windows-specific components, and therefore the only level that it could exist is along the rest of the Wine layer. I also wish to note that AMD isn't releasing radeon drivers, they had Novell develop a WHOLE NEW driver for the ATI cards. Really the best way to deal with issues with DirectX and OpenGL is to add extensions to OpenGL to expose the functionality in the hardware that can be translated to DX calls. In Linux, I suppose this wouldn't be a big issue since the Mesa stuff could be modified to expose the functionality missing. If Wine can take advantage of compiz or AIGLX functionality, then that is wonderful. AFAIK, Wine does not utilize compiz or AIGLX functionality, rather it goes straight to Mesa? I am not a programmer, so I don't really know.
On 23/11/2007, Remco <remco47@yahoo.com> wrote:This sounds interesting.
> I don't know the first thing about driver- and DirectX-programming, so please forgive (and point out) any mistakes.
>
> As a reader of this list I'm wondering; there are quite a few problems that come from the fact that DirectX isn't 1:1 translatable to OpenGL. How about talking to some guys from the GPU-driver department about creating a driver-interface that gives you the right hooks. I guess Parallels and Transgaming would also be interested in such a development. I can imagine that the Nouveau-devs and Xorg-radeon-devs would be more than happy to listen.
It may be useful contacting the nouveau (open source NVidia 3D driver
reverse engineering project) development team to see if they can add
OpenGL extensions for DirectX functionality.
Intel have official open source drivers for Linux, so it would be
useful contacting their developers as well.
Also, with the AMD merger, the radeon drivers are being released as
open source. There are also the reverse engineered radeon drivers, so
they might be interested. And with the graphics card specs being
published, this might make it easier to do this.It is only Windows applications that use DirectX. All of the Linux
> This goes beyond the scope of the Wine project I think. But since Wine
> has the higher level part of DirectX documented and implemented on top
> of OpenGL, wouldn't this be the place to start an independent library?
> Codeweavers has a lot of knowledge about Windows, DirectX and Linux.
> Only Microsoft itself would be a better choice, but I don't think they
> really care that much about Linux. ;)
>
> This would mean that DirectX would be as native to Linux and OSX (and friends) as it would be for Windows. It would be an actual reliable platform that could be used by game developers. It would de-Windows-ize DirectX. Maybe NVIDIA, ATI and Intel would also be interested. They could sell their expensive next-gen cards to those 5% that don't run Windows if games would actually be released for non-Windows OSes.
>
> Or are there really compelling technical reasons to wrap around OpenGL? I can think of the Compiz-issue. Similarly, Microsoft stated that they have to wrap OpenGL around DirectX on Windows, to be able to use both OpenGL and DirectX at the same time (for Aero). But I suspect that this implementation just developed naturally because messing with the drivers would be unthinkable way back when.
infrastructure (Xgl, Compiz, etc.) is built around OpenGL. Therefore,
for Wine to integrate into the Linux desktop infrastructure, DirectX
needs to map onto OpenGL.
I would say that the best approach would be cooperating with the
nouveau, Intel and Radeon Linux graphics driver developers to add the
extensions needed to support DirectX. The Intel and Radeon developers
would be useful to have on board, as they might be able to give
information on how they are implementing DirectX: this will allow us
to cooperate with the Linux driver teams to get the OpenGL extensions
needed.
As for the nouveau team, it would be interesting to get the renouveau
reverse engineering driver running on Windows to reverse engineer the
DirectX driver and develop the corresponding OpenGL extensions.
- Reece