[Bug 102574] glDrawBuffer crashes in case of surfaceless context

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Thu Sep 7 07:03:26 UTC 2017


https://bugs.freedesktop.org/show_bug.cgi?id=102574

            Bug ID: 102574
           Summary: glDrawBuffer crashes in case of surfaceless context
           Product: Mesa
           Version: 17.1
          Hardware: x86-64 (AMD64)
                OS: Linux (All)
            Status: NEW
          Severity: normal
          Priority: medium
         Component: Drivers/DRI/i915
          Assignee: dri-devel at lists.freedesktop.org
          Reporter: v.vogelhuber at digitalendoscopy.de
        QA Contact: dri-devel at lists.freedesktop.org

I've created a surfaceless OpenGL context using the EGL_KHR_surfaceless_context
extension together with eglGetPlatformDisplay/EGL_PLATFORM_GBM_MESA.
In this scenario there seem to be no valid default framebuffer which is Ok, as
I'm normally only render to FBOs with textures bound. Due to an error on my
side I called glDrawBuffer with GL_FRONT_LEFT while no FBO was bound.

This result in a crash in intel_buffers.c because in intelDrawBuffer()
dri2InvalidateDrawable is called with a null pointer which is
not checked in dri2InvalidateDrawable() or anywhere before.

While the root cause for triggering the error is on my side,
I think it may be better to raise an error instead of crashing.
So I propose to add a check to brw->driContext->driDrawablePriv
within intelDrawBuffer. Probably if the driDrawablePriv is nullptr
one should not call intel_prepare_render either. 

Mesa 17.1 with Kernel 4.9.6 on Intel Apollo Lake GPU

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20170907/4bdec89d/attachment.html>


More information about the dri-devel mailing list