llvmpipe: do not enable tessellation shader without llvm coroutines support
authorCharmaine Lee <charmainel@vmware.com>
Fri, 5 Jun 2020 00:46:33 +0000 (17:46 -0700)
committerMarge Bot <eric+marge@anholt.net>
Sat, 6 Jun 2020 22:45:21 +0000 (22:45 +0000)
Tessellation shader in llvmpipe depends on llvm coroutines support. So do not
advertise tessellation shader support in llvmpipe if GALLIVM_HAVE_CORO is FALSE.

This fixes assertion in LLVMTokenTypeInContext() running tessellation shader
tests with llvm version < 6.

Fixes: eb522717 "llvmpipe: add support for tessellation shaders"
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Neha Bhende <bhenden@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5366>

src/gallium/drivers/llvmpipe/lp_screen.c

index e3f1f70237c272497f7ad1870a1bce6bd475ee14..61aac82d0d8eac74d1daf6c713a2eacf1e8446ed 100644 (file)
@@ -433,7 +433,8 @@ llvmpipe_get_shader_param(struct pipe_screen *screen,
       }
    case PIPE_SHADER_TESS_CTRL:
    case PIPE_SHADER_TESS_EVAL:
-      if (lscreen->use_tgsi)
+      /* Tessellation shader needs llvm coroutines support */
+      if (!GALLIVM_HAVE_CORO || lscreen->use_tgsi)
          return 0;
    case PIPE_SHADER_VERTEX:
    case PIPE_SHADER_GEOMETRY: