Bug 32030 - [i965 oglc gles2c bisected] 4 OpenGL (ES) conformance cases regressed
Summary: [i965 oglc gles2c bisected] 4 OpenGL (ES) conformance cases regressed
Status: VERIFIED FIXED
Alias: None
Product: Mesa
Classification: Unclassified
Component: glsl-compiler (show other bugs)
Version: git
Hardware: Other Linux (All)
: high major
Assignee: Kenneth Graunke
QA Contact:
URL:
Whiteboard:
Keywords:
: 32037 (view as bug list)
Depends on:
Blocks:
 
Reported: 2010-12-01 16:29 UTC by Shuang He
Modified: 2010-12-12 16:39 UTC (History)
3 users (show)

See Also:
i915 platform:
i915 features:


Attachments

Description Shuang He 2010-12-01 16:29:19 UTC
System Environment:
--------------------------
Libdrm:		(master)2.4.22-17-g1443bea488f6ad47cb4469c01b35aea0377822c0
Mesa:		(master)2bb788ccc674669bc03ad09e4396f079044112e8
Xserver:		(master)xorg-server-1.9.0-356-g02449ee24b484c9fea501df5274d95a9f87cab23
Xf86_video_intel:		(master)2.13.901-5-g0bb135c40e5ac1bf7593ec1d68d2815cbf47aa25
Kernel:	(drm-intel-next) 7d2cb39c332146b0906651a8567f8b81af4b1584


Bug detailed description:
-------------------------
OpenGL ES 2.0 conformance GL/faceforward/input.run GL/refract/input.run regressed on
Piketon. 
OpenGL conformance (2.0)shad-compiler(advanced.TestFaceForward), (2.0)shad-compiler(advanced.TestRefract) regressed on Piketon

bisection shows this regression is due to:
commit f5692f452f7ae77d1e710041ffebb468cc5ba87b
Author:     Kenneth Graunke <kenneth@whitecape.org>
AuthorDate: Thu Nov 11 12:11:27 2010 -0800
Commit:     Kenneth Graunke <kenneth@whitecape.org>
CommitDate: Tue Nov 30 13:48:28 2010 -0800

    glsl: Lazily import built-in function prototypes.
    
    This makes a very simple 1.30 shader go from 196k of memory to 9k.
    
    NOTE: This -may- be a candidate for the 7.9 branch, as the benefit is
    substantial.  However, it's not a simple change, so it may be wiser to
    wait for 7.10.
Comment 1 Gordon Jin 2010-12-01 20:47:32 UTC
*** Bug 32037 has been marked as a duplicate of this bug. ***
Comment 2 Kenneth Graunke 2010-12-02 01:35:32 UTC
Ugh.  I see the problem, but it's not terribly straightforward to fix.  I may have to revert this for now.  Thanks for the report.
Comment 3 Kenneth Graunke 2010-12-06 15:12:37 UTC
commit c17c7903871b031162e41d6495a1bef64844e19b
Author: Kenneth Graunke <kenneth@whitecape.org>
Date:   Mon Dec 6 10:54:21 2010 -0800

    glsl: Properly add functions during lazy built-in prototype importing.
    
    The original lazy built-in importing patch did not add the newly created
    function to the symbol table, nor actually emit it into the IR stream.
    
    Adding it to the symbol table is non-trivial since importing occurs when
    generating some ir_call in a nested scope.  A new add_global_function
    method, backed by new symbol_table code in the previous patch, handles
    this.
    
    Fixes bug #32030.

commit a8f52647b045b5400ebcfc58ba235599a6e9ad87
Author: Kenneth Graunke <kenneth@whitecape.org>
Date:   Mon Dec 6 10:42:27 2010 -0800

    symbol_table: Add support for adding a symbol at top-level/global scope.

commit 6fae1e4c4d33769e2f255d50907b5aa0ab80edd4
Author: Kenneth Graunke <kenneth@whitecape.org>
Date:   Mon Dec 6 10:54:05 2010 -0800

    glsl: Factor out code which emits a new function into the IR stream.
    
    A future commit will use the newly created function in a second place.
Comment 4 Shuang He 2010-12-12 16:39:45 UTC
Thanks. verified on piketon against:
Libdrm:         (master)2.4.23
Mesa:           (master)9e1fbd3d6e2a8accd0ebdc5937dd6eb7a8ef9b10
Xserver:                (master)xorg-server-1.9.99.901-20-g2c70b650b342378898064cf27e2f95c4b2e53d24
Xf86_video_intel:               (master)2.13.902-1-g71af40a75fbdd1054b1111e8cbe67ad1f97e6613
Kernel: (drm-intel-next) 8d5203ca62539c6ab36a5bc2402c2de1de460e30


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.