glamor_init: clamp GLSL to 120 if platform doesn't have instanced arrays
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.
This is my first time of submitting a patch, so please excuse me and
advise if I'm doing it wrong ;)
Cheers
Lukas (mntmn)
Reviewed-by: Eric Anholt <eric@anholt.net>
			
			
This commit is contained in:
		
							parent
							
								
									3ab32a5378
								
							
						
					
					
						commit
						7437b6dbde
					
				| 
						 | 
				
			
			@ -563,6 +563,14 @@ glamor_init(ScreenPtr screen, unsigned int flags)
 | 
			
		|||
 | 
			
		||||
        if (!glamor_check_instruction_count(gl_version))
 | 
			
		||||
            goto fail;
 | 
			
		||||
 | 
			
		||||
        /* Glamor rendering assumes that platforms with GLSL 130+
 | 
			
		||||
         * have instanced arrays, but this is not always the case.
 | 
			
		||||
         * etnaviv offers GLSL 140 with OpenGL 2.1.
 | 
			
		||||
         */
 | 
			
		||||
        if (glamor_priv->glsl_version >= 130 &&
 | 
			
		||||
            !epoxy_has_gl_extension("GL_ARB_instanced_arrays"))
 | 
			
		||||
                glamor_priv->glsl_version = 120;
 | 
			
		||||
    } else {
 | 
			
		||||
        if (gl_version < 20) {
 | 
			
		||||
            ErrorF("Require Open GLES2.0 or later.\n");
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue