Bug 78258

Summary: make check link_varyings.gl_ClipDistance failure
Product: Mesa Reporter: Vinson Lee <vlee>
Component: Mesa coreAssignee: mesa-dev
Status: RESOLVED FIXED QA Contact:
Severity: major    
Priority: medium CC: idr
Version: gitKeywords: regression
Hardware: x86-64 (AMD64)   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Vinson Lee 2014-05-04 15:55:24 UTC
mesa: b7e7ae9f605283076dba6d9e826fbbd1f1db1c4b (10.3.0-devel)

$ make check
[...]
make  check-TESTS
PASS: glcpp/tests/glcpp-test
FAIL: tests/general-ir-test
PASS: tests/optimization-test
PASS: tests/ralloc-test
PASS: tests/sampler-types-test
PASS: tests/uniform-initializer-test
make  all-am
make[7]: Nothing to be done for `all-am'.
============================================================================
Testsuite summary for Mesa 10.3.0-devel
============================================================================
# TOTAL: 6
# PASS:  5
# SKIP:  0
# XFAIL: 0
# FAIL:  1
# XPASS: 0
# ERROR: 0


[ RUN      ] link_varyings.gl_ClipDistance
tests/varyings_test.cpp:201: Failure
Value of: hash_table_find(consumer_inputs, "gl_ClipDistance")
  Actual: NULL
Expected: (void *) clipdistance
Which is: 0x7fad7ac196b0
tests/varyings_test.cpp:202: Failure
Value of: num_elements(consumer_inputs)
  Actual: 0
Expected: 1u
Which is: 1
[  FAILED  ] link_varyings.gl_ClipDistance (0 ms)
[ RUN      ] link_varyings.single_interface_input
[       OK ] link_varyings.single_interface_input (1 ms)
[ RUN      ] link_varyings.one_interface_and_one_simple_input
[       OK ] link_varyings.one_interface_and_one_simple_input (0 ms)
[ RUN      ] link_varyings.invalid_interface_input
[       OK ] link_varyings.invalid_interface_input (0 ms)
[ RUN      ] link_varyings.interface_field_doesnt_match_noninterface
[       OK ] link_varyings.interface_field_doesnt_match_noninterface (0 ms)
[ RUN      ] link_varyings.interface_field_doesnt_match_noninterface_vice_versa
[       OK ] link_varyings.interface_field_doesnt_match_noninterface_vice_versa (0 ms)
[----------] 7 tests from link_varyings (1 ms total)

[----------] Global test environment tear-down
[==========] 33 tests from 6 test cases ran. (8 ms total)
[  PASSED  ] 32 tests.
[  FAILED  ] 1 test, listed below:
[  FAILED  ] link_varyings.gl_ClipDistance
Comment 1 Vinson Lee 2014-05-04 17:03:45 UTC
# only skipped commits left to test
# possible first bad commit: [e608449d3e7dc86b90acfb31d9c948c57cf0e920] mesa/sso: Enable GL_ARB_separate_shader_objects by default
# possible first bad commit: [0939d3d0974a579fa65b76ebc6074d61e11f03b0] sso: Add display list support for ARB_separate_shader_objects new functions
# possible first bad commit: [7ff937e5793dc8709c916e043b41142033c8e69e] linker: Modify cross_validate_outputs_to_inputs to match using explicit locations
# possible first bad commit: [d030a3404ca0fedf365cb0fd41eaad7abc8ff132] linker: Sort shader I/O variables into a canonical order
# possible first bad commit: [c557eb77225433fa9415a94fc9db3ce36374df64] linker: Allow geometry shader without vertex shader for separable programs
# possible first bad commit: [1ff5a2b1ba2148b772f5e5c86d64c3cb18e1ce97] linker: Assign varying locations for separable programs
# possible first bad commit: [7d73c3e99ec14031e3834096f7e8e257338b64d4] linker: Allow consumer stage or producer stage to be NULL
# possible first bad commit: [fe37cb0ac67071759a88ea767027368399e1fdb6] linker: Refactor code that gets an input matching an output
# possible first bad commit: [5699220cd5719be6fbafdefd75025a817bcb200a] glsl: Exit when the shader IR contains an interface block instance
# possible first bad commit: [ba7195d126ce20bf74a27725224662aaca4d90ef] glsl/tests: Add first simple tests of populate_consumer_input_sets
# possible first bad commit: [8f5852bd2b91df7b259e5aeafb6a62a4268ca4c4] linker: Refactor code that builds hash tables of varyings during linking
# possible first bad commit: [ca21cffebd063354291d561eadc2ded8795a5333] meta: Fix saving the program pipeline state
Comment 2 Ian Romanick 2014-05-05 17:12:02 UTC
D'oh.  It looks like I disabled the 'make check' part of my build script while I was doing a long bisect, and I never re-enabled it.  I'll take a look at this.
Comment 3 Ian Romanick 2014-05-07 16:51:51 UTC
Fixed on master by the commit below.  This patch has also been cherry picked to the 10.2 branch.

commit f7bf37cb13ff4e727d640a3bd02980aba0c0b4ce
Author: Ian Romanick <ian.d.romanick@intel.com>
Date:   Mon May 5 10:39:26 2014 -0700

    linker: Fix consumer_inputs_with_locations indexing
    
    In an earlier incarnation of populate_consumer_input_sets and
    get_matching_input, the consumer_inputs_with_locations array was indexed
    using the user-specified location.  In that version, only user-defined
    varyings were included in the array.
    
    In the current incarnation, the Mesa location is used to index the
    array, and built-in varyings are included.
    
    This change fixes the unit test to exepect gl_ClipDistance in the array,
    and it resizes the arrays to actually be big enough.  It's just dumb
    luck that the existing piglit tests use small enough locations to not
    stomp the stack. :(
    
    Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=78258
    Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
    Cc: "10.2" <mesa-stable@lists.freedesktop.org>
    Cc: Vinson Lee <vlee@freedesktop.org>

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.