diff options
Diffstat (limited to 'servers/rendering/rasterizer_rd/shaders/ssao_downsample2.glsl')
-rw-r--r-- | servers/rendering/rasterizer_rd/shaders/ssao_downsample2.glsl | 49 |
1 files changed, 0 insertions, 49 deletions
diff --git a/servers/rendering/rasterizer_rd/shaders/ssao_downsample2.glsl b/servers/rendering/rasterizer_rd/shaders/ssao_downsample2.glsl deleted file mode 100644 index 9fec881057..0000000000 --- a/servers/rendering/rasterizer_rd/shaders/ssao_downsample2.glsl +++ /dev/null @@ -1,49 +0,0 @@ -// -// Copyright (c) Microsoft. All rights reserved. -// This code is licensed under the MIT License (MIT). -// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF -// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY -// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR -// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT. -// -// Developed by Minigraph -// -// Author: James Stanard -// - -#[compute] - -#version 450 - -VERSION_DEFINES - -layout(local_size_x = 8, local_size_y = 8, local_size_z = 1) in; - -layout(r32f, set = 0, binding = 0) uniform restrict readonly image2D downsampled4x; -layout(r32f, set = 1, binding = 0) uniform restrict writeonly image2D downsampled8x; -layout(r16f, set = 2, binding = 0) uniform restrict writeonly image2DArray downsampled8x_atlas; -layout(r32f, set = 3, binding = 0) uniform restrict writeonly image2D downsampled16x; -layout(r16f, set = 4, binding = 0) uniform restrict writeonly image2DArray downsampled16x_atlas; - -void main() { - vec4 w1 = imageLoad(downsampled4x, min(ivec2(gl_GlobalInvocationID.xy << 1), imageSize(downsampled4x) - ivec2(2))); - - uvec2 pos = gl_GlobalInvocationID.xy; - uvec2 pos_atlas = pos >> 2; - uint pos_slice = (pos.x & 3) | ((pos.y & 3) << 2); - ivec2 ds8s = imageSize(downsampled8x); - - if (pos.x < ds8s.x && pos.y < ds8s.y) { - imageStore(downsampled8x, ivec2(pos), w1); - } - - imageStore(downsampled8x_atlas, ivec3(pos_atlas, pos_slice), w1); - - if ((gl_LocalInvocationIndex & 011) == 0) { - uvec2 pos = gl_GlobalInvocationID.xy >> 1; - uvec2 pos_atlas = pos >> 2; - uint pos_slice = (pos.x & 3) | ((pos.y & 3) << 2); - imageStore(downsampled16x, ivec2(pos), w1); - imageStore(downsampled16x_atlas, ivec3(pos_atlas, pos_slice), w1); - } -} |