mesa/src/compiler/spirv
Jason Ekstrand 7dfa440922 spirv: Make push constants an offset-based pointer
Push constants have been a weird edge-case for a while in that they have
explitic offsets but we've been internally building access chains for
them.  This mostly works but it means that passing pointers to push
constants through as function arguments is broken.  The easy thing to do
for now is to just treat them like UBOs or SSBOs only without a block
index.  This does loose a bit of information since we no longer have an
accurate access range and any indirect access will look like it could
read the whole block.  Unfortunately, there's not much we can do about
that.  Once NIR derefs get a bit more powerful, we can plumb these
through as derefs and be able to reason about them again.

Acked-by: Rob Clark <robdclark@gmail.com>
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Acked-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2018-06-22 20:15:57 -07:00
..
.gitignore .gitignore: Ignore new generated files 2018-01-08 21:11:11 -08:00
gl_spirv.c nir/spirv: add gl_spirv_validation method 2018-03-30 09:14:56 +02:00
GLSL.ext.AMD.h spirv: import AMD extensions header from glslang 2018-03-07 23:09:58 +01:00
GLSL.std.450.h spirv: bump headers to SPIRV 1.1 2017-01-25 17:22:23 +00:00
meson.build spirv: Move SPIR-V building to Makefile.spirv.am and spirv/meson.build 2018-03-29 14:16:01 -07:00
nir_spirv.h nir/spirv: add gl_spirv_validation method 2018-03-30 09:14:56 +02:00
spirv.core.grammar.json spirv: Update spirv.h to 12f8de9f04327336b699b1b80aa390ae7f9ddbf4 2018-04-18 22:56:54 +02:00
spirv.h spirv: Update spirv.h to 12f8de9f04327336b699b1b80aa390ae7f9ddbf4 2018-04-18 22:56:54 +02:00
spirv2nir.c spirv: Rework logging 2017-12-04 09:21:09 -08:00
spirv_info.h spirv/info: Add spirv_op_to_string 2018-01-08 14:57:44 -08:00
spirv_info_c.py spirv/info: Add spirv_op_to_string 2018-01-08 14:57:44 -08:00
spirv_to_nir.c spirv: Make push constants an offset-based pointer 2018-06-22 20:15:57 -07:00
vtn_alu.c compiler/spirv: implement 16-bit bitcasts 2018-05-03 11:40:26 +02:00
vtn_amd.c nir/spirv: s/uint32_t/SpvOp/ in various functions 2018-03-30 14:33:33 -06:00
vtn_cfg.c spirv: Use deref instructions for most variables 2018-06-22 20:15:57 -07:00
vtn_gather_types_c.py spirv: Add a prepass to set types on vtn_values 2017-12-11 22:28:34 -08:00
vtn_glsl450.c spirv: Use deref instructions for most variables 2018-06-22 20:15:57 -07:00
vtn_private.h spirv: Use NIR per-member splitting 2018-06-22 20:15:57 -07:00
vtn_subgroup.c nir/spirv: Fix warning and add missing breaks. 2018-04-14 00:52:22 +02:00
vtn_variables.c spirv: Make push constants an offset-based pointer 2018-06-22 20:15:57 -07:00