Reworking VertexData

This commit is contained in:
Dynamitos
2023-10-24 15:01:09 +02:00
parent a47f17481b
commit 28e5c9ff01
61 changed files with 1157 additions and 1144 deletions
+171
View File
@@ -0,0 +1,171 @@
#version 450
#extension GL_EXT_mesh_shader : require
layout(row_major) uniform;
layout(row_major) buffer;
#line 3 0
struct InstanceData_0
{
mat4x4 transformMatrix_0;
};
#line 25 1
layout(std430, binding = 0, set = 2) readonly buffer StructuredBuffer_InstanceData_t_0 {
InstanceData_0 _data[];
} scene_instances_0;
#line 20 2
struct MeshData_0
{
uint numMeshlets_0;
uint meshletOffset_0;
};
#line 8 0
layout(std430, binding = 1, set = 2) readonly buffer StructuredBuffer_MeshData_t_0 {
MeshData_0 _data[];
} scene_meshData_0;
#line 5 3
struct ViewParameter_0
{
mat4x4 viewMatrix_0;
mat4x4 projectionMatrix_0;
vec4 cameraPos_WS_0;
vec2 screenDimensions_0;
};
layout(binding = 0)
layout(std140) uniform _S1
{
mat4x4 viewMatrix_0;
mat4x4 projectionMatrix_0;
vec4 cameraPos_WS_0;
vec2 screenDimensions_0;
}viewParams_0;
#line 14 1
shared uint head_0;
#line 15
shared mat4x4 localToClip_0;
#line 26 3
struct Plane_0
{
vec3 n_0;
float d_0;
};
struct Frustum_0
{
Plane_0 sides_0[4];
Plane_0 basePlane_0;
};
#line 16 1
shared Frustum_0 viewFrustum_0;
#line 7
struct MeshPayload_0
{
uint instanceId_0[512];
uint meshletId_0[512];
};
taskPayloadSharedEXT MeshPayload_0 p_0;
#line 21
layout(local_size_x = 128, local_size_y = 1, local_size_z = 1) in;
void main()
{
#line 21
uint _S2 = gl_WorkGroupID.x;
InstanceData_0 instance_0 = scene_instances_0._data[_S2];
if(gl_LocalInvocationIndex == 0U)
{
head_0 = 0U;
localToClip_0 = ((((((instance_0.transformMatrix_0) * (viewParams_0.viewMatrix_0)))) * (viewParams_0.projectionMatrix_0)));
viewFrustum_0.sides_0[0].n_0 = vec3(1.0, 0.0, 0.0);
viewFrustum_0.sides_0[0].d_0 = -1.0;
viewFrustum_0.sides_0[1].n_0 = vec3(-1.0, 0.0, 0.0);
viewFrustum_0.sides_0[1].d_0 = 1.0;
viewFrustum_0.sides_0[2].n_0 = vec3(0.0, -1.0, 0.0);
viewFrustum_0.sides_0[2].d_0 = 1.0;
viewFrustum_0.sides_0[1].n_0 = vec3(0.0, 1.0, 0.0);
viewFrustum_0.sides_0[1].d_0 = -1.0;
viewFrustum_0.basePlane_0.n_0 = vec3(0.0, 0.0, 1.0);
viewFrustum_0.basePlane_0.d_0 = 0.0;
#line 26
}
#line 46
barrier();
MeshData_0 _S3 = scene_meshData_0._data[_S2];
#line 47
if(gl_LocalInvocationIndex < 512U)
{
#line 47
uint i_0 = gl_LocalInvocationIndex;
#line 47
for(;;)
{
uint m_0 = _S3.meshletOffset_0 + min(_S3.numMeshlets_0, i_0);
uint index_0;
((index_0) = atomicAdd((head_0), (1U)));
p_0.meshletId_0[index_0] = m_0;
p_0.instanceId_0[index_0] = _S2;
#line 48
uint i_1 = i_0 + 128U;
#line 48
if(i_1 < 512U)
{
}
else
{
#line 48
break;
}
#line 48
i_0 = i_1;
#line 48
}
#line 48
}
#line 60
barrier();
EmitMeshTasksEXT((head_0), (1U), (1U));
return;
}