From d35b4d4bc62beebaa56b949a1ac59470192b5dfc Mon Sep 17 00:00:00 2001 From: Tim Foley Date: Fri, 7 Jul 2017 08:48:45 -0700 Subject: Fix support for `std430` layout Fixes #57 There were a bunch of issues in how `std430` was being implemented, largely due to just stubbing it in without any test cases. This commit adds a reasonably good test case to ensure that we've got things basically working. --- tests/reflection/std430-layout.glsl.expected | 107 +++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 tests/reflection/std430-layout.glsl.expected (limited to 'tests/reflection/std430-layout.glsl.expected') diff --git a/tests/reflection/std430-layout.glsl.expected b/tests/reflection/std430-layout.glsl.expected new file mode 100644 index 000000000..701a36909 --- /dev/null +++ b/tests/reflection/std430-layout.glsl.expected @@ -0,0 +1,107 @@ +result code = 0 +standard error = { +} +standard output = { +{ + "parameters": [ + { + "name": "SomeBuffer", + "binding": {"kind": "descriptorTableSlot", "index": 0}, + "type": { + "kind": "shaderStorageBuffer", + "elementType": { + "kind": "struct", + "fields": [ + { + "name": "a", + "type": { + "kind": "scalar", + "scalarType": "float32" + }, + "binding": {"kind": "uniform", "offset": 0, "size": 4} + }, + { + "name": "b", + "type": { + "kind": "vector", + "elementCount": 3, + "elementType": { + "kind": "scalar", + "scalarType": "float32" + } + }, + "binding": {"kind": "uniform", "offset": 16, "size": 12} + }, + { + "name": "c", + "type": { + "kind": "array", + "elementCount": 4, + "elementType": { + "kind": "scalar", + "scalarType": "float32" + }, + "uniformStride": 4 + }, + "binding": {"kind": "uniform", "offset": 28, "size": 16} + }, + { + "name": "d", + "type": { + "kind": "vector", + "elementCount": 2, + "elementType": { + "kind": "scalar", + "scalarType": "float32" + } + }, + "binding": {"kind": "uniform", "offset": 48, "size": 8} + }, + { + "name": "e", + "type": { + "kind": "struct", + "fields": [ + { + "name": "f", + "type": { + "kind": "vector", + "elementCount": 2, + "elementType": { + "kind": "scalar", + "scalarType": "float32" + } + }, + "binding": {"kind": "uniform", "offset": 0, "size": 8} + } + ] + }, + "binding": {"kind": "uniform", "offset": 56, "size": 8} + }, + { + "name": "g", + "type": { + "kind": "vector", + "elementCount": 3, + "elementType": { + "kind": "scalar", + "scalarType": "float32" + } + }, + "binding": {"kind": "uniform", "offset": 64, "size": 12} + }, + { + "name": "h", + "type": { + "kind": "scalar", + "scalarType": "float32" + }, + "binding": {"kind": "uniform", "offset": 76, "size": 4} + } + ] + } + } + } + ] +} +} -- cgit v1.2.3