[Bug 107193] piglit.spec.arb_compute_shader.linker.bug-93840 fails

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Thu Jul 12 16:13:55 UTC 2018


https://bugs.freedesktop.org/show_bug.cgi?id=107193

Chema Casanova <jmcasanova at igalia.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED

--- Comment #4 from Chema Casanova <jmcasanova at igalia.com> ---
Fixed by:

commit 62f37ee53d9d5388eecef94369893b5467349306
Author: Jose Maria Casanova Crespo <jmcasanova at igalia.com>
Date:   Wed Jul 11 11:19:20 2018 +0200

    i965/fs: unspills shoudn't use grf127 as dest since Gen8+

    At 232ed8980217dd65ab0925df28156f565b94b2e5 "i965/fs: Register allocator
    shoudn't use grf127 for sends dest" we didn't take into account the case
    of SEND instructions that are not send_from_grf. But since Gen7+ although
    the backend still uses MRFs internally for sends they are finally
    assigned to a GRFs.

    In the case of unspills the backend assigns directly as source its
    destination because it is suppose to be available. So we always have a
    source-destination overlap. If the reg_allocator assigns registers that
    include the grf127 we fail the validation rule that affects Gen8+
    "r127 must not be used for return address when there is a src and dest
    overlap in send instruction."

    So this patch activates the grf127_send_hack_node for Gen8+ and if we
    have any register spilled we add interferences to the destination of
    the unspill operations.

    We also need to avoid that opt_bank_conflicts() optimization, that runs
    after the register allocation, doesn't move things around, causing the
    grf127 to be used in the condition we were avoiding.

    Fixes piglit test
tests/spec/arb_compute_shader/linker/bug-93840.shader_test
    and some shader-db crashed because of the grf127 validation rule..

    v2: make sure that opt_bank_conflicts() optimization doesn't change
    the use of grf127. (Caio)

    Found by Caio Marcelo de Oliveira Filho

    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107193
    Fixes: 232ed89802 "i965/fs: Register allocator shoudn't use grf127 for
sends dest"
    Cc: 18.1 <mesa-stable at lists.freedesktop.org>
    Cc: Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com>
    Cc: Jason Ekstrand <jason at jlekstrand.net>

    Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com>

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/intel-3d-bugs/attachments/20180712/6059cb92/attachment.html>


More information about the intel-3d-bugs mailing list