Rework API graphique Vulkan - EnTT pour ECS + Chargement modèle 3D assimp + SDL3 pour events input et fenetre + mesh texture camera transform ok + attention tous les assets nouveaus ne sont pas commités et il y a du code test en dur dans scene addentity + restructuration globale
This commit is contained in:
Binary file not shown.
@@ -0,0 +1,350 @@
|
||||
%YAML 1.1
|
||||
---
|
||||
all_type_descriptions:
|
||||
- &td0
|
||||
id: 16
|
||||
op: 23
|
||||
type_name:
|
||||
struct_member_name: "a"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000108 # VECTOR FLOAT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 2 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td1
|
||||
id: 6
|
||||
op: 22
|
||||
type_name:
|
||||
struct_member_name: "b"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000008 # FLOAT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td2
|
||||
id: 6
|
||||
op: 22
|
||||
type_name:
|
||||
struct_member_name: "c"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000008 # FLOAT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td3
|
||||
id: 17
|
||||
op: 30
|
||||
type_name: "uPushConstant"
|
||||
struct_member_name:
|
||||
storage_class: -1 # NOT APPLICABLE
|
||||
type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK
|
||||
decoration_flags: 0x00000001 # BLOCK
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 3
|
||||
members:
|
||||
- *td0
|
||||
- *td1
|
||||
- *td2
|
||||
- &td4
|
||||
id: 7
|
||||
op: 23
|
||||
type_name:
|
||||
struct_member_name: "gl_Position"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000108 # VECTOR FLOAT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 4 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td5
|
||||
id: 6
|
||||
op: 22
|
||||
type_name:
|
||||
struct_member_name: "gl_PointSize"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000008 # FLOAT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td6
|
||||
id: 10
|
||||
op: 28
|
||||
type_name:
|
||||
struct_member_name: "gl_ClipDistance"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x20000008 # ARRAY FLOAT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 1, dims: [1,], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td7
|
||||
id: 10
|
||||
op: 28
|
||||
type_name:
|
||||
struct_member_name: "gl_CullDistance"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x20000008 # ARRAY FLOAT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 1, dims: [1,], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td8
|
||||
id: 11
|
||||
op: 30
|
||||
type_name: "gl_PerVertex"
|
||||
struct_member_name:
|
||||
storage_class: -1 # NOT APPLICABLE
|
||||
type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK
|
||||
decoration_flags: 0x00000001 # BLOCK
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 4
|
||||
members:
|
||||
- *td4
|
||||
- *td5
|
||||
- *td6
|
||||
- *td7
|
||||
all_block_variables:
|
||||
- &bv0
|
||||
name: "a"
|
||||
offset: 8
|
||||
absolute_offset: 8
|
||||
size: 8
|
||||
padded_size: 8
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 2 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000000 # NONE
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td0
|
||||
- &bv1
|
||||
name: "b"
|
||||
offset: 16
|
||||
absolute_offset: 16
|
||||
size: 4
|
||||
padded_size: 4
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000001 # UNUSED
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td1
|
||||
- &bv2
|
||||
name: "c"
|
||||
offset: 4
|
||||
absolute_offset: 4
|
||||
size: 4
|
||||
padded_size: 4
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000001 # UNUSED
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td2
|
||||
- &bv3
|
||||
name: "pc"
|
||||
offset: 4
|
||||
absolute_offset: 0
|
||||
size: 20
|
||||
padded_size: 20
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000000 # NONE
|
||||
member_count: 3
|
||||
members:
|
||||
- *bv0
|
||||
- *bv1
|
||||
- *bv2
|
||||
type_description: *td3
|
||||
all_descriptor_bindings:
|
||||
all_interface_variables:
|
||||
- &iv0
|
||||
spirv_id: 0
|
||||
name:
|
||||
location: 0
|
||||
storage_class: 3 # Output
|
||||
semantic:
|
||||
decoration_flags: 0x00000010 # BUILT_IN
|
||||
built_in: 0 # Position
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 4 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
format: 109 # VK_FORMAT_R32G32B32A32_SFLOAT
|
||||
type_description: *td4
|
||||
word_offset: { location: 0 }
|
||||
- &iv1
|
||||
spirv_id: 0
|
||||
name:
|
||||
location: 0
|
||||
storage_class: 3 # Output
|
||||
semantic:
|
||||
decoration_flags: 0x00000010 # BUILT_IN
|
||||
built_in: 1 # PointSize
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
format: 100 # VK_FORMAT_R32_SFLOAT
|
||||
type_description: *td5
|
||||
word_offset: { location: 0 }
|
||||
- &iv2
|
||||
spirv_id: 0
|
||||
name:
|
||||
location: 0
|
||||
storage_class: 3 # Output
|
||||
semantic:
|
||||
decoration_flags: 0x00000010 # BUILT_IN
|
||||
built_in: 3 # ClipDistance
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 1, dims: [1,], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
format: 100 # VK_FORMAT_R32_SFLOAT
|
||||
type_description: *td6
|
||||
word_offset: { location: 0 }
|
||||
- &iv3
|
||||
spirv_id: 0
|
||||
name:
|
||||
location: 0
|
||||
storage_class: 3 # Output
|
||||
semantic:
|
||||
decoration_flags: 0x00000010 # BUILT_IN
|
||||
built_in: 4 # CullDistance
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 1, dims: [1,], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
format: 100 # VK_FORMAT_R32_SFLOAT
|
||||
type_description: *td7
|
||||
word_offset: { location: 0 }
|
||||
- &iv4
|
||||
spirv_id: 13
|
||||
name: ""
|
||||
location: 4294967295
|
||||
storage_class: 3 # Output
|
||||
semantic:
|
||||
decoration_flags: 0x00000011 # BUILT_IN BLOCK
|
||||
built_in: 0, 1, 3, 4 # [Position, PointSize, ClipDistance, CullDistance]
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 4
|
||||
members:
|
||||
- *iv0 #
|
||||
- *iv1 #
|
||||
- *iv2 #
|
||||
- *iv3 #
|
||||
format: 0 # VK_FORMAT_UNDEFINED
|
||||
type_description: *td8
|
||||
word_offset: { location: 0 }
|
||||
module:
|
||||
generator: 8 # Khronos Glslang Reference Front End
|
||||
entry_point_name: "main"
|
||||
entry_point_id: 4
|
||||
source_language: 2 # GLSL
|
||||
source_language_version: 450
|
||||
spirv_execution_model: 0 # Vertex
|
||||
shader_stage: 0x00000001 # VS
|
||||
descriptor_binding_count: 0
|
||||
descriptor_bindings:
|
||||
descriptor_set_count: 0
|
||||
descriptor_sets:
|
||||
input_variable_count: 0,
|
||||
input_variables:
|
||||
output_variable_count: 1,
|
||||
output_variables:
|
||||
- *iv4 # ""
|
||||
push_constant_count: 1,
|
||||
push_constants:
|
||||
- *bv3 # "pc"
|
||||
specialization_constant_count: 0,
|
||||
specialization_constants:
|
||||
...
|
||||
@@ -0,0 +1,15 @@
|
||||
RWStructuredBuffer<int> result;
|
||||
|
||||
struct Data{
|
||||
int a;
|
||||
int* b;
|
||||
int c;
|
||||
};
|
||||
[[vk::push_constant]] Data pc;
|
||||
|
||||
[shader("compute")]
|
||||
[numthreads(1,1,1)]
|
||||
void computeMain(uint3 threadId : SV_DispatchThreadID)
|
||||
{
|
||||
result[0] = pc.b[2] + pc.c;
|
||||
}
|
||||
BIN
lib/All/SPIRV-Reflect/tests/push_constants/pointer_in_struct.spv
Executable file
BIN
lib/All/SPIRV-Reflect/tests/push_constants/pointer_in_struct.spv
Executable file
Binary file not shown.
@@ -0,0 +1,256 @@
|
||||
%YAML 1.1
|
||||
---
|
||||
all_type_descriptions:
|
||||
- &td0
|
||||
id: 10
|
||||
op: 29
|
||||
type_name:
|
||||
struct_member_name:
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x20000004 # ARRAY INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 1 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 1, dims: [0,], stride: 4 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td1
|
||||
id: 9
|
||||
op: 30
|
||||
type_name: "RWStructuredBuffer"
|
||||
struct_member_name:
|
||||
storage_class: -1 # NOT APPLICABLE
|
||||
type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK
|
||||
decoration_flags: 0x00000001 # BLOCK
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 1
|
||||
members:
|
||||
- *td0
|
||||
- &td2
|
||||
id: 5
|
||||
op: 21
|
||||
type_name:
|
||||
struct_member_name: "a"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000004 # INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 1 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td3
|
||||
id: 14
|
||||
op: 32
|
||||
type_name:
|
||||
struct_member_name: "b"
|
||||
storage_class: 5349 # PhysicalStorageBuffer
|
||||
type_flags: 0x40000004 # REF INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 1 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td4
|
||||
id: 5
|
||||
op: 21
|
||||
type_name:
|
||||
struct_member_name: "c"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000004 # INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 1 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td5
|
||||
id: 13
|
||||
op: 30
|
||||
type_name: "Data_std430"
|
||||
struct_member_name:
|
||||
storage_class: -1 # NOT APPLICABLE
|
||||
type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK
|
||||
decoration_flags: 0x00000001 # BLOCK
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 3
|
||||
members:
|
||||
- *td2
|
||||
- *td3
|
||||
- *td4
|
||||
all_block_variables:
|
||||
- &bv0
|
||||
name:
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 0
|
||||
padded_size: 0
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 1 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000000 # NONE
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td0
|
||||
- &bv1
|
||||
name: "result"
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 0
|
||||
padded_size: 0
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000000 # NONE
|
||||
member_count: 1
|
||||
members:
|
||||
- *bv0
|
||||
type_description: *td1
|
||||
- &bv2
|
||||
name: "a"
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 4
|
||||
padded_size: 4
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 1 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000001 # UNUSED
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td2
|
||||
- &bv3
|
||||
name: "b"
|
||||
offset: 8
|
||||
absolute_offset: 8
|
||||
size: 8
|
||||
padded_size: 8
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 1 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000000 # NONE
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td3
|
||||
- &bv4
|
||||
name: "c"
|
||||
offset: 16
|
||||
absolute_offset: 16
|
||||
size: 4
|
||||
padded_size: 4
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 1 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000000 # NONE
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td4
|
||||
- &bv5
|
||||
name: "pc"
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 20
|
||||
padded_size: 20
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000000 # NONE
|
||||
member_count: 3
|
||||
members:
|
||||
- *bv2
|
||||
- *bv3
|
||||
- *bv4
|
||||
type_description: *td5
|
||||
all_descriptor_bindings:
|
||||
- &db0
|
||||
spirv_id: 12
|
||||
name: "result"
|
||||
binding: 0
|
||||
input_attachment_index: 0
|
||||
set: 0
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER
|
||||
resource_type: 8 # UAV
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
block: *bv1 # "result"
|
||||
array: { dims_count: 0, dims: [] }
|
||||
accessed: 1
|
||||
uav_counter_id: 4294967295
|
||||
uav_counter_binding:
|
||||
type_description: *td1
|
||||
word_offset: { binding: 103, set: 107 }
|
||||
all_interface_variables:
|
||||
module:
|
||||
generator: 40 # Slang Shader Compiler
|
||||
entry_point_name: "main"
|
||||
entry_point_id: 2
|
||||
source_language: 11 # Slang
|
||||
source_language_version: 1
|
||||
spirv_execution_model: 5 # GLCompute
|
||||
shader_stage: 0x00000020 # CS
|
||||
descriptor_binding_count: 1
|
||||
descriptor_bindings:
|
||||
- *db0 # "result"
|
||||
descriptor_set_count: 1
|
||||
descriptor_sets:
|
||||
- set: 0
|
||||
binding_count: 1
|
||||
bindings:
|
||||
- *db0 # "result"
|
||||
input_variable_count: 0,
|
||||
input_variables:
|
||||
output_variable_count: 0,
|
||||
output_variables:
|
||||
push_constant_count: 1,
|
||||
push_constants:
|
||||
- *bv5 # "pc"
|
||||
specialization_constant_count: 0,
|
||||
specialization_constants:
|
||||
...
|
||||
@@ -0,0 +1,20 @@
|
||||
RWStructuredBuffer<int> result;
|
||||
|
||||
struct Data2{
|
||||
int x;
|
||||
int* y;
|
||||
};
|
||||
|
||||
struct Data{
|
||||
int a;
|
||||
Data2* b;
|
||||
int c;
|
||||
};
|
||||
[[vk::push_constant]] Data pc;
|
||||
|
||||
[shader("compute")]
|
||||
[numthreads(1,1,1)]
|
||||
void computeMain(uint3 threadId : SV_DispatchThreadID)
|
||||
{
|
||||
result[0] = pc.b[2].y[2] + pc.c;
|
||||
}
|
||||
BIN
lib/All/SPIRV-Reflect/tests/push_constants/pointer_in_struct_2.spv
Executable file
BIN
lib/All/SPIRV-Reflect/tests/push_constants/pointer_in_struct_2.spv
Executable file
Binary file not shown.
@@ -0,0 +1,360 @@
|
||||
%YAML 1.1
|
||||
---
|
||||
all_type_descriptions:
|
||||
- &td0
|
||||
id: 10
|
||||
op: 29
|
||||
type_name:
|
||||
struct_member_name:
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x20000004 # ARRAY INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 1 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 1, dims: [0,], stride: 4 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td1
|
||||
id: 9
|
||||
op: 30
|
||||
type_name: "RWStructuredBuffer"
|
||||
struct_member_name:
|
||||
storage_class: -1 # NOT APPLICABLE
|
||||
type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK
|
||||
decoration_flags: 0x00000001 # BLOCK
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 1
|
||||
members:
|
||||
- *td0
|
||||
- &td2
|
||||
id: 5
|
||||
op: 21
|
||||
type_name:
|
||||
struct_member_name: "a"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000004 # INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 1 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td3
|
||||
id: 5
|
||||
op: 21
|
||||
type_name:
|
||||
struct_member_name: "x"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000004 # INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 1 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td4
|
||||
id: 24
|
||||
op: 32
|
||||
type_name:
|
||||
struct_member_name: "y"
|
||||
storage_class: 5349 # PhysicalStorageBuffer
|
||||
type_flags: 0x40000004 # REF INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 1 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td5
|
||||
id: 15
|
||||
op: 32
|
||||
type_name: "Data2_natural"
|
||||
struct_member_name: "b"
|
||||
storage_class: 5349 # PhysicalStorageBuffer
|
||||
type_flags: 0x50080000 # STRUCT REF EXTERNAL_BLOCK
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 2
|
||||
members:
|
||||
- *td3
|
||||
- *td4
|
||||
- &td6
|
||||
id: 5
|
||||
op: 21
|
||||
type_name:
|
||||
struct_member_name: "c"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000004 # INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 1 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td7
|
||||
id: 13
|
||||
op: 30
|
||||
type_name: "Data_std430"
|
||||
struct_member_name:
|
||||
storage_class: -1 # NOT APPLICABLE
|
||||
type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK
|
||||
decoration_flags: 0x00000001 # BLOCK
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 3
|
||||
members:
|
||||
- *td2
|
||||
- *td5
|
||||
- *td6
|
||||
- &td8
|
||||
id: 5
|
||||
op: 21
|
||||
type_name:
|
||||
struct_member_name: "x"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000004 # INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 1 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td9
|
||||
id: 24
|
||||
op: 32
|
||||
type_name:
|
||||
struct_member_name: "y"
|
||||
storage_class: 5349 # PhysicalStorageBuffer
|
||||
type_flags: 0x40000004 # REF INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 1 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
all_block_variables:
|
||||
- &bv0
|
||||
name:
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 0
|
||||
padded_size: 0
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 1 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000000 # NONE
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td0
|
||||
- &bv1
|
||||
name: "result"
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 0
|
||||
padded_size: 0
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000000 # NONE
|
||||
member_count: 1
|
||||
members:
|
||||
- *bv0
|
||||
type_description: *td1
|
||||
- &bv2
|
||||
name: "a"
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 4
|
||||
padded_size: 4
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 1 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000001 # UNUSED
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td2
|
||||
- &bv3
|
||||
name: "x"
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 4
|
||||
padded_size: 4
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 1 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000001 # UNUSED
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td8
|
||||
- &bv4
|
||||
name: "y"
|
||||
offset: 8
|
||||
absolute_offset: 8
|
||||
size: 8
|
||||
padded_size: 8
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 1 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000001 # UNUSED
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td9
|
||||
- &bv5
|
||||
name: "b"
|
||||
offset: 8
|
||||
absolute_offset: 8
|
||||
size: 8
|
||||
padded_size: 8
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000000 # NONE
|
||||
member_count: 2
|
||||
members:
|
||||
- *bv3
|
||||
- *bv4
|
||||
type_description: *td5
|
||||
- &bv6
|
||||
name: "c"
|
||||
offset: 16
|
||||
absolute_offset: 16
|
||||
size: 4
|
||||
padded_size: 4
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 1 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000000 # NONE
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td6
|
||||
- &bv7
|
||||
name: "pc"
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 20
|
||||
padded_size: 20
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000000 # NONE
|
||||
member_count: 3
|
||||
members:
|
||||
- *bv2
|
||||
- *bv5
|
||||
- *bv6
|
||||
type_description: *td7
|
||||
all_descriptor_bindings:
|
||||
- &db0
|
||||
spirv_id: 12
|
||||
name: "result"
|
||||
binding: 0
|
||||
input_attachment_index: 0
|
||||
set: 0
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER
|
||||
resource_type: 8 # UAV
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
block: *bv1 # "result"
|
||||
array: { dims_count: 0, dims: [] }
|
||||
accessed: 1
|
||||
uav_counter_id: 4294967295
|
||||
uav_counter_binding:
|
||||
type_description: *td1
|
||||
word_offset: { binding: 117, set: 121 }
|
||||
all_interface_variables:
|
||||
module:
|
||||
generator: 40 # Slang Shader Compiler
|
||||
entry_point_name: "main"
|
||||
entry_point_id: 2
|
||||
source_language: 11 # Slang
|
||||
source_language_version: 1
|
||||
spirv_execution_model: 5 # GLCompute
|
||||
shader_stage: 0x00000020 # CS
|
||||
descriptor_binding_count: 1
|
||||
descriptor_bindings:
|
||||
- *db0 # "result"
|
||||
descriptor_set_count: 1
|
||||
descriptor_sets:
|
||||
- set: 0
|
||||
binding_count: 1
|
||||
bindings:
|
||||
- *db0 # "result"
|
||||
input_variable_count: 0,
|
||||
input_variables:
|
||||
output_variable_count: 0,
|
||||
output_variables:
|
||||
push_constant_count: 1,
|
||||
push_constants:
|
||||
- *bv7 # "pc"
|
||||
specialization_constant_count: 0,
|
||||
specialization_constants:
|
||||
...
|
||||
@@ -0,0 +1,23 @@
|
||||
#version 460
|
||||
#extension GL_EXT_buffer_reference : enable
|
||||
|
||||
layout(buffer_reference) buffer Node { uint x; };
|
||||
|
||||
struct Bar {
|
||||
uint t;
|
||||
uint s;
|
||||
};
|
||||
|
||||
layout(push_constant, std430) uniform foo {
|
||||
uint a;
|
||||
uint b[4];
|
||||
Bar bar;
|
||||
Node node;
|
||||
};
|
||||
|
||||
layout(set=0, binding=0) buffer SSBO {
|
||||
uint out_value;
|
||||
};
|
||||
|
||||
// Everything should be marked as UNUSED
|
||||
void main() {}
|
||||
Binary file not shown.
@@ -0,0 +1,413 @@
|
||||
%YAML 1.1
|
||||
---
|
||||
all_type_descriptions:
|
||||
- &td0
|
||||
id: 6
|
||||
op: 21
|
||||
type_name:
|
||||
struct_member_name: "out_value"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000004 # INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td1
|
||||
id: 15
|
||||
op: 30
|
||||
type_name: "SSBO"
|
||||
struct_member_name:
|
||||
storage_class: -1 # NOT APPLICABLE
|
||||
type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK
|
||||
decoration_flags: 0x00000001 # BLOCK
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 1
|
||||
members:
|
||||
- *td0
|
||||
- &td2
|
||||
id: 6
|
||||
op: 21
|
||||
type_name:
|
||||
struct_member_name: "a"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000004 # INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td3
|
||||
id: 8
|
||||
op: 28
|
||||
type_name:
|
||||
struct_member_name: "b"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x20000004 # ARRAY INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 1, dims: [4,], stride: 4 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td4
|
||||
id: 6
|
||||
op: 21
|
||||
type_name:
|
||||
struct_member_name: "t"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000004 # INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td5
|
||||
id: 6
|
||||
op: 21
|
||||
type_name:
|
||||
struct_member_name: "s"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000004 # INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td6
|
||||
id: 9
|
||||
op: 30
|
||||
type_name: "Bar"
|
||||
struct_member_name: "bar"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 2
|
||||
members:
|
||||
- *td4
|
||||
- *td5
|
||||
- &td7
|
||||
id: 6
|
||||
op: 21
|
||||
type_name:
|
||||
struct_member_name: "x"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000004 # INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td8
|
||||
id: 10
|
||||
op: 32
|
||||
type_name: "Node"
|
||||
struct_member_name: "node"
|
||||
storage_class: 5349 # PhysicalStorageBuffer
|
||||
type_flags: 0x50080000 # STRUCT REF EXTERNAL_BLOCK
|
||||
decoration_flags: 0x00000001 # BLOCK
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 1
|
||||
members:
|
||||
- *td7
|
||||
- &td9
|
||||
id: 11
|
||||
op: 30
|
||||
type_name: "foo"
|
||||
struct_member_name:
|
||||
storage_class: -1 # NOT APPLICABLE
|
||||
type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK
|
||||
decoration_flags: 0x00000001 # BLOCK
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 4
|
||||
members:
|
||||
- *td2
|
||||
- *td3
|
||||
- *td6
|
||||
- *td8
|
||||
- &td10
|
||||
id: 6
|
||||
op: 21
|
||||
type_name:
|
||||
struct_member_name: "x"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000004 # INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
all_block_variables:
|
||||
- &bv0
|
||||
name: "out_value"
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 4
|
||||
padded_size: 4
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000001 # UNUSED
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td0
|
||||
- &bv1
|
||||
name: ""
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 0
|
||||
padded_size: 0
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000001 # UNUSED
|
||||
member_count: 1
|
||||
members:
|
||||
- *bv0
|
||||
type_description: *td1
|
||||
- &bv2
|
||||
name: "a"
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 4
|
||||
padded_size: 4
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000001 # UNUSED
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td2
|
||||
- &bv3
|
||||
name: "b"
|
||||
offset: 4
|
||||
absolute_offset: 4
|
||||
size: 16
|
||||
padded_size: 16
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 1, dims: [4,], stride: 4 }
|
||||
flags: 0x00000001 # UNUSED
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td3
|
||||
- &bv4
|
||||
name: "t"
|
||||
offset: 0
|
||||
absolute_offset: 20
|
||||
size: 4
|
||||
padded_size: 4
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000001 # UNUSED
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td4
|
||||
- &bv5
|
||||
name: "s"
|
||||
offset: 4
|
||||
absolute_offset: 24
|
||||
size: 4
|
||||
padded_size: 4
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000001 # UNUSED
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td5
|
||||
- &bv6
|
||||
name: "bar"
|
||||
offset: 20
|
||||
absolute_offset: 20
|
||||
size: 8
|
||||
padded_size: 8
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000001 # UNUSED
|
||||
member_count: 2
|
||||
members:
|
||||
- *bv4
|
||||
- *bv5
|
||||
type_description: *td6
|
||||
- &bv7
|
||||
name: "x"
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 4
|
||||
padded_size: 4
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000001 # UNUSED
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td10
|
||||
- &bv8
|
||||
name: "node"
|
||||
offset: 32
|
||||
absolute_offset: 32
|
||||
size: 8
|
||||
padded_size: 8
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000001 # UNUSED
|
||||
member_count: 1
|
||||
members:
|
||||
- *bv7
|
||||
type_description: *td8
|
||||
- &bv9
|
||||
name: ""
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 40
|
||||
padded_size: 40
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000000 # NONE
|
||||
member_count: 4
|
||||
members:
|
||||
- *bv2
|
||||
- *bv3
|
||||
- *bv6
|
||||
- *bv8
|
||||
type_description: *td9
|
||||
all_descriptor_bindings:
|
||||
- &db0
|
||||
spirv_id: 17
|
||||
name: ""
|
||||
binding: 0
|
||||
input_attachment_index: 0
|
||||
set: 0
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER
|
||||
resource_type: 8 # UAV
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
block: *bv1 # ""
|
||||
array: { dims_count: 0, dims: [] }
|
||||
accessed: 0
|
||||
uav_counter_id: 4294967295
|
||||
uav_counter_binding:
|
||||
type_description: *td1
|
||||
word_offset: { binding: 174, set: 178 }
|
||||
all_interface_variables:
|
||||
module:
|
||||
generator: 8 # Khronos Glslang Reference Front End
|
||||
entry_point_name: "main"
|
||||
entry_point_id: 4
|
||||
source_language: 2 # GLSL
|
||||
source_language_version: 460
|
||||
spirv_execution_model: 5 # GLCompute
|
||||
shader_stage: 0x00000020 # CS
|
||||
descriptor_binding_count: 1
|
||||
descriptor_bindings:
|
||||
- *db0 # ""
|
||||
descriptor_set_count: 1
|
||||
descriptor_sets:
|
||||
- set: 0
|
||||
binding_count: 1
|
||||
bindings:
|
||||
- *db0 # ""
|
||||
input_variable_count: 0,
|
||||
input_variables:
|
||||
output_variable_count: 0,
|
||||
output_variables:
|
||||
push_constant_count: 1,
|
||||
push_constants:
|
||||
- *bv9 # ""
|
||||
specialization_constant_count: 0,
|
||||
specialization_constants:
|
||||
...
|
||||
@@ -0,0 +1,27 @@
|
||||
#version 460
|
||||
#extension GL_EXT_buffer_reference : enable
|
||||
|
||||
layout(buffer_reference) buffer Node { uint x; };
|
||||
|
||||
struct Bar {
|
||||
uint t;
|
||||
uint s;
|
||||
};
|
||||
|
||||
layout(push_constant, std430) uniform foo {
|
||||
uint a;
|
||||
uint b[4];
|
||||
Bar bar;
|
||||
Node node;
|
||||
};
|
||||
|
||||
layout(set=0, binding=0) buffer SSBO {
|
||||
uint out_value;
|
||||
};
|
||||
|
||||
void main() {
|
||||
out_value = a;
|
||||
out_value = b[1];
|
||||
out_value = bar.s;
|
||||
out_value = node.x;
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,413 @@
|
||||
%YAML 1.1
|
||||
---
|
||||
all_type_descriptions:
|
||||
- &td0
|
||||
id: 6
|
||||
op: 21
|
||||
type_name:
|
||||
struct_member_name: "out_value"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000004 # INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td1
|
||||
id: 7
|
||||
op: 30
|
||||
type_name: "SSBO"
|
||||
struct_member_name:
|
||||
storage_class: -1 # NOT APPLICABLE
|
||||
type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK
|
||||
decoration_flags: 0x00000001 # BLOCK
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 1
|
||||
members:
|
||||
- *td0
|
||||
- &td2
|
||||
id: 6
|
||||
op: 21
|
||||
type_name:
|
||||
struct_member_name: "a"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000004 # INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td3
|
||||
id: 13
|
||||
op: 28
|
||||
type_name:
|
||||
struct_member_name: "b"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x20000004 # ARRAY INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 1, dims: [4,], stride: 4 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td4
|
||||
id: 6
|
||||
op: 21
|
||||
type_name:
|
||||
struct_member_name: "t"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000004 # INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td5
|
||||
id: 6
|
||||
op: 21
|
||||
type_name:
|
||||
struct_member_name: "s"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000004 # INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td6
|
||||
id: 14
|
||||
op: 30
|
||||
type_name: "Bar"
|
||||
struct_member_name: "bar"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 2
|
||||
members:
|
||||
- *td4
|
||||
- *td5
|
||||
- &td7
|
||||
id: 6
|
||||
op: 21
|
||||
type_name:
|
||||
struct_member_name: "x"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000004 # INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td8
|
||||
id: 15
|
||||
op: 32
|
||||
type_name: "Node"
|
||||
struct_member_name: "node"
|
||||
storage_class: 5349 # PhysicalStorageBuffer
|
||||
type_flags: 0x50080000 # STRUCT REF EXTERNAL_BLOCK
|
||||
decoration_flags: 0x00000001 # BLOCK
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 1
|
||||
members:
|
||||
- *td7
|
||||
- &td9
|
||||
id: 16
|
||||
op: 30
|
||||
type_name: "foo"
|
||||
struct_member_name:
|
||||
storage_class: -1 # NOT APPLICABLE
|
||||
type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK
|
||||
decoration_flags: 0x00000001 # BLOCK
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 4
|
||||
members:
|
||||
- *td2
|
||||
- *td3
|
||||
- *td6
|
||||
- *td8
|
||||
- &td10
|
||||
id: 6
|
||||
op: 21
|
||||
type_name:
|
||||
struct_member_name: "x"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000004 # INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
all_block_variables:
|
||||
- &bv0
|
||||
name: "out_value"
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 4
|
||||
padded_size: 4
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000000 # NONE
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td0
|
||||
- &bv1
|
||||
name: ""
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 0
|
||||
padded_size: 0
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000000 # NONE
|
||||
member_count: 1
|
||||
members:
|
||||
- *bv0
|
||||
type_description: *td1
|
||||
- &bv2
|
||||
name: "a"
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 4
|
||||
padded_size: 4
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000000 # NONE
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td2
|
||||
- &bv3
|
||||
name: "b"
|
||||
offset: 4
|
||||
absolute_offset: 4
|
||||
size: 16
|
||||
padded_size: 16
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 1, dims: [4,], stride: 4 }
|
||||
flags: 0x00000000 # NONE
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td3
|
||||
- &bv4
|
||||
name: "t"
|
||||
offset: 0
|
||||
absolute_offset: 20
|
||||
size: 4
|
||||
padded_size: 4
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000001 # UNUSED
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td4
|
||||
- &bv5
|
||||
name: "s"
|
||||
offset: 4
|
||||
absolute_offset: 24
|
||||
size: 4
|
||||
padded_size: 4
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000000 # NONE
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td5
|
||||
- &bv6
|
||||
name: "bar"
|
||||
offset: 20
|
||||
absolute_offset: 20
|
||||
size: 8
|
||||
padded_size: 8
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000000 # NONE
|
||||
member_count: 2
|
||||
members:
|
||||
- *bv4
|
||||
- *bv5
|
||||
type_description: *td6
|
||||
- &bv7
|
||||
name: "x"
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 4
|
||||
padded_size: 4
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000000 # NONE
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td10
|
||||
- &bv8
|
||||
name: "node"
|
||||
offset: 32
|
||||
absolute_offset: 32
|
||||
size: 8
|
||||
padded_size: 8
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000000 # NONE
|
||||
member_count: 1
|
||||
members:
|
||||
- *bv7
|
||||
type_description: *td8
|
||||
- &bv9
|
||||
name: ""
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 40
|
||||
padded_size: 40
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000000 # NONE
|
||||
member_count: 4
|
||||
members:
|
||||
- *bv2
|
||||
- *bv3
|
||||
- *bv6
|
||||
- *bv8
|
||||
type_description: *td9
|
||||
all_descriptor_bindings:
|
||||
- &db0
|
||||
spirv_id: 9
|
||||
name: ""
|
||||
binding: 0
|
||||
input_attachment_index: 0
|
||||
set: 0
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER
|
||||
resource_type: 8 # UAV
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
block: *bv1 # ""
|
||||
array: { dims_count: 0, dims: [] }
|
||||
accessed: 1
|
||||
uav_counter_id: 4294967295
|
||||
uav_counter_binding:
|
||||
type_description: *td1
|
||||
word_offset: { binding: 129, set: 133 }
|
||||
all_interface_variables:
|
||||
module:
|
||||
generator: 8 # Khronos Glslang Reference Front End
|
||||
entry_point_name: "main"
|
||||
entry_point_id: 4
|
||||
source_language: 2 # GLSL
|
||||
source_language_version: 460
|
||||
spirv_execution_model: 5 # GLCompute
|
||||
shader_stage: 0x00000020 # CS
|
||||
descriptor_binding_count: 1
|
||||
descriptor_bindings:
|
||||
- *db0 # ""
|
||||
descriptor_set_count: 1
|
||||
descriptor_sets:
|
||||
- set: 0
|
||||
binding_count: 1
|
||||
bindings:
|
||||
- *db0 # ""
|
||||
input_variable_count: 0,
|
||||
input_variables:
|
||||
output_variable_count: 0,
|
||||
output_variables:
|
||||
push_constant_count: 1,
|
||||
push_constants:
|
||||
- *bv9 # ""
|
||||
specialization_constant_count: 0,
|
||||
specialization_constants:
|
||||
...
|
||||
@@ -0,0 +1,24 @@
|
||||
RWStructuredBuffer<uint> result;
|
||||
|
||||
struct Bar{
|
||||
uint t;
|
||||
uint s;
|
||||
};
|
||||
|
||||
struct Data{
|
||||
uint a;
|
||||
uint b[4];
|
||||
Bar bar;
|
||||
uint* node;
|
||||
};
|
||||
[[vk::push_constant]] Data pc;
|
||||
|
||||
[shader("compute")]
|
||||
[numthreads(1,1,1)]
|
||||
void computeMain(uint3 threadId : SV_DispatchThreadID)
|
||||
{
|
||||
result[0] += pc.a;
|
||||
result[0] += pc.b[1];
|
||||
result[0] += pc.bar.s;
|
||||
result[0] += pc.node[3];
|
||||
}
|
||||
BIN
lib/All/SPIRV-Reflect/tests/push_constants/push_constant_basic_2.spv
Executable file
BIN
lib/All/SPIRV-Reflect/tests/push_constants/push_constant_basic_2.spv
Executable file
Binary file not shown.
@@ -0,0 +1,396 @@
|
||||
%YAML 1.1
|
||||
---
|
||||
all_type_descriptions:
|
||||
- &td0
|
||||
id: 11
|
||||
op: 29
|
||||
type_name:
|
||||
struct_member_name:
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x20000004 # ARRAY INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 1, dims: [0,], stride: 4 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td1
|
||||
id: 10
|
||||
op: 30
|
||||
type_name: "RWStructuredBuffer"
|
||||
struct_member_name:
|
||||
storage_class: -1 # NOT APPLICABLE
|
||||
type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK
|
||||
decoration_flags: 0x00000001 # BLOCK
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 1
|
||||
members:
|
||||
- *td0
|
||||
- &td2
|
||||
id: 7
|
||||
op: 21
|
||||
type_name:
|
||||
struct_member_name: "a"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000004 # INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td3
|
||||
id: 16
|
||||
op: 28
|
||||
type_name:
|
||||
struct_member_name: "data"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x20000004 # ARRAY INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 1, dims: [4,], stride: 4 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td4
|
||||
id: 15
|
||||
op: 30
|
||||
type_name: "_Array_std430_uint4"
|
||||
struct_member_name: "b"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 1
|
||||
members:
|
||||
- *td3
|
||||
- &td5
|
||||
id: 7
|
||||
op: 21
|
||||
type_name:
|
||||
struct_member_name: "t"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000004 # INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td6
|
||||
id: 7
|
||||
op: 21
|
||||
type_name:
|
||||
struct_member_name: "s"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000004 # INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td7
|
||||
id: 18
|
||||
op: 30
|
||||
type_name: "Bar_std430"
|
||||
struct_member_name: "bar"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 2
|
||||
members:
|
||||
- *td5
|
||||
- *td6
|
||||
- &td8
|
||||
id: 19
|
||||
op: 32
|
||||
type_name:
|
||||
struct_member_name: "node"
|
||||
storage_class: 5349 # PhysicalStorageBuffer
|
||||
type_flags: 0x40000004 # REF INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td9
|
||||
id: 14
|
||||
op: 30
|
||||
type_name: "Data_std430"
|
||||
struct_member_name:
|
||||
storage_class: -1 # NOT APPLICABLE
|
||||
type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK
|
||||
decoration_flags: 0x00000001 # BLOCK
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 4
|
||||
members:
|
||||
- *td2
|
||||
- *td4
|
||||
- *td7
|
||||
- *td8
|
||||
all_block_variables:
|
||||
- &bv0
|
||||
name:
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 0
|
||||
padded_size: 0
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000000 # NONE
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td0
|
||||
- &bv1
|
||||
name: "result"
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 0
|
||||
padded_size: 0
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000000 # NONE
|
||||
member_count: 1
|
||||
members:
|
||||
- *bv0
|
||||
type_description: *td1
|
||||
- &bv2
|
||||
name: "a"
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 4
|
||||
padded_size: 4
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000000 # NONE
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td2
|
||||
- &bv3
|
||||
name: "data"
|
||||
offset: 0
|
||||
absolute_offset: 4
|
||||
size: 16
|
||||
padded_size: 16
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 1, dims: [4,], stride: 4 }
|
||||
flags: 0x00000000 # NONE
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td3
|
||||
- &bv4
|
||||
name: "b"
|
||||
offset: 4
|
||||
absolute_offset: 4
|
||||
size: 16
|
||||
padded_size: 16
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000000 # NONE
|
||||
member_count: 1
|
||||
members:
|
||||
- *bv3
|
||||
type_description: *td4
|
||||
- &bv5
|
||||
name: "t"
|
||||
offset: 0
|
||||
absolute_offset: 20
|
||||
size: 4
|
||||
padded_size: 4
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000000 # NONE
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td5
|
||||
- &bv6
|
||||
name: "s"
|
||||
offset: 4
|
||||
absolute_offset: 24
|
||||
size: 4
|
||||
padded_size: 4
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000000 # NONE
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td6
|
||||
- &bv7
|
||||
name: "bar"
|
||||
offset: 20
|
||||
absolute_offset: 20
|
||||
size: 8
|
||||
padded_size: 8
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000000 # NONE
|
||||
member_count: 2
|
||||
members:
|
||||
- *bv5
|
||||
- *bv6
|
||||
type_description: *td7
|
||||
- &bv8
|
||||
name: "node"
|
||||
offset: 32
|
||||
absolute_offset: 32
|
||||
size: 8
|
||||
padded_size: 8
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000000 # NONE
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td8
|
||||
- &bv9
|
||||
name: "pc"
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 40
|
||||
padded_size: 40
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000000 # NONE
|
||||
member_count: 4
|
||||
members:
|
||||
- *bv2
|
||||
- *bv4
|
||||
- *bv7
|
||||
- *bv8
|
||||
type_description: *td9
|
||||
all_descriptor_bindings:
|
||||
- &db0
|
||||
spirv_id: 13
|
||||
name: "result"
|
||||
binding: 0
|
||||
input_attachment_index: 0
|
||||
set: 0
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER
|
||||
resource_type: 8 # UAV
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
block: *bv1 # "result"
|
||||
array: { dims_count: 0, dims: [] }
|
||||
accessed: 1
|
||||
uav_counter_id: 4294967295
|
||||
uav_counter_binding:
|
||||
type_description: *td1
|
||||
word_offset: { binding: 133, set: 137 }
|
||||
all_interface_variables:
|
||||
module:
|
||||
generator: 40 # Slang Shader Compiler
|
||||
entry_point_name: "main"
|
||||
entry_point_id: 2
|
||||
source_language: 11 # Slang
|
||||
source_language_version: 1
|
||||
spirv_execution_model: 5 # GLCompute
|
||||
shader_stage: 0x00000020 # CS
|
||||
descriptor_binding_count: 1
|
||||
descriptor_bindings:
|
||||
- *db0 # "result"
|
||||
descriptor_set_count: 1
|
||||
descriptor_sets:
|
||||
- set: 0
|
||||
binding_count: 1
|
||||
bindings:
|
||||
- *db0 # "result"
|
||||
input_variable_count: 0,
|
||||
input_variables:
|
||||
output_variable_count: 0,
|
||||
output_variables:
|
||||
push_constant_count: 1,
|
||||
push_constants:
|
||||
- *bv9 # "pc"
|
||||
specialization_constant_count: 0,
|
||||
specialization_constants:
|
||||
...
|
||||
@@ -0,0 +1,30 @@
|
||||
RWStructuredBuffer<uint> result;
|
||||
|
||||
struct Foo{
|
||||
uint s;
|
||||
uint t;
|
||||
};
|
||||
|
||||
struct Bar{
|
||||
uint x_unused;
|
||||
uint y;
|
||||
};
|
||||
|
||||
struct Data{
|
||||
uint a_unused;
|
||||
uint b[4];
|
||||
uint c;
|
||||
uint d_unused[4];
|
||||
Foo* foo_unused;
|
||||
Bar* bar;
|
||||
};
|
||||
[[vk::push_constant]] Data pc;
|
||||
|
||||
[shader("compute")]
|
||||
[numthreads(1,1,1)]
|
||||
void computeMain(uint3 threadId : SV_DispatchThreadID)
|
||||
{
|
||||
result[0] += pc.c;
|
||||
result[0] += pc.b[1];
|
||||
result[0] += pc.bar->y;
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,639 @@
|
||||
%YAML 1.1
|
||||
---
|
||||
all_type_descriptions:
|
||||
- &td0
|
||||
id: 11
|
||||
op: 29
|
||||
type_name:
|
||||
struct_member_name:
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x20000004 # ARRAY INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 1, dims: [0,], stride: 4 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td1
|
||||
id: 10
|
||||
op: 30
|
||||
type_name: "RWStructuredBuffer"
|
||||
struct_member_name:
|
||||
storage_class: -1 # NOT APPLICABLE
|
||||
type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK
|
||||
decoration_flags: 0x00000001 # BLOCK
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 1
|
||||
members:
|
||||
- *td0
|
||||
- &td2
|
||||
id: 7
|
||||
op: 21
|
||||
type_name:
|
||||
struct_member_name: "a_unused"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000004 # INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td3
|
||||
id: 16
|
||||
op: 28
|
||||
type_name:
|
||||
struct_member_name: "data"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x20000004 # ARRAY INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 1, dims: [4,], stride: 4 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td4
|
||||
id: 15
|
||||
op: 30
|
||||
type_name: "_Array_std430_uint4"
|
||||
struct_member_name: "b"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 1
|
||||
members:
|
||||
- *td3
|
||||
- &td5
|
||||
id: 7
|
||||
op: 21
|
||||
type_name:
|
||||
struct_member_name: "c"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000004 # INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td6
|
||||
id: 16
|
||||
op: 28
|
||||
type_name:
|
||||
struct_member_name: "data"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x20000004 # ARRAY INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 1, dims: [4,], stride: 4 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td7
|
||||
id: 15
|
||||
op: 30
|
||||
type_name: "_Array_std430_uint4"
|
||||
struct_member_name: "d_unused"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 1
|
||||
members:
|
||||
- *td6
|
||||
- &td8
|
||||
id: 7
|
||||
op: 21
|
||||
type_name:
|
||||
struct_member_name: "s"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000004 # INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td9
|
||||
id: 7
|
||||
op: 21
|
||||
type_name:
|
||||
struct_member_name: "t"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000004 # INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td10
|
||||
id: 19
|
||||
op: 32
|
||||
type_name: "Foo_natural"
|
||||
struct_member_name: "foo_unused"
|
||||
storage_class: 5349 # PhysicalStorageBuffer
|
||||
type_flags: 0x50080000 # STRUCT REF EXTERNAL_BLOCK
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 2
|
||||
members:
|
||||
- *td8
|
||||
- *td9
|
||||
- &td11
|
||||
id: 7
|
||||
op: 21
|
||||
type_name:
|
||||
struct_member_name: "x_unused"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000004 # INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td12
|
||||
id: 7
|
||||
op: 21
|
||||
type_name:
|
||||
struct_member_name: "y"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000004 # INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td13
|
||||
id: 21
|
||||
op: 32
|
||||
type_name: "Bar_natural"
|
||||
struct_member_name: "bar"
|
||||
storage_class: 5349 # PhysicalStorageBuffer
|
||||
type_flags: 0x50080000 # STRUCT REF EXTERNAL_BLOCK
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 2
|
||||
members:
|
||||
- *td11
|
||||
- *td12
|
||||
- &td14
|
||||
id: 14
|
||||
op: 30
|
||||
type_name: "Data_std430"
|
||||
struct_member_name:
|
||||
storage_class: -1 # NOT APPLICABLE
|
||||
type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK
|
||||
decoration_flags: 0x00000001 # BLOCK
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 6
|
||||
members:
|
||||
- *td2
|
||||
- *td4
|
||||
- *td5
|
||||
- *td7
|
||||
- *td10
|
||||
- *td13
|
||||
- &td15
|
||||
id: 7
|
||||
op: 21
|
||||
type_name:
|
||||
struct_member_name: "s"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000004 # INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td16
|
||||
id: 7
|
||||
op: 21
|
||||
type_name:
|
||||
struct_member_name: "t"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000004 # INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td17
|
||||
id: 7
|
||||
op: 21
|
||||
type_name:
|
||||
struct_member_name: "x_unused"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000004 # INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td18
|
||||
id: 7
|
||||
op: 21
|
||||
type_name:
|
||||
struct_member_name: "y"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000004 # INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
all_block_variables:
|
||||
- &bv0
|
||||
name:
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 0
|
||||
padded_size: 0
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000000 # NONE
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td0
|
||||
- &bv1
|
||||
name: "result"
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 0
|
||||
padded_size: 0
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000000 # NONE
|
||||
member_count: 1
|
||||
members:
|
||||
- *bv0
|
||||
type_description: *td1
|
||||
- &bv2
|
||||
name: "a_unused"
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 4
|
||||
padded_size: 4
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000001 # UNUSED
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td2
|
||||
- &bv3
|
||||
name: "data"
|
||||
offset: 0
|
||||
absolute_offset: 4
|
||||
size: 16
|
||||
padded_size: 16
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 1, dims: [4,], stride: 4 }
|
||||
flags: 0x00000000 # NONE
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td3
|
||||
- &bv4
|
||||
name: "b"
|
||||
offset: 4
|
||||
absolute_offset: 4
|
||||
size: 16
|
||||
padded_size: 16
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000000 # NONE
|
||||
member_count: 1
|
||||
members:
|
||||
- *bv3
|
||||
type_description: *td4
|
||||
- &bv5
|
||||
name: "c"
|
||||
offset: 20
|
||||
absolute_offset: 20
|
||||
size: 4
|
||||
padded_size: 4
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000000 # NONE
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td5
|
||||
- &bv6
|
||||
name: "data"
|
||||
offset: 0
|
||||
absolute_offset: 24
|
||||
size: 16
|
||||
padded_size: 16
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 1, dims: [4,], stride: 4 }
|
||||
flags: 0x00000001 # UNUSED
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td6
|
||||
- &bv7
|
||||
name: "d_unused"
|
||||
offset: 24
|
||||
absolute_offset: 24
|
||||
size: 16
|
||||
padded_size: 16
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000001 # UNUSED
|
||||
member_count: 1
|
||||
members:
|
||||
- *bv6
|
||||
type_description: *td7
|
||||
- &bv8
|
||||
name: "s"
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 4
|
||||
padded_size: 4
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000001 # UNUSED
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td15
|
||||
- &bv9
|
||||
name: "t"
|
||||
offset: 4
|
||||
absolute_offset: 4
|
||||
size: 4
|
||||
padded_size: 4
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000001 # UNUSED
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td16
|
||||
- &bv10
|
||||
name: "foo_unused"
|
||||
offset: 40
|
||||
absolute_offset: 40
|
||||
size: 8
|
||||
padded_size: 8
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000001 # UNUSED
|
||||
member_count: 2
|
||||
members:
|
||||
- *bv8
|
||||
- *bv9
|
||||
type_description: *td10
|
||||
- &bv11
|
||||
name: "x_unused"
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 4
|
||||
padded_size: 4
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000001 # UNUSED
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td17
|
||||
- &bv12
|
||||
name: "y"
|
||||
offset: 4
|
||||
absolute_offset: 4
|
||||
size: 4
|
||||
padded_size: 4
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000000 # NONE
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td18
|
||||
- &bv13
|
||||
name: "bar"
|
||||
offset: 48
|
||||
absolute_offset: 48
|
||||
size: 8
|
||||
padded_size: 8
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000000 # NONE
|
||||
member_count: 2
|
||||
members:
|
||||
- *bv11
|
||||
- *bv12
|
||||
type_description: *td13
|
||||
- &bv14
|
||||
name: "pc"
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 56
|
||||
padded_size: 56
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 0, signedness: 0 }
|
||||
vector: { component_count: 0 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000000 # NONE
|
||||
member_count: 6
|
||||
members:
|
||||
- *bv2
|
||||
- *bv4
|
||||
- *bv5
|
||||
- *bv7
|
||||
- *bv10
|
||||
- *bv13
|
||||
type_description: *td14
|
||||
all_descriptor_bindings:
|
||||
- &db0
|
||||
spirv_id: 13
|
||||
name: "result"
|
||||
binding: 0
|
||||
input_attachment_index: 0
|
||||
set: 0
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER
|
||||
resource_type: 8 # UAV
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
block: *bv1 # "result"
|
||||
array: { dims_count: 0, dims: [] }
|
||||
accessed: 1
|
||||
uav_counter_id: 4294967295
|
||||
uav_counter_binding:
|
||||
type_description: *td1
|
||||
word_offset: { binding: 161, set: 165 }
|
||||
all_interface_variables:
|
||||
module:
|
||||
generator: 40 # Slang Shader Compiler
|
||||
entry_point_name: "main"
|
||||
entry_point_id: 2
|
||||
source_language: 11 # Slang
|
||||
source_language_version: 1
|
||||
spirv_execution_model: 5 # GLCompute
|
||||
shader_stage: 0x00000020 # CS
|
||||
descriptor_binding_count: 1
|
||||
descriptor_bindings:
|
||||
- *db0 # "result"
|
||||
descriptor_set_count: 1
|
||||
descriptor_sets:
|
||||
- set: 0
|
||||
binding_count: 1
|
||||
bindings:
|
||||
- *db0 # "result"
|
||||
input_variable_count: 0,
|
||||
input_variables:
|
||||
output_variable_count: 0,
|
||||
output_variables:
|
||||
push_constant_count: 1,
|
||||
push_constants:
|
||||
- *bv14 # "pc"
|
||||
specialization_constant_count: 0,
|
||||
specialization_constants:
|
||||
...
|
||||
Reference in New Issue
Block a user