spv.shadingRate.frag
// Module Version 10000
// Generated by (magic number): 80008
// Id's are bound by 21

                              Capability Shader
                              Capability FragmentDensityEXT
                              Extension  "SPV_NV_shading_rate"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 9 13 17 19
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 450
                              SourceExtension  "GL_NV_shading_rate_image"
                              Name 4  "main"
                              Name 9  "FragmentSize"
                              Name 13  "gl_FragmentSizeNV"
                              Name 17  "InvocationsPerPixel"
                              Name 19  "gl_InvocationsPerPixelNV"
                              Decorate 9(FragmentSize) Location 0
                              Decorate 13(gl_FragmentSizeNV) Flat
                              Decorate 13(gl_FragmentSizeNV) BuiltIn FragSizeEXT
                              Decorate 17(InvocationsPerPixel) Location 2
                              Decorate 19(gl_InvocationsPerPixelNV) Flat
                              Decorate 19(gl_InvocationsPerPixelNV) BuiltIn FragInvocationCountEXT
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 2
               8:             TypePointer Output 7(fvec2)
 9(FragmentSize):      8(ptr) Variable Output
              10:             TypeInt 32 1
              11:             TypeVector 10(int) 2
              12:             TypePointer Input 11(ivec2)
13(gl_FragmentSizeNV):     12(ptr) Variable Input
              16:             TypePointer Output 10(int)
17(InvocationsPerPixel):     16(ptr) Variable Output
              18:             TypePointer Input 10(int)
19(gl_InvocationsPerPixelNV):     18(ptr) Variable Input
         4(main):           2 Function None 3
               5:             Label
              14:   11(ivec2) Load 13(gl_FragmentSizeNV)
              15:    7(fvec2) ConvertSToF 14
                              Store 9(FragmentSize) 15
              20:     10(int) Load 19(gl_InvocationsPerPixelNV)
                              Store 17(InvocationsPerPixel) 20
                              Return
                              FunctionEnd
