From bb8ebb4e75db0a19ed7643876bf646bdacb2726e Mon Sep 17 00:00:00 2001 From: Tim Foley Date: Thu, 13 Jul 2017 09:50:27 -0700 Subject: An array of resources in Vulkan only consumes one binding Fixes #84 - When computing resource usage for an array type, don't multiply the resource usage of the element type by the element count foor descriptor-table-slot resources. - When reporting the "stride" of an array type through reflection, report the stride for descriptor table slots as zero, always. --- tests/bindings/gh-84.frag | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 tests/bindings/gh-84.frag (limited to 'tests/bindings') diff --git a/tests/bindings/gh-84.frag b/tests/bindings/gh-84.frag new file mode 100644 index 000000000..b5cc1875e --- /dev/null +++ b/tests/bindings/gh-84.frag @@ -0,0 +1,35 @@ +#version 450 +//TEST:COMPARE_GLSL: + +// Confirm implementation of GitHub issue #84 + +#if defined(__SLANG__) +#define LAYOUT(X) /* empty */ +#else +#define LAYOUT(X) layout(X) +#endif + +// Array of resources: should only use up one binding +LAYOUT(binding = 0) +uniform texture2D t[8]; + +// This should automatically get binding 1 +LAYOUT(binding = 1) +uniform sampler s; + +LAYOUT(binding = 2) +uniform U +{ + int i; +}; + +LAYOUT(location = 0) +in vec2 uv; + +LAYOUT(location = 0) +out vec4 color; + +void main() +{ + color = texture(sampler2D(t[i], s), uv); +} -- cgit v1.2.3