diff options
author | Alejandro PiƱeiro <[email protected]> | 2018-12-29 15:08:50 +0100 |
---|---|---|
committer | Arcady Goldmints-Orlov <[email protected]> | 2019-06-30 16:58:27 -0500 |
commit | 2af2235a3281a182f6ed4a51a1f58f8a7dcee0e4 (patch) | |
tree | f9c96596b547b79b7704ccfefdca7da0db551000 /src/mesa | |
parent | cae501b394131f51428860a6735bc62f72684343 (diff) |
glspirv: Enable the new deref-base UBO/SSBO path on gl_spirv
Among other things, it supports arrays of arrays of UBO/SSBO (default
codepath doesn't).
Acked-by: Timothy Arceri <[email protected]>
v2: nir_address_format_vk_index_offset got renamed to
nir_address_format_32bit_index_offset (after rebase against master)
v3: the ptr_type fields in spirv_to_nir_options got changed to be of
type nir_address_format.
v4: remove phys_ssbo_addr_format and push_const_addr_format as they are
not used by glspirv
Reviewed-by: Caio Marcelo de Oliveira Filho <[email protected]>
Diffstat (limited to 'src/mesa')
-rw-r--r-- | src/mesa/main/glspirv.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/mesa/main/glspirv.c b/src/mesa/main/glspirv.c index 9faaad33628..9d767a108ed 100644 --- a/src/mesa/main/glspirv.c +++ b/src/mesa/main/glspirv.c @@ -211,8 +211,16 @@ _mesa_spirv_to_nir(struct gl_context *ctx, const struct spirv_to_nir_options spirv_options = { .environment = NIR_SPIRV_OPENGL, .lower_workgroup_access_to_offsets = true, - .lower_ubo_ssbo_access_to_offsets = true, - .caps = ctx->Const.SpirVCapabilities + .caps = ctx->Const.SpirVCapabilities, + .ubo_addr_format = nir_address_format_32bit_index_offset, + .ssbo_addr_format = nir_address_format_32bit_index_offset, + + /* TODO: Consider changing this to an address format that has the NULL + * pointer equals to 0. That might be a better format to play nice + * with certain code / code generators. + */ + .shared_addr_format = nir_address_format_32bit_offset, + }; nir_shader *nir = |