#version 450 struct DirectionalLightStruct { vec3 direction; uint isActive; uint cullingMask; vec4 diffuseColor; }; layout(local_size_x = 16, local_size_y = 16) in; layout(set = 4, binding = 0, rgba8) uniform image2D inputImage; layout(set = 4, binding = 1, rgba8) uniform image2D targetImage; layout(set = 1, binding = 0) buffer DirectionalLightData { DirectionalLightStruct dLightData[]; } DirLightData; void main() { // convenient variables ivec2 globalThread = ivec2(gl_GlobalInvocationID); vec3 color = imageLoad (inputImage, globalThread).rgb; // store result into result image imageStore(targetImage, ivec2(gl_GlobalInvocationID.xy), vec4(color, 1.0f)); }