Track SPIR-V version in VkConfig.hpp
Multiple places in the codebase use SPV_VERSION_1_1, which makes
updating the SPIR-V version a nuissance. Now only VkConfig.hpp
tracks that information.
Bug: b/172837769
Change-Id: I9ba09b431e48e2205cf0d8b428417b72a3f514cb
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/50128
Reviewed-by: Alexis Hétu <sugoi@google.com>
Kokoro-Result: kokoro <noreply+kokoro@google.com>
Tested-by: Sean Risser <srisser@google.com>
diff --git a/src/Vulkan/VkConfig.hpp b/src/Vulkan/VkConfig.hpp
index 37708fc..ecb2132 100644
--- a/src/Vulkan/VkConfig.hpp
+++ b/src/Vulkan/VkConfig.hpp
@@ -18,6 +18,7 @@
#include "Version.hpp"
#include "Vulkan/VulkanPlatform.hpp"
+#include "spirv-tools/libspirv.h"
namespace vk {
@@ -26,6 +27,8 @@
#define SWIFTSHADER_DEVICE_NAME "SwiftShader Device" // Max length: VK_MAX_PHYSICAL_DEVICE_NAME_SIZE
#define SWIFTSHADER_UUID "SwiftShaderUUID" // Max length: VK_UUID_SIZE (16)
+const spv_target_env SPIRV_VERSION = SPV_ENV_VULKAN_1_1;
+
enum
{
API_VERSION = VK_API_VERSION_1_1,
diff --git a/src/Vulkan/VkPipeline.cpp b/src/Vulkan/VkPipeline.cpp
index 86913ec..31c8b09 100644
--- a/src/Vulkan/VkPipeline.cpp
+++ b/src/Vulkan/VkPipeline.cpp
@@ -38,7 +38,7 @@
VkSpecializationInfo const *specializationInfo,
bool optimize)
{
- spvtools::Optimizer opt{ SPV_ENV_VULKAN_1_1 };
+ spvtools::Optimizer opt{ vk::SPIRV_VERSION };
opt.SetMessageConsumer([](spv_message_level_t level, const char *source, const spv_position_t &position, const char *message) {
switch(level)
@@ -79,7 +79,7 @@
if(false)
{
- spvtools::SpirvTools core(SPV_ENV_VULKAN_1_1);
+ spvtools::SpirvTools core(vk::SPIRV_VERSION);
std::string preOpt;
core.Disassemble(code, &preOpt, SPV_BINARY_TO_TEXT_OPTION_NONE);
std::string postOpt;
diff --git a/src/Vulkan/VkShaderModule.cpp b/src/Vulkan/VkShaderModule.cpp
index 55c091d..4f94af9 100644
--- a/src/Vulkan/VkShaderModule.cpp
+++ b/src/Vulkan/VkShaderModule.cpp
@@ -30,7 +30,7 @@
wordCount = static_cast<uint32_t>(pCreateInfo->codeSize / sizeof(uint32_t));
#if !defined(NDEBUG) || defined(DCHECK_ALWAYS_ON)
- spvtools::SpirvTools spirvTools(SPV_ENV_VULKAN_1_1);
+ spvtools::SpirvTools spirvTools(SPIRV_VERSION);
ASSERT(spirvTools.Validate(getCode())); // The SPIR-V code passed to vkCreateShaderModule must be valid (b/158228522)
#endif
}