From mboxrd@z Thu Jan 1 00:00:00 1970 From: bugzilla-daemon@freedesktop.org Subject: [Bug 102574] glDrawBuffer crashes in case of surfaceless context Date: Thu, 07 Sep 2017 07:03:26 +0000 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0736230601==" Return-path: Received: from culpepper.freedesktop.org (culpepper.freedesktop.org [131.252.210.165]) by gabe.freedesktop.org (Postfix) with ESMTP id 0FE1A6E855 for ; Thu, 7 Sep 2017 07:03:26 +0000 (UTC) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org --===============0736230601== Content-Type: multipart/alternative; boundary="15047678060.c055Ed2c.13820"; charset="UTF-8" --15047678060.c055Ed2c.13820 Date: Thu, 7 Sep 2017 07:03:25 +0000 MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://bugs.freedesktop.org/ Auto-Submitted: auto-generated https://bugs.freedesktop.org/show_bug.cgi?id=3D102574 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@lists.freedesktop.org Reporter: v.vogelhuber@digitalendoscopy.de QA Contact: dri-devel@lists.freedesktop.org I've created a surfaceless OpenGL context using the EGL_KHR_surfaceless_con= text 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.=20 Mesa 17.1 with Kernel 4.9.6 on Intel Apollo Lake GPU --=20 You are receiving this mail because: You are the assignee for the bug.= --15047678060.c055Ed2c.13820 Date: Thu, 7 Sep 2017 07:03:26 +0000 MIME-Version: 1.0 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://bugs.freedesktop.org/ Auto-Submitted: auto-generated
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@lists.freedesktop.org
Reporter v.vogelhuber@digitalendoscopy.de
QA Contact dri-devel@lists.freedesktop.org

I've created a surfaceless OpenGL context using the EGL_KHR_su=
rfaceless_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.=20

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.
= --15047678060.c055Ed2c.13820-- --===============0736230601== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg== --===============0736230601==--