yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
96caba75e
master
1// A compute shader to build a mip-map layer using box filtering. 2 3cbuffer Uniforms 4{ 5 uint dstWidth; 6 uint dstHeight; 7 RWTexture2D dstTexture; 8 RWTexture2D srcTexture; 9} 10 11[shader("compute")] 12[numthreads(16, 16, 1)] 13void computeMain(uint3 threadIdx : SV_DispatchThreadID) 14{ 15 uint x = threadIdx.x; 16 uint y = threadIdx.y; 17 if (x >= dstWidth) return; 18 if (y >= dstHeight) return; 19 var val0 = srcTexture[uint2(x * 2, y * 2)]; 20 var val1 = srcTexture[uint2(x * 2 + 1, y * 2)]; 21 var val2 = srcTexture[uint2(x * 2, y * 2 + 1)]; 22 var val3 = srcTexture[uint2(x * 2 + 1, y * 2 + 1)]; 23 24 dstTexture[uint2(x, y)] = (val0 + val1 + val2 + val3) / 4; 25}