On Thu, 24 Sep 2015 13:13:33 -0400 Trevor Woerner <[email protected]> wrote:
> On 09/24/15 11:11, Siarhei Siamashka wrote: > > On Wed, 23 Sep 2015 11:53:46 -0400 > > Trevor Woerner <[email protected]> wrote: > > > >> To be honest I'm not entirely sure what I should be trying. So I've > >> built the "mesa-demos" recipe > >> (http://layers.openembedded.org/layerindex/recipe/4686/) and am trying > >> to run some of its artifacts. Examples include: eglgears_x11, eglinfo, > >> eglkms, glxdemo, glxgears, xeglgears, xeglthreads... > > Also this part just shows that you don't seem to have a clear practical > > purpose when doing these Mali hacking experiments. > > > > Having some real application in mind usually results in a lot more > > productive work and rewarding results. > > I do have a very practical purpose; the above just simply demonstrates > my ignorance, which is why I came here looking for help, pointers, > guidance, enlightenment... :-) > > If the mali test application works, why doesn't anything else work? Are > there other things I could test? Do you mean just various free software applications by "anything else"? The point is that the Mali drivers only support OpenGL ES, which is a subset of full OpenGL. And the vast majority of free software Linux applications are typically targeting full fledged OpenGL, with only a few rare exceptions. There are different ways to address this problem. One way is to improve the OpenGL ES support in applications. So that they can be compiled and work correctly with it. It's kind of reminding the C89 vs. C99 language standard support story. If the vast majority of developers have C99 compilers, then their code naturally tends to have problems with C89 compilers here and there (which are usually easily fixable, but still annoying). It's the same story with Linux software and OpenGL ES. There are occasional patches to improve OpenGL ES compatibility, but in practice the code is very rarely tested in a pure OpenGL ES environment. Several years ago, I tried to eradicate full-fledged OpenGL support on my desktop PC and make it pure OpenGL ES just for the sake of testing software compatibility: https://bugs.gentoo.org/show_bug.cgi?id=476524 As I mentioned above, the overall quality of OpenGL ES support was not exactly stellar, but was typically easily fixable with simple patches. I had Kwin GLES, Firefox with accelerated WebGL, the demos from the OGRE gaming engine and a few other things working. Unfortunately more recent versions of Mesa started to disallow having OpenGL ES without full OpenGL. Basically, it means that Mesa always provides full OpenGL and this is their political stance. The pure OpenGL ES configuration is very unlikely to take off the ground in the Linux world. That's a dead end. The open source graphics drivers for ARM devices (such as freedreno) typically provide full OpenGL support. One of the reasons for this is exactly the fact that pure OpenGL ES has very bad software support. To address the bad OpenGL ES support in free software, there is also an OpenGL 1.x -> OpenGL ES translation layer: https://github.com/lunixbochs/glshim It allows to run a bunch of open source 3D games with the proprietary OpenGL ES drivers, such as Mali and PowerVR. Still a major exception in the free software world, which partially redeems the usefulness of OpenGL ES, is Qt5. It does support OpenGL ES pretty well. Want a demo? Here it is: https://www.youtube.com/watch?v=4SKrv2sl47I Oh, and you can run the glmark2-es2 benchmark application too. Given the OpenGL ES popularity, it's a miracle that it even exists :-) I think that this benchmark had been developed by Linaro specifically to promote the use of OpenGL ES. To sum it up, the Mali proprietary driver is useless if the user wants to make his existing Linux desktop applications faster. But it may be useful if: 1. The user is interested in learning OpenGL ES. 2. The user is interested in developing or using Qt5 applications. 3. The user is interested in playing 3D games via glshim (the SuperTuxKart game is my favourite). -- Best regards, Siarhei Siamashka -- You received this message because you are subscribed to the Google Groups "linux-sunxi" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
