Bug 56521

Summary: [GM45] Webgl conformance glsl-function-texture2d-bias test assertion failure
Product: Mesa Reporter: Pavel Ondračka <pavel.ondracka>
Component: Drivers/DRI/i965Assignee: Eric Anholt <eric>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: high CC: idr, sergio.callegari
Version: git   
Hardware: Other   
OS: All   
URL: https://www.khronos.org/registry/webgl/sdk/tests/conformance/glsl/samplers/glsl-function-texture2d-bias.html
Whiteboard:
i915 platform: i915 features:
Attachments: full backtrace

Description Pavel Ondračka 2012-10-29 13:25:30 UTC
Created attachment 69227 [details]
full backtrace

firefox: brw_fs_reg_allocate.cpp:415: bool fs_visitor::assign_regs(): Předpoklad „this->virtual_grf_sizes[i] >= 1 && this->virtual_grf_sizes[i] <= 4 && "Register allocation relies on split_virtual_grfs()"“ nesplněn.

https://www.khronos.org/registry/webgl/sdk/tests/conformance/glsl/samplers/glsl-function-texture2d-bias.html

Full backtrace attached.

Firefox: 16.0.1
OpenGL renderer string: Mesa DRI Mobile Intel® GM45 Express Chipset 
OpenGL version string: 2.1 Mesa 9.1-devel (git-96ed6c9)
Kernel: 3.6.2-4.fc17.x86_64
xf86-veideo-intel: f4c32af48b0c92a48131090886a6a6b6c45dbe34 (sna enabled)
Comment 1 Pavel Ondračka 2012-10-29 15:16:30 UTC
Almost three dozens of piglit tests are also affected by this (for example glsl-fs-texture2d-bias, glsl-fs-texturelod-01, tex_grad-04.frag, glsl-fs-shadow2DGradARB-01 and much more). 9.0 works fine, so I did try git bisect and this is what showed up:

commit 5d90b988791e51cfb6413109271ad102fd7a304c
Author: Eric Anholt <eric@anholt.net>
Date:   Mon Oct 1 16:39:54 2012 -0700

    i965/fs: Make the register allocation class_sizes[] choice static.
    
    Based on split_virtual_grfs(), we choose the same set every time, so set it 
    stone.  This will help us avoid regenerating the somewhat expensive
    class/register set setup every compile.
Comment 2 Ian Romanick 2012-10-29 18:25:58 UTC
This may be a dup of bug #56520.  This one has a bisect, so I'd prefer to close the other.
Comment 3 Eric Anholt 2012-10-31 17:59:23 UTC
I see it, the problem is the "if (simd16)" case in brw_fs_visitor.cpp, so we have a size of 8 we need to handle.  Should be easy, just waiting on tests.
Comment 4 Eric Anholt 2012-10-31 17:59:33 UTC
*** Bug 56520 has been marked as a duplicate of this bug. ***
Comment 5 Eric Anholt 2012-11-26 17:02:15 UTC
commit 244db0855c3c604211d7a868240ec927610881dd
Author: Eric Anholt <eric@anholt.net>
Date:   Tue Nov 13 15:54:41 2012 -0800

    i965/gen4: Fix LOD bias texturing since my fixed reg classes change.

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.