summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/bgfx/examples/runtime/shaders/glsl/cs_terrain_init.bin
blob: ba428bbc48d74bd5313c0d0503a0a52e4ecf4fb8 (plain)
ofshex dumpascii
0000 43 53 48 0b 00 00 00 00 00 00 00 00 00 00 93 0a 00 00 23 76 65 72 73 69 6f 6e 20 34 33 30 0a 76 CSH...............#version.430.v
0020 65 63 33 20 69 6e 73 74 4d 75 6c 28 76 65 63 33 20 5f 76 65 63 2c 20 6d 61 74 33 20 5f 6d 74 78 ec3.instMul(vec3._vec,.mat3._mtx
0040 29 20 7b 20 72 65 74 75 72 6e 20 28 20 28 5f 76 65 63 29 20 2a 20 28 5f 6d 74 78 29 20 29 3b 20 ).{.return.(.(_vec).*.(_mtx).);.
0060 7d 0a 76 65 63 33 20 69 6e 73 74 4d 75 6c 28 6d 61 74 33 20 5f 6d 74 78 2c 20 76 65 63 33 20 5f }.vec3.instMul(mat3._mtx,.vec3._
0080 76 65 63 29 20 7b 20 72 65 74 75 72 6e 20 28 20 28 5f 6d 74 78 29 20 2a 20 28 5f 76 65 63 29 20 vec).{.return.(.(_mtx).*.(_vec).
00a0 29 3b 20 7d 0a 76 65 63 34 20 69 6e 73 74 4d 75 6c 28 76 65 63 34 20 5f 76 65 63 2c 20 6d 61 74 );.}.vec4.instMul(vec4._vec,.mat
00c0 34 20 5f 6d 74 78 29 20 7b 20 72 65 74 75 72 6e 20 28 20 28 5f 76 65 63 29 20 2a 20 28 5f 6d 74 4._mtx).{.return.(.(_vec).*.(_mt
00e0 78 29 20 29 3b 20 7d 0a 76 65 63 34 20 69 6e 73 74 4d 75 6c 28 6d 61 74 34 20 5f 6d 74 78 2c 20 x).);.}.vec4.instMul(mat4._mtx,.
0100 76 65 63 34 20 5f 76 65 63 29 20 7b 20 72 65 74 75 72 6e 20 28 20 28 5f 6d 74 78 29 20 2a 20 28 vec4._vec).{.return.(.(_mtx).*.(
0120 5f 76 65 63 29 20 29 3b 20 7d 0a 66 6c 6f 61 74 20 72 63 70 28 66 6c 6f 61 74 20 5f 61 29 20 7b _vec).);.}.float.rcp(float._a).{
0140 20 72 65 74 75 72 6e 20 31 2e 30 2f 5f 61 3b 20 7d 0a 76 65 63 32 20 72 63 70 28 76 65 63 32 20 .return.1.0/_a;.}.vec2.rcp(vec2.
0160 5f 61 29 20 7b 20 72 65 74 75 72 6e 20 76 65 63 32 28 31 2e 30 29 2f 5f 61 3b 20 7d 0a 76 65 63 _a).{.return.vec2(1.0)/_a;.}.vec
0180 33 20 72 63 70 28 76 65 63 33 20 5f 61 29 20 7b 20 72 65 74 75 72 6e 20 76 65 63 33 28 31 2e 30 3.rcp(vec3._a).{.return.vec3(1.0
01a0 29 2f 5f 61 3b 20 7d 0a 76 65 63 34 20 72 63 70 28 76 65 63 34 20 5f 61 29 20 7b 20 72 65 74 75 )/_a;.}.vec4.rcp(vec4._a).{.retu
01c0 72 6e 20 76 65 63 34 28 31 2e 30 29 2f 5f 61 3b 20 7d 0a 76 65 63 32 20 76 65 63 32 5f 73 70 6c rn.vec4(1.0)/_a;.}.vec2.vec2_spl
01e0 61 74 28 66 6c 6f 61 74 20 5f 78 29 20 7b 20 72 65 74 75 72 6e 20 76 65 63 32 28 5f 78 2c 20 5f at(float._x).{.return.vec2(_x,._
0200 78 29 3b 20 7d 0a 76 65 63 33 20 76 65 63 33 5f 73 70 6c 61 74 28 66 6c 6f 61 74 20 5f 78 29 20 x);.}.vec3.vec3_splat(float._x).
0220 7b 20 72 65 74 75 72 6e 20 76 65 63 33 28 5f 78 2c 20 5f 78 2c 20 5f 78 29 3b 20 7d 0a 76 65 63 {.return.vec3(_x,._x,._x);.}.vec
0240 34 20 76 65 63 34 5f 73 70 6c 61 74 28 66 6c 6f 61 74 20 5f 78 29 20 7b 20 72 65 74 75 72 6e 20 4.vec4_splat(float._x).{.return.
0260 76 65 63 34 28 5f 78 2c 20 5f 78 2c 20 5f 78 2c 20 5f 78 29 3b 20 7d 0a 75 76 65 63 32 20 75 76 vec4(_x,._x,._x,._x);.}.uvec2.uv
0280 65 63 32 5f 73 70 6c 61 74 28 75 69 6e 74 20 5f 78 29 20 7b 20 72 65 74 75 72 6e 20 75 76 65 63 ec2_splat(uint._x).{.return.uvec
02a0 32 28 5f 78 2c 20 5f 78 29 3b 20 7d 0a 75 76 65 63 33 20 75 76 65 63 33 5f 73 70 6c 61 74 28 75 2(_x,._x);.}.uvec3.uvec3_splat(u
02c0 69 6e 74 20 5f 78 29 20 7b 20 72 65 74 75 72 6e 20 75 76 65 63 33 28 5f 78 2c 20 5f 78 2c 20 5f int._x).{.return.uvec3(_x,._x,._
02e0 78 29 3b 20 7d 0a 75 76 65 63 34 20 75 76 65 63 34 5f 73 70 6c 61 74 28 75 69 6e 74 20 5f 78 29 x);.}.uvec4.uvec4_splat(uint._x)
0300 20 7b 20 72 65 74 75 72 6e 20 75 76 65 63 34 28 5f 78 2c 20 5f 78 2c 20 5f 78 2c 20 5f 78 29 3b .{.return.uvec4(_x,._x,._x,._x);
0320 20 7d 0a 6d 61 74 34 20 6d 74 78 46 72 6f 6d 52 6f 77 73 28 76 65 63 34 20 5f 30 2c 20 76 65 63 .}.mat4.mtxFromRows(vec4._0,.vec
0340 34 20 5f 31 2c 20 76 65 63 34 20 5f 32 2c 20 76 65 63 34 20 5f 33 29 0a 7b 0a 72 65 74 75 72 6e 4._1,.vec4._2,.vec4._3).{.return
0360 20 74 72 61 6e 73 70 6f 73 65 28 6d 61 74 34 28 5f 30 2c 20 5f 31 2c 20 5f 32 2c 20 5f 33 29 20 .transpose(mat4(_0,._1,._2,._3).
0380 29 3b 0a 7d 0a 6d 61 74 34 20 6d 74 78 46 72 6f 6d 43 6f 6c 73 28 76 65 63 34 20 5f 30 2c 20 76 );.}.mat4.mtxFromCols(vec4._0,.v
03a0 65 63 34 20 5f 31 2c 20 76 65 63 34 20 5f 32 2c 20 76 65 63 34 20 5f 33 29 0a 7b 0a 72 65 74 75 ec4._1,.vec4._2,.vec4._3).{.retu
03c0 72 6e 20 6d 61 74 34 28 5f 30 2c 20 5f 31 2c 20 5f 32 2c 20 5f 33 29 3b 0a 7d 0a 6d 61 74 33 20 rn.mat4(_0,._1,._2,._3);.}.mat3.
03e0 6d 74 78 46 72 6f 6d 52 6f 77 73 28 76 65 63 33 20 5f 30 2c 20 76 65 63 33 20 5f 31 2c 20 76 65 mtxFromRows(vec3._0,.vec3._1,.ve
0400 63 33 20 5f 32 29 0a 7b 0a 72 65 74 75 72 6e 20 74 72 61 6e 73 70 6f 73 65 28 6d 61 74 33 28 5f c3._2).{.return.transpose(mat3(_
0420 30 2c 20 5f 31 2c 20 5f 32 29 20 29 3b 0a 7d 0a 6d 61 74 33 20 6d 74 78 46 72 6f 6d 43 6f 6c 73 0,._1,._2).);.}.mat3.mtxFromCols
0440 28 76 65 63 33 20 5f 30 2c 20 76 65 63 33 20 5f 31 2c 20 76 65 63 33 20 5f 32 29 0a 7b 0a 72 65 (vec3._0,.vec3._1,.vec3._2).{.re
0460 74 75 72 6e 20 6d 61 74 33 28 5f 30 2c 20 5f 31 2c 20 5f 32 29 3b 0a 7d 0a 75 6e 69 66 6f 72 6d turn.mat3(_0,._1,._2);.}.uniform
0480 20 76 65 63 34 20 75 5f 76 69 65 77 52 65 63 74 3b 0a 75 6e 69 66 6f 72 6d 20 76 65 63 34 20 75 .vec4.u_viewRect;.uniform.vec4.u
04a0 5f 76 69 65 77 54 65 78 65 6c 3b 0a 75 6e 69 66 6f 72 6d 20 6d 61 74 34 20 75 5f 76 69 65 77 3b _viewTexel;.uniform.mat4.u_view;
04c0 0a 75 6e 69 66 6f 72 6d 20 6d 61 74 34 20 75 5f 69 6e 76 56 69 65 77 3b 0a 75 6e 69 66 6f 72 6d .uniform.mat4.u_invView;.uniform
04e0 20 6d 61 74 34 20 75 5f 70 72 6f 6a 3b 0a 75 6e 69 66 6f 72 6d 20 6d 61 74 34 20 75 5f 69 6e 76 .mat4.u_proj;.uniform.mat4.u_inv
0500 50 72 6f 6a 3b 0a 75 6e 69 66 6f 72 6d 20 6d 61 74 34 20 75 5f 76 69 65 77 50 72 6f 6a 3b 0a 75 Proj;.uniform.mat4.u_viewProj;.u
0520 6e 69 66 6f 72 6d 20 6d 61 74 34 20 75 5f 69 6e 76 56 69 65 77 50 72 6f 6a 3b 0a 75 6e 69 66 6f niform.mat4.u_invViewProj;.unifo
0540 72 6d 20 6d 61 74 34 20 75 5f 6d 6f 64 65 6c 5b 33 32 5d 3b 0a 75 6e 69 66 6f 72 6d 20 6d 61 74 rm.mat4.u_model[32];.uniform.mat
0560 34 20 75 5f 6d 6f 64 65 6c 56 69 65 77 3b 0a 75 6e 69 66 6f 72 6d 20 6d 61 74 34 20 75 5f 6d 6f 4.u_modelView;.uniform.mat4.u_mo
0580 64 65 6c 56 69 65 77 50 72 6f 6a 3b 0a 75 6e 69 66 6f 72 6d 20 76 65 63 34 20 75 5f 61 6c 70 68 delViewProj;.uniform.vec4.u_alph
05a0 61 52 65 66 34 3b 0a 75 6e 69 66 6f 72 6d 20 76 65 63 34 20 75 5f 70 61 72 61 6d 73 5b 32 5d 3b aRef4;.uniform.vec4.u_params[2];
05c0 0a 6c 61 79 6f 75 74 28 73 74 64 34 33 30 2c 20 62 69 6e 64 69 6e 67 3d 31 29 20 77 72 69 74 65 .layout(std430,.binding=1).write
05e0 6f 6e 6c 79 20 62 75 66 66 65 72 20 75 5f 53 75 62 64 42 75 66 66 65 72 4f 75 74 42 75 66 66 65 only.buffer.u_SubdBufferOutBuffe
0600 72 20 7b 20 75 69 6e 74 20 75 5f 53 75 62 64 42 75 66 66 65 72 4f 75 74 5b 5d 3b 20 7d 3b 0a 6c r.{.uint.u_SubdBufferOut[];.};.l
0620 61 79 6f 75 74 28 73 74 64 34 33 30 2c 20 62 69 6e 64 69 6e 67 3d 32 29 20 62 75 66 66 65 72 20 ayout(std430,.binding=2).buffer.
0640 75 5f 43 75 6c 6c 65 64 53 75 62 64 42 75 66 66 65 72 42 75 66 66 65 72 20 7b 20 75 69 6e 74 20 u_CulledSubdBufferBuffer.{.uint.
0660 75 5f 43 75 6c 6c 65 64 53 75 62 64 42 75 66 66 65 72 5b 5d 3b 20 7d 3b 0a 6c 61 79 6f 75 74 28 u_CulledSubdBuffer[];.};.layout(
0680 73 74 64 34 33 30 2c 20 62 69 6e 64 69 6e 67 3d 33 29 20 62 75 66 66 65 72 20 69 6e 64 69 72 65 std430,.binding=3).buffer.indire
06a0 63 74 42 75 66 66 65 72 42 75 66 66 65 72 20 7b 20 75 76 65 63 34 20 69 6e 64 69 72 65 63 74 42 ctBufferBuffer.{.uvec4.indirectB
06c0 75 66 66 65 72 5b 5d 3b 20 7d 3b 0a 6c 61 79 6f 75 74 28 73 74 64 34 33 30 2c 20 62 69 6e 64 69 uffer[];.};.layout(std430,.bindi
06e0 6e 67 3d 34 29 20 62 75 66 66 65 72 20 61 74 6f 6d 69 63 43 6f 75 6e 74 65 72 42 75 66 66 65 72 ng=4).buffer.atomicCounterBuffer
0700 42 75 66 66 65 72 20 7b 20 75 69 6e 74 20 61 74 6f 6d 69 63 43 6f 75 6e 74 65 72 42 75 66 66 65 Buffer.{.uint.atomicCounterBuffe
0720 72 5b 5d 3b 20 7d 3b 0a 6c 61 79 6f 75 74 28 73 74 64 34 33 30 2c 20 62 69 6e 64 69 6e 67 3d 38 r[];.};.layout(std430,.binding=8
0740 29 20 77 72 69 74 65 6f 6e 6c 79 20 62 75 66 66 65 72 20 75 5f 53 75 62 64 42 75 66 66 65 72 49 ).writeonly.buffer.u_SubdBufferI
0760 6e 42 75 66 66 65 72 20 7b 20 75 69 6e 74 20 75 5f 53 75 62 64 42 75 66 66 65 72 49 6e 5b 5d 3b nBuffer.{.uint.u_SubdBufferIn[];
0780 20 7d 3b 0a 6c 61 79 6f 75 74 20 28 6c 6f 63 61 6c 5f 73 69 7a 65 5f 78 20 3d 20 31 75 2c 20 6c .};.layout.(local_size_x.=.1u,.l
07a0 6f 63 61 6c 5f 73 69 7a 65 5f 79 20 3d 20 31 75 2c 20 6c 6f 63 61 6c 5f 73 69 7a 65 5f 7a 20 3d ocal_size_y.=.1u,.local_size_z.=
07c0 20 31 75 29 20 69 6e 3b 0a 76 6f 69 64 20 6d 61 69 6e 28 29 0a 7b 0a 75 69 6e 74 20 73 75 62 64 .1u).in;.void.main().{.uint.subd
07e0 20 3d 20 36 20 3c 3c 20 28 32 20 2a 20 69 6e 74 28 75 5f 70 61 72 61 6d 73 5b 31 5d 2e 78 29 20 .=.6.<<.(2.*.int(u_params[1].x).
0800 2d 20 31 29 3b 0a 69 66 28 28 32 20 2a 20 69 6e 74 28 75 5f 70 61 72 61 6d 73 5b 31 5d 2e 78 29 -.1);.if((2.*.int(u_params[1].x)
0820 20 2d 20 31 29 20 3c 3d 20 30 29 20 7b 0a 73 75 62 64 20 3d 20 33 75 3b 0a 7d 0a 69 6e 64 69 72 .-.1).<=.0).{.subd.=.3u;.}.indir
0840 65 63 74 42 75 66 66 65 72 5b 28 30 75 29 2a 32 2b 30 5d 20 3d 20 75 76 65 63 34 28 73 75 62 64 ectBuffer[(0u)*2+0].=.uvec4(subd
0860 2c 20 30 75 2c 20 30 75 2c 20 30 75 29 3b 20 69 6e 64 69 72 65 63 74 42 75 66 66 65 72 5b 28 30 ,.0u,.0u,.0u);.indirectBuffer[(0
0880 75 29 2a 32 2b 31 5d 20 3d 20 75 76 65 63 34 28 30 75 2c 20 30 75 2c 20 30 75 2c 20 30 75 29 3b u)*2+1].=.uvec4(0u,.0u,.0u,.0u);
08a0 0a 69 6e 64 69 72 65 63 74 42 75 66 66 65 72 5b 28 31 75 29 2a 32 2b 30 5d 20 3d 20 75 76 65 63 .indirectBuffer[(1u)*2+0].=.uvec
08c0 34 28 32 75 20 2f 20 33 32 75 20 2b 20 31 75 2c 20 31 75 2c 20 31 75 2c 20 30 75 29 3b 0a 75 5f 4(2u./.32u.+.1u,.1u,.1u,.0u);.u_
08e0 53 75 62 64 42 75 66 66 65 72 4f 75 74 5b 30 5d 20 3d 20 30 3b 0a 75 5f 53 75 62 64 42 75 66 66 SubdBufferOut[0].=.0;.u_SubdBuff
0900 65 72 4f 75 74 5b 31 5d 20 3d 20 31 3b 0a 75 5f 53 75 62 64 42 75 66 66 65 72 4f 75 74 5b 32 5d erOut[1].=.1;.u_SubdBufferOut[2]
0920 20 3d 20 31 3b 0a 75 5f 53 75 62 64 42 75 66 66 65 72 4f 75 74 5b 33 5d 20 3d 20 31 3b 0a 75 5f .=.1;.u_SubdBufferOut[3].=.1;.u_
0940 43 75 6c 6c 65 64 53 75 62 64 42 75 66 66 65 72 5b 30 5d 20 3d 20 30 3b 0a 75 5f 43 75 6c 6c 65 CulledSubdBuffer[0].=.0;.u_Culle
0960 64 53 75 62 64 42 75 66 66 65 72 5b 31 5d 20 3d 20 31 3b 0a 75 5f 43 75 6c 6c 65 64 53 75 62 64 dSubdBuffer[1].=.1;.u_CulledSubd
0980 42 75 66 66 65 72 5b 32 5d 20 3d 20 31 3b 0a 75 5f 43 75 6c 6c 65 64 53 75 62 64 42 75 66 66 65 Buffer[2].=.1;.u_CulledSubdBuffe
09a0 72 5b 33 5d 20 3d 20 31 3b 0a 75 5f 53 75 62 64 42 75 66 66 65 72 49 6e 5b 30 5d 20 3d 20 30 3b r[3].=.1;.u_SubdBufferIn[0].=.0;
09c0 0a 75 5f 53 75 62 64 42 75 66 66 65 72 49 6e 5b 31 5d 20 3d 20 31 3b 0a 75 5f 53 75 62 64 42 75 .u_SubdBufferIn[1].=.1;.u_SubdBu
09e0 66 66 65 72 49 6e 5b 32 5d 20 3d 20 31 3b 0a 75 5f 53 75 62 64 42 75 66 66 65 72 49 6e 5b 33 5d fferIn[2].=.1;.u_SubdBufferIn[3]
0a00 20 3d 20 31 3b 0a 75 69 6e 74 20 74 6d 70 3b 0a 74 6d 70 20 3d 20 61 74 6f 6d 69 63 45 78 63 68 .=.1;.uint.tmp;.tmp.=.atomicExch
0a20 61 6e 67 65 28 61 74 6f 6d 69 63 43 6f 75 6e 74 65 72 42 75 66 66 65 72 5b 30 5d 2c 20 30 29 3b ange(atomicCounterBuffer[0],.0);
0a40 0a 74 6d 70 20 3d 20 61 74 6f 6d 69 63 45 78 63 68 61 6e 67 65 28 61 74 6f 6d 69 63 43 6f 75 6e .tmp.=.atomicExchange(atomicCoun
0a60 74 65 72 42 75 66 66 65 72 5b 31 5d 2c 20 30 29 3b 0a 74 6d 70 20 3d 20 61 74 6f 6d 69 63 45 78 terBuffer[1],.0);.tmp.=.atomicEx
0a80 63 68 61 6e 67 65 28 61 74 6f 6d 69 63 43 6f 75 6e 74 65 72 42 75 66 66 65 72 5b 32 5d 2c 20 32 change(atomicCounterBuffer[2],.2
0aa0 29 3b 0a 7d 0a 00 );.}..