Bug 55443

Summary: Bisected [i965]Ogles1conform and Ogles2conform cases Segmentation fault
Product: Mesa Reporter: lu hua <huax.lu>
Component: Drivers/DRI/i965Assignee: Chad Versace <chadversary>
Status: VERIFIED FIXED QA Contact:
Severity: major    
Priority: high CC: idr, xunx.fang
Version: git   
Hardware: All   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: Fixes segfault
fix

Description lu hua 2012-09-29 07:52:54 UTC
System Environment:
--------------------------
Arch:             x86_64
Platform:         Ivybridge
Libdrm:	(master)libdrm-2.4.39-9-g2426a6a7112ae62755408a371831eddbe2d89d99
Mesa:	(master)92b3a99ce5f54f2c692c8db5a0c471aac0ff7c82
Xserver:(master)xorg-server-1.13.0-24-g0b02150c27e98f996e10d7489f9f67a30e4e3497
Xf86_video_intel:(master)2.20.8-36-g8bfd31e9bb13bcb7f12e4147bec0da87b8e87dde
Libva_intel_driver:(staging)f557dd6ad06c31bcf787468e804c948ecc4cf39b
Kernel:	(drm-intel-nightly) c1926436fc12f43d1b60741405b666cd980e9f6d

Bug detailed description:
-------------------------
Ogles1conform and  Ogles2conform cases segfault on ivybridge, sandybridge and ironlake with mesa master branch.
It doesn't happen on mesa 9.0 branch.

Bisect shows:7dc0be8a8b9528920e20b9621a2fd11a772194e0 is the first bad commit
commit 7dc0be8a8b9528920e20b9621a2fd11a772194e0
Author:     Chad Versace <chad.versace@linux.intel.com>
AuthorDate: Thu Aug 9 09:06:42 2012 -0700
Commit:     Chad Versace <chad.versace@linux.intel.com>
CommitDate: Thu Sep 27 14:32:40 2012 -0700

    intel: Don't advertise GLX_SWAP_COPY_OML

    This patch removes all gl_config's with swapMethod=GLX_SWAP_COPY_OML. When
    page flipping, we are unable to comply with swap-copy semantics.

    Reviewed-by: Eric Anholt <eric@anholt.net>
    Signed-off-by: Chad Versace <chad.versace@linux.intel.com>

(gdb) bt
#0  intelCreateBuffer (driScrnPriv=0x67e520, driDrawPriv=0x1c8fe20, mesaVis=0x0, isPixmap=0 '\000') at intel_screen.c:658
#1  0x00007ffff5b8a4d4 in dri2CreateNewDrawable (screen=0x67e520, config=0x0, data=0x1ea1a70) at dri_util.c:491
#2  0x00007ffff7bc032d in dri2_create_surface (drv=<optimized out>, disp=0x6778a0, type=4, conf=0x682d70, window=0x600006, attrib_list=<optimized out>) at platform_x11.c:213
#3  0x00007ffff7bb4dd7 in eglCreateWindowSurface (dpy=0x6778a0, config=<optimized out>, window=6291462, attrib_list=0x0) at eglapi.c:534
#4  0x00000000004459cd in tkNewWindow (wind=0x66b7a0) at ctke.c:232
#5  0x000000000043d67b in main (argc=6, argv=0x7fffffffe1a8) at shell.c:369

Reproduce steps:
----------------
1. start X
2. conform -s -v 2 -1 mustpass.c
Comment 1 Chad Versace 2012-10-06 00:33:18 UTC
Created attachment 68144 [details] [review]
Fixes segfault

I've attached a patch that fixes the segfault. Before committing it, though, I first want to have verified that a full run of gles2conform looks to be in good shape.
Comment 2 Chad Versace 2012-10-08 21:38:44 UTC
Created attachment 68288 [details] [review]
fix
Comment 3 Chad Versace 2012-10-08 21:43:34 UTC
Attached is a patch that fixes the bug. I've posted the patch to mesa-dev for review. The patch's header is:

From: Chad Versace <chad.versace@linux.intel.com>
Date: Fri, 5 Oct 2012 17:20:59 -0700
Subject: [PATCH] egl: Fix segfault due to bad generation of EGLConfigs
Comment 4 lu hua 2012-10-11 08:59:43 UTC
Fixed on master branch commit 87a34131c427b40a561cfef1513b446a0eeabc39.
Comment 5 lu hua 2012-10-11 09:00:49 UTC
Verified. Fixed on master branch commit 87a34131c427b40a561cfef1513b446a0eeabc39.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.