From: Alejandro PiƱeiro Date: Sat, 29 Dec 2018 14:08:50 +0000 (+0100) Subject: glspirv: Enable the new deref-base UBO/SSBO path on gl_spirv X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2af2235a3281a182f6ed4a51a1f58f8a7dcee0e4;p=mesa.git 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 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 --- 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 =