yum-mirror/glslang
git clone https://git.yummers.dev/yum-mirror/glslang
36852b83
main
1#version 450 2 3#extension GL_EXT_shader_image_load_formatted : require 4 5layout (binding = 0 )uniform image1D i1D ; 6layout (binding = 1 )uniform image2D i2D ; 7layout (binding = 2 )uniform image3D i3D ; 8layout (binding = 3 )uniform imageCube iCube ; 9layout (binding = 4 )uniform imageCubeArray iCubeArray ; 10layout (binding = 5 )uniform image2DRect i2DRect ; 11layout (binding = 6 )uniform image1DArray i1DArray ; 12layout (binding = 7 )uniform image2DArray i2DArray ; 13layout (binding = 8 )uniform imageBuffer iBuffer ; 14layout (binding = 9 )uniform image2DMS i2DMS ; 15layout (binding = 10 )uniform image2DMSArray i2DMSArray ; 16 17flat in int ic1D ; 18flat in ivec2 ic2D ; 19flat in ivec3 ic3D ; 20flat in ivec4 ic4D ; 21 22writeonly layout (binding = 1 )uniform image2D wo2D ; 23 24flat in uint value ; 25 26out vec4 fragData ; 27 28void main () 29{ 30ivec3 iv = ivec3 (0 ); 31iv .x += imageSize (i1D ); 32iv .xy += imageSize (i2D ); 33iv .xyz += imageSize (i3D ); 34iv .xy += imageSize (iCube ); 35iv .xyz += imageSize (iCubeArray ); 36iv .xy += imageSize (i2DRect ); 37iv .xy += imageSize (i1DArray ); 38iv .xyz += imageSize (i2DArray ); 39iv .x += imageSize (iBuffer ); 40iv .xy += imageSize (i2DMS ); 41iv .xyz += imageSize (i2DMSArray ); 42 43iv .x += imageSamples (i2DMS ); 44iv .x += imageSamples (i2DMSArray ); 45 46vec4 v = vec4 (0.0 ); 47v += imageLoad (i1D ,ic1D ); 48imageStore (i1D ,ic1D ,v ); 49v += imageLoad (i2D ,ic2D ); 50imageStore (i2D ,ic2D ,v ); 51v += imageLoad (i3D ,ic3D ); 52imageStore (i3D ,ic3D ,v ); 53v += imageLoad (iCube ,ic3D ); 54imageStore (iCube ,ic3D ,v ); 55v += imageLoad (iCubeArray ,ic3D ); 56imageStore (iCubeArray ,ic3D ,v ); 57v += imageLoad (i2DRect ,ic2D ); 58imageStore (i2DRect ,ic2D ,v ); 59v += imageLoad (i1DArray ,ic2D ); 60imageStore (i1DArray ,ic2D ,v ); 61v += imageLoad (i2DArray ,ic3D ); 62imageStore (i2DArray ,ic3D ,v ); 63v += imageLoad (iBuffer ,ic1D ); 64imageStore (iBuffer ,ic1D ,v ); 65v += imageLoad (i2DMS ,ic2D ,1 ); 66imageStore (i2DMS ,ic2D ,2 ,v ); 67v += imageLoad (i2DMSArray ,ic3D ,3 ); 68imageStore (i2DMSArray ,ic3D ,4 ,v ); 69 70imageStore (wo2D ,ic2D ,v ); 71 72fragData = v ; 73} 74