[Mesa-dev] Conflicts between OES/EXT/ARB_framebuffer_object and GL3.0/GLES2

Chad Versace chad.versace at linux.intel.com
Thu May 3 16:10:00 PDT 2012


On 05/02/2012 06:32 PM, Chad Versace wrote:
> Mesa has problems in the way it implements glBindFramebuffer and
> glBindFramebufferEXT due to both being implemented by an overloaded
> _mesa_BindFramebufferEXT.  This problem causes an Android app [1] to crash,
> and I want your opinion on how we should fix it.
> 
> The problem is that in the five specs in the subject line, the specified
> behavior of glBindFramebuffer falls into two incompatible categories.
> Mesa implements the wrong behavior for OES_fbo, EXT_fbo, and GLES2 when
> ARB_fbo is internally enabled.
> 

[snip]
 
> Solutions for core Mesa
> -----------------------
> 
> As for fixing _mesa_BindFramebufferEXT, I have two ideas.

[snip]

> 2. Create separate entry points:
>       - _mesa_BindFramebufferEXT, which implements
>           - glBindFramebufferEXT
>           - glBindFramebufferOES
>           - glBindFramebuffer in GLES2
>       - _mesa_BindFramebufferARB, which implements
>           - glBindFramebufferARB
>           - glBindFramebuffer in GL 3.x
> 
> 
> 
> Quick Solution for the Intel drivers
> ------------------------------------
> 
> A quick solution may be as simple as removing ARB_fbo from the Intel drivers'
> GLES1/2 extension lists.

Thanks for everyone's feedback.

Based on the discussion, I plan to
  1. Submit a patch that disables ARB_fbo in Intel ES contexts.
  2. Write some Piglit tests to probe the expected behavior in
     different extensions and APIs.
  3. Start working to separate the API entry points.

----
Chad Versace
chad.versace at linux.intel.com


More information about the mesa-dev mailing list