Re: Enable OpenGL software rendering on macOS

Martin Pernollet <[email protected]>
Newsgroups gmane.comp.video.mesa3d.devel
Message-ID <cblzzl4q1KUQZj7ktz_Uawo_vTzKZceKJPIFHn5wo77aO85Q4nfXiHktVrT0Qe4BvEpjXTVx7dSDcSUw83MFJMWwAut-wEb-6oA6M41aU-8=@protonmail.com>
Thank you all for your answers.

Alyssa : I agree that Linux is easier to tackle, but I unfortunately can't ask to my clients to drop macOS support :) Do you mean that you finally stopped trying running Mesa on macOS?

Jose : I was indeed thinking of MoltenGL to keep OpenGL working on Apple GPU. My thought about Mesa/macOS is only for CPU rendering. JOGL architecture assume that the OS can provide a GL shared library so I would not build JOGL with Mesa but rather ensure that a GL shared library is available, either MoltenGL+Metal for GPU rendering, either Mesa tweaked to display a CPU processed image.




Envoyé avec la messagerie sécurisée ProtonMail.
------- Original Message -------
Le mercredi 4 mai 2022 à 13:34, Alyssa Rosenzweig <[email protected]> a écrit :


> Having spent enough time wrangling Mesa/MacOS on Arm Macs....
>
> the correct solution is to migrate to Linux. everything else is pain.
>
> On Wed, May 04, 2022 at 12:38:55AM +0000, Jose Fonseca wrote:
>
> > I'm not sure exactly what Homebrew provides, and I'm not able to
> > investigate it now.
> > Yes, using Mesa software rendering to fill the void left by Opengl
> > deprecation makes some sense. But note is still software rendering, not
> > GPU accelerated. And one needs to consider the x86 -> arm.
> > You could consider somehow integrating jogl with osmesa -- offscreen
> > rendering -Mesa -- which builds and runs pretty much anywhere Mesa builds
> > -- thereby bypassing the headaches of integrating with mac specifics
> > technologies such as CGL and Cocoa
> > There are also other alternatives with considering, such
> > as https://moltengl.com/moltengl/
> > Jose
> > Get Outlook for Android
> >
> > ----------------------------------------------------------------------
> >
> > From: Martin Pernollet [email protected]
> > Sent: Monday, May 2, 2022 1:31:43 AM
> > To: Jose Fonseca [email protected]
> > Cc: [email protected] [email protected]
> > Subject: Re: Enable OpenGL software rendering on macOS
> >
> > ** External Email
> >
> > Hi Jose,
> > Many thanks for your answer.
> > JOGL classes enabling GL binding macOS all refer to CGL, so yes, I think I
> > want to rely on CGL (there is however in JOGL a couple of classes allowing
> > to work with X11, but they're used on Linux only).
> > I can't access the Apple M1 on which I built Mesa right now, but homebrew
> > on another macOS provides libGL and not libGLX.
> >
> > ls /usr/local/Cellar/mesa/21.1.2/lib
> >
> > dri libGL.dylib libGLESv1_CM.dylib libGLESv2.dylib libglapi.dylib
> >
> > libGL.1.dylib libGLESv1_CM.1.dylib libGLESv2.2.dylib libglapi.0.dylib
> > pkgconfig
> >
> > One motivation for enabling Mesa on macOS is actually the deprecated
> > status of OpenGL. I would expect this software implementation of GL to
> > simply provide an image to be copied to a native window/frame, without
> > having to rely on CGL. Hence, one could continue working with simple
> > OpenGL even if macOS doesn't provide such API.
> > Does it sound reasonable?
> > Martin
> > Envoye avec la messagerie securisee ProtonMail.
> > ------- Original Message -------
> > Le vendredi 29 avril 2022 a 16:08, Jose Fonseca [email protected] a
> > ecrit :
> >
> > The difficulty with OpenGL on macOS is that all driver interfaces are
> > both undocumented and deprecated.
> > If you want to override the system OpenGL, you can use apitrace code as
> > reference. There are two approaches:
> > 1. DYLD_FRAMEWORK_PATH https://github.com/apitrace/apitrace/blob/master/cli/cli_trace.cpp
> > 2. DYLD_INSERT_LIBRARIES https://github.com/apitrace/apitrace/tree/dyld-interpose (experimental
> > branch)
> >
> > AFAIK, Mesa build for macOS generates a ibGLX which depends on X11,
> > which is probably not what you want. You want to use Mesa for macOS
> > apps which use CGL as opposed to GLX, right?
> > So, if one wants to have a SW renderer on macOS with llvmpipe without
> > depending on X11, then one would need to implement:
> > * a new Gallium frontend that implements CGL API (equivalent to the
> > WGL frontend that exists for Windows)
> > * a new SW renderer winsys that draws pixels to Cocoa window somehow
> > (equivalent to the GDI winsys that draws to a Windows GDI surface)
> > It's not a matter of just integrating existing components together --
> > there's lot of new code that would be need here -- I'd reckon 2 months
> > for somebody familiar with Mesa/macOS, 6 - 12 months for somebody more
> > novice. And let's be frank, given mac deprecation of OpenGL and
> > migration away from Intel to Arm, the usefulness of this in the long
> > term is dubious.
> > Jose
> >
> > ----------------------------------------------------------------------
> >
> > From: mesa-dev [email protected] on behalf of
> > Martin Pernollet [email protected]
> > Sent: Friday, April 29, 2022 12:32
> > To: [email protected] [email protected]
> > Subject: Enable OpenGL software rendering on macOS
> >
> > ** External Email
> >
> > TLDR : I failed using Mesa software rendering on macOS. I am looking for
> > advice to invoke mesa's libGL.dylib without relying on macOS's system
> > GL.
> > Hi everyone,
> > I am building (java) software involving Mesa for CPU rendering. I use
> > CPU rendering as fallback when JOGL (OpenGL binding for Java) fail to
> > use the GPU natively. This is sometime the case for old Linux
> > distributions, this will certainly be frequent on macOS in the future
> > due to Apple's OpenGL deprecation.
> > Mesa CPU rendering is working great on Ubuntu (by enabling
> > LIBGL_ALWAYS_SOFTWARE=true) and Windows (by simply loading Mesa's DLL
> > instead of system DLL, no need to ask for software mode).
> > I however thrive to use Mesa's software rendering on macOS for the
> > following reasons
> > * Spying dynamic library load sequence shows that whenever Mesa's
> > libGL.dylib is loaded, Apple Metal and libGL.dylib are loaded
> > before, even when using DYLD tricks to ensure Mesa get loaded before
> > any other library (except the Java VM) [1] Someone says that Mesa's
> > macOS implementation relies on system GL [4]. I noticed that when
> > enabling LIBGL_ALWAYS_SOFTWARE=true, this activates Apple software
> > rendering but not Mesa's software rendering [5]. I wonder how I
> > could avoid this and use a pure Mesa's OpenGL implementation in this
> > situation.
> > * When getting out of the java World
> > * Running a pre-built glxgear/glxinfo installed through MacPorts
> > only allows using Apple's libGL.dylib but not Mesa's
> > libGL.dylib [2].
> > * Building glxinfo myself by linking explicitely to Mesa's GL +
> > X11 lead to an X11 error that I am not able to depict [3].
> > This has been discussed already on Khronos community [1] but I have no
> > clue how to go further. I hope some experts here can help me solve this!
> > Thanks in advance,
> > Martin
> > [1] https://community.khronos.org/t/failing-to-load-mesa3d-on-macos-instead-of-macos-provided-opengl-library/108408
> > [2] https://community.khronos.org/t/failing-to-load-mesa3d-on-macos-instead-of-macos-provided-opengl-library/108408/14
> > [3] https://community.khronos.org/t/failing-to-load-mesa3d-on-macos-instead-of-macos-provided-opengl-library/108408/19
> > [4] https://community.khronos.org/t/how-to-use-opengl-on-zink-mesa-moltenvk-and-macos/108160/18
> > [5] https://community.khronos.org/t/failing-to-load-mesa3d-on-macos-instead-of-macos-provided-opengl-library/108408/17
> >
> > ----------------------------------------------------------------------
> >
> > ** External Email: This email originated from outside of the
> > organization. Do not click links or open attachments unless you
> > recognize the sender.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.