blob: fcb2d9e99cccc2d7ce4526666da0fc560289ac16 [file] [edit]
#version 460 core
#extension GL_EXT_descriptor_heap : enable
#extension GL_EXT_nonuniform_qualifier : enable
// Sampler array aliased to the sampler heap
uniform sampler heapSampler[];
// Different image arrays aliased to the image heap
layout(descriptor_heap) uniform texture2D heapTexture2D[];
uniform texture3D heapTexture3D[];
// Different buffer arrays aliased to the buffer heap
layout(descriptor_heap) buffer StorageBufferA {
vec4 a;
} heapStorageBufferA[];
layout(descriptor_heap) buffer StorageBufferB {
vec3 b;
} heapStorageBufferB[];
layout(descriptor_heap) uniform UniformBuffer {
vec4 colorOffset;
} heapUniformBuffer[];
layout (location = 0) in vec2 uvs;
layout (location = 1) flat in uint index;
layout (location = 0) out vec4 fragColor;
void main()
{
fragColor = texture(sampler2D(heapTexture2D[27], heapSampler[0]), uvs);
fragColor += heapUniformBuffer[nonuniformEXT(index)].colorOffset;
heapStorageBufferA[1].a = vec4(1, 2, 3, 4);
fragColor.x += heapStorageBufferB[nonuniformEXT(index)].b.x;
}