Bug 78466

Summary: [ILK Bisected]Piglit glean/makeCurrent fails
Product: Mesa Reporter: lu hua <huax.lu>
Component: Drivers/DRI/i965Assignee: Kenneth Graunke <kenneth>
Status: CLOSED WORKSFORME QA Contact: Intel 3D Bugs Mailing List <intel-3d-bugs>
Severity: major    
Priority: high CC: idr
Version: unspecified   
Hardware: All   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Bug Depends on:    
Bug Blocks: 79039    

Description lu hua 2014-05-09 03:04:24 UTC
System Environment:
--------------------------
Platform: Ironlake
Libdrm:		(master)libdrm-2.4.54
Mesa:		(master)9d95d64be0893a18922da75d2625235ae410d3ab
Xserver:	(master)xorg-server-1.15.99.902-80-ga5b9757142a2ab471ca26651dce9cc5f5e351f3d
Xf86_video_intel:(master)2.99.911-150-g18416b5162e6d6e5415916c55c935b08c980d7f3
Libva:		(staging)29fa9ec0bd5ac396fb8ce7de07747314ca1dd12e
Libva_intel_driver:(staging)1c4d3468229797e787f4b99b0729baf90a115a1d
Kernel:	(drm-intel-nightly)dd28119c31cf06fc4c3bb548699018a91e45a676

Bug detailed description:
-----------------------------
It fails on Ironlake with Mesa master branch and 10.2 branch.
Bisect shows:9701c6984d8d6570d90a15f86872b16bdba117f2 is the first bad commit.
commit 9701c6984d8d6570d90a15f86872b16bdba117f2
Author:     Kenneth Graunke <kenneth@whitecape.org>
AuthorDate: Fri May 2 01:10:17 2014 -0700
Commit:     Kenneth Graunke <kenneth@whitecape.org>
CommitDate: Tue May 6 11:31:31 2014 -0700

    meta: Only clear the requested color buffers.

    This path is used to implement both glClear and glClearBuffer; the
    latter is only supposed to clear particular buffers.  Core Mesa provides
    us that information in the buffers bitmask; we must only clear buffers
    mentioned there.

    To accomplish this, we save/restore the color draw buffers state, and
    use glDrawBuffers to restrict drawing to the relevant buffers.

    Fixes Piglit's spec/!OpenGL 3.0/clearbuffer-mixed-formats and
    spec/ARB_framebuffer_object/fbo-drawbuffers-none glClearBuffer tests
    for drivers using meta clears (such as Broadwell).

    Cc: "10.2" <mesa-stable@lists.freedesktop.org>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=77852
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=77856
    Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
    Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
    Reviewed-by: Eric Anholt <eric@anholt.net>


output:
----------------------------------------------------------------------
This test sanity-checks the ability to use multiple rendering
contexts.  It creates several contexts with differing
characteristics (e.g., some are direct-rendering and some
are indirect-rendering, if the window system binding supports
that distinction).  Then it runs through all pairs of contexts,
making each one "current" in turn and verifying that simple
rendering succeeds.

makeCurrent:  PASS rgba8, db, z24, s8, win+pmap, id 32
makeCurrent:  PASS rgba8, db, z24, s8, win+pmap, id 33
makeCurrent:  PASS rgba8, db, z24, s8, win+pmap, id 96
makeCurrent:  PASS rgba8, db, win+pmap, id 121
makeCurrent:  FAIL rgba8, win+pmap, id 122
        Sequence of MakeCurrent operations was:
                Null context
                Direct-rendering context
                Indirect-rendering context
                Null context
                Null context
                Null context
                Direct-rendering context
                Null context
                Indirect-rendering context
makeCurrent:  FAIL rgba8, z24, s8, win+pmap, id 123
        Sequence of MakeCurrent operations was:
                Null context
                Direct-rendering context
                Indirect-rendering context
                Null context
                Null context
                Null context
                Direct-rendering context
                Null context
                Indirect-rendering context
makeCurrent:  PASS rgba8, db, z24, s8, accrgba16, win+pmap, slow, id 124
makeCurrent:  PASS rgba8, db, win+pmap, id 125
makeCurrent:  FAIL rgba8, win+pmap, id 126
        Sequence of MakeCurrent operations was:
                Null context
                Direct-rendering context
                Indirect-rendering context
                Null context
                Null context
                Null context
                Direct-rendering context
                Null context
                Indirect-rendering context
makeCurrent:  FAIL rgba8, z24, s8, win+pmap, id 127
        Sequence of MakeCurrent operations was:
                Null context
                Direct-rendering context
                Indirect-rendering context
                Null context
                Null context
                Null context
                Direct-rendering context
                Null context
                Indirect-rendering context
makeCurrent:  PASS rgba8, db, z24, s8, win+pmap, id 128
makeCurrent:  PASS rgba8, db, z24, s8, accrgba16, win+pmap, slow, id 129

Reproduce steps:
---------------------------- 
1. xinit
2. ./bin/glean -o -v -v -v -t +makeCurrent
Comment 1 Kenneth Graunke 2014-05-19 17:45:34 UTC
I can't reproduce this.  I tried both master (1e9cbbb1c40b3df) and the commit you bisected it to (9701c6984d8d6570d90a15f86872b16bdba117f2) on Ironlake, and the test passes 100% of the time for me.
Comment 2 Juha-Pekka Heikkilä 2014-05-22 09:29:50 UTC
Tested also here with mobile Ironlake (core i5-520M) with Mesa master branch and the test pass all the time.
Comment 3 lu hua 2014-08-04 03:00:05 UTC
Test on latest master branch, It sporadically fail. Fail rate: 2/5.
----------------------------------------------------------------------
This test sanity-checks the ability to use multiple rendering
contexts.  It creates several contexts with differing
characteristics (e.g., some are direct-rendering and some
are indirect-rendering, if the window system binding supports
that distinction).  Then it runs through all pairs of contexts,
making each one "current" in turn and verifying that simple
rendering succeeds.

makeCurrent:  PASS rgba8, db, z24, s8, win+pmap, id 32
makeCurrent:  PASS rgba8, db, z24, s8, win+pmap, id 33
makeCurrent:  PASS rgba8, db, z24, s8, win+pmap, id 96
makeCurrent:  PASS rgba8, db, win+pmap, id 121
makeCurrent:  PASS rgba8, win+pmap, id 122
makeCurrent:  PASS rgba8, z24, s8, win+pmap, id 123
makeCurrent:  PASS rgba8, db, z24, s8, accrgba16, win+pmap, slow, id 124
makeCurrent:  PASS rgba8, db, win+pmap, id 125
makeCurrent:  FAIL rgba8, win+pmap, id 126
        Sequence of MakeCurrent operations was:
                Null context
                Direct-rendering context
                Indirect-rendering context
makeCurrent:  FAIL rgba8, z24, s8, win+pmap, id 127
        Sequence of MakeCurrent operations was:
                Null context
                Direct-rendering context
                Indirect-rendering context
makeCurrent:  PASS rgba8, db, z24, s8, win+pmap, id 128
makeCurrent:  PASS rgba8, db, z24, s8, accrgba16, win+pmap, slow, id 129
Comment 4 Kenneth Graunke 2014-08-06 07:01:45 UTC
Strange.  I just ran it 25 times in a row and it passed every single time.

Maybe it's a bad X server/2D driver interaction or something.
Comment 5 lu hua 2014-10-10 05:51:28 UTC
On latest mesa master branch it has Bug 83862.
I am not sure this bug exists or not.

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.