vk/glsl_scraper: Use the LunarG back-door for GLSL source

This commit is contained in:
Jason Ekstrand
2015-05-21 12:19:24 -07:00
parent cb56372eeb
commit f3d70e4165
+14 -4
View File
@@ -87,6 +87,7 @@ class Shader:
# First dump the GLSL source as strings
f.write('static const char {0}_glsl_src[] ='.format(var_prefix))
f.write('\n_ANV_SPIRV_' + self.stage)
f.write('\n"#version 330\\n"')
for line in self.glsl_source().splitlines():
if not line.strip():
@@ -244,15 +245,24 @@ with open_file(outfname, 'w') as outfile:
#include <stdint.h>
#define _GLSL_SRC_VAR2(_line) _glsl_helpers_shader ## _line ## _glsl_src
#define _GLSL_SRC_VAR(_line) _GLSL_SRC_VAR2(_line)
#define _ANV_SPIRV_MAGIC "\\x03\\x02\\x23\\x07\\0\\0\\0\\0"
#define _ANV_SPIRV_VERTEX _ANV_SPIRV_MAGIC "\\0\\0\\0\\0"
#define _ANV_SPIRV_TESS_CONTROL _ANV_SPIRV_MAGIC "\\1\\0\\0\\0"
#define _ANV_SPIRV_TESS_EVALUATION _ANV_SPIRV_MAGIC "\\2\\0\\0\\0"
#define _ANV_SPIRV_GEOMETRY _ANV_SPIRV_MAGIC "\\3\\0\\0\\0"
#define _ANV_SPIRV_FRAGMENT _ANV_SPIRV_MAGIC "\\4\\0\\0\\0"
#define _ANV_SPIRV_COMPUTE _ANV_SPIRV_MAGIC "\\5\\0\\0\\0"
#define _ANV_GLSL_SRC_VAR2(_line) _glsl_helpers_shader ## _line ## _glsl_src
#define _ANV_GLSL_SRC_VAR(_line) _ANV_GLSL_SRC_VAR2(_line)
#define GLSL_VK_SHADER(device, stage, ...) ({ \\
VkShader __shader; \\
VkShaderCreateInfo __shader_create_info = { \\
.sType = VK_STRUCTURE_TYPE_SHADER_CREATE_INFO, \\
.codeSize = sizeof(_GLSL_SRC_VAR(__LINE__)), \\
.pCode = _GLSL_SRC_VAR(__LINE__), \\
.codeSize = sizeof(_ANV_GLSL_SRC_VAR(__LINE__)), \\
.pCode = _ANV_GLSL_SRC_VAR(__LINE__), \\
}; \\
vkCreateShader((VkDevice) device, &__shader_create_info, &__shader); \\
__shader; \\