<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEEDINFO "
   title="NEEDINFO - Font rendering issue on Intel GMA X3100/X4500 with Android-x86"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=92323#c12">Comment # 12</a>
              on <a class="bz_bug_link 
          bz_status_NEEDINFO "
   title="NEEDINFO - Font rendering issue on Intel GMA X3100/X4500 with Android-x86"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=92323">bug 92323</a>
              from <span class="vcard"><a class="email" href="mailto:pstglia@gmail.com" title="pstglia@gmail.com">pstglia@gmail.com</a>
</span></b>
        <pre>Hi all,

<span class="quote">> >From some out-of-band communication there was a suggestion that the problem >could be because of uses of GL_PIXEL_UNPACK_BUFFER and GL_PIXEL_PACK_BUFFER in >meta.  Meta usually sets the API to API_OPENGL_COMPAT to avoid problems like >this, but it's possible that was missed.  I believe PBOs were added in OpenGL ES >3.0, but i965GM is an OpenGL ES 2.0 part.

> pstglia, a fellow  member of Android-x86 forum came to the same conclusion
> that PBO are OpenGL ES 3.0 and the binding with
> GL_PIXEL_PACK_BUFFER/GL_PIXEL_PACK_BUFFER targets fails returning NULL and
> causing the 0x500 error.

> I think that API_OPENGL_COMPAT is definitely worth a try.
> Do you have a proposed patch for us to test and report?</span >

Just to add more info, _mesa_error is returning the following in this case:

glBindBufferARB(target 0x88ec)

It's being raised here:

### src/mesa/main/bufferobj.c:
   bindTarget = get_buffer_target(ctx, target);
   if (!bindTarget) {
      _mesa_error(ctx, GL_INVALID_ENUM, "glBindBufferARB(target 0x%x)",
target);
      return;
   }

I didn't trace get_buffer_target directly (like printing ctx->API as
suggested), but by looking it's first check, assumed ctx is neither
"API_OPENGL_COMPAT", "API_OPENGL_CORE"  or  "API_OPENGLES2" context (even if
ctx is this last type, it's not ctx->Version >= 30):


### src/mesa/main/bufferobj.c
  /* Other targets are only supported in desktop OpenGL and OpenGL ES 3.0.
    */
   if (!_mesa_is_desktop_gl(ctx) && !_mesa_is_gles3(ctx)
       && target != GL_ARRAY_BUFFER && target != GL_ELEMENT_ARRAY_BUFFER)
      return NULL;


### src/mesa/main/context.h

/**
 * Checks if the context is for any GLES version
 */
static inline bool
_mesa_is_gles(const struct gl_context *ctx)
{
   return ctx->API == API_OPENGLES || ctx->API == API_OPENGLES2;
}


/**
 * Checks if the context is for GLES 3.0 or later
 */
static inline bool
_mesa_is_gles3(const struct gl_context *ctx)
{
   return ctx->API == API_OPENGLES2 && ctx->Version >= 30;
}


Of course I may missed some point.

Regards,
Pstglia</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the QA Contact for the bug.</li>
      </ul>
    </body>
</html>