llvmpipe/cs: add task/mesh shader support to compute shader builder.
authorDave Airlie <airlied@redhat.com>
Wed, 17 May 2023 02:01:36 +0000 (12:01 +1000)
committerDave Airlie <airlied@redhat.com>
Mon, 5 Jun 2023 19:01:47 +0000 (05:01 +1000)
commit3994fb1e19ce90d56559de68451c20a3c7bd51a0
treee1985974a0911ef233ab984cecf7d5ac8f9e2aa7
parent51eb3cc5636d6adcde3d921ad5eb52d5bfd2a0ee
llvmpipe/cs: add task/mesh shader support to compute shader builder.

This allows generating task and mesh variants of compute shaders.

It adds:
- vertex and primitive outputs support - aos writing.
- payload support
- mesh iface for the output and count callbacks.
- draw_id
- multiple iteration support to the exec fn to allow launches
in multiple passes to reduce memory usage

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23066>
src/gallium/drivers/llvmpipe/lp_jit.h
src/gallium/drivers/llvmpipe/lp_state_cs.c
src/gallium/drivers/llvmpipe/lp_state_cs.h