Bug 93215 - [Regression bisected] Ogles1conform Automatic mipmap generation test is fail
Summary: [Regression bisected] Ogles1conform Automatic mipmap generation test is fail
Status: RESOLVED FIXED
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/DRI/i965 (show other bugs)
Version: 11.0
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Ian Romanick
QA Contact: Intel 3D Bugs Mailing List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-12-02 16:59 UTC by cprigent
Modified: 2015-12-15 23:48 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
skl-y_mipgen.c_tool-log (17.18 KB, text/plain)
2015-12-02 16:59 UTC, cprigent
Details
skl-y_mipgen.c_kern.log (8.96 MB, text/plain)
2015-12-02 17:00 UTC, cprigent
Details

Description cprigent 2015-12-02 16:59:41 UTC
Created attachment 120276 [details]
skl-y_mipgen.c_tool-log

Platform: SKY LAKE Y A0 
CPU : Intel(R) Core(TM) m5-6Y57 CPU @ 1.10GHz (family: 6, model: 78  stepping: 3)
MCP : SKL-Y  D0 2+2
QDF : QJ9W
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.B104.B01.1511110114
ME FW : 11.0.0.1191
Ksc (EC FW): 1.20
Linux distribution: Ubuntu 15.04 LTS 64 bits
Kernel: drm-intel-nightly 92fb1ef (4.4-rc3) from git://anongit.freedesktop.org/drm-intel 
  commit 92fb1ef5412e4d8e572b1db446c6fed4d4d79d54
  Author: Matt Roper <matthew.d.roper@intel.com>
  Date:   Tue Dec 1 14:30:35 2015 -0800
  drm-intel-nightly: 2015y-12m-01d-22h-30m-10s UTC integration manifest
Mesa 11.0.6 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

Regression:
-----------
Test was Pass with Mesa 11.0.5

Steps:
------
1. Execute commands:
cd <...>/ogles1conform/conform/conform
./conform -1 mipgen.c
2. Wait the result

Actual result:
--------------
2. Test is fail, here is the summary:
******************** SUMMARY OF 'conform' RESULTS ********************
SUMMARY: Automatic mipmap generation test (#0) failed 24 times at path level 0.
SUMMARY: 1 test failed across all configs at path level 0.
SUMMARY: 24 conformant configs, 0 non-conformant configs.
****************** END SUMMARY OF 'conform' RESULTS ******************

Expected result:
----------------
2. Test is pass
Comment 1 cprigent 2015-12-02 17:00:17 UTC
Created attachment 120277 [details]
skl-y_mipgen.c_kern.log
Comment 2 Ian Romanick 2015-12-02 18:00:15 UTC
This bug is not specific to SKL.  It affects all platforms that use meta.  I bisected this to:

commit acbaa3d0fcd2a0d357a4c7539d12877f9838548a
Author: Ian Romanick <ian.d.romanick@intel.com>
Date:   Fri Nov 13 11:58:41 2015 -0800

    meta/generate_mipmap: Only modify the draw framebuffer binding in fallback_required
    
    Previously GL_FRAMEBUFFER was used.  However, if GL_EXT_framebuffer_blit
    is supported (note: it is supported by every Mesa driver), this is
    *sometimes* an alias for GL_DRAW_FRAMEBUFFER (getters) and *sometimes*
    an alias for *both* GL_DRAW_FRAMEBUFFER and GL_READ_FRAMEBUFFER
    (setters).  As a result, the code saved one binding but modified both.
    If the bindings were different, the GL_READ_FRAMEBUFFER would be
    incorrect on exit.
    
    Fixes the piglit fbo-generatemipmap-versus-READ_FRAMEBUFFER test.
    
    Ideally this function would use DSA functions and not modify the binding
    at all.  However, that would be a much more intrusive change because
    _mesa_meta_bind_fbo_image would also need to be modified.
    _mesa_meta_bind_fbo_image has a lot of callers.  Much of this code is
    about to get a major rework due to bug #92363, so I don't think it
    matters too much.  In fact, I discovered this bug while working on the
    other bug.  Le bon temps!
    
    Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
    Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
    Cc: "10.6 11.0" <mesa-stable@lists.freedesktop.org>
    (cherry picked from commit c40a88b6c5a698e5297957e28cccf2ce23820caa)
Comment 3 Ian Romanick 2015-12-03 22:45:01 UTC
Patch sent to mesa-dev mailing list: http://patchwork.freedesktop.org/patch/67061/
Comment 4 Ian Romanick 2015-12-15 23:48:50 UTC
This should be fixed by the commit below.  This commit should be in Mesa 11.0.8 and Mesa 11.1.1.

commit 96dc732ed81f48d8bbc7aa6fb4d9c2833b691189
Author: Ian Romanick <ian.d.romanick@intel.com>
Date:   Thu Dec 3 12:22:23 2015 -0800

    meta/generate_mipmap: Work-around GLES 1.x problem with GL_DRAW_FRAMEBUFFER
    
    GL_DRAW_FRAMEBUFFER does not exist in OpenGL ES 1.x, and since
    _mesa_meta_begin hasn't been called yet, we have to work-around API
    difficulties.  The whole reason that GL_DRAW_FRAMEBUFFER is used instead
    of GL_FRAMEBUFFER is that the read framebuffer may be different.  This
    is moot in OpenGL ES 1.x.
    
    I have another patch series that would also fix this (by removing the
    calls to _mesa_BindFramebuffer and friends), but it's not quite ready
    yet... and I think it may be a bit heavy for some stable branches.
    Consider this a stop-gap fix.
    
    Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93215
    Cc: "11.0 11.1" <mesa-stable@lists.freedesktop.org>
    Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>


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.