Bug 92639

Summary: [Regression bisected] Ogles1conform mustpass.c fail
Product: Mesa Reporter: Olivier Berthier <olivierx.berthier>
Component: Drivers/DRI/i965Assignee: Olivier Berthier <olivierx.berthier>
Status: RESOLVED FIXED QA Contact: Intel 3D Bugs Mailing List <intel-3d-bugs>
Severity: normal    
Priority: medium CC: idr, kenneth
Version: gitKeywords: regression
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: mustpass.c test log

Description Olivier Berthier 2015-10-23 14:10:36 UTC
Created attachment 119143 [details]
mustpass.c test log

Setup:
------
Hardware
CPU : Intel(R) Core(TM) m5-6Y57 CPU @ 1.10GHz (family: 6, model: 78  stepping: 3)
MCP : SKL-Y  D1 2+2 (ou ULX-D1)
QDF : QJK9
CPU : SKL D0
Chipset PCH: Sunrise Point LP C1      
CRB : SKY LAKE Y LPDDR3 RVP3 CRB FAB2
Reworks : All Mandatories + FBS02,FBS03, F23, O-02 & O-06

Software
BIOS : SKLSE2R1.R00.X097.B02.1509020030
ME FW : 11.0.0.1173
Ksc (EC FW): 1.19
Linux distribution: Ubuntu 14.04 LTS 64 bits
kernel 4.3.0-rc5-drm-intel-nightly+
commit f14b17b8639fb680c672d3d2f8d6414fcf0f82c4
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Fri Oct 16 19:27:49 2015 +0200

    drm-intel-nightly: 2015y-10m-16d-17h-27m-10s UTC integration manifest

cairo: (HEAD, tag: 1.14.2) 93422b3cb5e0ef8104b8194c8873124ce2f5ea2d
drm: (HEAD, tag: libdrm-2.4.65, tag: 2.4.65) c3496167637e35cf8a52d5e7e53a412e79d80db0
intel-driver: (HEAD, origin/master, origin/HEAD, master) 2a72f99d24714f2a58f400ef63b913d4cf9080b3
libva: (HEAD, tag: libva-1.6.1, origin/v1.6-branch) 613eb962b45fbbd1526d751e88e0d8897af6c0e0
mesa: (HEAD, origin/master, origin/HEAD) 6f3954618b0fe273af76af79ce9ec56566b79b2a
xf86-video-intel: (HEAD, origin/master, origin/HEAD, master) f0fd4d500de03c30c7ce19915f85acadd1ca4e5d
xserver: (HEAD, tag: xorg-server-1.17.2) 2123f7682d522619f101b05fb75efa75dabbe371

ogles1conform: (HEAD, origin/gles1, gles1) 36970add1adb2e10a63721bb99ac47cc17d785fa

Steps:
------
run the command :
./conform -v 2 -1 mustpass.c

Actual result:
---------------
The result of the test is fail.

Expected result:
----------------
The result is pass.
Comment 1 cprigent 2015-10-26 14:50:45 UTC
Also fail on BSW-M:

Platform: Braswell M
CPU : Intel(R) Celeron N3060 1.60GHz @ 1.6 GHz (family: 6, model: 76 stepping: 4)
SoC : BSW D0
QDF : K6XC
CRB : BRASWELL RVP Fab2
Mandatory Reworks : All 
Feature Reworks: F28, F32, F33, F35, F37
Optional reworks : O-01a; O-02, O-03
Software
BIOS : BRAS.X64.B084.R00.1508310642
TXE FW : 2.0.0.2073
Ksc : 1.08
Linux distribution: Ubuntu 14.04 LTS 64 bits
kernel 4.3.0-rc5-drm-intel-nightly+ (f14b17b) from git://anongit.freedesktop.org/drm-intel
commit f14b17b8639fb680c672d3d2f8d6414fcf0f82c4
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Fri Oct 16 19:27:49 2015 +0200
drm-intel-nightly: 2015y-10m-16d-17h-27m-10s UTC integration manifest
Mesa master commit 6f3954618b0fe273af76af79ce9ec56566b79b2a from http://cgit.freedesktop.org/mesa/mesa/
xf86-video-intel - 2.99.917 from http://cgit.freedesktop.org/xorg/driver/xf86-video-intel/
Libdrm - 2.4.65 from http://cgit.freedesktop.org/mesa/drm/
Libva - 1.6.1 from http://cgit.freedesktop.org/libva/
vaapi intel-driver - 1.6.1 from http://cgit.freedesktop.org/vaapi/intel-driver
Cairo - 1.14.2 from http://cgit.freedesktop.org/cairo
Xorg Xserver - 1.17.2 from http://cgit.freedesktop.org/xorg/xserver

Result was Pass with:
Mesa 11.0.3
kernel 4.3.0-rc4-drm-intel-nightly c38f2c24fb6484fc6900efa6f8d968e8ee964e9c
Comment 2 Ian Romanick 2015-10-27 18:45:19 UTC
I am able to reproduce this on BDW, so I'm going to assume it occurs on all Intel GPUs.

Since this occurs only on Mesa master, the version should be git (not 11.0... where the test passes).
Comment 3 Ian Romanick 2015-10-27 20:09:40 UTC
Bisected to:

fba4823a916b63f279955dbe6d98b6efc666f53e is the first bad commit
commit fba4823a916b63f279955dbe6d98b6efc666f53e
Author: Kenneth Graunke <kenneth@whitecape.org>
Date:   Fri Aug 28 01:43:23 2015 -0700

    i965: Don't do legacy userclipping in non-compatibility contexts.
    
    According to the GLSL 1.50 specification, page 76:
    "The shader must also set all values in gl_ClipDistance that have been
     enabled via the OpenGL API, or results are undefined."
    
    With this patch, we only enable clip distance writes when the shader
    actually writes them.  We no longer force a value to be written when
    clip planes are enabled in the API.  This could mean the first varying
    slot would be used as clip distances - I believe it should be the safe
    kind of undefined behavior.
    
    Empirically, it doesn't seem to cause a problem.
    
    Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
    Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
Comment 4 Ian Romanick 2015-10-27 20:12:04 UTC
*** Bug 92641 has been marked as a duplicate of this bug. ***
Comment 5 Ian Romanick 2015-10-27 21:58:13 UTC
Patch sent to the mesa-dev mailing list: http://lists.freedesktop.org/archives/mesa-dev/2015-October/098469.html

Olivier: Can you please test this patch.  Thanks.
Comment 6 Olivier Berthier 2015-10-30 16:56:48 UTC
The bug is not reproduced with the patch, the result of the test is pass.
Comment 7 Ian Romanick 2015-10-31 00:15:05 UTC
Fixed by the following commit.  This commit should also get into 11.0.5.

commit 7b3684877c97a23c62c95609fd20c845dc33f44c
Author: Ian Romanick <ian.d.romanick@intel.com>
Date:   Tue Oct 27 14:50:14 2015 -0700

    i965: Do legacy userclipping in OpenGL ES 1.x contexts.
    
    Commit fba4823a disabled user clipping for everything except
    compatibility profile.  Core profile and OpenGL ES 2.0+ have all removed
    the classic, OpenGL 1.0 user clip planes.  ES 1.x, however, still has
    them.
    
    Fixes OpenGL ES 1.1 conformance mustpass.c and userclip.c
    
    Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
    Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
    Tested-by: Olivier Berthier <olivierx.berthier@intel.com>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92639
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92641

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.