def glsl_to_spv(shader_stage, shader_code): with pyglslangprocessing() : program = pyglslang.TProgram() Resources = init_resources() # Enable SPIR-V and Vulkan rules when parsing GLSL messages = pyglslang.EShMsgSpvRules | pyglslang.EShMsgVulkanRules shader = pyglslang.TShader(shader_stage) if not shader.parse(shader_code, Resources, 100, False, messages): print(shader.getInfoLog()) print(shader.getInfoDebugLog()) return False program.addShader(shader) if not program.link(messages): print(shader.getInfoLog()) print(shader.getInfoDebugLog()) return False return program.getSpv(shader_stage)
def test_compute_shader(self): shader = pyglslang.TShader(pyglslang.EShLangCompute) self.assertIsNotNone(shader)
def test_frag_shader(self): shader = pyglslang.TShader(pyglslang.EShLangFragment) self.assertIsNotNone(shader)
def test_geo_shader(self): shader = pyglslang.TShader(pyglslang.EShLangGeometry) self.assertIsNotNone(shader)
def test_tess_eval_shader(self): shader = pyglslang.TShader(pyglslang.EShLangTessEvaluation) self.assertIsNotNone(shader)
def test_tess_ctrl_shader(self): shader = pyglslang.TShader(pyglslang.EShLangTessControl) self.assertIsNotNone(shader)
def test_vertex_shader(self): shader = pyglslang.TShader(pyglslang.EShLangVertex) self.assertIsNotNone(shader)