yum-mirror/glslang

git clone https://git.yummers.dev/yum-mirror/glslang

Wooyoung KimAdd the GLSL_QCOM_tile_shading support10ae0e16

main
1.4 KiB41 linesraw
1#version 310 es
2#extension GL_QCOM_tile_shading : enable 
3
4precision highp int;
5precision highp float;
6
7layout (set=0, binding=0, tile_attachmentQCOM, rgba32f) uniform readonly highp image2D input0;
8layout (set=0, binding=1, tile_attachmentQCOM, rgba32f) uniform readonly highp image2D  color0;
9layout (set=0, binding=2, tile_attachmentQCOM, rgba32i) uniform writeonly highp iimage2D color1;
10
11
12// depth/stencil attachments
13layout (set=0, binding=3, tile_attachmentQCOM, rgba32f) uniform readonly highp image2D  depth;
14layout (set=0, binding=4, tile_attachmentQCOM, rgba32ui) uniform writeonly highp uimage2D stencil;
15
16layout (location=0) out vec4 fragColor; 
17
18void main() 
19{ 
20	// integer coordinates of the center of tile.
21    uvec2 o2     = uvec2(8, 4);
22          o2     = o2 / uvec2(2);
23    ivec2 offset = ivec2(gl_TileOffsetQCOM + (gl_TileDimensionQCOM/uvec3(2)).xy);
24
25  // read from attachments 
26  vec4  colorA   = imageLoad( color0, offset );
27  vec4  colorB   = vec4(colorA);
28  vec4  colorC   = imageLoad( input0, offset );
29  float d        = imageLoad( depth, offset ).x;
30  uint  s        = uint(d);
31	  
32    // compute output value
33    ivec4 outColor  = ivec4( colorB + colorB + colorC + vec4(d) + vec4(s) );
34  
35    // write to attachments
36    imageStore( color1,  offset, outColor );
37    imageStore( stencil, offset, uvec4(outColor) );
38  
39    // write to color attachment 0 via fragment output 
40    fragColor = vec4(outColor) + vec4(1.0, 0.0, 0.0, 1.0); 
41}