aboutsummaryrefslogtreecommitdiff
path: root/source/spirv_target_env.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/spirv_target_env.cpp')
-rw-r--r--source/spirv_target_env.cpp63
1 files changed, 57 insertions, 6 deletions
diff --git a/source/spirv_target_env.cpp b/source/spirv_target_env.cpp
index f20ebb4f..187ab61e 100644
--- a/source/spirv_target_env.cpp
+++ b/source/spirv_target_env.cpp
@@ -62,7 +62,7 @@ const char* spvTargetEnvDescription(spv_target_env env) {
case SPV_ENV_VULKAN_1_1:
return "SPIR-V 1.3 (under Vulkan 1.1 semantics)";
case SPV_ENV_WEBGPU_0:
- assert(false);
+ assert(false && "Deprecated target environment value.");
break;
case SPV_ENV_UNIVERSAL_1_4:
return "SPIR-V 1.4";
@@ -72,6 +72,9 @@ const char* spvTargetEnvDescription(spv_target_env env) {
return "SPIR-V 1.5";
case SPV_ENV_VULKAN_1_2:
return "SPIR-V 1.5 (under Vulkan 1.2 semantics)";
+ case SPV_ENV_MAX:
+ assert(false && "Invalid target environment value.");
+ break;
}
return "";
}
@@ -102,7 +105,7 @@ uint32_t spvVersionForTargetEnv(spv_target_env env) {
case SPV_ENV_VULKAN_1_1:
return SPV_SPIRV_VERSION_WORD(1, 3);
case SPV_ENV_WEBGPU_0:
- assert(false);
+ assert(false && "Deprecated target environment value.");
break;
case SPV_ENV_UNIVERSAL_1_4:
case SPV_ENV_VULKAN_1_1_SPIRV_1_4:
@@ -110,6 +113,9 @@ uint32_t spvVersionForTargetEnv(spv_target_env env) {
case SPV_ENV_UNIVERSAL_1_5:
case SPV_ENV_VULKAN_1_2:
return SPV_SPIRV_VERSION_WORD(1, 5);
+ case SPV_ENV_MAX:
+ assert(false && "Invalid target environment value.");
+ break;
}
return SPV_SPIRV_VERSION_WORD(0, 0);
}
@@ -212,7 +218,10 @@ bool spvIsVulkanEnv(spv_target_env env) {
case SPV_ENV_VULKAN_1_2:
return true;
case SPV_ENV_WEBGPU_0:
- assert(false);
+ assert(false && "Deprecated target environment value.");
+ break;
+ case SPV_ENV_MAX:
+ assert(false && "Invalid target environment value.");
break;
}
return false;
@@ -246,7 +255,10 @@ bool spvIsOpenCLEnv(spv_target_env env) {
case SPV_ENV_OPENCL_2_2:
return true;
case SPV_ENV_WEBGPU_0:
- assert(false);
+ assert(false && "Deprecated target environment value.");
+ break;
+ case SPV_ENV_MAX:
+ assert(false && "Invalid target environment value.");
break;
}
return false;
@@ -280,7 +292,43 @@ bool spvIsOpenGLEnv(spv_target_env env) {
case SPV_ENV_OPENGL_4_5:
return true;
case SPV_ENV_WEBGPU_0:
- assert(false);
+ assert(false && "Deprecated target environment value.");
+ break;
+ case SPV_ENV_MAX:
+ assert(false && "Invalid target environment value.");
+ break;
+ }
+ return false;
+}
+
+bool spvIsValidEnv(spv_target_env env) {
+ switch (env) {
+ case SPV_ENV_UNIVERSAL_1_0:
+ case SPV_ENV_VULKAN_1_0:
+ case SPV_ENV_UNIVERSAL_1_1:
+ case SPV_ENV_UNIVERSAL_1_2:
+ case SPV_ENV_UNIVERSAL_1_3:
+ case SPV_ENV_VULKAN_1_1:
+ case SPV_ENV_OPENCL_1_2:
+ case SPV_ENV_OPENCL_EMBEDDED_1_2:
+ case SPV_ENV_OPENCL_2_0:
+ case SPV_ENV_OPENCL_EMBEDDED_2_0:
+ case SPV_ENV_OPENCL_EMBEDDED_2_1:
+ case SPV_ENV_OPENCL_EMBEDDED_2_2:
+ case SPV_ENV_OPENCL_2_1:
+ case SPV_ENV_OPENCL_2_2:
+ case SPV_ENV_UNIVERSAL_1_4:
+ case SPV_ENV_VULKAN_1_1_SPIRV_1_4:
+ case SPV_ENV_UNIVERSAL_1_5:
+ case SPV_ENV_VULKAN_1_2:
+ case SPV_ENV_OPENGL_4_0:
+ case SPV_ENV_OPENGL_4_1:
+ case SPV_ENV_OPENGL_4_2:
+ case SPV_ENV_OPENGL_4_3:
+ case SPV_ENV_OPENGL_4_5:
+ return true;
+ case SPV_ENV_WEBGPU_0:
+ case SPV_ENV_MAX:
break;
}
return false;
@@ -320,7 +368,10 @@ std::string spvLogStringForEnv(spv_target_env env) {
return "Universal";
}
case SPV_ENV_WEBGPU_0:
- assert(false);
+ assert(false && "Deprecated target environment value.");
+ break;
+ case SPV_ENV_MAX:
+ assert(false && "Invalid target environment value.");
break;
}
return "Unknown";