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.

Reply via email to