yum-mirror/glslang
git clone https://git.yummers.dev/yum-mirror/glslang
e61c8f2e
main
1#version 460 2 3#extension GL_EXT_buffer_reference2 : require 4#extension GL_EXT_nonuniform_qualifier : require 5#extension GL_EXT_samplerless_texture_functions : require 6#extension GL_EXT_scalar_block_layout : require 7#extension GL_EXT_shader_explicit_arithmetic_types_int64 : require 8 9struct Material 10{ 11uint textures [4 ]; 12}; 13 14layout (buffer_reference ,std430 ,buffer_reference_align = 16 ) 15buffer MaterialBuffer 16{ 17Material materials []; 18}; 19 20struct GlobalUniformBufferData 21{ 22uint64_t materials ; 23}; 24 25layout (std430 ,set = 1 ,binding = 0 )uniform GlobalUniformBufferDesc 26{ 27GlobalUniformBufferData global_uniform ; 28}; 29 30layout (set = 0 ,binding = 0 )uniform texture2D global_textures_2d []; 31layout (set = 0 ,binding = 2 )uniform sampler global_samplers []; 32 33layout (location = 0 )out vec4 out_color ; 34 35vec4 SampleMaterial (uint material_index ,uint texture_index ,vec2 uv ) 36{ 37return texture ( 38sampler2D ( 39global_textures_2d [MaterialBuffer (global_uniform .materials ).materials [material_index ].textures [texture_index ]], 40global_samplers [0 ] 41 ), 42uv 43 ); 44} 45 46void main () 47{ 48out_color = SampleMaterial (0 ,0 ,vec2 (0.5 )); 49}