change to structs

This commit is contained in:
mcrcortex
2025-07-15 00:13:56 +10:00
parent 653dbc8a3a
commit 03b425eeb8
3 changed files with 15 additions and 8 deletions

View File

@@ -3,9 +3,11 @@
layout(binding = 0) uniform sampler2D blockModelAtlas; layout(binding = 0) uniform sampler2D blockModelAtlas;
layout(binding = 2) uniform sampler2D depthTex; layout(binding = 2) uniform sampler2D depthTex;
layout(location=1) perprimitiveEXT in PerPrimData { struct PerPrimData {
uvec4 data; uvec4 data;
} primIn; };
layout(location=1) perprimitiveEXT PerPrimData primIn;
layout(location = 0) out vec4 outColour; layout(location = 0) out vec4 outColour;

View File

@@ -14,7 +14,7 @@
layout(local_size_x = MESH_SIZE, local_size_y=1, local_size_z=1) in; layout(local_size_x = MESH_SIZE, local_size_y=1, local_size_z=1) in;
layout(triangles, max_vertices=(MESH_SIZE*4), max_primitives=(MESH_SIZE*2)) out; layout(triangles, max_vertices=(MESH_SIZE*4), max_primitives=(MESH_SIZE*2)) out;
taskPayloadSharedEXT in Task { struct Task {
//Tightly packed, prefix sum + offset //Tightly packed, prefix sum + offset
//uvec4 binA; //uvec4 binA;
//uvec4 binB; //uvec4 binB;
@@ -25,11 +25,15 @@ taskPayloadSharedEXT in Task {
uint baseQuad; uint baseQuad;
uint quadCount; uint quadCount;
} task; };
layout(location=1) perprimitiveEXT out PerPrimData { taskPayloadSharedEXT Task task;
struct PerPrimData {
uvec4 data; uvec4 data;
} primOut[]; };
layout(location=1) perprimitiveEXT PerPrimData primOut[];
uint getQuadId() { uint getQuadId() {

View File

@@ -35,7 +35,7 @@ layout(binding = STATISTICS_BUFFER_BINDING, std430) restrict buffer statisticsBu
}; };
#endif #endif
taskPayloadSharedEXT out Task { struct Task {
//Tightly packed, prefix sum + offset //Tightly packed, prefix sum + offset
//uvec4 binA; //uvec4 binA;
//uvec4 binB; //uvec4 binB;
@@ -46,7 +46,8 @@ taskPayloadSharedEXT out Task {
uint baseQuad; uint baseQuad;
uint quadCount; uint quadCount;
} task; };
taskPayloadSharedEXT Task task;
#define BIN(br, cnt) if (br) { task.bins[i++] = (sum<<16)|off; sum += cnt; } off += cnt; #define BIN(br, cnt) if (br) { task.bins[i++] = (sum<<16)|off; sum += cnt; } off += cnt;
//#define BIN(br, cnt) if (br) { batch[i++] = (sum<<16)|off; sum += cnt; } off += cnt; //#define BIN(br, cnt) if (br) { batch[i++] = (sum<<16)|off; sum += cnt; } off += cnt;