draw: add main tessellation code
authorDave Airlie <airlied@redhat.com>
Mon, 17 Feb 2020 07:09:10 +0000 (17:09 +1000)
committerDave Airlie <airlied@redhat.com>
Fri, 28 Feb 2020 08:33:34 +0000 (18:33 +1000)
commit0d02a7b8ca794a594c2e9cc5e6d63dc591593105
tree4b77dbbf1131ac8b22ef1db6be0f42a91b7a8f3e
parent76daf893ea0fdbbb53017d0395be7c23b80c256c
draw: add main tessellation code

This is the bulk of the llvm shader builders and tessellation
execution code.

TCS uses a coroutine launcher like compute shaders to handle
barriers. It executes 4-wide with one input vertex per lane.

Tessellation happens before the TES is run.

TES is just a 4-wide launcher, one per primitive is executed,
with one lane per tessellation coordinate input.

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3841>
src/gallium/auxiliary/Makefile.sources
src/gallium/auxiliary/draw/draw_context.c
src/gallium/auxiliary/draw/draw_context.h
src/gallium/auxiliary/draw/draw_llvm.c
src/gallium/auxiliary/draw/draw_llvm.h
src/gallium/auxiliary/draw/draw_private.h
src/gallium/auxiliary/draw/draw_tess.c [new file with mode: 0644]
src/gallium/auxiliary/draw/draw_tess.h
src/gallium/auxiliary/meson.build