From 2af2235a3281a182f6ed4a51a1f58f8a7dcee0e4 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Alejandro=20Pi=C3=B1eiro?= Date: Sat, 29 Dec 2018 15:08:50 +0100 Subject: [PATCH] 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 --- src/mesa/main/glspirv.c | 12 ++++++++++-- 1 file 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 = -- 2.30.2