Bug 92859

Summary: [regression, bisected] validate_intrinsic_instr: Assertion triggered
Product: Mesa Reporter: Mark Janes <mark.a.janes>
Component: Drivers/DRI/i965Assignee: Jason Ekstrand <jason>
Status: CLOSED FIXED QA Contact: Intel 3D Bugs Mailing List <intel-3d-bugs>
Severity: major    
Priority: medium CC: idr, mark.a.janes
Version: git   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description Mark Janes 2015-11-07 23:21:00 UTC
c839174d55216cf1da5cdc4bf0f735ab8359d221 triggered new assertions on the following tests:

piglit.spec.arb_shader_subroutine.execution.simple-subroutine
piglit.spec.arb_arrays_of_arrays.execution.subroutines.fs-subroutine
piglit.spec.arb_arrays_of_arrays.compiler.subroutine.vert
piglit.spec.arb_shader_subroutine.execution.array-subroutines-nonconst
piglit.spec.arb_shader_subroutine.execution.two-subroutines-2
piglit.spec.arb_shader_subroutine.execution.two-subroutines-nested
piglit.spec.arb_program_interface_query.arb_program_interface_query-getprogramresourceiv
piglit.spec.arb_shader_subroutine.execution.array-subroutines
piglit.spec.arb_shader_subroutine.execution.two-subroutines-uniform
piglit.spec.arb_shader_subroutine.execution.two-subroutines

Author:     Jason Ekstrand <jason@jlekstrand.net>
AuthorDate: Thu Oct 22 16:53:27 2015 -0700
Commit:     Jason Ekstrand <jason.ekstrand@intel.com>
CommitDate: Sat Nov 7 08:41:35 2015 -0800

    nir/validate: Add better validation of load/store types
    
    Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Comment 1 Jason Ekstrand 2015-11-07 23:50:13 UTC
This gets triggered because we do a load_var on variables with the subroutine type which was unexpected.  I'll get it patched up on Monday.
Comment 2 Ian Romanick 2015-11-10 21:50:10 UTC
I'm also very annoyed that this patch and the 3 after it do not even build.

nir/nir_validate.c: In function 'validate_intrinsic_instr':
nir/nir_validate.c:403:53: error: invalid type argument of '->' (have 'int')
          nir_deref_tail(&instr->variables[0]->deref)->type;
                                                     ^
nir/nir_validate.c:411:53: error: invalid type argument of '->' (have 'int')
          nir_deref_tail(&instr->variables[0]->deref)->type;
                                                     ^
nir/nir_validate.c:420:52: error: invalid type argument of '->' (have 'int')
       assert(nir_deref_tail(&instr->variables[0]->deref)->type ==
                                                    ^
nir/nir_validate.c:420:105: error: invalid type argument of '->' (have 'int')
       assert(nir_deref_tail(&instr->variables[0]->deref)->type ==
                                                                                                         ^

This is really not okay.
Comment 3 Jason Ekstrand 2015-11-13 06:12:03 UTC
Just pushed a fix for this.

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.