gallivm: add buffer operations to the tgsi->llvm conversion.
authorDave Airlie <airlied@redhat.com>
Wed, 26 Jun 2019 05:53:53 +0000 (15:53 +1000)
committerDave Airlie <airlied@redhat.com>
Sun, 7 Jul 2019 06:24:05 +0000 (16:24 +1000)
commitb5ac381d8f66fbf2aef92772879ac906ce9d68b2
tree7128344d9acb2129660d1574abbd9ef04fc3786b
parenta845baff169d503386f6eaa22adecc3fa67071db
gallivm: add buffer operations to the tgsi->llvm conversion.

This adds load, store and atomic operations. These operations
have to respect the exec_mask, and can't operate in lanes where
the execute is off. This is needed to avoid side effects seen
outside the shaders.

There is also bounds checking on the ssbo accesses vs the size
ptr.

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
src/gallium/auxiliary/gallivm/lp_bld_tgsi.h
src/gallium/auxiliary/gallivm/lp_bld_tgsi_info.c
src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c