// **************************************************************************** // **** STRUCTS MUST BE PACKED IN OPTIMAL PACKING ORDER TO MATCH D STRUCTS **** // **************************************************************************** layout (set = 0, binding = 0) uniform GlobalUniforms { vec2 res; } G; layout (set = 0, binding = 1) uniform ShaderUniforms { float placeholder; } S; layout (rgba16f, set = 0, binding = 2) uniform image2D DrawImage; layout (set = 0, binding = 3) uniform sampler SamplerNearest; layout (set = 1, binding = 0) uniform texture2D Textures[]; layout (set = 2, binding = 0) uniform Material { vec4 ambient; vec4 diffuse; vec4 specular; uint albedo_texture; uint ambient_texture; uint specular_texture; bool albedo_has_texture; bool ambient_has_texture; bool specular_has_texture; float shininess; } Materials[]; layout (push_constant) uniform Constants { uint mat_id; } PC;