summaryrefslogtreecommitdiffstats
path: root/src/mesa
diff options
context:
space:
mode:
authorAlejandro PiƱeiro <[email protected]>2018-12-29 15:08:50 +0100
committerArcady Goldmints-Orlov <[email protected]>2019-06-30 16:58:27 -0500
commit2af2235a3281a182f6ed4a51a1f58f8a7dcee0e4 (patch)
treef9c96596b547b79b7704ccfefdca7da0db551000 /src/mesa
parentcae501b394131f51428860a6735bc62f72684343 (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.c12
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 =