From 46283fec0ec38aeefbd27d954b0832cefb915694 Mon Sep 17 00:00:00 2001 From: mcrcortex <18544518+MCRcortex@users.noreply.github.com> Date: Sun, 5 Jan 2025 02:14:33 +1000 Subject: [PATCH] Ref D --- .../voxy/client/core/rendering/RenderService.java | 14 +++++--------- .../DebugRenderer.java | 2 +- .../HierarchicalNodeManager.java | 6 +++--- .../HierarchicalOcclusionTraverser.java | 7 +++---- .../NodeChildRequest.java | 2 +- .../{hierachical2 => hierachical}/NodeCleaner.java | 8 +++----- .../NodeManager.java} | 6 +++--- .../{hierachical2 => hierachical}/NodeStore.java | 2 +- .../SingleNodeRequest.java | 2 +- .../section/BasicSectionGeometryManager.java | 6 ------ 10 files changed, 21 insertions(+), 34 deletions(-) rename src/main/java/me/cortex/voxy/client/core/rendering/{hierachical2 => hierachical}/DebugRenderer.java (98%) rename src/main/java/me/cortex/voxy/client/core/rendering/{hierachical2 => hierachical}/HierarchicalNodeManager.java (98%) rename src/main/java/me/cortex/voxy/client/core/rendering/{hierachical2 => hierachical}/HierarchicalOcclusionTraverser.java (98%) rename src/main/java/me/cortex/voxy/client/core/rendering/{hierachical2 => hierachical}/NodeChildRequest.java (98%) rename src/main/java/me/cortex/voxy/client/core/rendering/{hierachical2 => hierachical}/NodeCleaner.java (93%) rename src/main/java/me/cortex/voxy/client/core/rendering/{hierachical2/NodeManager2.java => hierachical/NodeManager.java} (99%) rename src/main/java/me/cortex/voxy/client/core/rendering/{hierachical2 => hierachical}/NodeStore.java (99%) rename src/main/java/me/cortex/voxy/client/core/rendering/{hierachical2 => hierachical}/SingleNodeRequest.java (93%) diff --git a/src/main/java/me/cortex/voxy/client/core/rendering/RenderService.java b/src/main/java/me/cortex/voxy/client/core/rendering/RenderService.java index 79883782..e52c1230 100644 --- a/src/main/java/me/cortex/voxy/client/core/rendering/RenderService.java +++ b/src/main/java/me/cortex/voxy/client/core/rendering/RenderService.java @@ -1,28 +1,24 @@ package me.cortex.voxy.client.core.rendering; -import com.mojang.datafixers.util.Either; import me.cortex.voxy.client.core.model.ModelBakerySubsystem; import me.cortex.voxy.client.core.model.ModelStore; import me.cortex.voxy.client.core.rendering.building.BuiltSection; import me.cortex.voxy.client.core.rendering.building.RenderGenerationService; import me.cortex.voxy.client.core.rendering.building.SectionUpdateRouter; -import me.cortex.voxy.client.core.rendering.hierachical2.HierarchicalNodeManager; -import me.cortex.voxy.client.core.rendering.hierachical2.HierarchicalOcclusionTraverser; -import me.cortex.voxy.client.core.rendering.hierachical2.NodeCleaner; -import me.cortex.voxy.client.core.rendering.hierachical2.NodeManager2; +import me.cortex.voxy.client.core.rendering.hierachical.HierarchicalOcclusionTraverser; +import me.cortex.voxy.client.core.rendering.hierachical.NodeCleaner; +import me.cortex.voxy.client.core.rendering.hierachical.NodeManager; import me.cortex.voxy.client.core.rendering.section.AbstractSectionRenderer; import me.cortex.voxy.client.core.rendering.section.IUsesMeshlets; import me.cortex.voxy.client.core.rendering.section.MDICSectionRenderer; import me.cortex.voxy.client.core.rendering.util.DownloadStream; import me.cortex.voxy.client.core.rendering.util.UploadStream; import me.cortex.voxy.common.util.MessageQueue; -import me.cortex.voxy.common.util.Pair; import me.cortex.voxy.common.world.WorldEngine; import me.cortex.voxy.common.thread.ServiceThreadPool; import me.cortex.voxy.common.world.WorldSection; import net.minecraft.client.render.Camera; -import java.io.File; import java.util.Arrays; import java.util.List; @@ -38,7 +34,7 @@ public class RenderService, J extends Vi private final ViewportSelector viewportSelector; private final AbstractSectionRenderer sectionRenderer; - private final NodeManager2 nodeManager; + private final NodeManager nodeManager; private final NodeCleaner nodeCleaner; private final HierarchicalOcclusionTraverser traversal; private final ModelBakerySubsystem modelService; @@ -57,7 +53,7 @@ public class RenderService, J extends Vi //Do something incredibly hacky, we dont need to keep the reference to this around, so just connect and discard var router = new SectionUpdateRouter(); - this.nodeManager = new NodeManager2(1<<21, this.sectionRenderer.getGeometryManager(), router); + this.nodeManager = new NodeManager(1<<21, this.sectionRenderer.getGeometryManager(), router); this.nodeCleaner = new NodeCleaner(this.nodeManager); this.sectionUpdateQueue = new MessageQueue<>(section -> { diff --git a/src/main/java/me/cortex/voxy/client/core/rendering/hierachical2/DebugRenderer.java b/src/main/java/me/cortex/voxy/client/core/rendering/hierachical/DebugRenderer.java similarity index 98% rename from src/main/java/me/cortex/voxy/client/core/rendering/hierachical2/DebugRenderer.java rename to src/main/java/me/cortex/voxy/client/core/rendering/hierachical/DebugRenderer.java index c7958d7f..2f75196f 100644 --- a/src/main/java/me/cortex/voxy/client/core/rendering/hierachical2/DebugRenderer.java +++ b/src/main/java/me/cortex/voxy/client/core/rendering/hierachical/DebugRenderer.java @@ -1,4 +1,4 @@ -package me.cortex.voxy.client.core.rendering.hierachical2; +package me.cortex.voxy.client.core.rendering.hierachical; import me.cortex.voxy.client.core.gl.GlBuffer; import me.cortex.voxy.client.core.gl.shader.Shader; diff --git a/src/main/java/me/cortex/voxy/client/core/rendering/hierachical2/HierarchicalNodeManager.java b/src/main/java/me/cortex/voxy/client/core/rendering/hierachical/HierarchicalNodeManager.java similarity index 98% rename from src/main/java/me/cortex/voxy/client/core/rendering/hierachical2/HierarchicalNodeManager.java rename to src/main/java/me/cortex/voxy/client/core/rendering/hierachical/HierarchicalNodeManager.java index c70b1fd1..a4893e62 100644 --- a/src/main/java/me/cortex/voxy/client/core/rendering/hierachical2/HierarchicalNodeManager.java +++ b/src/main/java/me/cortex/voxy/client/core/rendering/hierachical/HierarchicalNodeManager.java @@ -1,4 +1,4 @@ -package me.cortex.voxy.client.core.rendering.hierachical2; +package me.cortex.voxy.client.core.rendering.hierachical; import it.unimi.dsi.fastutil.ints.IntOpenHashSet; @@ -14,8 +14,8 @@ import me.cortex.voxy.common.world.WorldEngine; import net.caffeinemc.mods.sodium.client.util.MathUtil; import org.lwjgl.system.MemoryUtil; -import static me.cortex.voxy.client.core.rendering.hierachical2.NodeStore.EMPTY_GEOMETRY_ID; -import static me.cortex.voxy.client.core.rendering.hierachical2.NodeStore.NODE_ID_MSK; +import static me.cortex.voxy.client.core.rendering.hierachical.NodeStore.EMPTY_GEOMETRY_ID; +import static me.cortex.voxy.client.core.rendering.hierachical.NodeStore.NODE_ID_MSK; //Contains no logic to interface with the gpu, nor does it contain any gpu buffers public class HierarchicalNodeManager { diff --git a/src/main/java/me/cortex/voxy/client/core/rendering/hierachical2/HierarchicalOcclusionTraverser.java b/src/main/java/me/cortex/voxy/client/core/rendering/hierachical/HierarchicalOcclusionTraverser.java similarity index 98% rename from src/main/java/me/cortex/voxy/client/core/rendering/hierachical2/HierarchicalOcclusionTraverser.java rename to src/main/java/me/cortex/voxy/client/core/rendering/hierachical/HierarchicalOcclusionTraverser.java index 90bdc367..0038e64e 100644 --- a/src/main/java/me/cortex/voxy/client/core/rendering/hierachical2/HierarchicalOcclusionTraverser.java +++ b/src/main/java/me/cortex/voxy/client/core/rendering/hierachical/HierarchicalOcclusionTraverser.java @@ -1,6 +1,5 @@ -package me.cortex.voxy.client.core.rendering.hierachical2; +package me.cortex.voxy.client.core.rendering.hierachical; -import me.cortex.voxy.client.Voxy; import me.cortex.voxy.client.config.VoxyConfig; import me.cortex.voxy.client.core.gl.GlBuffer; import me.cortex.voxy.client.core.gl.shader.Shader; @@ -31,7 +30,7 @@ public class HierarchicalOcclusionTraverser { public static final int REQUEST_QUEUE_SIZE = 50; - private final NodeManager2 nodeManager; + private final NodeManager nodeManager; private final NodeCleaner nodeCleaner; private final GlBuffer requestBuffer; @@ -82,7 +81,7 @@ public class HierarchicalOcclusionTraverser { .compile(); - public HierarchicalOcclusionTraverser(NodeManager2 nodeManager, NodeCleaner nodeCleaner) { + public HierarchicalOcclusionTraverser(NodeManager nodeManager, NodeCleaner nodeCleaner) { this.nodeCleaner = nodeCleaner; this.nodeManager = nodeManager; this.requestBuffer = new GlBuffer(REQUEST_QUEUE_SIZE*8L+8).zero(); diff --git a/src/main/java/me/cortex/voxy/client/core/rendering/hierachical2/NodeChildRequest.java b/src/main/java/me/cortex/voxy/client/core/rendering/hierachical/NodeChildRequest.java similarity index 98% rename from src/main/java/me/cortex/voxy/client/core/rendering/hierachical2/NodeChildRequest.java rename to src/main/java/me/cortex/voxy/client/core/rendering/hierachical/NodeChildRequest.java index 7faa3b2b..5c5ec3d8 100644 --- a/src/main/java/me/cortex/voxy/client/core/rendering/hierachical2/NodeChildRequest.java +++ b/src/main/java/me/cortex/voxy/client/core/rendering/hierachical/NodeChildRequest.java @@ -1,4 +1,4 @@ -package me.cortex.voxy.client.core.rendering.hierachical2; +package me.cortex.voxy.client.core.rendering.hierachical; class NodeChildRequest { //Child states contain micrometadata in the top bits diff --git a/src/main/java/me/cortex/voxy/client/core/rendering/hierachical2/NodeCleaner.java b/src/main/java/me/cortex/voxy/client/core/rendering/hierachical/NodeCleaner.java similarity index 93% rename from src/main/java/me/cortex/voxy/client/core/rendering/hierachical2/NodeCleaner.java rename to src/main/java/me/cortex/voxy/client/core/rendering/hierachical/NodeCleaner.java index 75ac6ec5..0274348a 100644 --- a/src/main/java/me/cortex/voxy/client/core/rendering/hierachical2/NodeCleaner.java +++ b/src/main/java/me/cortex/voxy/client/core/rendering/hierachical/NodeCleaner.java @@ -1,12 +1,10 @@ -package me.cortex.voxy.client.core.rendering.hierachical2; +package me.cortex.voxy.client.core.rendering.hierachical; import it.unimi.dsi.fastutil.ints.IntArrayFIFOQueue; -import it.unimi.dsi.fastutil.ints.IntArrayList; import me.cortex.voxy.client.core.gl.GlBuffer; import me.cortex.voxy.client.core.gl.shader.AutoBindingShader; import me.cortex.voxy.client.core.gl.shader.Shader; import me.cortex.voxy.client.core.gl.shader.ShaderType; -import me.cortex.voxy.client.core.rendering.util.DownloadStream; import me.cortex.voxy.client.core.rendering.util.UploadStream; import org.lwjgl.system.MemoryUtil; @@ -44,11 +42,11 @@ public class NodeCleaner { private final IntArrayFIFOQueue idsToClear = new IntArrayFIFOQueue(); - private final NodeManager2 nodeManager; + private final NodeManager nodeManager; int visibilityId = 0; - public NodeCleaner(NodeManager2 nodeManager) { + public NodeCleaner(NodeManager nodeManager) { this.nodeManager = nodeManager; this.visibilityBuffer = new GlBuffer(nodeManager.maxNodeCount*4L).zero(); diff --git a/src/main/java/me/cortex/voxy/client/core/rendering/hierachical2/NodeManager2.java b/src/main/java/me/cortex/voxy/client/core/rendering/hierachical/NodeManager.java similarity index 99% rename from src/main/java/me/cortex/voxy/client/core/rendering/hierachical2/NodeManager2.java rename to src/main/java/me/cortex/voxy/client/core/rendering/hierachical/NodeManager.java index 52211bf2..dcd66f33 100644 --- a/src/main/java/me/cortex/voxy/client/core/rendering/hierachical2/NodeManager2.java +++ b/src/main/java/me/cortex/voxy/client/core/rendering/hierachical/NodeManager.java @@ -1,4 +1,4 @@ -package me.cortex.voxy.client.core.rendering.hierachical2; +package me.cortex.voxy.client.core.rendering.hierachical; import it.unimi.dsi.fastutil.ints.IntArrayList; import it.unimi.dsi.fastutil.ints.IntOpenHashSet; @@ -24,7 +24,7 @@ import java.util.List; // (issues related to this fix, lod updates from 0 children state to something children state, aswell as other way round) -public class NodeManager2 { +public class NodeManager { private static final boolean VERIFY_NODE_MANAGER_OPERATIONS = VoxyCommon.isVerificationFlagOn("nodeManager"); //Assumptions: // all nodes have children (i.e. all nodes have at least one child existence bit set at all times) @@ -72,7 +72,7 @@ public class NodeManager2 { private final IntArrayList topLevelNodeIds = new IntArrayList(); private int activeNodeRequestCount; - public NodeManager2(int maxNodeCount, AbstractSectionGeometryManager geometryManager, SectionUpdateRouter updateRouter) { + public NodeManager(int maxNodeCount, AbstractSectionGeometryManager geometryManager, SectionUpdateRouter updateRouter) { if (!MathUtil.isPowerOfTwo(maxNodeCount)) { throw new IllegalArgumentException("Max node count must be a power of 2"); } diff --git a/src/main/java/me/cortex/voxy/client/core/rendering/hierachical2/NodeStore.java b/src/main/java/me/cortex/voxy/client/core/rendering/hierachical/NodeStore.java similarity index 99% rename from src/main/java/me/cortex/voxy/client/core/rendering/hierachical2/NodeStore.java rename to src/main/java/me/cortex/voxy/client/core/rendering/hierachical/NodeStore.java index a9a1f12b..9650a9c7 100644 --- a/src/main/java/me/cortex/voxy/client/core/rendering/hierachical2/NodeStore.java +++ b/src/main/java/me/cortex/voxy/client/core/rendering/hierachical/NodeStore.java @@ -1,4 +1,4 @@ -package me.cortex.voxy.client.core.rendering.hierachical2; +package me.cortex.voxy.client.core.rendering.hierachical; import me.cortex.voxy.common.util.HierarchicalBitSet; import org.lwjgl.system.MemoryUtil; diff --git a/src/main/java/me/cortex/voxy/client/core/rendering/hierachical2/SingleNodeRequest.java b/src/main/java/me/cortex/voxy/client/core/rendering/hierachical/SingleNodeRequest.java similarity index 93% rename from src/main/java/me/cortex/voxy/client/core/rendering/hierachical2/SingleNodeRequest.java rename to src/main/java/me/cortex/voxy/client/core/rendering/hierachical/SingleNodeRequest.java index b6099c8d..1ac1b023 100644 --- a/src/main/java/me/cortex/voxy/client/core/rendering/hierachical2/SingleNodeRequest.java +++ b/src/main/java/me/cortex/voxy/client/core/rendering/hierachical/SingleNodeRequest.java @@ -1,4 +1,4 @@ -package me.cortex.voxy.client.core.rendering.hierachical2; +package me.cortex.voxy.client.core.rendering.hierachical; class SingleNodeRequest { private final long nodePos; diff --git a/src/main/java/me/cortex/voxy/client/core/rendering/section/BasicSectionGeometryManager.java b/src/main/java/me/cortex/voxy/client/core/rendering/section/BasicSectionGeometryManager.java index 5f71f8d6..6874db39 100644 --- a/src/main/java/me/cortex/voxy/client/core/rendering/section/BasicSectionGeometryManager.java +++ b/src/main/java/me/cortex/voxy/client/core/rendering/section/BasicSectionGeometryManager.java @@ -1,18 +1,12 @@ package me.cortex.voxy.client.core.rendering.section; -import it.unimi.dsi.fastutil.Pair; import it.unimi.dsi.fastutil.ints.IntOpenHashSet; import it.unimi.dsi.fastutil.objects.ObjectArrayList; import me.cortex.voxy.client.core.gl.GlBuffer; import me.cortex.voxy.client.core.rendering.building.BuiltSection; -import me.cortex.voxy.client.core.rendering.hierachical2.HierarchicalOcclusionTraverser; import me.cortex.voxy.client.core.rendering.util.BufferArena; -import me.cortex.voxy.client.core.rendering.util.DownloadStream; import me.cortex.voxy.client.core.rendering.util.UploadStream; import me.cortex.voxy.common.util.HierarchicalBitSet; -import me.cortex.voxy.common.util.MemoryBuffer; -import net.minecraft.client.MinecraftClient; -import net.minecraft.text.Text; import org.lwjgl.system.MemoryUtil; import java.util.function.Consumer;