gallivm: fix bogus assert in get_indirect_index
authorRoland Scheidegger <sroland@vmware.com>
Mon, 15 Apr 2019 19:36:32 +0000 (21:36 +0200)
committerRoland Scheidegger <sroland@vmware.com>
Mon, 15 Apr 2019 22:49:38 +0000 (00:49 +0200)
0 is a valid value as max index, and the code handles it fine. This isn't
commonly seen, as it will only happen with array declarations of size 1.
Fixes piglit tests/shaders/complex-loop-analysis-bug.shader_test

Fixes: a3c898dc97ec "gallivm: fix improper clamping of vertex index when fetching gs inputs"
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110441

Reviewed-by: Brian Paul <brianp@vmware.com>
src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c

index 0f5b3d9acb7ef1813976ff129031f12e23db7582..d6af1d84471f1b8d38bfb2340d9b0ef043329587 100644 (file)
@@ -1108,7 +1108,7 @@ get_indirect_index(struct lp_build_tgsi_soa_context *bld,
     * larger than the declared size but smaller than the buffer size.
     */
    if (reg_file != TGSI_FILE_CONSTANT) {
-      assert(index_limit > 0);
+      assert(index_limit >= 0);
       max_index = lp_build_const_int_vec(bld->bld_base.base.gallivm,
                                          uint_bld->type, index_limit);