yum-mirror/glslang
git clone https://git.yummers.dev/yum-mirror/glslang
2a805d9c
main
1#version 400 core 2 3in vec2 c2D ; 4flat in int i ; 5flat in uint u ; 6out uint uo ; 7out vec4 outp ; 8out ivec4 ioutp ; 9out uvec4 uoutp ; 10uniform sampler2D arrayedSampler [5 ]; 11uniform usampler2DRect samp2dr ; 12uniform isampler2DArray isamp2DA ; 13uniform sampler2DRectShadow u2drs ; 14 15#extension GL_ARB_separate_shader_objects : enable 16 17layout (location = 6 )in vec4 vl2 ; 18 19void foo23 () 20{ 21const ivec2 [ 3 ] offsets = ivec2[ 3 ](ivec2( 1 , 2 ), ivec2( 3 , 4 ), ivec2( 15 , 16 )); 22 23outp. x += textureProjGradOffset(u2drs, outp, vec2( 0.0 ), vec2( 0.0 ), offsets[ 1 ]); 24} 25 26void doubles() 27{ 28double doublev; 29dvec2 dvec2v; 30dvec3 dvec3v; 31dvec4 dvec4v; 32 33bool boolv; 34bvec2 bvec2v; 35bvec3 bvec3v; 36bvec4 bvec4v; 37 38doublev = sqrt( 2.9 ); 39dvec2v = sqrt(dvec2( 2.7 )); 40dvec3v = sqrt(dvec3( 2.0 )); 41dvec4v = sqrt(dvec4(doublev)); 42 43doublev += inversesqrt(doublev); 44dvec2v += inversesqrt(dvec2v); 45dvec3v += inversesqrt(dvec3v); 46dvec4v += inversesqrt(dvec4v); 47 48doublev += abs(doublev); 49dvec2v += abs(dvec2v); 50dvec3v += abs(dvec3v); 51dvec4v += abs(dvec4v); 52 53doublev += sign(doublev); 54dvec2v += sign(dvec2v); 55dvec3v += sign(dvec3v); 56dvec4v += sign(dvec4v); 57 58doublev += floor(doublev); 59dvec2v += floor(dvec2v); 60dvec3v += floor(dvec3v); 61dvec4v += floor(dvec4v); 62 63doublev += trunc(doublev); 64dvec2v += trunc(dvec2v); 65dvec3v += trunc(dvec3v); 66dvec4v += trunc(dvec4v); 67 68doublev += round(doublev); 69dvec2v += round(dvec2v); 70dvec3v += round(dvec3v); 71dvec4v += round(dvec4v); 72 73doublev += roundEven(doublev); 74dvec2v += roundEven(dvec2v); 75dvec3v += roundEven(dvec3v); 76dvec4v += roundEven(dvec4v); 77 78doublev += ceil(doublev); 79dvec2v += ceil(dvec2v); 80dvec3v += ceil(dvec3v); 81dvec4v += ceil(dvec4v); 82 83doublev += fract(doublev); 84dvec2v += fract(dvec2v); 85dvec3v += fract(dvec3v); 86dvec4v += fract(dvec4v); 87 88doublev += mod(doublev, doublev); 89dvec2v += mod(dvec2v, doublev); 90dvec3v += mod(dvec3v, doublev); 91dvec4v += mod(dvec4v, doublev); 92dvec2v += mod(dvec2v, dvec2v); 93dvec3v += mod(dvec3v, dvec3v); 94dvec4v += mod(dvec4v, dvec4v); 95 96doublev += modf(doublev, doublev); 97dvec2v += modf(dvec2v, dvec2v); 98dvec3v += modf(dvec3v, dvec3v); 99dvec4v += modf(dvec4v, dvec4v); 100 101doublev += min(doublev, doublev); 102dvec2v += min(dvec2v, doublev); 103dvec3v += min(dvec3v, doublev); 104dvec4v += min(dvec4v, doublev); 105dvec2v += min(dvec2v, dvec2v); 106dvec3v += min(dvec3v, dvec3v); 107dvec4v += min(dvec4v, dvec4v); 108 109doublev += max(doublev, doublev); 110dvec2v += max(dvec2v, doublev); 111dvec3v += max(dvec3v, doublev); 112dvec4v += max(dvec4v, doublev); 113dvec2v += max(dvec2v, dvec2v); 114dvec3v += max(dvec3v, dvec3v); 115dvec4v += max(dvec4v, dvec4v); 116 117doublev += clamp(doublev, doublev, doublev); 118dvec2v += clamp(dvec2v, doublev, doublev); 119dvec3v += clamp(dvec3v, doublev, doublev); 120dvec4v += clamp(dvec4v, doublev, doublev); 121dvec2v += clamp(dvec2v, dvec2v, dvec2v); 122dvec3v += clamp(dvec3v, dvec3v, dvec3v); 123dvec4v += clamp(dvec4v, dvec4v, dvec4v); 124 125doublev += mix(doublev, doublev, doublev); 126dvec2v += mix(dvec2v, dvec2v, doublev); 127dvec3v += mix(dvec3v, dvec3v, doublev); 128dvec4v += mix(dvec4v, dvec4v, doublev); 129dvec2v += mix(dvec2v, dvec2v, dvec2v); 130dvec3v += mix(dvec3v, dvec3v, dvec3v); 131dvec4v += mix(dvec4v, dvec4v, dvec4v); 132doublev += mix(doublev, doublev, boolv); 133dvec2v += mix(dvec2v, dvec2v, bvec2v); 134dvec3v += mix(dvec3v, dvec3v, bvec3v); 135dvec4v += mix(dvec4v, dvec4v, bvec4v); 136 137doublev += step(doublev, doublev); 138dvec2v += step(dvec2v, dvec2v); 139dvec3v += step(dvec3v, dvec3v); 140dvec4v += step(dvec4v, dvec4v); 141dvec2v += step(doublev, dvec2v); 142dvec3v += step(doublev, dvec3v); 143dvec4v += step(doublev, dvec4v); 144 145doublev += smoothstep(doublev, doublev, doublev); 146dvec2v += smoothstep(dvec2v, dvec2v, dvec2v); 147dvec3v += smoothstep(dvec3v, dvec3v, dvec3v); 148dvec4v += smoothstep(dvec4v, dvec4v, dvec4v); 149dvec2v += smoothstep(doublev, doublev, dvec2v); 150dvec3v += smoothstep(doublev, doublev, dvec3v); 151dvec4v += smoothstep(doublev, doublev, dvec4v); 152 153boolv = isnan(doublev); 154bvec2v = isnan(dvec2v); 155bvec3v = isnan(dvec3v); 156bvec4v = isnan(dvec4v); 157 158boolv = boolv ? isinf(doublev) : false; 159bvec2v = boolv ? isinf(dvec2v) : bvec2(false); 160bvec3v = boolv ? isinf(dvec3v) : bvec3(false); 161bvec4v = boolv ? isinf(dvec4v) : bvec4(false); 162 163doublev += length(doublev); 164doublev += length(dvec2v); 165doublev += length(dvec3v); 166doublev += length(dvec4v); 167 168doublev += distance(doublev, doublev); 169doublev += distance(dvec2v, dvec2v); 170doublev += distance(dvec3v, dvec3v); 171doublev += distance(dvec4v, dvec4v); 172 173doublev += dot(doublev, doublev); 174doublev += dot(dvec2v, dvec2v); 175doublev += dot(dvec3v, dvec3v); 176doublev += dot(dvec4v, dvec4v); 177 178dvec3v += cross(dvec3v, dvec3v); 179 180doublev += normalize(doublev); 181dvec2v += normalize(dvec2v); 182dvec3v += normalize(dvec3v); 183dvec4v += normalize(dvec4v); 184 185doublev += faceforward(doublev, doublev, doublev); 186dvec2v += faceforward(dvec2v, dvec2v, dvec2v); 187dvec3v += faceforward(dvec3v, dvec3v, dvec3v); 188dvec4v += faceforward(dvec4v, dvec4v, dvec4v); 189 190doublev += reflect(doublev, doublev); 191dvec2v += reflect(dvec2v, dvec2v); 192dvec3v += reflect(dvec3v, dvec3v); 193dvec4v += reflect(dvec4v, dvec4v); 194 195doublev += refract(doublev, doublev, doublev); 196dvec2v += refract(dvec2v, dvec2v, doublev); 197dvec3v += refract(dvec3v, dvec3v, doublev); 198dvec4v += refract(dvec4v, dvec4v, doublev); 199 200dmat2 dmat2v = outerProduct(dvec2v, dvec2v); 201dmat3 dmat3v = outerProduct(dvec3v, dvec3v); 202dmat4 dmat4v = outerProduct(dvec4v, dvec4v); 203dmat2x3 dmat2x3v = outerProduct(dvec3v, dvec2v); 204dmat3x2 dmat3x2v = outerProduct(dvec2v, dvec3v); 205dmat2x4 dmat2x4v = outerProduct(dvec4v, dvec2v); 206dmat4x2 dmat4x2v = outerProduct(dvec2v, dvec4v); 207dmat3x4 dmat3x4v = outerProduct(dvec4v, dvec3v); 208dmat4x3 dmat4x3v = outerProduct(dvec3v, dvec4v); 209 210dmat2v *= matrixCompMult(dmat2v, dmat2v); 211dmat3v *= matrixCompMult(dmat3v, dmat3v); 212dmat4v *= matrixCompMult(dmat4v, dmat4v); 213dmat2x3v = matrixCompMult(dmat2x3v, dmat2x3v); // For now, relying on no dead-code elimination 214dmat2x4v = matrixCompMult(dmat2x4v, dmat2x4v); 215dmat3x2v = matrixCompMult(dmat3x2v, dmat3x2v); 216dmat3x4v = matrixCompMult(dmat3x4v, dmat3x4v); 217dmat4x2v = matrixCompMult(dmat4x2v, dmat4x2v); 218dmat4x3v = matrixCompMult(dmat4x3v, dmat4x3v); 219 220dmat2v *= transpose(dmat2v); 221dmat3v *= transpose(dmat3v); 222dmat4v *= transpose(dmat4v); 223dmat2x3v = transpose(dmat3x2v); // For now, relying on no dead-code elimination 224dmat3x2v = transpose(dmat2x3v); 225dmat2x4v = transpose(dmat4x2v); 226dmat4x2v = transpose(dmat2x4v); 227dmat3x4v = transpose(dmat4x3v); 228dmat4x3v = transpose(dmat3x4v); 229 230doublev += determinant(dmat2v); 231doublev += determinant(dmat3v); 232doublev += determinant(dmat4v); 233 234dmat2v *= inverse(dmat2v); 235dmat3v *= inverse(dmat3v); 236dmat4v *= inverse(dmat4v); 237238 outp *= float(doublev + dvec2v. y + dvec3v. z + dvec4v. w + 239 dmat2v[ 1 ][ 1 ] + dmat3v[ 2 ][ 2 ] + dmat4v[ 3 ][ 3 ] + dmat2x3v[ 1 ][ 1 ] + dmat3x2v[ 1 ][ 1 ] + dmat3x4v[ 2 ][ 2 ] + dmat4x3v[ 2 ][ 2 ] + dmat2x4v[ 1 ][ 1 ] + dmat4x2v[ 1 ][ 1 ] + 240float(boolv) + float(bvec2v. x ) + float(bvec3v. x ) + float(bvec4v. x )); 241} 242 243void main() 244{ 245vec4 v; 246v = texture(arrayedSampler[i], c2D); 247outp. x = gl_ClipDistance[ 1 ]; 248outp. yzw = v. yzw ; 249 250ivec2 offsets[ 4 ]; 251const ivec2 constOffsets[ 4 ] = ivec2[ 4 ](ivec2( 1 , 2 ), ivec2( 3 , 4 ), ivec2( 15 , 16 ), ivec2( -2 , 0 )); 252uoutp = textureGatherOffsets(samp2dr, c2D, constOffsets, 2 ); 253outp += textureGather(arrayedSampler[ 0 ], c2D); 254ioutp = textureGatherOffset(isamp2DA, vec3( 0.1 ), ivec2( 1 ), 3 ); 255ioutp += textureGatherOffset(isamp2DA, vec3( 0.1 ), ivec2( 1 ), 1 + 2 ); 256ioutp += textureGatherOffset(isamp2DA, vec3( 0.1 ), ivec2(i)); 257 258outp += gl_FragCoord + vl2; 259uo = u % i; 260foo23(); 261doubles(); 262 263int id = gl_PrimitiveID ; 264} 265