From: Caio Marcelo de Oliveira Filho Date: Fri, 22 Mar 2019 05:37:50 +0000 (-0700) Subject: spirv: Add an execution environment to the options X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=15012077bceda24cbf38afeda7723c47e1b0d3c3;p=mesa.git spirv: Add an execution environment to the options 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 --- 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