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:
Tom Ray
2026-03-14 20:24:17 +01:00
parent 7c352bc280
commit 6695d46bcd
672 changed files with 238656 additions and 1821 deletions

View 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);
}

Binary file not shown.

View 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:
...

View 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;

View File

@@ -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;
}

View File

@@ -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:
...

View 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;
}

Binary file not shown.

View 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:
...

View 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)

View 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);
}

Binary file not shown.

File diff suppressed because it is too large Load Diff

View 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;

View 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;

View 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);
}

Binary file not shown.

View 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:
...

View 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);
}

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -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);
}

File diff suppressed because it is too large Load Diff

View 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;
}

Binary file not shown.

View 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:
...

View File

@@ -0,0 +1,5 @@
[numthreads(16, 24, 4)]
void csmain()
{
}

Binary file not shown.

View 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:
...

View File

@@ -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;
}

File diff suppressed because it is too large Load Diff

View 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);
}

Binary file not shown.

View 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:
...

View 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;
}

Binary file not shown.

View 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:
...

View 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);
}

Binary file not shown.

View 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:
...

View 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(){
}

Binary file not shown.

File diff suppressed because it is too large Load Diff