change things to use the constant

This commit is contained in:
mcrcortex
2025-05-01 14:36:28 +10:00
parent 1d7e985593
commit fbcef60f67
3 changed files with 18 additions and 14 deletions

View File

@@ -12,6 +12,7 @@ import me.cortex.voxy.client.core.rendering.util.HiZBuffer;
import me.cortex.voxy.client.core.rendering.Viewport;
import me.cortex.voxy.client.core.rendering.util.DownloadStream;
import me.cortex.voxy.client.core.rendering.util.UploadStream;
import me.cortex.voxy.common.world.WorldEngine;
import org.lwjgl.system.MemoryUtil;
import static me.cortex.voxy.client.core.rendering.util.PrintfDebugUtil.PRINTF_processor;
@@ -30,6 +31,10 @@ public class HierarchicalOcclusionTraverser {
public static final int REQUEST_QUEUE_SIZE = 50;
private static final int MAX_ITERATIONS = WorldEngine.MAX_LOD_LAYER+1;
private static final int LOCAL_WORK_SIZE_BITS = 5;
private final NodeManager nodeManager;
private final NodeCleaner nodeCleaner;
@@ -45,13 +50,10 @@ public class HierarchicalOcclusionTraverser {
private final Int2IntOpenHashMap topNode2idxMapping = new Int2IntOpenHashMap();//Used to store mapping from TLN to array index
private final int[] idx2topNodeMapping = new int[100_000];//Used to map idx to TLN id
private final GlBuffer topNodeIds = new GlBuffer(100_000*4).zero();
private final GlBuffer queueMetaBuffer = new GlBuffer(4*4*5).zero();
private final GlBuffer queueMetaBuffer = new GlBuffer(4*4*MAX_ITERATIONS).zero();
private final GlBuffer scratchQueueA = new GlBuffer(100_000*4).zero();
private final GlBuffer scratchQueueB = new GlBuffer(100_000*4).zero();
private static final int MAX_ITERATIONS = 5;
private static final int LOCAL_WORK_SIZE_BITS = 5;
private static int BINDING_COUNTER = 1;
private static final int SCENE_UNIFORM_BINDING = BINDING_COUNTER++;
private static final int REQUEST_QUEUE_BINDING = BINDING_COUNTER++;
@@ -220,12 +222,12 @@ public class HierarchicalOcclusionTraverser {
if (RenderStatistics.enabled) {
DownloadStream.INSTANCE.download(this.statisticsBuffer, down->{
for (int i = 0; i < 5; i++) {
for (int i = 0; i < MAX_ITERATIONS; i++) {
RenderStatistics.hierarchicalTraversalCounts[i] = MemoryUtil.memGetInt(down.address+i*4L);
}
for (int i = 0; i < 5; i++) {
RenderStatistics.hierarchicalRenderSections[i] = MemoryUtil.memGetInt(down.address+5*4L+i*4L);
for (int i = 0; i < MAX_ITERATIONS; i++) {
RenderStatistics.hierarchicalRenderSections[i] = MemoryUtil.memGetInt(down.address+MAX_ITERATIONS*4L+i*4L);
}
});
}
@@ -258,12 +260,12 @@ public class HierarchicalOcclusionTraverser {
glClearNamedBufferSubData(this.queueMetaBuffer.id, GL_RGBA32UI, 0, 16, GL_RGBA, GL_UNSIGNED_INT, new int[]{firstDispatchSize,1,1,initialQueueSize});
*/
{//TODO:FIXME: THIS IS BULLSHIT BY INTEL need to fix the clearing
long ptr = UploadStream.INSTANCE.upload(this.queueMetaBuffer, 0, 16*5);
long ptr = UploadStream.INSTANCE.upload(this.queueMetaBuffer, 0, 16*MAX_ITERATIONS);
MemoryUtil.memPutInt(ptr + 0, firstDispatchSize);
MemoryUtil.memPutInt(ptr + 4, 1);
MemoryUtil.memPutInt(ptr + 8, 1);
MemoryUtil.memPutInt(ptr + 12, this.topNodeCount);
for (int i = 1; i < 5; i++) {
for (int i = 1; i < MAX_ITERATIONS; i++) {
MemoryUtil.memPutInt(ptr + (i*16)+ 0, 0);
MemoryUtil.memPutInt(ptr + (i*16)+ 4, 1);
MemoryUtil.memPutInt(ptr + (i*16)+ 8, 1);

View File

@@ -12,6 +12,7 @@ import me.cortex.voxy.client.core.rendering.util.SharedIndexBuffer;
import me.cortex.voxy.client.core.rendering.util.DownloadStream;
import me.cortex.voxy.client.core.rendering.util.UploadStream;
import me.cortex.voxy.common.Logger;
import me.cortex.voxy.common.world.WorldEngine;
import org.joml.Matrix4f;
import org.lwjgl.system.MemoryUtil;
@@ -230,12 +231,13 @@ public class MDICSectionRenderer extends AbstractSectionRenderer<MDICViewport, B
if (RenderStatistics.enabled) {
DownloadStream.INSTANCE.download(this.statisticsBuffer, down->{
for (int i = 0; i < 5; i++) {
final int LAYERS = WorldEngine.MAX_LOD_LAYER+1;
for (int i = 0; i < LAYERS; i++) {
RenderStatistics.visibleSections[i] = MemoryUtil.memGetInt(down.address+i*4L);
}
for (int i = 0; i < 5; i++) {
RenderStatistics.quadCount[i] = MemoryUtil.memGetInt(down.address+5*4L+i*4L);
for (int i = 0; i < LAYERS; i++) {
RenderStatistics.quadCount[i] = MemoryUtil.memGetInt(down.address+LAYERS*4L+i*4L);
}
});
}

View File

@@ -41,8 +41,8 @@ layout(binding = RENDER_TRACKER_BINDING, std430) restrict writeonly buffer rende
#ifdef HAS_STATISTICS
layout(binding = STATISTICS_BUFFER_BINDING, std430) restrict buffer statisticsBuffer {
uint traversalCounts[5];
uint renderCounts[5];
uint traversalCounts[MAX_ITERATIONS];
uint renderCounts[MAX_ITERATIONS];
};
#endif