From 15012077bceda24cbf38afeda7723c47e1b0d3c3 Mon Sep 17 00:00:00 2001 From: Caio Marcelo de Oliveira Filho Date: Thu, 21 Mar 2019 22:37:50 -0700 Subject: [PATCH] spirv: Add an execution environment to the options MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Also updates gl_spirv to pick the right one. At the moment nothing uses it, but upcoming functionality part of ARB_gl_spirv will use it, and we also later can be more assertful when handling certain features for each of the execution environments. Reviewed-by: Alejandro Piñeiro Acked-by: Karol Herbst --- src/compiler/spirv/nir_spirv.h | 8 ++++++++ src/mesa/main/glspirv.c | 1 + 2 files changed, 9 insertions(+) diff --git a/src/compiler/spirv/nir_spirv.h b/src/compiler/spirv/nir_spirv.h index d8ccbb48ff8..7a16422b291 100644 --- a/src/compiler/spirv/nir_spirv.h +++ b/src/compiler/spirv/nir_spirv.h @@ -50,7 +50,15 @@ enum nir_spirv_debug_level { NIR_SPIRV_DEBUG_LEVEL_ERROR, }; +enum nir_spirv_execution_environment { + NIR_SPIRV_VULKAN = 0, + NIR_SPIRV_OPENCL, + NIR_SPIRV_OPENGL, +}; + struct spirv_to_nir_options { + enum nir_spirv_execution_environment environment; + /* Whether or not to lower all workgroup variable access to offsets * up-front. This means you will _shared intrinsics instead of _var * for workgroup data access. diff --git a/src/mesa/main/glspirv.c b/src/mesa/main/glspirv.c index 227971091e1..84550e96ff6 100644 --- a/src/mesa/main/glspirv.c +++ b/src/mesa/main/glspirv.c @@ -211,6 +211,7 @@ _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 -- 2.30.2