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:
14
lib/All/SPIRV-Reflect/tests/hlsl/append_consume.hlsl
Normal file
14
lib/All/SPIRV-Reflect/tests/hlsl/append_consume.hlsl
Normal file
@@ -0,0 +1,14 @@
|
||||
|
||||
struct Data {
|
||||
uint rgba;
|
||||
};
|
||||
|
||||
ConsumeStructuredBuffer<Data> BufferIn : register(u0, space1);
|
||||
AppendStructuredBuffer<Data> BufferOut : register(u1, space2);
|
||||
|
||||
float4 main(float4 sv_pos : SV_Position) : SV_TARGET
|
||||
{
|
||||
Data val = BufferIn.Consume();
|
||||
BufferOut.Append(val);
|
||||
return float4(1, 0, 0, 0);
|
||||
}
|
||||
BIN
lib/All/SPIRV-Reflect/tests/hlsl/append_consume.spv
Normal file
BIN
lib/All/SPIRV-Reflect/tests/hlsl/append_consume.spv
Normal file
Binary file not shown.
472
lib/All/SPIRV-Reflect/tests/hlsl/append_consume.spv.yaml
Normal file
472
lib/All/SPIRV-Reflect/tests/hlsl/append_consume.spv.yaml
Normal file
@@ -0,0 +1,472 @@
|
||||
%YAML 1.1
|
||||
---
|
||||
all_type_descriptions:
|
||||
- &td0
|
||||
id: 2
|
||||
op: 21
|
||||
type_name:
|
||||
struct_member_name: "rgba"
|
||||
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: 4
|
||||
op: 29
|
||||
type_name: "Data"
|
||||
struct_member_name:
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x30080000 # ARRAY 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: 1, dims: [0,], stride: 4 }
|
||||
member_count: 1
|
||||
members:
|
||||
- *td0
|
||||
- &td2
|
||||
id: 5
|
||||
op: 30
|
||||
type_name: "type.ConsumeStructuredBuffer.Data"
|
||||
struct_member_name:
|
||||
storage_class: -1 # NOT APPLICABLE
|
||||
type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK
|
||||
decoration_flags: 0x00000002 # BUFFER_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:
|
||||
- *td1
|
||||
- &td3
|
||||
id: 8
|
||||
op: 21
|
||||
type_name:
|
||||
struct_member_name:
|
||||
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: 9
|
||||
op: 30
|
||||
type_name: "type.ACSBuffer.counter"
|
||||
struct_member_name:
|
||||
storage_class: -1 # NOT APPLICABLE
|
||||
type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK
|
||||
decoration_flags: 0x00000002 # BUFFER_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:
|
||||
- *td3
|
||||
- &td5
|
||||
id: 2
|
||||
op: 21
|
||||
type_name:
|
||||
struct_member_name: "rgba"
|
||||
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: 4
|
||||
op: 29
|
||||
type_name: "Data"
|
||||
struct_member_name:
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x30080000 # ARRAY 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: 1, dims: [0,], stride: 4 }
|
||||
member_count: 1
|
||||
members:
|
||||
- *td5
|
||||
- &td7
|
||||
id: 12
|
||||
op: 30
|
||||
type_name: "type.AppendStructuredBuffer.Data"
|
||||
struct_member_name:
|
||||
storage_class: -1 # NOT APPLICABLE
|
||||
type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK
|
||||
decoration_flags: 0x00000002 # BUFFER_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:
|
||||
- *td6
|
||||
- &td8
|
||||
id: 22
|
||||
op: 23
|
||||
type_name:
|
||||
struct_member_name:
|
||||
storage_class: -1 # NOT APPLICABLE
|
||||
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:
|
||||
all_block_variables:
|
||||
- &bv0
|
||||
name: "rgba"
|
||||
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: 4
|
||||
padded_size: 4
|
||||
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: "BufferIn"
|
||||
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:
|
||||
- *bv1
|
||||
type_description: *td2
|
||||
- &bv3
|
||||
name:
|
||||
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: 0x00000000 # NONE
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td3
|
||||
- &bv4
|
||||
name: "counter.var.BufferOut"
|
||||
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:
|
||||
- *bv3
|
||||
type_description: *td4
|
||||
- &bv5
|
||||
name:
|
||||
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: 0x00000000 # NONE
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td3
|
||||
- &bv6
|
||||
name: "counter.var.BufferIn"
|
||||
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:
|
||||
- *bv5
|
||||
type_description: *td4
|
||||
- &bv7
|
||||
name: "rgba"
|
||||
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: *td5
|
||||
- &bv8
|
||||
name:
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 4
|
||||
padded_size: 4
|
||||
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: *td6
|
||||
- &bv9
|
||||
name: "BufferOut"
|
||||
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:
|
||||
- *bv8
|
||||
type_description: *td7
|
||||
all_descriptor_bindings:
|
||||
- &db0
|
||||
spirv_id: 11
|
||||
name: "counter.var.BufferIn"
|
||||
binding: 1
|
||||
input_attachment_index: 0
|
||||
set: 1
|
||||
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: *bv6 # "counter.var.BufferIn"
|
||||
array: { dims_count: 0, dims: [] }
|
||||
accessed: 1
|
||||
uav_counter_id: 4294967295
|
||||
uav_counter_binding:
|
||||
type_description: *td4
|
||||
word_offset: { binding: 320, set: 316 }
|
||||
- &db1
|
||||
spirv_id: 7
|
||||
name: "BufferIn"
|
||||
binding: 0
|
||||
input_attachment_index: 0
|
||||
set: 1
|
||||
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: *bv2 # "BufferIn"
|
||||
array: { dims_count: 0, dims: [] }
|
||||
accessed: 1
|
||||
uav_counter_id: 11
|
||||
uav_counter_binding: *db0 # "counter.var.BufferIn"
|
||||
type_description: *td2
|
||||
word_offset: { binding: 304, set: 300 }
|
||||
- &db2
|
||||
spirv_id: 15
|
||||
name: "counter.var.BufferOut"
|
||||
binding: 0
|
||||
input_attachment_index: 0
|
||||
set: 2
|
||||
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: *bv4 # "counter.var.BufferOut"
|
||||
array: { dims_count: 0, dims: [] }
|
||||
accessed: 1
|
||||
uav_counter_id: 4294967295
|
||||
uav_counter_binding:
|
||||
type_description: *td4
|
||||
word_offset: { binding: 328, set: 324 }
|
||||
- *db0
|
||||
- &db3
|
||||
spirv_id: 14
|
||||
name: "BufferOut"
|
||||
binding: 1
|
||||
input_attachment_index: 0
|
||||
set: 2
|
||||
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: *bv9 # "BufferOut"
|
||||
array: { dims_count: 0, dims: [] }
|
||||
accessed: 1
|
||||
uav_counter_id: 15
|
||||
uav_counter_binding: *db2 # "counter.var.BufferOut"
|
||||
type_description: *td7
|
||||
word_offset: { binding: 312, set: 308 }
|
||||
all_interface_variables:
|
||||
- &iv0
|
||||
spirv_id: 26
|
||||
name:
|
||||
location: 4294967295
|
||||
storage_class: 1 # Input
|
||||
semantic: "SV_Position"
|
||||
decoration_flags: 0x00000010 # BUILT_IN
|
||||
built_in: 15 # FragCoord
|
||||
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: *td8
|
||||
word_offset: { location: 0 }
|
||||
- &iv1
|
||||
spirv_id: 30
|
||||
name: "out.var.SV_TARGET"
|
||||
location: 0
|
||||
storage_class: 3 # Output
|
||||
semantic: "SV_TARGET"
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
built_in: -1 # ??? (-1)
|
||||
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: *td8
|
||||
word_offset: { location: 296 }
|
||||
module:
|
||||
generator: 14 # Google spiregg
|
||||
entry_point_name: "main"
|
||||
entry_point_id: 19
|
||||
source_language: 5 # HLSL
|
||||
source_language_version: 600
|
||||
spirv_execution_model: 4 # Fragment
|
||||
shader_stage: 0x00000010 # PS
|
||||
descriptor_binding_count: 4
|
||||
descriptor_bindings:
|
||||
- *db1 # "BufferIn"
|
||||
- *db2 # "counter.var.BufferOut"
|
||||
- *db0 # "counter.var.BufferIn"
|
||||
- *db3 # "BufferOut"
|
||||
descriptor_set_count: 2
|
||||
descriptor_sets:
|
||||
- set: 1
|
||||
binding_count: 2
|
||||
bindings:
|
||||
- *db1 # "BufferIn"
|
||||
- *db0 # "counter.var.BufferIn"
|
||||
- set: 2
|
||||
binding_count: 2
|
||||
bindings:
|
||||
- *db2 # "counter.var.BufferOut"
|
||||
- *db3 # "BufferOut"
|
||||
input_variable_count: 1,
|
||||
input_variables:
|
||||
- *iv0 #
|
||||
output_variable_count: 1,
|
||||
output_variables:
|
||||
- *iv1 # "out.var.SV_TARGET"
|
||||
push_constant_count: 0,
|
||||
push_constants:
|
||||
specialization_constant_count: 0,
|
||||
specialization_constants:
|
||||
...
|
||||
100
lib/All/SPIRV-Reflect/tests/hlsl/append_consume.txt
Normal file
100
lib/All/SPIRV-Reflect/tests/hlsl/append_consume.txt
Normal file
@@ -0,0 +1,100 @@
|
||||
generator : Google spiregg
|
||||
entry point : main
|
||||
source lang : HLSL
|
||||
source lang ver : 600
|
||||
source file : hlsl/append_consume.hlsl
|
||||
shader stage : PS
|
||||
|
||||
|
||||
Input variables: 1
|
||||
|
||||
0:
|
||||
spirv id : 26
|
||||
location : (built-in) FragCoord
|
||||
type : float4
|
||||
semantic : SV_Position
|
||||
name :
|
||||
qualifier :
|
||||
|
||||
|
||||
Output variables: 1
|
||||
|
||||
0:
|
||||
spirv id : 30
|
||||
location : 0
|
||||
type : float4
|
||||
semantic : SV_TARGET
|
||||
name : out.var.SV_TARGET
|
||||
qualifier :
|
||||
|
||||
|
||||
Descriptor bindings: 4
|
||||
|
||||
Binding 1.0
|
||||
spirv id : 7
|
||||
set : 1
|
||||
binding : 0
|
||||
type : VK_DESCRIPTOR_TYPE_STORAGE_BUFFER (UAV)
|
||||
count : 1
|
||||
counter : (set=1, binding=1, name=counter.var.BufferIn);
|
||||
accessed : true
|
||||
name : BufferIn (type.ConsumeStructuredBuffer.Data)
|
||||
// size = 0, padded size = 0
|
||||
struct type.ConsumeStructuredBuffer.Data {
|
||||
|
||||
// abs offset = 0, rel offset = 0, size = 4, padded size = 4
|
||||
struct Data {
|
||||
uint rgba; // abs offset = 0, rel offset = 0, size = 4, padded size = 4
|
||||
} ;
|
||||
|
||||
} BufferIn;
|
||||
|
||||
|
||||
Binding 1.1
|
||||
spirv id : 11
|
||||
set : 1
|
||||
binding : 1
|
||||
type : VK_DESCRIPTOR_TYPE_STORAGE_BUFFER (UAV)
|
||||
count : 1
|
||||
accessed : true
|
||||
name : counter.var.BufferIn (type.ACSBuffer.counter)
|
||||
// size = 0, padded size = 0
|
||||
struct type.ACSBuffer.counter {
|
||||
int ; // abs offset = 0, rel offset = 0, size = 4, padded size = 4
|
||||
} counter.var.BufferIn;
|
||||
|
||||
|
||||
Binding 2.0
|
||||
spirv id : 15
|
||||
set : 2
|
||||
binding : 0
|
||||
type : VK_DESCRIPTOR_TYPE_STORAGE_BUFFER (UAV)
|
||||
count : 1
|
||||
accessed : true
|
||||
name : counter.var.BufferOut (type.ACSBuffer.counter)
|
||||
// size = 0, padded size = 0
|
||||
struct type.ACSBuffer.counter {
|
||||
int ; // abs offset = 0, rel offset = 0, size = 4, padded size = 4
|
||||
} counter.var.BufferOut;
|
||||
|
||||
|
||||
Binding 2.1
|
||||
spirv id : 14
|
||||
set : 2
|
||||
binding : 1
|
||||
type : VK_DESCRIPTOR_TYPE_STORAGE_BUFFER (UAV)
|
||||
count : 1
|
||||
counter : (set=2, binding=0, name=counter.var.BufferOut);
|
||||
accessed : true
|
||||
name : BufferOut (type.AppendStructuredBuffer.Data)
|
||||
// size = 0, padded size = 0
|
||||
struct type.AppendStructuredBuffer.Data {
|
||||
|
||||
// abs offset = 0, rel offset = 0, size = 4, padded size = 4
|
||||
struct Data {
|
||||
uint rgba; // abs offset = 0, rel offset = 0, size = 4, padded size = 4
|
||||
} ;
|
||||
|
||||
} BufferOut;
|
||||
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
StructuredBuffer<float3> Input[16] : register(t0);
|
||||
RWStructuredBuffer<float3> Output : register(u1);
|
||||
|
||||
[numthreads(16, 16, 1)]
|
||||
void main(uint3 tid : SV_DispatchThreadID)
|
||||
{
|
||||
float3 value = (float3)0;
|
||||
for (int i = 0; i < 16; ++i) {
|
||||
value += Input[tid.x][i];
|
||||
}
|
||||
Output[tid.x] = value;
|
||||
}
|
||||
BIN
lib/All/SPIRV-Reflect/tests/hlsl/array_of_structured_buffer.spv
Normal file
BIN
lib/All/SPIRV-Reflect/tests/hlsl/array_of_structured_buffer.spv
Normal file
Binary file not shown.
@@ -0,0 +1,240 @@
|
||||
%YAML 1.1
|
||||
---
|
||||
all_type_descriptions:
|
||||
- &td0
|
||||
id: 7
|
||||
op: 29
|
||||
type_name:
|
||||
struct_member_name:
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x20000108 # ARRAY VECTOR FLOAT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 3 }
|
||||
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: 12 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td1
|
||||
id: 18
|
||||
op: 28
|
||||
type_name: "type.StructuredBuffer.v3float"
|
||||
struct_member_name:
|
||||
storage_class: -1 # NOT APPLICABLE
|
||||
type_flags: 0x30080000 # ARRAY STRUCT EXTERNAL_BLOCK
|
||||
decoration_flags: 0x00000002 # BUFFER_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: 1, dims: [16,], stride: 0 }
|
||||
member_count: 1
|
||||
members:
|
||||
- *td0
|
||||
- &td2
|
||||
id: 7
|
||||
op: 29
|
||||
type_name:
|
||||
struct_member_name:
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x20000108 # ARRAY VECTOR FLOAT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 3 }
|
||||
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: 12 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td3
|
||||
id: 5
|
||||
op: 30
|
||||
type_name: "type.RWStructuredBuffer.v3float"
|
||||
struct_member_name:
|
||||
storage_class: -1 # NOT APPLICABLE
|
||||
type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK
|
||||
decoration_flags: 0x00000002 # BUFFER_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:
|
||||
- *td2
|
||||
- &td4
|
||||
id: 21
|
||||
op: 23
|
||||
type_name:
|
||||
struct_member_name:
|
||||
storage_class: -1 # NOT APPLICABLE
|
||||
type_flags: 0x00000104 # VECTOR INT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 3 }
|
||||
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: 0x00000080 # NON_WRITABLE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 3 }
|
||||
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: "Input"
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 0
|
||||
padded_size: 0
|
||||
decorations: 0x00000080 # NON_WRITABLE
|
||||
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:
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 0
|
||||
padded_size: 0
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 3 }
|
||||
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: "Output"
|
||||
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:
|
||||
- *bv2
|
||||
type_description: *td3
|
||||
all_descriptor_bindings:
|
||||
- &db0
|
||||
spirv_id: 4
|
||||
name: "Input"
|
||||
binding: 0
|
||||
input_attachment_index: 0
|
||||
set: 0
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER
|
||||
resource_type: 4 # SRV
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
block: *bv1 # "Input"
|
||||
array: { dims_count: 1, dims: [16,] }
|
||||
accessed: 1
|
||||
uav_counter_id: 4294967295
|
||||
uav_counter_binding:
|
||||
type_description: *td1
|
||||
word_offset: { binding: 68, set: 64 }
|
||||
- &db1
|
||||
spirv_id: 6
|
||||
name: "Output"
|
||||
binding: 1
|
||||
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: *bv3 # "Output"
|
||||
array: { dims_count: 0, dims: [] }
|
||||
accessed: 1
|
||||
uav_counter_id: 4294967295
|
||||
uav_counter_binding:
|
||||
type_description: *td3
|
||||
word_offset: { binding: 76, set: 72 }
|
||||
all_interface_variables:
|
||||
- &iv0
|
||||
spirv_id: 2
|
||||
name:
|
||||
location: 4294967295
|
||||
storage_class: 1 # Input
|
||||
semantic:
|
||||
decoration_flags: 0x00000010 # BUILT_IN
|
||||
built_in: 28 # GlobalInvocationId
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 3 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
format: 104 # VK_FORMAT_R32G32B32_UINT
|
||||
type_description: *td4
|
||||
word_offset: { location: 0 }
|
||||
module:
|
||||
generator: 14 # Google spiregg
|
||||
entry_point_name: "main"
|
||||
entry_point_id: 1
|
||||
source_language: 5 # HLSL
|
||||
source_language_version: 600
|
||||
spirv_execution_model: 5 # GLCompute
|
||||
shader_stage: 0x00000020 # CS
|
||||
descriptor_binding_count: 2
|
||||
descriptor_bindings:
|
||||
- *db0 # "Input"
|
||||
- *db1 # "Output"
|
||||
descriptor_set_count: 1
|
||||
descriptor_sets:
|
||||
- set: 0
|
||||
binding_count: 2
|
||||
bindings:
|
||||
- *db0 # "Input"
|
||||
- *db1 # "Output"
|
||||
input_variable_count: 1,
|
||||
input_variables:
|
||||
- *iv0 #
|
||||
output_variable_count: 0,
|
||||
output_variables:
|
||||
push_constant_count: 0,
|
||||
push_constants:
|
||||
specialization_constant_count: 0,
|
||||
specialization_constants:
|
||||
...
|
||||
10
lib/All/SPIRV-Reflect/tests/hlsl/binding_array.hlsl
Normal file
10
lib/All/SPIRV-Reflect/tests/hlsl/binding_array.hlsl
Normal file
@@ -0,0 +1,10 @@
|
||||
|
||||
//SamplerState MySampler[4][3][2][1] : register(s0);
|
||||
SamplerState MySampler[6] : register(s0);
|
||||
Texture2D MyTexture[2] : register(t8);
|
||||
|
||||
float4 main(float4 sv_pos : SV_POSITION) : SV_TARGET {
|
||||
float4 ret0 = MyTexture[0].Sample(MySampler[0], float2(0, 0));
|
||||
float4 ret1 = MyTexture[1].Sample(MySampler[3], float2(0, 0));
|
||||
return ret0 + ret1;
|
||||
}
|
||||
BIN
lib/All/SPIRV-Reflect/tests/hlsl/binding_array.spv
Normal file
BIN
lib/All/SPIRV-Reflect/tests/hlsl/binding_array.spv
Normal file
Binary file not shown.
189
lib/All/SPIRV-Reflect/tests/hlsl/binding_array.spv.yaml
Normal file
189
lib/All/SPIRV-Reflect/tests/hlsl/binding_array.spv.yaml
Normal file
@@ -0,0 +1,189 @@
|
||||
%YAML 1.1
|
||||
---
|
||||
all_type_descriptions:
|
||||
- &td0
|
||||
id: 5
|
||||
op: 28
|
||||
type_name: "type.sampler"
|
||||
struct_member_name:
|
||||
storage_class: -1 # NOT APPLICABLE
|
||||
type_flags: 0x20020000 # ARRAY EXTERNAL_SAMPLER
|
||||
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: 1, dims: [6,], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td1
|
||||
id: 11
|
||||
op: 28
|
||||
type_name: "type.2d.image"
|
||||
struct_member_name:
|
||||
storage_class: -1 # NOT APPLICABLE
|
||||
type_flags: 0x20010008 # ARRAY EXTERNAL_IMAGE 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: 1, depth: 2, arrayed: 0, ms: 0, sampled: 1, image_format: 0 } # dim=2D image_format=Unknown
|
||||
array: { dims_count: 1, dims: [2,], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td2
|
||||
id: 19
|
||||
op: 23
|
||||
type_name:
|
||||
struct_member_name:
|
||||
storage_class: -1 # NOT APPLICABLE
|
||||
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:
|
||||
all_block_variables:
|
||||
- &bv0
|
||||
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: 0
|
||||
members:
|
||||
type_description:
|
||||
- &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: 0
|
||||
members:
|
||||
type_description:
|
||||
all_descriptor_bindings:
|
||||
- &db0
|
||||
spirv_id: 7
|
||||
name: "MySampler"
|
||||
binding: 0
|
||||
input_attachment_index: 0
|
||||
set: 0
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
descriptor_type: 0 # VK_DESCRIPTOR_TYPE_SAMPLER
|
||||
resource_type: 1 # SAMPLER
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
block: *bv0 #
|
||||
array: { dims_count: 1, dims: [6,] }
|
||||
accessed: 1
|
||||
uav_counter_id: 4294967295
|
||||
uav_counter_binding:
|
||||
type_description: *td0
|
||||
word_offset: { binding: 219, set: 215 }
|
||||
- &db1
|
||||
spirv_id: 13
|
||||
name: "MyTexture"
|
||||
binding: 8
|
||||
input_attachment_index: 0
|
||||
set: 0
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
descriptor_type: 2 # VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE
|
||||
resource_type: 4 # SRV
|
||||
image: { dim: 1, depth: 2, arrayed: 0, ms: 0, sampled: 1, image_format: 0 } # dim=2D image_format=Unknown
|
||||
block: *bv1 #
|
||||
array: { dims_count: 1, dims: [2,] }
|
||||
accessed: 1
|
||||
uav_counter_id: 4294967295
|
||||
uav_counter_binding:
|
||||
type_description: *td1
|
||||
word_offset: { binding: 227, set: 223 }
|
||||
all_interface_variables:
|
||||
- &iv0
|
||||
spirv_id: 23
|
||||
name:
|
||||
location: 4294967295
|
||||
storage_class: 1 # Input
|
||||
semantic: "SV_POSITION"
|
||||
decoration_flags: 0x00000010 # BUILT_IN
|
||||
built_in: 15 # FragCoord
|
||||
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: *td2
|
||||
word_offset: { location: 0 }
|
||||
- &iv1
|
||||
spirv_id: 27
|
||||
name: "out.var.SV_TARGET"
|
||||
location: 0
|
||||
storage_class: 3 # Output
|
||||
semantic: "SV_TARGET"
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
built_in: -1 # ??? (-1)
|
||||
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: *td2
|
||||
word_offset: { location: 211 }
|
||||
module:
|
||||
generator: 14 # Google spiregg
|
||||
entry_point_name: "main"
|
||||
entry_point_id: 17
|
||||
source_language: 5 # HLSL
|
||||
source_language_version: 600
|
||||
spirv_execution_model: 4 # Fragment
|
||||
shader_stage: 0x00000010 # PS
|
||||
descriptor_binding_count: 2
|
||||
descriptor_bindings:
|
||||
- *db0 # "MySampler"
|
||||
- *db1 # "MyTexture"
|
||||
descriptor_set_count: 1
|
||||
descriptor_sets:
|
||||
- set: 0
|
||||
binding_count: 2
|
||||
bindings:
|
||||
- *db0 # "MySampler"
|
||||
- *db1 # "MyTexture"
|
||||
input_variable_count: 1,
|
||||
input_variables:
|
||||
- *iv0 #
|
||||
output_variable_count: 1,
|
||||
output_variables:
|
||||
- *iv1 # "out.var.SV_TARGET"
|
||||
push_constant_count: 0,
|
||||
push_constants:
|
||||
specialization_constant_count: 0,
|
||||
specialization_constants:
|
||||
...
|
||||
52
lib/All/SPIRV-Reflect/tests/hlsl/binding_array.txt
Normal file
52
lib/All/SPIRV-Reflect/tests/hlsl/binding_array.txt
Normal file
@@ -0,0 +1,52 @@
|
||||
generator : Google spiregg
|
||||
entry point : main
|
||||
source lang : HLSL
|
||||
source lang ver : 600
|
||||
source file : hlsl/binding_array.hlsl
|
||||
shader stage : PS
|
||||
|
||||
|
||||
Input variables: 1
|
||||
|
||||
0:
|
||||
spirv id : 23
|
||||
location : (built-in) FragCoord
|
||||
type : float4
|
||||
semantic : SV_POSITION
|
||||
name :
|
||||
qualifier :
|
||||
|
||||
|
||||
Output variables: 1
|
||||
|
||||
0:
|
||||
spirv id : 27
|
||||
location : 0
|
||||
type : float4
|
||||
semantic : SV_TARGET
|
||||
name : out.var.SV_TARGET
|
||||
qualifier :
|
||||
|
||||
|
||||
Descriptor bindings: 2
|
||||
|
||||
Binding 0.0
|
||||
spirv id : 7
|
||||
set : 0
|
||||
binding : 0
|
||||
type : VK_DESCRIPTOR_TYPE_SAMPLER (SAMPLER)
|
||||
count : 6
|
||||
array : [6]
|
||||
accessed : true
|
||||
name : MySampler (type.sampler)
|
||||
|
||||
Binding 0.8
|
||||
spirv id : 13
|
||||
set : 0
|
||||
binding : 8
|
||||
type : VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE (SRV)
|
||||
count : 2
|
||||
array : [2]
|
||||
accessed : true
|
||||
name : MyTexture (type.2d.image)
|
||||
|
||||
60
lib/All/SPIRV-Reflect/tests/hlsl/binding_types.hlsl
Normal file
60
lib/All/SPIRV-Reflect/tests/hlsl/binding_types.hlsl
Normal file
@@ -0,0 +1,60 @@
|
||||
/*
|
||||
Build with DXC using -O0 to preserve unused types:
|
||||
|
||||
dxc -spirv -O0 -T ps_5_0 -Fo binding_types.spv binding_types.hlsl
|
||||
|
||||
*/
|
||||
|
||||
cbuffer MyCBuffer {
|
||||
float x;
|
||||
};
|
||||
|
||||
struct Data { float x; };
|
||||
ConstantBuffer<Data> MyConstantBuffer;
|
||||
|
||||
Texture1D MyTexture1D;
|
||||
Texture2D MyTexture2D;
|
||||
Texture3D MyTexture3D;
|
||||
|
||||
Texture1DArray MyTexture1DArray;
|
||||
Texture2DArray MyTexture2DArray;
|
||||
|
||||
RWTexture1D<float4> MyRWTexture1D;
|
||||
RWTexture2D<float4> MyRWTexture2D;
|
||||
RWTexture3D<float4> MyRWTexture3D;
|
||||
|
||||
RWTexture1DArray<float4> MyRWTexture1DArray;
|
||||
RWTexture2DArray<float4> MyRWTexture2DArray;
|
||||
|
||||
Texture2DMS<float4> MyTexture2DMS;
|
||||
Texture2DMSArray<float4> MyTexture2DMSArray;
|
||||
|
||||
TextureCube<float4> MyTextureCube;
|
||||
TextureCubeArray<float4> MyTextureCubeArray;
|
||||
|
||||
tbuffer MyTBuffer {
|
||||
float q;
|
||||
};
|
||||
|
||||
struct Data2 {
|
||||
float4 x;
|
||||
};
|
||||
|
||||
TextureBuffer<Data2> MyTextureBuffer;
|
||||
|
||||
Buffer MyBuffer;
|
||||
RWBuffer<float4> MyRWBuffer;
|
||||
|
||||
StructuredBuffer<float> MyStructuredBuffer;
|
||||
RWStructuredBuffer<float> MyRWStructuredBuffer;
|
||||
|
||||
AppendStructuredBuffer<float> MyAppendStructuredBuffer;
|
||||
ConsumeStructuredBuffer<float> MyConsumeStructuredBuffer;
|
||||
|
||||
ByteAddressBuffer MyByteAddressBuffer;
|
||||
RWByteAddressBuffer MyRWByteAddressBuffer;
|
||||
|
||||
float4 main(float4 P : SV_POSITION) : SV_TARGET
|
||||
{
|
||||
return float4(0, 0, 0, 0);
|
||||
}
|
||||
BIN
lib/All/SPIRV-Reflect/tests/hlsl/binding_types.spv
Normal file
BIN
lib/All/SPIRV-Reflect/tests/hlsl/binding_types.spv
Normal file
Binary file not shown.
1981
lib/All/SPIRV-Reflect/tests/hlsl/binding_types.spv.yaml
Normal file
1981
lib/All/SPIRV-Reflect/tests/hlsl/binding_types.spv.yaml
Normal file
File diff suppressed because it is too large
Load Diff
361
lib/All/SPIRV-Reflect/tests/hlsl/binding_types.txt
Normal file
361
lib/All/SPIRV-Reflect/tests/hlsl/binding_types.txt
Normal file
@@ -0,0 +1,361 @@
|
||||
generator : Google spiregg
|
||||
entry point : main
|
||||
source lang : HLSL
|
||||
source lang ver : 600
|
||||
source file : hlsl/binding_types.hlsl
|
||||
shader stage : PS
|
||||
|
||||
|
||||
Input variables: 1
|
||||
|
||||
0:
|
||||
spirv id : 99
|
||||
location : (built-in) FragCoord
|
||||
type : float4
|
||||
semantic : SV_POSITION
|
||||
name :
|
||||
qualifier :
|
||||
|
||||
|
||||
Output variables: 1
|
||||
|
||||
0:
|
||||
spirv id : 103
|
||||
location : 0
|
||||
type : float4
|
||||
semantic : SV_TARGET
|
||||
name : out.var.SV_TARGET
|
||||
qualifier :
|
||||
|
||||
|
||||
Descriptor bindings: 29
|
||||
|
||||
Binding 0.0
|
||||
spirv id : 5
|
||||
set : 0
|
||||
binding : 0
|
||||
type : VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER (CBV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyCBuffer (type.MyCBuffer)
|
||||
// size = 16, padded size = 16
|
||||
struct type.MyCBuffer {
|
||||
float x; // abs offset = 0, rel offset = 0, size = 4, padded size = 16
|
||||
} MyCBuffer;
|
||||
|
||||
|
||||
Binding 0.1
|
||||
spirv id : 8
|
||||
set : 0
|
||||
binding : 1
|
||||
type : VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER (CBV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyConstantBuffer (type.ConstantBuffer.Data)
|
||||
// size = 16, padded size = 16
|
||||
struct type.ConstantBuffer.Data {
|
||||
float x; // abs offset = 0, rel offset = 0, size = 4, padded size = 16
|
||||
} MyConstantBuffer;
|
||||
|
||||
|
||||
Binding 0.2
|
||||
spirv id : 11
|
||||
set : 0
|
||||
binding : 2
|
||||
type : VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE (SRV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyTexture1D (type.1d.image)
|
||||
|
||||
Binding 0.3
|
||||
spirv id : 14
|
||||
set : 0
|
||||
binding : 3
|
||||
type : VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE (SRV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyTexture2D (type.2d.image)
|
||||
|
||||
Binding 0.4
|
||||
spirv id : 17
|
||||
set : 0
|
||||
binding : 4
|
||||
type : VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE (SRV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyTexture3D (type.3d.image)
|
||||
|
||||
Binding 0.5
|
||||
spirv id : 20
|
||||
set : 0
|
||||
binding : 5
|
||||
type : VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE (SRV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyTexture1DArray (type.1d.image.array)
|
||||
|
||||
Binding 0.6
|
||||
spirv id : 23
|
||||
set : 0
|
||||
binding : 6
|
||||
type : VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE (SRV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyTexture2DArray (type.2d.image.array)
|
||||
|
||||
Binding 0.7
|
||||
spirv id : 26
|
||||
set : 0
|
||||
binding : 7
|
||||
type : VK_DESCRIPTOR_TYPE_STORAGE_IMAGE (UAV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyRWTexture1D (type.1d.image)
|
||||
|
||||
Binding 0.8
|
||||
spirv id : 29
|
||||
set : 0
|
||||
binding : 8
|
||||
type : VK_DESCRIPTOR_TYPE_STORAGE_IMAGE (UAV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyRWTexture2D (type.2d.image)
|
||||
|
||||
Binding 0.9
|
||||
spirv id : 32
|
||||
set : 0
|
||||
binding : 9
|
||||
type : VK_DESCRIPTOR_TYPE_STORAGE_IMAGE (UAV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyRWTexture3D (type.3d.image)
|
||||
|
||||
Binding 0.10
|
||||
spirv id : 35
|
||||
set : 0
|
||||
binding : 10
|
||||
type : VK_DESCRIPTOR_TYPE_STORAGE_IMAGE (UAV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyRWTexture1DArray (type.1d.image.array)
|
||||
|
||||
Binding 0.11
|
||||
spirv id : 38
|
||||
set : 0
|
||||
binding : 11
|
||||
type : VK_DESCRIPTOR_TYPE_STORAGE_IMAGE (UAV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyRWTexture2DArray (type.2d.image.array)
|
||||
|
||||
Binding 0.12
|
||||
spirv id : 41
|
||||
set : 0
|
||||
binding : 12
|
||||
type : VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE (SRV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyTexture2DMS (type.2d.image)
|
||||
|
||||
Binding 0.13
|
||||
spirv id : 44
|
||||
set : 0
|
||||
binding : 13
|
||||
type : VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE (SRV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyTexture2DMSArray (type.2d.image.array)
|
||||
|
||||
Binding 0.14
|
||||
spirv id : 47
|
||||
set : 0
|
||||
binding : 14
|
||||
type : VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE (SRV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyTextureCube (type.cube.image)
|
||||
|
||||
Binding 0.15
|
||||
spirv id : 50
|
||||
set : 0
|
||||
binding : 15
|
||||
type : VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE (SRV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyTextureCubeArray (type.cube.image.array)
|
||||
|
||||
Binding 0.16
|
||||
spirv id : 53
|
||||
set : 0
|
||||
binding : 16
|
||||
type : VK_DESCRIPTOR_TYPE_STORAGE_BUFFER (SRV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyTBuffer (type.MyTBuffer)
|
||||
// size = 0, padded size = 0
|
||||
struct type.MyTBuffer {
|
||||
float q; // abs offset = 0, rel offset = 0, size = 4, padded size = 4
|
||||
} MyTBuffer;
|
||||
|
||||
|
||||
Binding 0.17
|
||||
spirv id : 57
|
||||
set : 0
|
||||
binding : 17
|
||||
type : VK_DESCRIPTOR_TYPE_STORAGE_BUFFER (SRV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyTextureBuffer (type.TextureBuffer.Data2)
|
||||
// size = 0, padded size = 0
|
||||
struct type.TextureBuffer.Data2 {
|
||||
float4 x; // abs offset = 0, rel offset = 0, size = 16, padded size = 16
|
||||
} MyTextureBuffer;
|
||||
|
||||
|
||||
Binding 0.18
|
||||
spirv id : 60
|
||||
set : 0
|
||||
binding : 18
|
||||
type : VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER (SRV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyBuffer (type.buffer.image)
|
||||
|
||||
Binding 0.19
|
||||
spirv id : 63
|
||||
set : 0
|
||||
binding : 19
|
||||
type : VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER (UAV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyRWBuffer (type.buffer.image)
|
||||
|
||||
Binding 0.20
|
||||
spirv id : 67
|
||||
set : 0
|
||||
binding : 20
|
||||
type : VK_DESCRIPTOR_TYPE_STORAGE_BUFFER (SRV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyStructuredBuffer (type.StructuredBuffer.float)
|
||||
// size = 0, padded size = 0
|
||||
struct type.StructuredBuffer.float {
|
||||
float ; // abs offset = 0, rel offset = 0, size = 0, padded size = 0
|
||||
} MyStructuredBuffer;
|
||||
|
||||
|
||||
Binding 0.21
|
||||
spirv id : 70
|
||||
set : 0
|
||||
binding : 21
|
||||
type : VK_DESCRIPTOR_TYPE_STORAGE_BUFFER (UAV)
|
||||
count : 1
|
||||
counter : (set=0, binding=22, name=counter.var.MyRWStructuredBuffer);
|
||||
accessed : false
|
||||
name : MyRWStructuredBuffer (type.RWStructuredBuffer.float)
|
||||
// size = 0, padded size = 0
|
||||
struct type.RWStructuredBuffer.float {
|
||||
float ; // abs offset = 0, rel offset = 0, size = 0, padded size = 0
|
||||
} MyRWStructuredBuffer;
|
||||
|
||||
|
||||
Binding 0.22
|
||||
spirv id : 74
|
||||
set : 0
|
||||
binding : 22
|
||||
type : VK_DESCRIPTOR_TYPE_STORAGE_BUFFER (UAV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : counter.var.MyRWStructuredBuffer (type.ACSBuffer.counter)
|
||||
// size = 0, padded size = 0
|
||||
struct type.ACSBuffer.counter {
|
||||
int ; // abs offset = 0, rel offset = 0, size = 4, padded size = 4
|
||||
} counter.var.MyRWStructuredBuffer;
|
||||
|
||||
|
||||
Binding 0.23
|
||||
spirv id : 77
|
||||
set : 0
|
||||
binding : 23
|
||||
type : VK_DESCRIPTOR_TYPE_STORAGE_BUFFER (UAV)
|
||||
count : 1
|
||||
counter : (set=0, binding=24, name=counter.var.MyAppendStructuredBuffer);
|
||||
accessed : false
|
||||
name : MyAppendStructuredBuffer (type.AppendStructuredBuffer.float)
|
||||
// size = 0, padded size = 0
|
||||
struct type.AppendStructuredBuffer.float {
|
||||
float ; // abs offset = 0, rel offset = 0, size = 0, padded size = 0
|
||||
} MyAppendStructuredBuffer;
|
||||
|
||||
|
||||
Binding 0.24
|
||||
spirv id : 78
|
||||
set : 0
|
||||
binding : 24
|
||||
type : VK_DESCRIPTOR_TYPE_STORAGE_BUFFER (UAV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : counter.var.MyAppendStructuredBuffer (type.ACSBuffer.counter)
|
||||
// size = 0, padded size = 0
|
||||
struct type.ACSBuffer.counter {
|
||||
int ; // abs offset = 0, rel offset = 0, size = 4, padded size = 4
|
||||
} counter.var.MyAppendStructuredBuffer;
|
||||
|
||||
|
||||
Binding 0.25
|
||||
spirv id : 81
|
||||
set : 0
|
||||
binding : 25
|
||||
type : VK_DESCRIPTOR_TYPE_STORAGE_BUFFER (UAV)
|
||||
count : 1
|
||||
counter : (set=0, binding=26, name=counter.var.MyConsumeStructuredBuffer);
|
||||
accessed : false
|
||||
name : MyConsumeStructuredBuffer (type.ConsumeStructuredBuffer.float)
|
||||
// size = 0, padded size = 0
|
||||
struct type.ConsumeStructuredBuffer.float {
|
||||
float ; // abs offset = 0, rel offset = 0, size = 0, padded size = 0
|
||||
} MyConsumeStructuredBuffer;
|
||||
|
||||
|
||||
Binding 0.26
|
||||
spirv id : 82
|
||||
set : 0
|
||||
binding : 26
|
||||
type : VK_DESCRIPTOR_TYPE_STORAGE_BUFFER (UAV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : counter.var.MyConsumeStructuredBuffer (type.ACSBuffer.counter)
|
||||
// size = 0, padded size = 0
|
||||
struct type.ACSBuffer.counter {
|
||||
int ; // abs offset = 0, rel offset = 0, size = 4, padded size = 4
|
||||
} counter.var.MyConsumeStructuredBuffer;
|
||||
|
||||
|
||||
Binding 0.27
|
||||
spirv id : 87
|
||||
set : 0
|
||||
binding : 27
|
||||
type : VK_DESCRIPTOR_TYPE_STORAGE_BUFFER (SRV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyByteAddressBuffer (type.ByteAddressBuffer)
|
||||
// size = 0, padded size = 0
|
||||
struct type.ByteAddressBuffer {
|
||||
uint ; // abs offset = 0, rel offset = 0, size = 0, padded size = 0
|
||||
} MyByteAddressBuffer;
|
||||
|
||||
|
||||
Binding 0.28
|
||||
spirv id : 90
|
||||
set : 0
|
||||
binding : 28
|
||||
type : VK_DESCRIPTOR_TYPE_STORAGE_BUFFER (UAV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyRWByteAddressBuffer (type.RWByteAddressBuffer)
|
||||
// size = 0, padded size = 0
|
||||
struct type.RWByteAddressBuffer {
|
||||
uint ; // abs offset = 0, rel offset = 0, size = 0, padded size = 0
|
||||
} MyRWByteAddressBuffer;
|
||||
|
||||
|
||||
@@ -0,0 +1,361 @@
|
||||
generator : Google spiregg
|
||||
entry point : main
|
||||
source lang : HLSL
|
||||
source lang ver : 600
|
||||
source file : hlsl/binding_types.hlsl
|
||||
shader stage : PS
|
||||
|
||||
|
||||
Input variables: 1
|
||||
|
||||
0:
|
||||
spirv id : 99
|
||||
location : (built-in) FragCoord
|
||||
type : float4
|
||||
semantic : SV_POSITION
|
||||
name :
|
||||
qualifier :
|
||||
|
||||
|
||||
Output variables: 1
|
||||
|
||||
0:
|
||||
spirv id : 103
|
||||
location : 0
|
||||
type : float4
|
||||
semantic : SV_TARGET
|
||||
name : out.var.SV_TARGET
|
||||
qualifier :
|
||||
|
||||
|
||||
Descriptor bindings: 29
|
||||
|
||||
Binding 0.0
|
||||
spirv id : 5
|
||||
set : 0
|
||||
binding : 0
|
||||
type : VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER (CBV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyCBuffer (type.MyCBuffer)
|
||||
// size = 16, padded size = 16
|
||||
struct type.MyCBuffer {
|
||||
float x; // abs offset = 0, rel offset = 0, size = 4, padded size = 16
|
||||
} MyCBuffer;
|
||||
|
||||
|
||||
Binding 0.1
|
||||
spirv id : 8
|
||||
set : 0
|
||||
binding : 1
|
||||
type : VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER (CBV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyConstantBuffer (type.ConstantBuffer.Data)
|
||||
// size = 16, padded size = 16
|
||||
struct type.ConstantBuffer.Data {
|
||||
float x; // abs offset = 0, rel offset = 0, size = 4, padded size = 16
|
||||
} MyConstantBuffer;
|
||||
|
||||
|
||||
Binding 0.2
|
||||
spirv id : 11
|
||||
set : 0
|
||||
binding : 2
|
||||
type : VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE (SRV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyTexture1D (type.1d.image)
|
||||
|
||||
Binding 0.3
|
||||
spirv id : 14
|
||||
set : 0
|
||||
binding : 3
|
||||
type : VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE (SRV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyTexture2D (type.2d.image)
|
||||
|
||||
Binding 0.4
|
||||
spirv id : 17
|
||||
set : 0
|
||||
binding : 4
|
||||
type : VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE (SRV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyTexture3D (type.3d.image)
|
||||
|
||||
Binding 0.5
|
||||
spirv id : 20
|
||||
set : 0
|
||||
binding : 5
|
||||
type : VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE (SRV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyTexture1DArray (type.1d.image.array)
|
||||
|
||||
Binding 0.6
|
||||
spirv id : 23
|
||||
set : 0
|
||||
binding : 6
|
||||
type : VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE (SRV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyTexture2DArray (type.2d.image.array)
|
||||
|
||||
Binding 0.7
|
||||
spirv id : 26
|
||||
set : 0
|
||||
binding : 7
|
||||
type : VK_DESCRIPTOR_TYPE_STORAGE_IMAGE (UAV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyRWTexture1D (type.1d.image)
|
||||
|
||||
Binding 0.8
|
||||
spirv id : 29
|
||||
set : 0
|
||||
binding : 8
|
||||
type : VK_DESCRIPTOR_TYPE_STORAGE_IMAGE (UAV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyRWTexture2D (type.2d.image)
|
||||
|
||||
Binding 0.9
|
||||
spirv id : 32
|
||||
set : 0
|
||||
binding : 9
|
||||
type : VK_DESCRIPTOR_TYPE_STORAGE_IMAGE (UAV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyRWTexture3D (type.3d.image)
|
||||
|
||||
Binding 0.10
|
||||
spirv id : 35
|
||||
set : 0
|
||||
binding : 10
|
||||
type : VK_DESCRIPTOR_TYPE_STORAGE_IMAGE (UAV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyRWTexture1DArray (type.1d.image.array)
|
||||
|
||||
Binding 0.11
|
||||
spirv id : 38
|
||||
set : 0
|
||||
binding : 11
|
||||
type : VK_DESCRIPTOR_TYPE_STORAGE_IMAGE (UAV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyRWTexture2DArray (type.2d.image.array)
|
||||
|
||||
Binding 0.12
|
||||
spirv id : 41
|
||||
set : 0
|
||||
binding : 12
|
||||
type : VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE (SRV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyTexture2DMS (type.2d.image)
|
||||
|
||||
Binding 0.13
|
||||
spirv id : 44
|
||||
set : 0
|
||||
binding : 13
|
||||
type : VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE (SRV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyTexture2DMSArray (type.2d.image.array)
|
||||
|
||||
Binding 0.14
|
||||
spirv id : 47
|
||||
set : 0
|
||||
binding : 14
|
||||
type : VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE (SRV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyTextureCube (type.cube.image)
|
||||
|
||||
Binding 0.15
|
||||
spirv id : 50
|
||||
set : 0
|
||||
binding : 15
|
||||
type : VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE (SRV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyTextureCubeArray (type.cube.image.array)
|
||||
|
||||
Binding 0.16
|
||||
spirv id : 53
|
||||
set : 0
|
||||
binding : 16
|
||||
type : VK_DESCRIPTOR_TYPE_STORAGE_BUFFER (SRV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyTBuffer (type.MyTBuffer)
|
||||
// size = 0, padded size = 0
|
||||
struct type.MyTBuffer {
|
||||
float q; // abs offset = 0, rel offset = 0, size = 4, padded size = 4
|
||||
} MyTBuffer;
|
||||
|
||||
|
||||
Binding 0.17
|
||||
spirv id : 57
|
||||
set : 0
|
||||
binding : 17
|
||||
type : VK_DESCRIPTOR_TYPE_STORAGE_BUFFER (SRV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyTextureBuffer (type.TextureBuffer.Data2)
|
||||
// size = 0, padded size = 0
|
||||
struct type.TextureBuffer.Data2 {
|
||||
float4 x; // abs offset = 0, rel offset = 0, size = 16, padded size = 16
|
||||
} MyTextureBuffer;
|
||||
|
||||
|
||||
Binding 0.18
|
||||
spirv id : 60
|
||||
set : 0
|
||||
binding : 18
|
||||
type : VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER (SRV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyBuffer (type.buffer.image)
|
||||
|
||||
Binding 0.19
|
||||
spirv id : 63
|
||||
set : 0
|
||||
binding : 19
|
||||
type : VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER (UAV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyRWBuffer (type.buffer.image)
|
||||
|
||||
Binding 0.20
|
||||
spirv id : 67
|
||||
set : 0
|
||||
binding : 20
|
||||
type : VK_DESCRIPTOR_TYPE_STORAGE_BUFFER (SRV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyStructuredBuffer (type.StructuredBuffer.float)
|
||||
// size = 0, padded size = 0
|
||||
struct type.StructuredBuffer.float {
|
||||
float ; // abs offset = 0, rel offset = 0, size = 0, padded size = 0
|
||||
} MyStructuredBuffer;
|
||||
|
||||
|
||||
Binding 0.21
|
||||
spirv id : 70
|
||||
set : 0
|
||||
binding : 21
|
||||
type : VK_DESCRIPTOR_TYPE_STORAGE_BUFFER (UAV)
|
||||
count : 1
|
||||
counter : (set=0, binding=22, name=counter.var.MyRWStructuredBuffer);
|
||||
accessed : false
|
||||
name : MyRWStructuredBuffer (type.RWStructuredBuffer.float)
|
||||
// size = 0, padded size = 0
|
||||
struct type.RWStructuredBuffer.float {
|
||||
float ; // abs offset = 0, rel offset = 0, size = 0, padded size = 0
|
||||
} MyRWStructuredBuffer;
|
||||
|
||||
|
||||
Binding 0.22
|
||||
spirv id : 74
|
||||
set : 0
|
||||
binding : 22
|
||||
type : VK_DESCRIPTOR_TYPE_STORAGE_BUFFER (UAV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : counter.var.MyRWStructuredBuffer (type.ACSBuffer.counter)
|
||||
// size = 0, padded size = 0
|
||||
struct type.ACSBuffer.counter {
|
||||
int ; // abs offset = 0, rel offset = 0, size = 4, padded size = 4
|
||||
} counter.var.MyRWStructuredBuffer;
|
||||
|
||||
|
||||
Binding 0.23
|
||||
spirv id : 77
|
||||
set : 0
|
||||
binding : 23
|
||||
type : VK_DESCRIPTOR_TYPE_STORAGE_BUFFER (UAV)
|
||||
count : 1
|
||||
counter : (set=0, binding=24, name=counter.var.MyAppendStructuredBuffer);
|
||||
accessed : false
|
||||
name : MyAppendStructuredBuffer (type.AppendStructuredBuffer.float)
|
||||
// size = 0, padded size = 0
|
||||
struct type.AppendStructuredBuffer.float {
|
||||
float ; // abs offset = 0, rel offset = 0, size = 0, padded size = 0
|
||||
} MyAppendStructuredBuffer;
|
||||
|
||||
|
||||
Binding 0.24
|
||||
spirv id : 78
|
||||
set : 0
|
||||
binding : 24
|
||||
type : VK_DESCRIPTOR_TYPE_STORAGE_BUFFER (UAV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : counter.var.MyAppendStructuredBuffer (type.ACSBuffer.counter)
|
||||
// size = 0, padded size = 0
|
||||
struct type.ACSBuffer.counter {
|
||||
int ; // abs offset = 0, rel offset = 0, size = 4, padded size = 4
|
||||
} counter.var.MyAppendStructuredBuffer;
|
||||
|
||||
|
||||
Binding 0.25
|
||||
spirv id : 81
|
||||
set : 0
|
||||
binding : 25
|
||||
type : VK_DESCRIPTOR_TYPE_STORAGE_BUFFER (UAV)
|
||||
count : 1
|
||||
counter : (set=0, binding=26, name=counter.var.MyConsumeStructuredBuffer);
|
||||
accessed : false
|
||||
name : MyConsumeStructuredBuffer (type.ConsumeStructuredBuffer.float)
|
||||
// size = 0, padded size = 0
|
||||
struct type.ConsumeStructuredBuffer.float {
|
||||
float ; // abs offset = 0, rel offset = 0, size = 0, padded size = 0
|
||||
} MyConsumeStructuredBuffer;
|
||||
|
||||
|
||||
Binding 0.26
|
||||
spirv id : 82
|
||||
set : 0
|
||||
binding : 26
|
||||
type : VK_DESCRIPTOR_TYPE_STORAGE_BUFFER (UAV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : counter.var.MyConsumeStructuredBuffer (type.ACSBuffer.counter)
|
||||
// size = 0, padded size = 0
|
||||
struct type.ACSBuffer.counter {
|
||||
int ; // abs offset = 0, rel offset = 0, size = 4, padded size = 4
|
||||
} counter.var.MyConsumeStructuredBuffer;
|
||||
|
||||
|
||||
Binding 0.27
|
||||
spirv id : 87
|
||||
set : 0
|
||||
binding : 27
|
||||
type : VK_DESCRIPTOR_TYPE_STORAGE_BUFFER (SRV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyByteAddressBuffer (type.ByteAddressBuffer)
|
||||
// size = 0, padded size = 0
|
||||
struct type.ByteAddressBuffer {
|
||||
uint ; // abs offset = 0, rel offset = 0, size = 0, padded size = 0
|
||||
} MyByteAddressBuffer;
|
||||
|
||||
|
||||
Binding 0.28
|
||||
spirv id : 90
|
||||
set : 0
|
||||
binding : 28
|
||||
type : VK_DESCRIPTOR_TYPE_STORAGE_BUFFER (UAV)
|
||||
count : 1
|
||||
accessed : false
|
||||
name : MyRWByteAddressBuffer (type.RWByteAddressBuffer)
|
||||
// size = 0, padded size = 0
|
||||
struct type.RWByteAddressBuffer {
|
||||
uint ; // abs offset = 0, rel offset = 0, size = 0, padded size = 0
|
||||
} MyRWByteAddressBuffer;
|
||||
|
||||
|
||||
45
lib/All/SPIRV-Reflect/tests/hlsl/cbuffer.hlsl
Normal file
45
lib/All/SPIRV-Reflect/tests/hlsl/cbuffer.hlsl
Normal file
@@ -0,0 +1,45 @@
|
||||
|
||||
struct OmniNormalStength {
|
||||
float Front;
|
||||
float Back;
|
||||
float Top;
|
||||
float Bottom;
|
||||
float Left;
|
||||
float Right;
|
||||
};
|
||||
|
||||
struct ClothProperties {
|
||||
float3 NormalAdjust;
|
||||
OmniNormalStength Strengths;
|
||||
uint Type;
|
||||
};
|
||||
|
||||
struct AuxData {
|
||||
ClothProperties ClothProperties[8];
|
||||
float3 ClothColors[8];
|
||||
float Scales[8];
|
||||
int EnableBitMask;
|
||||
};
|
||||
|
||||
struct MaterialData {
|
||||
float3 Color;
|
||||
float Specular;
|
||||
float Diffuse;
|
||||
AuxData AuxDatArray[10];
|
||||
};
|
||||
|
||||
cbuffer MyCBuffer {
|
||||
MaterialData Material[2][2][3];
|
||||
float4x4 ModelMatrix;
|
||||
float4x4 ProjectionMatrix;
|
||||
float Time;
|
||||
float3 Scale;
|
||||
float2 UvOffsets[12];
|
||||
//MaterialData Material[12];
|
||||
bool EnableTarget;
|
||||
};
|
||||
|
||||
float4 main(float4 pos : POSITION) : SV_Position
|
||||
{
|
||||
return float4(Time, 0, 0, 0);
|
||||
}
|
||||
BIN
lib/All/SPIRV-Reflect/tests/hlsl/cbuffer.spv
Normal file
BIN
lib/All/SPIRV-Reflect/tests/hlsl/cbuffer.spv
Normal file
Binary file not shown.
977
lib/All/SPIRV-Reflect/tests/hlsl/cbuffer.spv.yaml
Normal file
977
lib/All/SPIRV-Reflect/tests/hlsl/cbuffer.spv.yaml
Normal file
@@ -0,0 +1,977 @@
|
||||
%YAML 1.1
|
||||
---
|
||||
all_type_descriptions:
|
||||
- &td0
|
||||
id: 3
|
||||
op: 23
|
||||
type_name:
|
||||
struct_member_name: "Color"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000108 # VECTOR FLOAT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 3 }
|
||||
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: 2
|
||||
op: 22
|
||||
type_name:
|
||||
struct_member_name: "Specular"
|
||||
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: 2
|
||||
op: 22
|
||||
type_name:
|
||||
struct_member_name: "Diffuse"
|
||||
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: 3
|
||||
op: 23
|
||||
type_name:
|
||||
struct_member_name: "NormalAdjust"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000108 # VECTOR FLOAT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 3 }
|
||||
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: 2
|
||||
op: 22
|
||||
type_name:
|
||||
struct_member_name: "Front"
|
||||
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:
|
||||
- &td5
|
||||
id: 2
|
||||
op: 22
|
||||
type_name:
|
||||
struct_member_name: "Back"
|
||||
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: 2
|
||||
op: 22
|
||||
type_name:
|
||||
struct_member_name: "Top"
|
||||
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:
|
||||
- &td7
|
||||
id: 2
|
||||
op: 22
|
||||
type_name:
|
||||
struct_member_name: "Bottom"
|
||||
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:
|
||||
- &td8
|
||||
id: 2
|
||||
op: 22
|
||||
type_name:
|
||||
struct_member_name: "Left"
|
||||
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:
|
||||
- &td9
|
||||
id: 2
|
||||
op: 22
|
||||
type_name:
|
||||
struct_member_name: "Right"
|
||||
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:
|
||||
- &td10
|
||||
id: 4
|
||||
op: 30
|
||||
type_name: "OmniNormalStength"
|
||||
struct_member_name: "Strengths"
|
||||
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: 6
|
||||
members:
|
||||
- *td4
|
||||
- *td5
|
||||
- *td6
|
||||
- *td7
|
||||
- *td8
|
||||
- *td9
|
||||
- &td11
|
||||
id: 5
|
||||
op: 21
|
||||
type_name:
|
||||
struct_member_name: "Type"
|
||||
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: 8
|
||||
op: 28
|
||||
type_name: "ClothProperties"
|
||||
struct_member_name: "ClothProperties"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x30080000 # ARRAY 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: 1, dims: [8,], stride: 64 }
|
||||
member_count: 3
|
||||
members:
|
||||
- *td3
|
||||
- *td10
|
||||
- *td11
|
||||
- &td13
|
||||
id: 9
|
||||
op: 28
|
||||
type_name:
|
||||
struct_member_name: "ClothColors"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x20000108 # ARRAY VECTOR FLOAT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 3 }
|
||||
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: [8,], stride: 16 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td14
|
||||
id: 10
|
||||
op: 28
|
||||
type_name:
|
||||
struct_member_name: "Scales"
|
||||
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: [8,], stride: 16 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td15
|
||||
id: 11
|
||||
op: 21
|
||||
type_name:
|
||||
struct_member_name: "EnableBitMask"
|
||||
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:
|
||||
- &td16
|
||||
id: 14
|
||||
op: 28
|
||||
type_name: "AuxData"
|
||||
struct_member_name: "AuxDatArray"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x30080000 # ARRAY 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: 1, dims: [10,], stride: 784 }
|
||||
member_count: 4
|
||||
members:
|
||||
- *td12
|
||||
- *td13
|
||||
- *td14
|
||||
- *td15
|
||||
- &td17
|
||||
id: 20
|
||||
op: 28
|
||||
type_name: "MaterialData"
|
||||
struct_member_name: "Material"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x30080000 # ARRAY 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: 3, dims: [2,2,3,], stride: 7872 }
|
||||
member_count: 4
|
||||
members:
|
||||
- *td0
|
||||
- *td1
|
||||
- *td2
|
||||
- *td16
|
||||
- &td18
|
||||
id: 22
|
||||
op: 24
|
||||
type_name:
|
||||
struct_member_name: "ModelMatrix"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000308 # MATRIX VECTOR FLOAT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 4 }
|
||||
matrix: { column_count: 4, row_count: 4, stride: 16 }
|
||||
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:
|
||||
- &td19
|
||||
id: 22
|
||||
op: 24
|
||||
type_name:
|
||||
struct_member_name: "ProjectionMatrix"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000308 # MATRIX VECTOR FLOAT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 4 }
|
||||
matrix: { column_count: 4, row_count: 4, stride: 16 }
|
||||
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:
|
||||
- &td20
|
||||
id: 2
|
||||
op: 22
|
||||
type_name:
|
||||
struct_member_name: "Time"
|
||||
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:
|
||||
- &td21
|
||||
id: 3
|
||||
op: 23
|
||||
type_name:
|
||||
struct_member_name: "Scale"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000108 # VECTOR FLOAT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 3 }
|
||||
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:
|
||||
- &td22
|
||||
id: 25
|
||||
op: 28
|
||||
type_name:
|
||||
struct_member_name: "UvOffsets"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x20000108 # ARRAY 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: 1, dims: [12,], stride: 16 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td23
|
||||
id: 5
|
||||
op: 21
|
||||
type_name:
|
||||
struct_member_name: "EnableTarget"
|
||||
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:
|
||||
- &td24
|
||||
id: 26
|
||||
op: 30
|
||||
type_name: "type.MyCBuffer"
|
||||
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: 7
|
||||
members:
|
||||
- *td17
|
||||
- *td18
|
||||
- *td19
|
||||
- *td20
|
||||
- *td21
|
||||
- *td22
|
||||
- *td23
|
||||
- &td25
|
||||
id: 21
|
||||
op: 23
|
||||
type_name:
|
||||
struct_member_name:
|
||||
storage_class: -1 # NOT APPLICABLE
|
||||
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:
|
||||
all_block_variables:
|
||||
- &bv0
|
||||
name: "Color"
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 12
|
||||
padded_size: 12
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 3 }
|
||||
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: "Specular"
|
||||
offset: 12
|
||||
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: *td1
|
||||
- &bv2
|
||||
name: "Diffuse"
|
||||
offset: 16
|
||||
absolute_offset: 0
|
||||
size: 4
|
||||
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: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000001 # UNUSED
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td2
|
||||
- &bv3
|
||||
name: "NormalAdjust"
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 12
|
||||
padded_size: 16
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 3 }
|
||||
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: *td3
|
||||
- &bv4
|
||||
name: "Front"
|
||||
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: *td4
|
||||
- &bv5
|
||||
name: "Back"
|
||||
offset: 4
|
||||
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: *td5
|
||||
- &bv6
|
||||
name: "Top"
|
||||
offset: 8
|
||||
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: *td6
|
||||
- &bv7
|
||||
name: "Bottom"
|
||||
offset: 12
|
||||
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: *td7
|
||||
- &bv8
|
||||
name: "Left"
|
||||
offset: 16
|
||||
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: *td8
|
||||
- &bv9
|
||||
name: "Right"
|
||||
offset: 20
|
||||
absolute_offset: 0
|
||||
size: 4
|
||||
padded_size: 12
|
||||
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: *td9
|
||||
- &bv10
|
||||
name: "Strengths"
|
||||
offset: 16
|
||||
absolute_offset: 0
|
||||
size: 32
|
||||
padded_size: 32
|
||||
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: 6
|
||||
members:
|
||||
- *bv4
|
||||
- *bv5
|
||||
- *bv6
|
||||
- *bv7
|
||||
- *bv8
|
||||
- *bv9
|
||||
type_description: *td10
|
||||
- &bv11
|
||||
name: "Type"
|
||||
offset: 48
|
||||
absolute_offset: 0
|
||||
size: 4
|
||||
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: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000001 # UNUSED
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td11
|
||||
- &bv12
|
||||
name: "ClothProperties"
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 512
|
||||
padded_size: 512
|
||||
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: 1, dims: [8,], stride: 64 }
|
||||
flags: 0x00000001 # UNUSED
|
||||
member_count: 3
|
||||
members:
|
||||
- *bv3
|
||||
- *bv10
|
||||
- *bv11
|
||||
type_description: *td12
|
||||
- &bv13
|
||||
name: "ClothColors"
|
||||
offset: 512
|
||||
absolute_offset: 0
|
||||
size: 128
|
||||
padded_size: 128
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 3 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 1, dims: [8,], stride: 16 }
|
||||
flags: 0x00000001 # UNUSED
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td13
|
||||
- &bv14
|
||||
name: "Scales"
|
||||
offset: 640
|
||||
absolute_offset: 0
|
||||
size: 128
|
||||
padded_size: 128
|
||||
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: [8,], stride: 16 }
|
||||
flags: 0x00000001 # UNUSED
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td14
|
||||
- &bv15
|
||||
name: "EnableBitMask"
|
||||
offset: 768
|
||||
absolute_offset: 0
|
||||
size: 4
|
||||
padded_size: 16
|
||||
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: *td15
|
||||
- &bv16
|
||||
name: "AuxDatArray"
|
||||
offset: 32
|
||||
absolute_offset: 0
|
||||
size: 7840
|
||||
padded_size: 7840
|
||||
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: 1, dims: [10,], stride: 784 }
|
||||
flags: 0x00000001 # UNUSED
|
||||
member_count: 4
|
||||
members:
|
||||
- *bv12
|
||||
- *bv13
|
||||
- *bv14
|
||||
- *bv15
|
||||
type_description: *td16
|
||||
- &bv17
|
||||
name: "Material"
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 94464
|
||||
padded_size: 94464
|
||||
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: 3, dims: [2,2,3,], stride: 7872 }
|
||||
flags: 0x00000001 # UNUSED
|
||||
member_count: 4
|
||||
members:
|
||||
- *bv0
|
||||
- *bv1
|
||||
- *bv2
|
||||
- *bv16
|
||||
type_description: *td17
|
||||
- &bv18
|
||||
name: "ModelMatrix"
|
||||
offset: 94464
|
||||
absolute_offset: 94464
|
||||
size: 64
|
||||
padded_size: 64
|
||||
decorations: 0x00000004 # ROW_MAJOR
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 4 }
|
||||
matrix: { column_count: 4, row_count: 4, stride: 16 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000001 # UNUSED
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td18
|
||||
- &bv19
|
||||
name: "ProjectionMatrix"
|
||||
offset: 94528
|
||||
absolute_offset: 94528
|
||||
size: 64
|
||||
padded_size: 64
|
||||
decorations: 0x00000004 # ROW_MAJOR
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 4 }
|
||||
matrix: { column_count: 4, row_count: 4, stride: 16 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000001 # UNUSED
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td19
|
||||
- &bv20
|
||||
name: "Time"
|
||||
offset: 94592
|
||||
absolute_offset: 94592
|
||||
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: *td20
|
||||
- &bv21
|
||||
name: "Scale"
|
||||
offset: 94596
|
||||
absolute_offset: 94596
|
||||
size: 12
|
||||
padded_size: 12
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 3 }
|
||||
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: *td21
|
||||
- &bv22
|
||||
name: "UvOffsets"
|
||||
offset: 94608
|
||||
absolute_offset: 94608
|
||||
size: 192
|
||||
padded_size: 192
|
||||
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: 1, dims: [12,], stride: 16 }
|
||||
flags: 0x00000001 # UNUSED
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td22
|
||||
- &bv23
|
||||
name: "EnableTarget"
|
||||
offset: 94800
|
||||
absolute_offset: 94800
|
||||
size: 4
|
||||
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: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000001 # UNUSED
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td23
|
||||
- &bv24
|
||||
name: "MyCBuffer"
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 94816
|
||||
padded_size: 94816
|
||||
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: 7
|
||||
members:
|
||||
- *bv17
|
||||
- *bv18
|
||||
- *bv19
|
||||
- *bv20
|
||||
- *bv21
|
||||
- *bv22
|
||||
- *bv23
|
||||
type_description: *td24
|
||||
all_descriptor_bindings:
|
||||
- &db0
|
||||
spirv_id: 28
|
||||
name: "MyCBuffer"
|
||||
binding: 0
|
||||
input_attachment_index: 0
|
||||
set: 0
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
descriptor_type: 6 # VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER
|
||||
resource_type: 2 # CBV
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
block: *bv24 # "MyCBuffer"
|
||||
array: { dims_count: 0, dims: [] }
|
||||
accessed: 1
|
||||
uav_counter_id: 4294967295
|
||||
uav_counter_binding:
|
||||
type_description: *td24
|
||||
word_offset: { binding: 623, set: 619 }
|
||||
all_interface_variables:
|
||||
- &iv0
|
||||
spirv_id: 37
|
||||
name: "in.var.POSITION"
|
||||
location: 0
|
||||
storage_class: 1 # Input
|
||||
semantic: "POSITION"
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
built_in: -1 # ??? (-1)
|
||||
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: *td25
|
||||
word_offset: { location: 615 }
|
||||
- &iv1
|
||||
spirv_id: 41
|
||||
name:
|
||||
location: 4294967295
|
||||
storage_class: 3 # Output
|
||||
semantic: "SV_Position"
|
||||
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: *td25
|
||||
word_offset: { location: 0 }
|
||||
module:
|
||||
generator: 14 # Google spiregg
|
||||
entry_point_name: "main"
|
||||
entry_point_id: 32
|
||||
source_language: 5 # HLSL
|
||||
source_language_version: 600
|
||||
spirv_execution_model: 0 # Vertex
|
||||
shader_stage: 0x00000001 # VS
|
||||
descriptor_binding_count: 1
|
||||
descriptor_bindings:
|
||||
- *db0 # "MyCBuffer"
|
||||
descriptor_set_count: 1
|
||||
descriptor_sets:
|
||||
- set: 0
|
||||
binding_count: 1
|
||||
bindings:
|
||||
- *db0 # "MyCBuffer"
|
||||
input_variable_count: 1,
|
||||
input_variables:
|
||||
- *iv0 # "in.var.POSITION"
|
||||
output_variable_count: 1,
|
||||
output_variables:
|
||||
- *iv1 #
|
||||
push_constant_count: 0,
|
||||
push_constants:
|
||||
specialization_constant_count: 0,
|
||||
specialization_constants:
|
||||
...
|
||||
47
lib/All/SPIRV-Reflect/tests/hlsl/constantbuffer.hlsl
Normal file
47
lib/All/SPIRV-Reflect/tests/hlsl/constantbuffer.hlsl
Normal file
@@ -0,0 +1,47 @@
|
||||
|
||||
struct OmniNormalStength {
|
||||
float Front;
|
||||
float Back;
|
||||
float Top;
|
||||
float Bottom;
|
||||
float Left;
|
||||
float Right;
|
||||
};
|
||||
|
||||
struct ClothProperties {
|
||||
float3 NormalAdjust;
|
||||
OmniNormalStength Strengths;
|
||||
uint Type;
|
||||
};
|
||||
|
||||
struct AuxData {
|
||||
ClothProperties ClothProperties[8];
|
||||
float3 ClothColors[8];
|
||||
float Scales[8];
|
||||
int EnableBitMask;
|
||||
};
|
||||
|
||||
struct MaterialData {
|
||||
float3 Color;
|
||||
float Specular;
|
||||
float Diffuse;
|
||||
AuxData AuxDatArray[10];
|
||||
};
|
||||
|
||||
struct Constants {
|
||||
MaterialData Material[2][2][3];
|
||||
float4x4 ModelMatrix;
|
||||
float4x4 ProjectionMatrix;
|
||||
float Time;
|
||||
float3 Scale;
|
||||
float2 UvOffsets[12];
|
||||
//MaterialData Material[12];
|
||||
bool EnableTarget;
|
||||
};
|
||||
|
||||
ConstantBuffer<Constants> MyConstants : register(b0);
|
||||
|
||||
float4 main(float4 pos : POSITION) : SV_Position
|
||||
{
|
||||
return float4(MyConstants.Time, 0, 0, 0);
|
||||
}
|
||||
BIN
lib/All/SPIRV-Reflect/tests/hlsl/constantbuffer.spv
Normal file
BIN
lib/All/SPIRV-Reflect/tests/hlsl/constantbuffer.spv
Normal file
Binary file not shown.
1142
lib/All/SPIRV-Reflect/tests/hlsl/constantbuffer.spv.yaml
Normal file
1142
lib/All/SPIRV-Reflect/tests/hlsl/constantbuffer.spv.yaml
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,87 @@
|
||||
struct Nested5 {
|
||||
float d00;
|
||||
float d01;
|
||||
float d02;
|
||||
float d03;
|
||||
float d04;
|
||||
float d05;
|
||||
float d06;
|
||||
float d07;
|
||||
float d08;
|
||||
float d09;
|
||||
};
|
||||
|
||||
|
||||
struct Nested4 {
|
||||
float c00;
|
||||
float c01;
|
||||
float c02;
|
||||
float c03;
|
||||
float c04;
|
||||
Nested5 nested5_00;
|
||||
float c05;
|
||||
float c06;
|
||||
float c07;
|
||||
float c08;
|
||||
float c09;
|
||||
Nested5 nested5_01;
|
||||
};
|
||||
|
||||
|
||||
struct Nested3 {
|
||||
float b00;
|
||||
float b01;
|
||||
float b02;
|
||||
float b03;
|
||||
float b04;
|
||||
float b05;
|
||||
float b06;
|
||||
float b07;
|
||||
float b08;
|
||||
float b09;
|
||||
Nested4 nested4_00;
|
||||
};
|
||||
|
||||
struct Nested2 {
|
||||
Nested3 nested3_00;
|
||||
float a00;
|
||||
float a01;
|
||||
float a02;
|
||||
float a03;
|
||||
float a04;
|
||||
float a05;
|
||||
float a06;
|
||||
float a07;
|
||||
float a08;
|
||||
float a09;
|
||||
Nested4 nested4_00;
|
||||
};
|
||||
|
||||
struct Nested1 {
|
||||
Nested2 nested2_00;
|
||||
float word00;
|
||||
float word01;
|
||||
float word02;
|
||||
float word03;
|
||||
float word04;
|
||||
float word05;
|
||||
float word06;
|
||||
float word07;
|
||||
float word08;
|
||||
float word09;
|
||||
Nested2 nested2_01;
|
||||
};
|
||||
|
||||
struct Constants {
|
||||
float var00;
|
||||
float2 var01;
|
||||
Nested1 nested1;
|
||||
float Time;
|
||||
};
|
||||
|
||||
ConstantBuffer<Constants> MyConstants : register(b0);
|
||||
|
||||
float4 main(float4 pos : POSITION) : SV_Position
|
||||
{
|
||||
return float4(MyConstants.Time, 0, 0, 0);
|
||||
}
|
||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
22
lib/All/SPIRV-Reflect/tests/hlsl/counter_buffers.hlsl
Normal file
22
lib/All/SPIRV-Reflect/tests/hlsl/counter_buffers.hlsl
Normal file
@@ -0,0 +1,22 @@
|
||||
/*
|
||||
Build with DXC using -fspv-reflect to enable counter buffers
|
||||
|
||||
dxc -spirv -fspv-reflect -T ps_5_0 -Fo counter_buffers.spv counter_buffers.hlsl
|
||||
|
||||
*/
|
||||
|
||||
struct Data {
|
||||
float4 f4;
|
||||
int i;
|
||||
};
|
||||
|
||||
ConsumeStructuredBuffer<Data> MyBufferIn : register(u3, space2);
|
||||
AppendStructuredBuffer<Data> MyBufferOut : register(u4, space2);
|
||||
|
||||
float4 main(float4 PosCS : SV_Position) : SV_TARGET0
|
||||
{
|
||||
Data val = MyBufferIn.Consume();
|
||||
MyBufferOut.Append(val);
|
||||
|
||||
return val.f4;
|
||||
}
|
||||
BIN
lib/All/SPIRV-Reflect/tests/hlsl/counter_buffers.spv
Normal file
BIN
lib/All/SPIRV-Reflect/tests/hlsl/counter_buffers.spv
Normal file
Binary file not shown.
538
lib/All/SPIRV-Reflect/tests/hlsl/counter_buffers.spv.yaml
Normal file
538
lib/All/SPIRV-Reflect/tests/hlsl/counter_buffers.spv.yaml
Normal file
@@ -0,0 +1,538 @@
|
||||
%YAML 1.1
|
||||
---
|
||||
all_type_descriptions:
|
||||
- &td0
|
||||
id: 4
|
||||
op: 21
|
||||
type_name:
|
||||
struct_member_name:
|
||||
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:
|
||||
- &td1
|
||||
id: 10
|
||||
op: 30
|
||||
type_name: "type.ACSBuffer.counter"
|
||||
struct_member_name:
|
||||
storage_class: -1 # NOT APPLICABLE
|
||||
type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK
|
||||
decoration_flags: 0x00000002 # BUFFER_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: 3
|
||||
op: 23
|
||||
type_name:
|
||||
struct_member_name: "f4"
|
||||
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:
|
||||
- &td3
|
||||
id: 4
|
||||
op: 21
|
||||
type_name:
|
||||
struct_member_name: "i"
|
||||
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: 6
|
||||
op: 29
|
||||
type_name: "Data"
|
||||
struct_member_name:
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x30080000 # ARRAY 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: 1, dims: [0,], stride: 32 }
|
||||
member_count: 2
|
||||
members:
|
||||
- *td2
|
||||
- *td3
|
||||
- &td5
|
||||
id: 7
|
||||
op: 30
|
||||
type_name: "type.ConsumeStructuredBuffer.Data"
|
||||
struct_member_name:
|
||||
storage_class: -1 # NOT APPLICABLE
|
||||
type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK
|
||||
decoration_flags: 0x00000002 # BUFFER_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:
|
||||
- *td4
|
||||
- &td6
|
||||
id: 3
|
||||
op: 23
|
||||
type_name:
|
||||
struct_member_name: "f4"
|
||||
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:
|
||||
- &td7
|
||||
id: 4
|
||||
op: 21
|
||||
type_name:
|
||||
struct_member_name: "i"
|
||||
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:
|
||||
- &td8
|
||||
id: 6
|
||||
op: 29
|
||||
type_name: "Data"
|
||||
struct_member_name:
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x30080000 # ARRAY 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: 1, dims: [0,], stride: 32 }
|
||||
member_count: 2
|
||||
members:
|
||||
- *td6
|
||||
- *td7
|
||||
- &td9
|
||||
id: 13
|
||||
op: 30
|
||||
type_name: "type.AppendStructuredBuffer.Data"
|
||||
struct_member_name:
|
||||
storage_class: -1 # NOT APPLICABLE
|
||||
type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK
|
||||
decoration_flags: 0x00000002 # BUFFER_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:
|
||||
- *td8
|
||||
- &td10
|
||||
id: 3
|
||||
op: 23
|
||||
type_name:
|
||||
struct_member_name:
|
||||
storage_class: -1 # NOT APPLICABLE
|
||||
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:
|
||||
all_block_variables:
|
||||
- &bv0
|
||||
name:
|
||||
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: 0x00000000 # NONE
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td0
|
||||
- &bv1
|
||||
name: "counter.var.MyBufferIn"
|
||||
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:
|
||||
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: 0x00000000 # NONE
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td0
|
||||
- &bv3
|
||||
name: "counter.var.MyBufferOut"
|
||||
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:
|
||||
- *bv2
|
||||
type_description: *td1
|
||||
- &bv4
|
||||
name: "f4"
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 16
|
||||
padded_size: 16
|
||||
decorations: 0x00000000 # NONE
|
||||
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 }
|
||||
flags: 0x00000001 # UNUSED
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td2
|
||||
- &bv5
|
||||
name: "i"
|
||||
offset: 16
|
||||
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: *td3
|
||||
- &bv6
|
||||
name:
|
||||
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: 2
|
||||
members:
|
||||
- *bv4
|
||||
- *bv5
|
||||
type_description: *td4
|
||||
- &bv7
|
||||
name: "MyBufferIn"
|
||||
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:
|
||||
- *bv6
|
||||
type_description: *td5
|
||||
- &bv8
|
||||
name: "f4"
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 16
|
||||
padded_size: 16
|
||||
decorations: 0x00000000 # NONE
|
||||
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 }
|
||||
flags: 0x00000001 # UNUSED
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td6
|
||||
- &bv9
|
||||
name: "i"
|
||||
offset: 16
|
||||
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: *td7
|
||||
- &bv10
|
||||
name:
|
||||
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: 2
|
||||
members:
|
||||
- *bv8
|
||||
- *bv9
|
||||
type_description: *td8
|
||||
- &bv11
|
||||
name: "MyBufferOut"
|
||||
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:
|
||||
- *bv10
|
||||
type_description: *td9
|
||||
all_descriptor_bindings:
|
||||
- &db0
|
||||
spirv_id: 12
|
||||
name: "counter.var.MyBufferIn"
|
||||
binding: 0
|
||||
input_attachment_index: 0
|
||||
set: 2
|
||||
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 # "counter.var.MyBufferIn"
|
||||
array: { dims_count: 0, dims: [] }
|
||||
accessed: 1
|
||||
uav_counter_id: 4294967295
|
||||
uav_counter_binding:
|
||||
type_description: *td1
|
||||
word_offset: { binding: 333, set: 329 }
|
||||
- &db1
|
||||
spirv_id: 16
|
||||
name: "counter.var.MyBufferOut"
|
||||
binding: 1
|
||||
input_attachment_index: 0
|
||||
set: 2
|
||||
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: *bv3 # "counter.var.MyBufferOut"
|
||||
array: { dims_count: 0, dims: [] }
|
||||
accessed: 1
|
||||
uav_counter_id: 4294967295
|
||||
uav_counter_binding:
|
||||
type_description: *td1
|
||||
word_offset: { binding: 341, set: 337 }
|
||||
- &db2
|
||||
spirv_id: 9
|
||||
name: "MyBufferIn"
|
||||
binding: 3
|
||||
input_attachment_index: 0
|
||||
set: 2
|
||||
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: *bv7 # "MyBufferIn"
|
||||
array: { dims_count: 0, dims: [] }
|
||||
accessed: 1
|
||||
uav_counter_id: 12
|
||||
uav_counter_binding: *db0 # "counter.var.MyBufferIn"
|
||||
type_description: *td5
|
||||
word_offset: { binding: 317, set: 313 }
|
||||
- &db3
|
||||
spirv_id: 15
|
||||
name: "MyBufferOut"
|
||||
binding: 4
|
||||
input_attachment_index: 0
|
||||
set: 2
|
||||
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: *bv11 # "MyBufferOut"
|
||||
array: { dims_count: 0, dims: [] }
|
||||
accessed: 1
|
||||
uav_counter_id: 16
|
||||
uav_counter_binding: *db1 # "counter.var.MyBufferOut"
|
||||
type_description: *td9
|
||||
word_offset: { binding: 325, set: 321 }
|
||||
all_interface_variables:
|
||||
- &iv0
|
||||
spirv_id: 25
|
||||
name:
|
||||
location: 4294967295
|
||||
storage_class: 1 # Input
|
||||
semantic: "SV_Position"
|
||||
decoration_flags: 0x00000010 # BUILT_IN
|
||||
built_in: 15 # FragCoord
|
||||
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: *td10
|
||||
word_offset: { location: 0 }
|
||||
- &iv1
|
||||
spirv_id: 29
|
||||
name: "out.var.SV_TARGET0"
|
||||
location: 0
|
||||
storage_class: 3 # Output
|
||||
semantic: "SV_TARGET0"
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
built_in: -1 # ??? (-1)
|
||||
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: *td10
|
||||
word_offset: { location: 309 }
|
||||
module:
|
||||
generator: 14 # Google spiregg
|
||||
entry_point_name: "main"
|
||||
entry_point_id: 20
|
||||
source_language: 5 # HLSL
|
||||
source_language_version: 600
|
||||
spirv_execution_model: 4 # Fragment
|
||||
shader_stage: 0x00000010 # PS
|
||||
descriptor_binding_count: 4
|
||||
descriptor_bindings:
|
||||
- *db0 # "counter.var.MyBufferIn"
|
||||
- *db1 # "counter.var.MyBufferOut"
|
||||
- *db2 # "MyBufferIn"
|
||||
- *db3 # "MyBufferOut"
|
||||
descriptor_set_count: 1
|
||||
descriptor_sets:
|
||||
- set: 2
|
||||
binding_count: 4
|
||||
bindings:
|
||||
- *db0 # "counter.var.MyBufferIn"
|
||||
- *db1 # "counter.var.MyBufferOut"
|
||||
- *db2 # "MyBufferIn"
|
||||
- *db3 # "MyBufferOut"
|
||||
input_variable_count: 1,
|
||||
input_variables:
|
||||
- *iv0 #
|
||||
output_variable_count: 1,
|
||||
output_variables:
|
||||
- *iv1 # "out.var.SV_TARGET0"
|
||||
push_constant_count: 0,
|
||||
push_constants:
|
||||
specialization_constant_count: 0,
|
||||
specialization_constants:
|
||||
...
|
||||
5
lib/All/SPIRV-Reflect/tests/hlsl/localsize.hlsl
Normal file
5
lib/All/SPIRV-Reflect/tests/hlsl/localsize.hlsl
Normal file
@@ -0,0 +1,5 @@
|
||||
|
||||
[numthreads(16, 24, 4)]
|
||||
void csmain()
|
||||
{
|
||||
}
|
||||
BIN
lib/All/SPIRV-Reflect/tests/hlsl/localsize.spv
Normal file
BIN
lib/All/SPIRV-Reflect/tests/hlsl/localsize.spv
Normal file
Binary file not shown.
27
lib/All/SPIRV-Reflect/tests/hlsl/localsize.spv.yaml
Normal file
27
lib/All/SPIRV-Reflect/tests/hlsl/localsize.spv.yaml
Normal file
@@ -0,0 +1,27 @@
|
||||
%YAML 1.1
|
||||
---
|
||||
all_type_descriptions:
|
||||
all_block_variables:
|
||||
all_descriptor_bindings:
|
||||
all_interface_variables:
|
||||
module:
|
||||
generator: 14 # Google spiregg
|
||||
entry_point_name: "csmain"
|
||||
entry_point_id: 1
|
||||
source_language: 5 # HLSL
|
||||
source_language_version: 600
|
||||
spirv_execution_model: 5 # GLCompute
|
||||
shader_stage: 0x00000020 # CS
|
||||
descriptor_binding_count: 0
|
||||
descriptor_bindings:
|
||||
descriptor_set_count: 0
|
||||
descriptor_sets:
|
||||
input_variable_count: 0,
|
||||
input_variables:
|
||||
output_variable_count: 0,
|
||||
output_variables:
|
||||
push_constant_count: 0,
|
||||
push_constants:
|
||||
specialization_constant_count: 0,
|
||||
specialization_constants:
|
||||
...
|
||||
@@ -0,0 +1,64 @@
|
||||
/*
|
||||
Build with DXC using -O0 to preserve unused types:
|
||||
|
||||
dxc -spirv -O0 -T ps_5_0 -Fo matrix_major_order_hlsl.spv matrix_major_order_hlsl.hlsl
|
||||
|
||||
*/
|
||||
|
||||
|
||||
//
|
||||
// NOTE: 1xN and Nx1 matrices are aliased to floatN so they're not included.
|
||||
//
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Matrices without row / column major decoration
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
float2x2 mat_2x2;
|
||||
float2x3 mat_2x3;
|
||||
float2x4 mat_2x4;
|
||||
|
||||
float3x2 mat_3x2;
|
||||
float3x3 mat_3x3;
|
||||
float3x4 mat_3x4;
|
||||
|
||||
float4x2 mat_4x2;
|
||||
float4x3 mat_4x3;
|
||||
float4x4 mat_4x4;
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Matrices with row major decoration
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
row_major float2x2 row_major_my_mat_2x2;
|
||||
row_major float2x3 row_major_my_mat_2x3;
|
||||
row_major float2x4 row_major_my_mat_2x4;
|
||||
|
||||
row_major float3x2 row_major_my_mat_3x2;
|
||||
row_major float3x3 row_major_my_mat_3x3;
|
||||
row_major float3x4 row_major_my_mat_3x4;
|
||||
|
||||
row_major float4x2 row_major_my_mat_4x2;
|
||||
row_major float4x3 row_major_my_mat_4x3;
|
||||
row_major float4x4 row_major_my_mat_4x4;
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Matrices with column major decoration
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
column_major float2x2 column_major_my_mat_2x2;
|
||||
column_major float2x3 column_major_my_mat_2x3;
|
||||
column_major float2x4 column_major_my_mat_2x4;
|
||||
|
||||
column_major float3x2 column_major_my_mat_3x2;
|
||||
column_major float3x3 column_major_my_mat_3x3;
|
||||
column_major float3x4 column_major_my_mat_3x4;
|
||||
|
||||
column_major float4x2 column_major_my_mat_4x2;
|
||||
column_major float4x3 column_major_my_mat_4x3;
|
||||
column_major float4x4 column_major_my_mat_4x4;
|
||||
|
||||
float4 main(float4 pos : SV_POSITION) : SV_TARGET
|
||||
{
|
||||
return pos;
|
||||
}
|
||||
BIN
lib/All/SPIRV-Reflect/tests/hlsl/matrix_major_order_hlsl.spv
Normal file
BIN
lib/All/SPIRV-Reflect/tests/hlsl/matrix_major_order_hlsl.spv
Normal file
Binary file not shown.
1082
lib/All/SPIRV-Reflect/tests/hlsl/matrix_major_order_hlsl.spv.yaml
Normal file
1082
lib/All/SPIRV-Reflect/tests/hlsl/matrix_major_order_hlsl.spv.yaml
Normal file
File diff suppressed because it is too large
Load Diff
13
lib/All/SPIRV-Reflect/tests/hlsl/pushconstant.hlsl
Normal file
13
lib/All/SPIRV-Reflect/tests/hlsl/pushconstant.hlsl
Normal file
@@ -0,0 +1,13 @@
|
||||
|
||||
struct Constants_t {
|
||||
float3 Scale;
|
||||
float Time;
|
||||
float2 UvOffsets;
|
||||
};
|
||||
|
||||
[[vk::push_constant]] Constants_t g_PushConstants;
|
||||
|
||||
float4 main(float4 pos : POSITION) : SV_Position
|
||||
{
|
||||
return float4(g_PushConstants.Time, 0, 0, 0);
|
||||
}
|
||||
BIN
lib/All/SPIRV-Reflect/tests/hlsl/pushconstant.spv
Normal file
BIN
lib/All/SPIRV-Reflect/tests/hlsl/pushconstant.spv
Normal file
Binary file not shown.
202
lib/All/SPIRV-Reflect/tests/hlsl/pushconstant.spv.yaml
Normal file
202
lib/All/SPIRV-Reflect/tests/hlsl/pushconstant.spv.yaml
Normal file
@@ -0,0 +1,202 @@
|
||||
%YAML 1.1
|
||||
---
|
||||
all_type_descriptions:
|
||||
- &td0
|
||||
id: 9
|
||||
op: 23
|
||||
type_name:
|
||||
struct_member_name: "Scale"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000108 # VECTOR FLOAT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 3 }
|
||||
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: 22
|
||||
type_name:
|
||||
struct_member_name: "Time"
|
||||
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: 10
|
||||
op: 23
|
||||
type_name:
|
||||
struct_member_name: "UvOffsets"
|
||||
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:
|
||||
- &td3
|
||||
id: 4
|
||||
op: 30
|
||||
type_name: "type.PushConstant.Constants_t"
|
||||
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: 12
|
||||
op: 23
|
||||
type_name:
|
||||
struct_member_name:
|
||||
storage_class: -1 # NOT APPLICABLE
|
||||
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:
|
||||
all_block_variables:
|
||||
- &bv0
|
||||
name: "Scale"
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 12
|
||||
padded_size: 12
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 3 }
|
||||
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: "Time"
|
||||
offset: 12
|
||||
absolute_offset: 12
|
||||
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: *td1
|
||||
- &bv2
|
||||
name: "UvOffsets"
|
||||
offset: 16
|
||||
absolute_offset: 16
|
||||
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: 0x00000001 # UNUSED
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td2
|
||||
- &bv3
|
||||
name: "g_PushConstants"
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 24
|
||||
padded_size: 24
|
||||
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: 2
|
||||
name:
|
||||
location: 4294967295
|
||||
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 }
|
||||
module:
|
||||
generator: 14 # Google spiregg
|
||||
entry_point_name: "main"
|
||||
entry_point_id: 1
|
||||
source_language: 5 # HLSL
|
||||
source_language_version: 600
|
||||
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:
|
||||
- *iv0 #
|
||||
push_constant_count: 1,
|
||||
push_constants:
|
||||
- *bv3 # "g_PushConstants"
|
||||
specialization_constant_count: 0,
|
||||
specialization_constants:
|
||||
...
|
||||
51
lib/All/SPIRV-Reflect/tests/hlsl/semantics.hlsl
Normal file
51
lib/All/SPIRV-Reflect/tests/hlsl/semantics.hlsl
Normal file
@@ -0,0 +1,51 @@
|
||||
/*
|
||||
Build with DXC using -fspv-reflect to enable semantics
|
||||
|
||||
dxc -spirv -fspv-reflect -T ps_5_0 -Fo semantics.spv semantics.hlsl
|
||||
|
||||
*/
|
||||
|
||||
struct UBO {
|
||||
float4x4 XformMatrix;
|
||||
float3 Scale;
|
||||
float t;
|
||||
float2 uv;
|
||||
};
|
||||
|
||||
ConstantBuffer<UBO> MyConstants : register(b2, space2);
|
||||
|
||||
struct PSInput {
|
||||
float4 Position : SV_POSITION;
|
||||
float3 Normal : NORMAL;
|
||||
float3 Color : COLOR_00001;
|
||||
float Alpha : OPACITY_512;
|
||||
float4 Scaling : SCALE_987654321;
|
||||
float2 TexCoord0 : TEXCOORD0;
|
||||
float2 TexCoord1 : TEXCOORD1;
|
||||
float2 TexCoord2 : TEXCOORD2;
|
||||
};
|
||||
|
||||
struct PSOutput {
|
||||
float4 oColor0 : SV_TARGET0;
|
||||
float4 oColor1 : SV_TARGET1;
|
||||
float4 oColor2 : SV_TARGET2;
|
||||
float4 oColor3 : SV_TARGET3;
|
||||
float4 oColor4 : SV_TARGET4;
|
||||
float4 oColor5 : SV_TARGET5;
|
||||
float4 oColor6 : SV_TARGET6;
|
||||
float4 oColor7 : SV_TARGET7;
|
||||
};
|
||||
|
||||
PSOutput main(PSInput input, uint prim_id : SV_PRIMITIVEID)
|
||||
{
|
||||
PSOutput ret;
|
||||
ret.oColor0 = mul(MyConstants.XformMatrix, input.Position);
|
||||
ret.oColor1 = float4(input.Normal, 1) + float4(MyConstants.Scale, 0);
|
||||
ret.oColor2 = float4(input.Color, 1);
|
||||
ret.oColor3 = float4(0, 0, 0, input.Alpha);
|
||||
ret.oColor4 = input.Scaling;
|
||||
ret.oColor5 = float4(input.TexCoord0, 0, 0);
|
||||
ret.oColor6 = float4(input.TexCoord1, 0, 0);
|
||||
ret.oColor7 = float4(input.TexCoord2, 0, 0);
|
||||
return ret;
|
||||
}
|
||||
BIN
lib/All/SPIRV-Reflect/tests/hlsl/semantics.spv
Normal file
BIN
lib/All/SPIRV-Reflect/tests/hlsl/semantics.spv
Normal file
Binary file not shown.
630
lib/All/SPIRV-Reflect/tests/hlsl/semantics.spv.yaml
Normal file
630
lib/All/SPIRV-Reflect/tests/hlsl/semantics.spv.yaml
Normal file
@@ -0,0 +1,630 @@
|
||||
%YAML 1.1
|
||||
---
|
||||
all_type_descriptions:
|
||||
- &td0
|
||||
id: 4
|
||||
op: 24
|
||||
type_name:
|
||||
struct_member_name: "XformMatrix"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000308 # MATRIX VECTOR FLOAT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 4 }
|
||||
matrix: { column_count: 4, row_count: 4, stride: 16 }
|
||||
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: 5
|
||||
op: 23
|
||||
type_name:
|
||||
struct_member_name: "Scale"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000108 # VECTOR FLOAT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 3 }
|
||||
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: 2
|
||||
op: 22
|
||||
type_name:
|
||||
struct_member_name: "t"
|
||||
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: 6
|
||||
op: 23
|
||||
type_name:
|
||||
struct_member_name: "uv"
|
||||
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:
|
||||
- &td4
|
||||
id: 7
|
||||
op: 30
|
||||
type_name: "type.ConstantBuffer.UBO"
|
||||
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:
|
||||
- *td0
|
||||
- *td1
|
||||
- *td2
|
||||
- *td3
|
||||
- &td5
|
||||
id: 3
|
||||
op: 23
|
||||
type_name:
|
||||
struct_member_name:
|
||||
storage_class: -1 # NOT APPLICABLE
|
||||
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:
|
||||
- &td6
|
||||
id: 5
|
||||
op: 23
|
||||
type_name:
|
||||
struct_member_name:
|
||||
storage_class: -1 # NOT APPLICABLE
|
||||
type_flags: 0x00000108 # VECTOR FLOAT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 3 }
|
||||
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: 2
|
||||
op: 22
|
||||
type_name:
|
||||
struct_member_name:
|
||||
storage_class: -1 # NOT APPLICABLE
|
||||
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:
|
||||
- &td8
|
||||
id: 6
|
||||
op: 23
|
||||
type_name:
|
||||
struct_member_name:
|
||||
storage_class: -1 # NOT APPLICABLE
|
||||
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:
|
||||
- &td9
|
||||
id: 39
|
||||
op: 21
|
||||
type_name:
|
||||
struct_member_name:
|
||||
storage_class: -1 # NOT APPLICABLE
|
||||
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: "XformMatrix"
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 64
|
||||
padded_size: 64
|
||||
decorations: 0x00000004 # ROW_MAJOR
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 4 }
|
||||
matrix: { column_count: 4, row_count: 4, stride: 16 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
flags: 0x00000000 # NONE
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td0
|
||||
- &bv1
|
||||
name: "Scale"
|
||||
offset: 64
|
||||
absolute_offset: 64
|
||||
size: 12
|
||||
padded_size: 12
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 3 }
|
||||
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: *td1
|
||||
- &bv2
|
||||
name: "t"
|
||||
offset: 76
|
||||
absolute_offset: 76
|
||||
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: "uv"
|
||||
offset: 80
|
||||
absolute_offset: 80
|
||||
size: 8
|
||||
padded_size: 16
|
||||
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: 0x00000001 # UNUSED
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td3
|
||||
- &bv4
|
||||
name: "MyConstants"
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 96
|
||||
padded_size: 96
|
||||
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:
|
||||
- *bv0
|
||||
- *bv1
|
||||
- *bv2
|
||||
- *bv3
|
||||
type_description: *td4
|
||||
all_descriptor_bindings:
|
||||
- &db0
|
||||
spirv_id: 9
|
||||
name: "MyConstants"
|
||||
binding: 2
|
||||
input_attachment_index: 0
|
||||
set: 2
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
descriptor_type: 6 # VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER
|
||||
resource_type: 2 # CBV
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
block: *bv4 # "MyConstants"
|
||||
array: { dims_count: 0, dims: [] }
|
||||
accessed: 1
|
||||
uav_counter_id: 4294967295
|
||||
uav_counter_binding:
|
||||
type_description: *td4
|
||||
word_offset: { binding: 838, set: 834 }
|
||||
all_interface_variables:
|
||||
- &iv0
|
||||
spirv_id: 19
|
||||
name:
|
||||
location: 4294967295
|
||||
storage_class: 1 # Input
|
||||
semantic: "SV_POSITION"
|
||||
decoration_flags: 0x00000010 # BUILT_IN
|
||||
built_in: 15 # FragCoord
|
||||
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: *td5
|
||||
word_offset: { location: 0 }
|
||||
- &iv1
|
||||
spirv_id: 22
|
||||
name: "in.var.NORMAL"
|
||||
location: 0
|
||||
storage_class: 1 # Input
|
||||
semantic: "NORMAL"
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
built_in: -1 # ??? (-1)
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 3 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
format: 106 # VK_FORMAT_R32G32B32_SFLOAT
|
||||
type_description: *td6
|
||||
word_offset: { location: 774 }
|
||||
- &iv2
|
||||
spirv_id: 24
|
||||
name: "in.var.COLOR_1"
|
||||
location: 1
|
||||
storage_class: 1 # Input
|
||||
semantic: "COLOR_00001"
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
built_in: -1 # ??? (-1)
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 3 }
|
||||
matrix: { column_count: 0, row_count: 0, stride: 0 }
|
||||
array: { dims_count: 0, dims: [], stride: 0 }
|
||||
member_count: 0
|
||||
members:
|
||||
format: 106 # VK_FORMAT_R32G32B32_SFLOAT
|
||||
type_description: *td6
|
||||
word_offset: { location: 778 }
|
||||
- &iv3
|
||||
spirv_id: 27
|
||||
name: "in.var.OPACITY_512"
|
||||
location: 2
|
||||
storage_class: 1 # Input
|
||||
semantic: "OPACITY_512"
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
built_in: -1 # ??? (-1)
|
||||
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: *td7
|
||||
word_offset: { location: 782 }
|
||||
- &iv4
|
||||
spirv_id: 29
|
||||
name: "in.var.SCALE_987654321"
|
||||
location: 3
|
||||
storage_class: 1 # Input
|
||||
semantic: "SCALE_987654321"
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
built_in: -1 # ??? (-1)
|
||||
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: *td5
|
||||
word_offset: { location: 786 }
|
||||
- &iv5
|
||||
spirv_id: 32
|
||||
name: "in.var.TEXCOORD0"
|
||||
location: 4
|
||||
storage_class: 1 # Input
|
||||
semantic: "TEXCOORD0"
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
built_in: -1 # ??? (-1)
|
||||
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 }
|
||||
member_count: 0
|
||||
members:
|
||||
format: 103 # VK_FORMAT_R32G32_SFLOAT
|
||||
type_description: *td8
|
||||
word_offset: { location: 790 }
|
||||
- &iv6
|
||||
spirv_id: 34
|
||||
name: "in.var.TEXCOORD1"
|
||||
location: 5
|
||||
storage_class: 1 # Input
|
||||
semantic: "TEXCOORD1"
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
built_in: -1 # ??? (-1)
|
||||
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 }
|
||||
member_count: 0
|
||||
members:
|
||||
format: 103 # VK_FORMAT_R32G32_SFLOAT
|
||||
type_description: *td8
|
||||
word_offset: { location: 794 }
|
||||
- &iv7
|
||||
spirv_id: 36
|
||||
name: "in.var.TEXCOORD2"
|
||||
location: 6
|
||||
storage_class: 1 # Input
|
||||
semantic: "TEXCOORD2"
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
built_in: -1 # ??? (-1)
|
||||
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 }
|
||||
member_count: 0
|
||||
members:
|
||||
format: 103 # VK_FORMAT_R32G32_SFLOAT
|
||||
type_description: *td8
|
||||
word_offset: { location: 798 }
|
||||
- &iv8
|
||||
spirv_id: 43
|
||||
name:
|
||||
location: 4294967295
|
||||
storage_class: 1 # Input
|
||||
semantic: "SV_PRIMITIVEID"
|
||||
decoration_flags: 0x00000050 # FLAT BUILT_IN
|
||||
built_in: 7 # PrimitiveId
|
||||
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: 98 # VK_FORMAT_R32_UINT
|
||||
type_description: *td9
|
||||
word_offset: { location: 0 }
|
||||
- &iv9
|
||||
spirv_id: 49
|
||||
name: "out.var.SV_TARGET0"
|
||||
location: 0
|
||||
storage_class: 3 # Output
|
||||
semantic: "SV_TARGET0"
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
built_in: -1 # ??? (-1)
|
||||
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: *td5
|
||||
word_offset: { location: 802 }
|
||||
- &iv10
|
||||
spirv_id: 51
|
||||
name: "out.var.SV_TARGET1"
|
||||
location: 1
|
||||
storage_class: 3 # Output
|
||||
semantic: "SV_TARGET1"
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
built_in: -1 # ??? (-1)
|
||||
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: *td5
|
||||
word_offset: { location: 806 }
|
||||
- &iv11
|
||||
spirv_id: 53
|
||||
name: "out.var.SV_TARGET2"
|
||||
location: 2
|
||||
storage_class: 3 # Output
|
||||
semantic: "SV_TARGET2"
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
built_in: -1 # ??? (-1)
|
||||
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: *td5
|
||||
word_offset: { location: 810 }
|
||||
- &iv12
|
||||
spirv_id: 55
|
||||
name: "out.var.SV_TARGET3"
|
||||
location: 3
|
||||
storage_class: 3 # Output
|
||||
semantic: "SV_TARGET3"
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
built_in: -1 # ??? (-1)
|
||||
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: *td5
|
||||
word_offset: { location: 814 }
|
||||
- &iv13
|
||||
spirv_id: 57
|
||||
name: "out.var.SV_TARGET4"
|
||||
location: 4
|
||||
storage_class: 3 # Output
|
||||
semantic: "SV_TARGET4"
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
built_in: -1 # ??? (-1)
|
||||
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: *td5
|
||||
word_offset: { location: 818 }
|
||||
- &iv14
|
||||
spirv_id: 59
|
||||
name: "out.var.SV_TARGET5"
|
||||
location: 5
|
||||
storage_class: 3 # Output
|
||||
semantic: "SV_TARGET5"
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
built_in: -1 # ??? (-1)
|
||||
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: *td5
|
||||
word_offset: { location: 822 }
|
||||
- &iv15
|
||||
spirv_id: 61
|
||||
name: "out.var.SV_TARGET6"
|
||||
location: 6
|
||||
storage_class: 3 # Output
|
||||
semantic: "SV_TARGET6"
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
built_in: -1 # ??? (-1)
|
||||
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: *td5
|
||||
word_offset: { location: 826 }
|
||||
- &iv16
|
||||
spirv_id: 63
|
||||
name: "out.var.SV_TARGET7"
|
||||
location: 7
|
||||
storage_class: 3 # Output
|
||||
semantic: "SV_TARGET7"
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
built_in: -1 # ??? (-1)
|
||||
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: *td5
|
||||
word_offset: { location: 830 }
|
||||
module:
|
||||
generator: 14 # Google spiregg
|
||||
entry_point_name: "main"
|
||||
entry_point_id: 13
|
||||
source_language: 5 # HLSL
|
||||
source_language_version: 600
|
||||
spirv_execution_model: 4 # Fragment
|
||||
shader_stage: 0x00000010 # PS
|
||||
descriptor_binding_count: 1
|
||||
descriptor_bindings:
|
||||
- *db0 # "MyConstants"
|
||||
descriptor_set_count: 1
|
||||
descriptor_sets:
|
||||
- set: 2
|
||||
binding_count: 1
|
||||
bindings:
|
||||
- *db0 # "MyConstants"
|
||||
input_variable_count: 9,
|
||||
input_variables:
|
||||
- *iv0 #
|
||||
- *iv1 # "in.var.NORMAL"
|
||||
- *iv2 # "in.var.COLOR_1"
|
||||
- *iv3 # "in.var.OPACITY_512"
|
||||
- *iv4 # "in.var.SCALE_987654321"
|
||||
- *iv5 # "in.var.TEXCOORD0"
|
||||
- *iv6 # "in.var.TEXCOORD1"
|
||||
- *iv7 # "in.var.TEXCOORD2"
|
||||
- *iv8 #
|
||||
output_variable_count: 8,
|
||||
output_variables:
|
||||
- *iv9 # "out.var.SV_TARGET0"
|
||||
- *iv10 # "out.var.SV_TARGET1"
|
||||
- *iv11 # "out.var.SV_TARGET2"
|
||||
- *iv12 # "out.var.SV_TARGET3"
|
||||
- *iv13 # "out.var.SV_TARGET4"
|
||||
- *iv14 # "out.var.SV_TARGET5"
|
||||
- *iv15 # "out.var.SV_TARGET6"
|
||||
- *iv16 # "out.var.SV_TARGET7"
|
||||
push_constant_count: 0,
|
||||
push_constants:
|
||||
specialization_constant_count: 0,
|
||||
specialization_constants:
|
||||
...
|
||||
33
lib/All/SPIRV-Reflect/tests/hlsl/structuredbuffer.hlsl
Normal file
33
lib/All/SPIRV-Reflect/tests/hlsl/structuredbuffer.hlsl
Normal file
@@ -0,0 +1,33 @@
|
||||
|
||||
struct SepNormal {
|
||||
float x;
|
||||
float y;
|
||||
float z;
|
||||
};
|
||||
|
||||
struct Rgb {
|
||||
float r[5];
|
||||
float g[5];
|
||||
float b[5];
|
||||
};
|
||||
|
||||
struct Uv {
|
||||
float u;
|
||||
float v;
|
||||
};
|
||||
|
||||
struct Data {
|
||||
float3 Position;
|
||||
SepNormal Normal;
|
||||
Rgb Colors[3];
|
||||
Uv TexCoords;
|
||||
float Scales[3];
|
||||
uint Id;
|
||||
};
|
||||
|
||||
StructuredBuffer<Data> MyData : register(t0);
|
||||
|
||||
float4 main() : SV_Target
|
||||
{
|
||||
return float4(MyData[0].Position, 1);
|
||||
}
|
||||
BIN
lib/All/SPIRV-Reflect/tests/hlsl/structuredbuffer.spv
Normal file
BIN
lib/All/SPIRV-Reflect/tests/hlsl/structuredbuffer.spv
Normal file
Binary file not shown.
643
lib/All/SPIRV-Reflect/tests/hlsl/structuredbuffer.spv.yaml
Normal file
643
lib/All/SPIRV-Reflect/tests/hlsl/structuredbuffer.spv.yaml
Normal file
@@ -0,0 +1,643 @@
|
||||
%YAML 1.1
|
||||
---
|
||||
all_type_descriptions:
|
||||
- &td0
|
||||
id: 14
|
||||
op: 23
|
||||
type_name:
|
||||
struct_member_name: "Position"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x00000108 # VECTOR FLOAT
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
traits:
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 3 }
|
||||
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: 13
|
||||
op: 22
|
||||
type_name:
|
||||
struct_member_name: "x"
|
||||
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: 13
|
||||
op: 22
|
||||
type_name:
|
||||
struct_member_name: "y"
|
||||
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: 13
|
||||
op: 22
|
||||
type_name:
|
||||
struct_member_name: "z"
|
||||
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:
|
||||
- &td4
|
||||
id: 3
|
||||
op: 30
|
||||
type_name: "SepNormal"
|
||||
struct_member_name: "Normal"
|
||||
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: 3
|
||||
members:
|
||||
- *td1
|
||||
- *td2
|
||||
- *td3
|
||||
- &td5
|
||||
id: 9
|
||||
op: 28
|
||||
type_name:
|
||||
struct_member_name: "r"
|
||||
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: [5,], stride: 4 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td6
|
||||
id: 9
|
||||
op: 28
|
||||
type_name:
|
||||
struct_member_name: "g"
|
||||
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: [5,], stride: 4 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td7
|
||||
id: 9
|
||||
op: 28
|
||||
type_name:
|
||||
struct_member_name: "b"
|
||||
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: [5,], stride: 4 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td8
|
||||
id: 10
|
||||
op: 28
|
||||
type_name: "Rgb"
|
||||
struct_member_name: "Colors"
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x30080000 # ARRAY 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: 1, dims: [3,], stride: 60 }
|
||||
member_count: 3
|
||||
members:
|
||||
- *td5
|
||||
- *td6
|
||||
- *td7
|
||||
- &td9
|
||||
id: 13
|
||||
op: 22
|
||||
type_name:
|
||||
struct_member_name: "u"
|
||||
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:
|
||||
- &td10
|
||||
id: 13
|
||||
op: 22
|
||||
type_name:
|
||||
struct_member_name: "v"
|
||||
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:
|
||||
- &td11
|
||||
id: 5
|
||||
op: 30
|
||||
type_name: "Uv"
|
||||
struct_member_name: "TexCoords"
|
||||
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:
|
||||
- *td9
|
||||
- *td10
|
||||
- &td12
|
||||
id: 11
|
||||
op: 28
|
||||
type_name:
|
||||
struct_member_name: "Scales"
|
||||
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: [3,], stride: 4 }
|
||||
member_count: 0
|
||||
members:
|
||||
- &td13
|
||||
id: 15
|
||||
op: 21
|
||||
type_name:
|
||||
struct_member_name: "Id"
|
||||
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:
|
||||
- &td14
|
||||
id: 12
|
||||
op: 29
|
||||
type_name: "Data"
|
||||
struct_member_name:
|
||||
storage_class: 0 # UniformConstant
|
||||
type_flags: 0x30080000 # ARRAY 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: 1, dims: [0,], stride: 228 }
|
||||
member_count: 6
|
||||
members:
|
||||
- *td0
|
||||
- *td4
|
||||
- *td8
|
||||
- *td11
|
||||
- *td12
|
||||
- *td13
|
||||
- &td15
|
||||
id: 7
|
||||
op: 30
|
||||
type_name: "type.StructuredBuffer.Data"
|
||||
struct_member_name:
|
||||
storage_class: -1 # NOT APPLICABLE
|
||||
type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK
|
||||
decoration_flags: 0x00000002 # BUFFER_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:
|
||||
- *td14
|
||||
- &td16
|
||||
id: 21
|
||||
op: 23
|
||||
type_name:
|
||||
struct_member_name:
|
||||
storage_class: -1 # NOT APPLICABLE
|
||||
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:
|
||||
all_block_variables:
|
||||
- &bv0
|
||||
name: "Position"
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 12
|
||||
padded_size: 12
|
||||
decorations: 0x00000000 # NONE
|
||||
numeric:
|
||||
scalar: { width: 32, signedness: 0 }
|
||||
vector: { component_count: 3 }
|
||||
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: "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: *td1
|
||||
- &bv2
|
||||
name: "y"
|
||||
offset: 4
|
||||
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: "z"
|
||||
offset: 8
|
||||
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: *td3
|
||||
- &bv4
|
||||
name: "Normal"
|
||||
offset: 12
|
||||
absolute_offset: 0
|
||||
size: 12
|
||||
padded_size: 12
|
||||
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: 3
|
||||
members:
|
||||
- *bv1
|
||||
- *bv2
|
||||
- *bv3
|
||||
type_description: *td4
|
||||
- &bv5
|
||||
name: "r"
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 20
|
||||
padded_size: 20
|
||||
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: [5,], stride: 4 }
|
||||
flags: 0x00000001 # UNUSED
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td5
|
||||
- &bv6
|
||||
name: "g"
|
||||
offset: 20
|
||||
absolute_offset: 0
|
||||
size: 20
|
||||
padded_size: 20
|
||||
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: [5,], stride: 4 }
|
||||
flags: 0x00000001 # UNUSED
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td6
|
||||
- &bv7
|
||||
name: "b"
|
||||
offset: 40
|
||||
absolute_offset: 0
|
||||
size: 20
|
||||
padded_size: 20
|
||||
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: [5,], stride: 4 }
|
||||
flags: 0x00000001 # UNUSED
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td7
|
||||
- &bv8
|
||||
name: "Colors"
|
||||
offset: 24
|
||||
absolute_offset: 0
|
||||
size: 180
|
||||
padded_size: 180
|
||||
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: 1, dims: [3,], stride: 60 }
|
||||
flags: 0x00000001 # UNUSED
|
||||
member_count: 3
|
||||
members:
|
||||
- *bv5
|
||||
- *bv6
|
||||
- *bv7
|
||||
type_description: *td8
|
||||
- &bv9
|
||||
name: "u"
|
||||
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: *td9
|
||||
- &bv10
|
||||
name: "v"
|
||||
offset: 4
|
||||
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
|
||||
- &bv11
|
||||
name: "TexCoords"
|
||||
offset: 204
|
||||
absolute_offset: 0
|
||||
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:
|
||||
- *bv9
|
||||
- *bv10
|
||||
type_description: *td11
|
||||
- &bv12
|
||||
name: "Scales"
|
||||
offset: 212
|
||||
absolute_offset: 0
|
||||
size: 12
|
||||
padded_size: 12
|
||||
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: [3,], stride: 4 }
|
||||
flags: 0x00000001 # UNUSED
|
||||
member_count: 0
|
||||
members:
|
||||
type_description: *td12
|
||||
- &bv13
|
||||
name: "Id"
|
||||
offset: 224
|
||||
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: *td13
|
||||
- &bv14
|
||||
name:
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 228
|
||||
padded_size: 228
|
||||
decorations: 0x00000080 # NON_WRITABLE
|
||||
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:
|
||||
- *bv0
|
||||
- *bv4
|
||||
- *bv8
|
||||
- *bv11
|
||||
- *bv12
|
||||
- *bv13
|
||||
type_description: *td14
|
||||
- &bv15
|
||||
name: "MyData"
|
||||
offset: 0
|
||||
absolute_offset: 0
|
||||
size: 0
|
||||
padded_size: 0
|
||||
decorations: 0x00000080 # NON_WRITABLE
|
||||
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:
|
||||
- *bv14
|
||||
type_description: *td15
|
||||
all_descriptor_bindings:
|
||||
- &db0
|
||||
spirv_id: 8
|
||||
name: "MyData"
|
||||
binding: 0
|
||||
input_attachment_index: 0
|
||||
set: 0
|
||||
decoration_flags: 0x00000080 # NON_WRITABLE
|
||||
descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER
|
||||
resource_type: 4 # SRV
|
||||
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
|
||||
block: *bv15 # "MyData"
|
||||
array: { dims_count: 0, dims: [] }
|
||||
accessed: 1
|
||||
uav_counter_id: 4294967295
|
||||
uav_counter_binding:
|
||||
type_description: *td15
|
||||
word_offset: { binding: 233, set: 229 }
|
||||
all_interface_variables:
|
||||
- &iv0
|
||||
spirv_id: 2
|
||||
name: "out.var.SV_Target"
|
||||
location: 0
|
||||
storage_class: 3 # Output
|
||||
semantic:
|
||||
decoration_flags: 0x00000000 # NONE
|
||||
built_in: -1 # ??? (-1)
|
||||
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: *td16
|
||||
word_offset: { location: 225 }
|
||||
module:
|
||||
generator: 14 # Google spiregg
|
||||
entry_point_name: "main"
|
||||
entry_point_id: 1
|
||||
source_language: 5 # HLSL
|
||||
source_language_version: 600
|
||||
spirv_execution_model: 4 # Fragment
|
||||
shader_stage: 0x00000010 # PS
|
||||
descriptor_binding_count: 1
|
||||
descriptor_bindings:
|
||||
- *db0 # "MyData"
|
||||
descriptor_set_count: 1
|
||||
descriptor_sets:
|
||||
- set: 0
|
||||
binding_count: 1
|
||||
bindings:
|
||||
- *db0 # "MyData"
|
||||
input_variable_count: 0,
|
||||
input_variables:
|
||||
output_variable_count: 1,
|
||||
output_variables:
|
||||
- *iv0 # "out.var.SV_Target"
|
||||
push_constant_count: 0,
|
||||
push_constants:
|
||||
specialization_constant_count: 0,
|
||||
specialization_constants:
|
||||
...
|
||||
63
lib/All/SPIRV-Reflect/tests/hlsl/user_type.hlsl
Normal file
63
lib/All/SPIRV-Reflect/tests/hlsl/user_type.hlsl
Normal file
@@ -0,0 +1,63 @@
|
||||
StructuredBuffer<float> a;
|
||||
RWStructuredBuffer<float> b;
|
||||
AppendStructuredBuffer<float> c;
|
||||
ConsumeStructuredBuffer<float> d;
|
||||
Texture1D<float> e;
|
||||
Texture2D<float> f;
|
||||
Texture3D<float> g;
|
||||
TextureCube<float> h;
|
||||
Texture1DArray<float> i;
|
||||
Texture2DArray<float> j;
|
||||
Texture2DMS<float> k;
|
||||
Texture2DMSArray<float> l;
|
||||
TextureCubeArray<float> m;
|
||||
RWTexture1D<float> n;
|
||||
RWTexture2D<float> o;
|
||||
RWTexture3D<float> p;
|
||||
RWTexture1DArray<float> q;
|
||||
RWTexture2DArray<float> r;
|
||||
Buffer<float> s;
|
||||
RWBuffer<float> t;
|
||||
Texture2DMSArray<float4, 64> u;
|
||||
const Texture2DMSArray<float4, 64> v;
|
||||
Texture1D t1;
|
||||
Texture2D t2;
|
||||
|
||||
Texture1D<float> eArr[5];
|
||||
Texture2D<float> fArr[5];
|
||||
Texture3D<float> gArr[5];
|
||||
TextureCube<float> hArr[5];
|
||||
Texture1DArray<float> iArr[5];
|
||||
Texture2DArray<float> jArr[5];
|
||||
Texture2DMS<float> kArr[5];
|
||||
Texture2DMSArray<float> lArr[5];
|
||||
TextureCubeArray<float> mArr[5];
|
||||
RWTexture1D<float> nArr[5];
|
||||
RWTexture2D<float> oArr[5];
|
||||
RWTexture3D<float> pArr[5];
|
||||
RWTexture1DArray<float> qArr[5];
|
||||
RWTexture2DArray<float> rArr[5];
|
||||
Buffer<float> sArr[5];
|
||||
RWBuffer<float> tArr[5];
|
||||
|
||||
cbuffer MyCBuffer { float x; };
|
||||
|
||||
tbuffer MyTBuffer { float y; };
|
||||
|
||||
ByteAddressBuffer bab;
|
||||
|
||||
RWByteAddressBuffer rwbab;
|
||||
|
||||
RaytracingAccelerationStructure rs;
|
||||
|
||||
struct S {
|
||||
float f1;
|
||||
float3 f2;
|
||||
};
|
||||
|
||||
ConstantBuffer<S> cb;
|
||||
|
||||
TextureBuffer<S> tb;
|
||||
|
||||
void main(){
|
||||
}
|
||||
BIN
lib/All/SPIRV-Reflect/tests/hlsl/user_type.spv
Normal file
BIN
lib/All/SPIRV-Reflect/tests/hlsl/user_type.spv
Normal file
Binary file not shown.
3014
lib/All/SPIRV-Reflect/tests/hlsl/user_type.spv.yaml
Normal file
3014
lib/All/SPIRV-Reflect/tests/hlsl/user_type.spv.yaml
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user