spv.builtin.PrimitiveShadingRateEXT.vert
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 26

                              Capability Shader
                              Capability FragmentShadingRateKHR
                              Extension  "SPV_KHR_fragment_shading_rate"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 8 16
                              Source GLSL 450
                              SourceExtension  "GL_EXT_fragment_shading_rate"
                              Name 4  "main"
                              Name 8  "id"
                              Name 16  "gl_PrimitiveShadingRateEXT"
                              Decorate 8(id) Location 0
                              Decorate 16(gl_PrimitiveShadingRateEXT) BuiltIn PrimitiveShadingRateKHR
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 1
               7:             TypePointer Input 6(int)
           8(id):      7(ptr) Variable Input
              15:             TypePointer Output 6(int)
16(gl_PrimitiveShadingRateEXT):     15(ptr) Variable Output
              17:      6(int) Constant 5
              19:      6(int) Constant 9
              21:      6(int) Constant 6
              23:      6(int) Constant 10
         4(main):           2 Function None 3
               5:             Label
               9:      6(int) Load 8(id)
                              SelectionMerge 14 None
                              Switch 9 14 
                                     case 0: 10
                                     case 1: 11
                                     case 2: 12
                                     case 3: 13
              10:               Label
                                Store 16(gl_PrimitiveShadingRateEXT) 17
                                Branch 14
              11:               Label
                                Store 16(gl_PrimitiveShadingRateEXT) 19
                                Branch 14
              12:               Label
                                Store 16(gl_PrimitiveShadingRateEXT) 21
                                Branch 14
              13:               Label
                                Store 16(gl_PrimitiveShadingRateEXT) 23
                                Branch 14
              14:             Label
                              Return
                              FunctionEnd
