Hi, I seem to have lost interest in making Apple-DRI work for the latest mesa, so I figured I'd share my work so far. It's a single diff, to avoid showing of my more embarrasing commits. :p It should probably still be considered a work in progress. It's pretty much bashed into place, without any finesse. What works: Apple-DRI works in direct mode, including window resizing. apple_dispatch.h is generated in a new way, avoiding the manual apple_disaptch.defs, which seemed like a PITA to maintain. What does not work: Indirect drawing is horribly broken. The indexes I put in apple_dispatch.h are wrong, and there's other problems too. I managed to crash the X server once by constantly resizing a GLX window (showing glxgears), but I haven't been able to reproduce it. There are a few #ifdef in autogenerated files, which is bad. To sum it up, the dispatch_stub functions and the ones using the GLint64EXT type are commented out, since it seems to be missing in OpenGL.framework. How to apply: Check out TOT mesa from git://anongit.freedesktop.org/git/mesa/mesa Apply diff. The diff is vs commit 02926a297782579591fc6b2b5f29b9d7709814da I hope someone will find it useful. -- Pelle Johansson
Thanks, that's a big help. I started heading down a similar path as you, but I gave up before getting this far. I know how much of a headache this must've been, so my utmost gratitude goes out to you. Additionally, we're considering taking most of this dispatch table out into a separate DRI driver that both libGL and the X server will use (for local DRI, and AIGLX respectively) and migrating over to the same DRI data path that linux, bsd, et al are using... that should keep most of this code out of Mesa proper and allow us to maintain what is essentially a DRI driver using OpenGL.framework instead of hardware (instead of translating OpenGL->kernel module, we'll be doing OpenGL -
OpenGL.framework).
Thanks! --Jeremy On Mar 7, 2008, at 10:41, Pelle Johansson wrote:
Hi,
I seem to have lost interest in making Apple-DRI work for the latest mesa, so I figured I'd share my work so far. It's a single diff, to avoid showing of my more embarrasing commits. :p
It should probably still be considered a work in progress. It's pretty much bashed into place, without any finesse.
What works:
Apple-DRI works in direct mode, including window resizing. apple_dispatch.h is generated in a new way, avoiding the manual apple_disaptch.defs, which seemed like a PITA to maintain.
What does not work:
Indirect drawing is horribly broken. The indexes I put in apple_dispatch.h are wrong, and there's other problems too. I managed to crash the X server once by constantly resizing a GLX window (showing glxgears), but I haven't been able to reproduce it. There are a few #ifdef in autogenerated files, which is bad. To sum it up, the dispatch_stub functions and the ones using the GLint64EXT type are commented out, since it seems to be missing in OpenGL.framework.
How to apply:
Check out TOT mesa from git://anongit.freedesktop.org/git/mesa/mesa Apply diff. The diff is vs commit 02926a297782579591fc6b2b5f29b9d7709814da
I hope someone will find it useful. -- Pelle Johansson
<appledri.diff> _______________________________________________ Xquartz-dev mailing list Xquartz-dev@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/xquartz-dev
Well, I'm still kind of a newbie wrt how all this works, though I guess I did learn quite a bit working with it. But the thought that OpenGL.framework should just be another driver did occur to me. It seems kind of complicated though. I did run into the file src/mesa/ main/dd.h recently, I'm guessing that is a key part. But before that I guess the XF86Dri protocol has to be working in the server, which probably means some sort of fake drm module. So it seems to be a lot of work... -- Pelle Johansson 8 mar 2008 kl. 00.51 skrev Jeremy Huddleston:
Thanks, that's a big help.
I started heading down a similar path as you, but I gave up before getting this far. I know how much of a headache this must've been, so my utmost gratitude goes out to you.
Additionally, we're considering taking most of this dispatch table out into a separate DRI driver that both libGL and the X server will use (for local DRI, and AIGLX respectively) and migrating over to the same DRI data path that linux, bsd, et al are using... that should keep most of this code out of Mesa proper and allow us to maintain what is essentially a DRI driver using OpenGL.framework instead of hardware (instead of translating OpenGL->kernel module, we'll be doing OpenGL -> OpenGL.framework).
Thanks!
--Jeremy
On Mar 7, 2008, at 10:41, Pelle Johansson wrote:
Hi,
I seem to have lost interest in making Apple-DRI work for the latest mesa, so I figured I'd share my work so far. It's a single diff, to avoid showing of my more embarrasing commits. :p
It should probably still be considered a work in progress. It's pretty much bashed into place, without any finesse.
What works:
Apple-DRI works in direct mode, including window resizing. apple_dispatch.h is generated in a new way, avoiding the manual apple_disaptch.defs, which seemed like a PITA to maintain.
What does not work:
Indirect drawing is horribly broken. The indexes I put in apple_dispatch.h are wrong, and there's other problems too. I managed to crash the X server once by constantly resizing a GLX window (showing glxgears), but I haven't been able to reproduce it. There are a few #ifdef in autogenerated files, which is bad. To sum it up, the dispatch_stub functions and the ones using the GLint64EXT type are commented out, since it seems to be missing in OpenGL.framework.
How to apply:
Check out TOT mesa from git://anongit.freedesktop.org/git/mesa/mesa Apply diff. The diff is vs commit 02926a297782579591fc6b2b5f29b9d7709814da
I hope someone will find it useful. -- Pelle Johansson
<appledri.diff> _______________________________________________ Xquartz-dev mailing list Xquartz-dev@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/xquartz-dev
_______________________________________________ Xquartz-dev mailing list Xquartz-dev@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/xquartz-dev
participants (2)
-
Jeremy Huddleston
-
Pelle Johansson