Bug 110309

Summary: [icl][bisected] regression on piglit arb_gpu_shader_int 64.execution.fs-ishl-then-* tests
Product: Mesa Reporter: Clayton Craft <clayton.a.craft>
Component: Drivers/DRI/i965Assignee: Ian Romanick <idr>
Status: RESOLVED FIXED QA Contact: Intel 3D Bugs Mailing List <intel-3d-bugs>
Severity: normal    
Priority: medium Keywords: bisected, regression
Version: git   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments: output from bisected commit with INTEL_DEBUG=fs
output from previous (working) commit with INTEL_DEBUG=fs

Description Clayton Craft 2019-04-02 17:35:14 UTC
Created attachment 143848 [details]
output from bisected commit with INTEL_DEBUG=fs

The following tests regressed in CI:

piglit.spec.arb_gpu_shader_int64.execution.fs-ishl-then-ushr-loop
piglit.spec.arb_gpu_shader_int64.execution.fs-ishl-then-ishr piglit.spec.arb_gpu_shader_int64.execution.fs-ishl-then-ishr-loop piglit.spec.arb_gpu_shader_int64.execution.fs-ishl-then-ushr


Output from bisected and previous commits run with INTEL_DEBUG=fs is attached.

Bisected to the following commit:

commit cbad201c2b34297dda11ffa414de2ef781225259
Author: Ian Romanick <ian.d.romanick@intel.com>
Date:   Wed Feb 27 20:12:46 2019 -0800

    nir/algebraic: Add missing 64-bit extract_[iu]8 patterns

    No shader-db changes on any Intel platform.

    v2: Use a loop to generate patterns.  Suggested by Jason.

    v3: Fix a copy-and-paste bug in the extract_[ui] of ishl loop that would
    replace an extract_i8 with and extract_u8.  This broke ~180 tests.  This
    bug was introduced in v2.

    Reviewed-by: Matt Turner <mattst88@gmail.com> [v1]
    Reviewed-by: Dylan Baker <dylan@pnwbakers.com> [v2]
    Acked-by: Jason Ekstrand <jason@jlekstrand.net> [v2]
Comment 1 Clayton Craft 2019-04-02 17:35:53 UTC
Created attachment 143849 [details]
output from previous (working) commit with INTEL_DEBUG=fs
Comment 2 Ian Romanick 2019-04-02 17:46:26 UTC
Heh... when you said it failed, I didn't realize the failure was an assertion. :)  ICL doesn't have 64-bit integers.  We lower 64-bit shifts, but it seems that there is no lowering for 64-bit extract operations.

We either need to disable this optimization for platforms that are going to lower 64-bit integer operations, add a lowering for 64-bit extract operations, or both.
Comment 3 Kenneth Graunke 2019-07-15 18:24:14 UTC
Jason's https://gitlab.freedesktop.org/mesa/mesa/merge_requests/1344 is going to fix this.
Comment 4 Jason Ekstrand 2019-07-15 21:19:18 UTC
Fixed by the following commit in master:

commit 0ba508d7a3b6a006b5b8db1e865d33efc8d0abd5
Author: Jason Ekstrand <jason@jlekstrand.net>
Date:   Mon Jul 15 10:31:49 2019 -0500

    nir,intel: Add support for lowering 64-bit nir_opt_extract_*
    
    We need this when doing full software 64-bit emulation.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110309
    Fixes: cbad201c2b3 "nir/algebraic: Add missing 64-bit extract_[iu]8..."
    Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
    Reviewed-by: Ian Romanick <ian.d.romanick@intel.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.