Exemplo n.º 1
0
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)
Exemplo n.º 2
0
 def test_compute_shader(self):                
     shader = pyglslang.TShader(pyglslang.EShLangCompute) 
     self.assertIsNotNone(shader)       
Exemplo n.º 3
0
 def test_frag_shader(self):                
     shader = pyglslang.TShader(pyglslang.EShLangFragment) 
     self.assertIsNotNone(shader)       
Exemplo n.º 4
0
 def test_geo_shader(self):                
     shader = pyglslang.TShader(pyglslang.EShLangGeometry) 
     self.assertIsNotNone(shader)       
Exemplo n.º 5
0
 def test_tess_eval_shader(self):                
     shader = pyglslang.TShader(pyglslang.EShLangTessEvaluation) 
     self.assertIsNotNone(shader)       
Exemplo n.º 6
0
 def test_tess_ctrl_shader(self):                
     shader = pyglslang.TShader(pyglslang.EShLangTessControl) 
     self.assertIsNotNone(shader)       
Exemplo n.º 7
0
 def test_vertex_shader(self):                
     shader = pyglslang.TShader(pyglslang.EShLangVertex) 
     self.assertIsNotNone(shader)