Bug 79662

Summary: [DRI3 all Bisected] Many webglc cases fail
Product: Mesa Reporter: lu hua <huax.lu>
Component: GLXAssignee: mesa-dev
Status: VERIFIED FIXED QA Contact:
Severity: normal    
Priority: high CC: eero.t.tamminen, mengmeng.meng
Version: git   
Hardware: All   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: Xorg.0.log(PNV)

Description lu hua 2014-06-05 03:35:13 UTC
System Environment:
--------------------------
Platform: Ivybridge
Libdrm:	(master)libdrm-2.4.54-9-g8fc62ca8ac010659023bb63c4759eb683de4f9af
Mesa:	(master)7913b4b97bab750ffad54e53dec9bbeb56307066
Xserver:(master)xorg-server-1.15.99.902-117-g7ca458493aa2f0aa091c989ea0768611e0730bf5
Xf86_video_intel:(master)2.99.911-256-g08148896196443a8582c30b47ff546acca78d69c
Libva:	(staging)35e70cb9b9c77dfb99fb370e319ed501f0c31b17
Libva_intel_driver:(staging)fbbe401aa28a0b3859d587ef08f0df15a2f7c8f2
Kernel:	(drm-intel-nightly)0a37b5d366831590ebc976018d1bd812ef526a98

Bug detailed description:
-----------------------------
Many webglc cases fail on all platforms. It's Xserver regression.
conformance/canvas/buffer-offscreen-test.html
conformance/canvas/buffer-preserve-test.html
conformance/canvas/canvas-test.html
conformance/canvas/framebuffer-bindings-unaffected-on-resize.html
conformance/canvas/texture-bindings-unaffected-on-resize.html
conformance/canvas/to-data-url-test.html
conformance/context/context-attribute-preserve-drawing-buffer.html
conformance/context/context-release-upon-reload.html
conformance/context/context-release-with-workers.html
conformance/extensions/oes-texture-float-with-canvas.html
conformance/extensions/oes-texture-float-with-image.html
conformance/extensions/oes-texture-float-with-video.html
conformance/misc/delayed-drawing.html
conformance/ogles/mustpass.run.txt
conformance/renderbuffers/framebuffer-state-restoration.html
conformance/rendering/multisample-corruption.html
conformance/textures/tex-image-and-sub-image-2d-with-canvas-rgb565.html
conformance/textures/tex-image-and-sub-image-2d-with-canvas-rgba4444.html
conformance/textures/tex-image-and-sub-image-2d-with-canvas-rgba5551.html
conformance/textures/tex-image-and-sub-image-2d-with-canvas.html
conformance/textures/tex-image-and-sub-image-2d-with-image-rgb565.html
conformance/textures/tex-image-and-sub-image-2d-with-image-rgba4444.html
conformance/textures/tex-image-and-sub-image-2d-with-image-rgba5551.html
conformance/textures/tex-image-and-sub-image-2d-with-image.html
conformance/textures/tex-image-and-sub-image-2d-with-video-rgb565.html
conformance/textures/tex-image-and-sub-image-2d-with-video-rgba4444.html
conformance/textures/tex-image-and-sub-image-2d-with-video-rgba5551.html
conformance/textures/tex-image-and-sub-image-2d-with-video.html
conformance/textures/texture-npot-video.html
conformance/textures/texture-size-cube-maps.html
conformance/textures/texture-size.html

Bisect shows 746be5a03ebbda4ab411ca3efb2ed95f99e9ea46 is the first bad commit.
commit 746be5a03ebbda4ab411ca3efb2ed95f99e9ea46
Author:     Chris Wilson <chris@chris-wilson.co.uk>
AuthorDate: Wed May 28 08:13:59 2014 +0100
Commit:     Keith Packard <keithp@keithp.com>
CommitDate: Mon Jun 2 13:11:15 2014 -0700

    xfree86: Report DRI3 as a built-in module

    This is so that drivers can do a runtime check that DRI3 is available,
    similar to existing runtime checks performed by the drivers for DRI and
    DRI2.

    v2: Only add DRI3 to the list if the module was actually built into the
    server (Mark Kettenis).

    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Mark Kettenis <mark.kettenis@xs4all.nl>
    Signed-off-by: Keith Packard <keithp@keithp.com>


Reproduce steps:
---------------------------- 
1. xinit
2. go to https://www.khronos.org/registry/webgl/conformance-suites/1.0.2/webgl-conformance-tests.html run above cases.
Comment 1 Chris Wilson 2014-06-05 06:48:49 UTC
And they work again if you do:

Section "Device"
  Identifier "Intel"
  Option "DRI" "2"
EndSection
Comment 2 Chris Wilson 2014-06-05 06:49:01 UTC
?
Comment 3 lu hua 2014-06-06 02:55:48 UTC
Created attachment 100497 [details]
Xorg.0.log(PNV)

Pineveiw start X fail, bisect shows 746be5a03ebbda4ab411ca3efb2ed95f99e9ea46 is the first bad commit.

1. start X
2. glxinfo
output:
name of display: :0.0
Segmentation fault (core dumped)
Comment 4 lu hua 2014-06-06 03:16:51 UTC
(In reply to comment #1)
> And they work again if you do:
> 
> Section "Device"
>   Identifier "Intel"
>   Option "DRI" "2"
> EndSection

Set xorg.conf as above, webglc cases work well.

X still fails on Pineview.
Comment 5 Chris Wilson 2014-06-06 07:48:20 UTC
On pnv, gdb glxinfo:

Program received signal SIGSEGV, Segmentation fault.
0xb793c063 in intelInitScreen2 (psp=0x8063af8) at intel_screen.c:1155
1155	   if (psp->dri2.loader->base.version <= 2 ||
(gdb) bt
#0  0xb793c063 in intelInitScreen2 (psp=0x8063af8) at intel_screen.c:1155
#1  0xb7913000 in driCreateNewScreen2 (scrn=0, fd=4, extensions=0xb7fd450c <loader_extensions>, driver_extensions=0xb7a6fa70 <i915_driver_extensions>, 
    driver_configs=0xbfffed00, data=0x805bfc0) at dri_util.c:159
#2  0xb7f8afaf in dri3_create_screen (screen=0, priv=0x805a3a0) at dri3_glx.c:1705
#3  0xb7f4deac in AllocAndFetchScreenConfigs (dpy=0x8050008, priv=0x805a3a0) at glxext.c:784
#4  0xb7f4e27f in __glXInitialize (dpy=0x8050008) at glxext.c:894
#5  0xb7f48470 in GetGLXPrivScreenConfig (dpy=0x8050008, scrn=0, ppriv=0xbfffedfc, ppsc=0xbfffee00) at glxcmds.c:172
#6  0xb7f4a46a in glXChooseVisual (dpy=0x8050008, screen=0, attribList=0x804f120) at glxcmds.c:1249
#7  0x08049068 in ?? ()
#8  0xb7c2fa83 in __libc_start_main (main=0x8048ef0, argc=1, argv=0xbffff0e4, init=0x804bff0, fini=0x804c060, rtld_fini=0xb7fed180 <_dl_fini>, 
    stack_end=0xbffff0dc) at libc-start.c:287
#9  0x080499f5 in ?? ()
Comment 6 Chris Wilson 2014-06-06 07:49:00 UTC
(gdb) p *psp
$1 = {driver = 0xb7a6be60 <i915_driver_api>, myNum = 0, fd = 4, drm_version = {major = 1, minor = 6, patch = 0}, driverPrivate = 0x0, 
  loaderPrivate = 0x805bfc0, max_gl_core_version = 0, max_gl_compat_version = 0, max_gl_es1_version = 0, max_gl_es2_version = 0, 
  extensions = 0xb7a73c1c <emptyExtensionList.22632>, swrast_loader = 0x0, dri2 = {loader = 0x0, image = 0x0, useInvalidate = 0x0}, image = {
    loader = 0xb7fd38a4 <imageLoaderExtension>}, optionInfo = {info = 0x0, values = 0x0, tableSize = 0}, optionCache = {info = 0x0, values = 0x0, 
    tableSize = 0}, api_mask = 0}
Comment 7 lu hua 2014-06-09 00:49:21 UTC
It blocks Pineview testing.
Comment 8 lu hua 2014-07-28 08:49:21 UTC
X works well on PNV.
Comment 9 lu hua 2014-09-11 06:12:26 UTC
X works well on PNV, modify the summary.
Comment 10 Matt Turner 2014-10-23 23:56:12 UTC
Is this still a problem on Ivybridge?
Comment 11 lu hua 2014-10-31 03:03:01 UTC
This issue goes away.
Comment 12 lu hua 2014-10-31 03:03:16 UTC
Verified.Fixed.

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.