[Mesa-dev] [PATCH] egl/dri: Don't invoke dri2_dpy->flush if it's NULL.

Kristian Høgsberg krh at bitplanet.net
Thu Feb 7 08:56:17 PST 2013


On Thu, Feb 7, 2013 at 3:37 AM, Jose Fonseca <jfonseca at vmware.com> wrote:
>
>
> ----- Original Message -----
>> On Wed, Feb 6, 2013 at 4:30 PM, Kristian Høgsberg <krh at bitplanet.net>
>> wrote:
>> > On Tue, Feb 5, 2013 at 8:43 AM,  <jfonseca at vmware.com> wrote:
>> >> From: José Fonseca <jfonseca at vmware.com>
>> >>
>> >> I'd like to test Mesa OpenGL ES along side with NVIDIA libGL
>> >> drivers. But
>> >> without this change, I get a NULL pointer dereference.
>> >
>> > Which DRI driver doesn't support the flush extension?  EGL is
>> > expected
>> > to flush before swap buffer (and we can't rely on glFLush since
>> > that
>> > may be optimized to not do anything) so we have to have this DRI
>> > driver entry point.  The EGL DRI loader shouldn't load a DRI driver
>> > that doesn't support the flush extension in the first place, of
>> > course.
>
> I was using EGL GLES swrast, but on a system with proprietary NVIDIA drivers installed.

Ok, right, swrast doesn't have a flush extension and we don't look for
it in case of swrast.  Maybe it would be clearer to do

   if (!dri2_dpy->swrast)
      dri2_dpy->flush->flush(dri2_surf->dri_drawable);

to make it clearer that we don't require the flush extension for
swrast.  Though a deferred/tile sw rasterizer would need a flush
extension too to know when to kick off the rendering.  Anyway since we
do make sure we have a flush extension in the !swrast case, I guess
what you have now is fine.

Kristian


More information about the mesa-dev mailing list