glamor_init: clamp GLSL to 120 if platform doesn't have instanced arrays

Lukas F. Hartmann lukas at mntmn.com
Wed May 16 09:33:40 UTC 2018


Eric,

thanks for the insight. It's still possible that this is a bug in mesa/etnaviv
or a rare glitch in my setup. I'll report back when we know for sure.

Cheers
Lukas

Eric Anholt <eric at anholt.net> writes:

> "Lukas F. Hartmann" <lukas at mntmn.com> writes:
>
>> Hi,
>>
>> I upgraded Xwayland and the assorted libraries from git masters today,
>> and noticed that glamor wouldn't work anymore on i.MX6/etnaviv. The
>> error was:
>>
>> No provider of glVertexAttribDivisor found.  Requires one of:
>>     Desktop OpenGL 3.3
>>     OpenGL ES 3.0
>>     GL extension "GL_ANGLE_instanced_arrays"
>>     GL extension "GL_ARB_instanced_arrays"
>>     GL extension "GL_EXT_instanced_arrays"
>>     GL extension "GL_NV_instanced_arrays"
>>
>> The problem is that etnaviv offers GLSL 140 on GL 2.1 and glamor
>> rendering assumes that glVertexAttribDivisor() is always available on
>> GLSL>=130, which is not the case here. Forcing GLSL 120 makes glamor
>> work fine again on this platform. After chatting with ajax in
>> #xorg-devel, the following solution was proposed.
>
> In Mesa we've decided in the past to not expose GLSL >= 1.30 on GL 2.x,
> because you can't use most of the new functionality of GLSL 1.30 without
> GL 3.x's APIs.
>
> However, it would be awfully nice for glamor if Mesa drivers *could*
> expose 1.30 on GL2 (if you've got integer textures, you could do
> glamor_font.c's accelerated core text rendering, for example), so I'm
> tempted to take the patch for now so we can start working toward that.
>
> Reviewed-by: Eric Anholt <eric at anholt.net>
>
> but I'll give others a chance to offer input on this.


More information about the xorg-devel mailing list