tweeks
This commit is contained in:
@@ -176,9 +176,9 @@ public class ModelTextureBakery {
|
|||||||
//SOMEBODY PLEASE FUCKING EXPLAIN TO ME WHY MUST CLEAR THE FRAMEBUFFER HERE WHEN IT IS LITERALLY CLEARED AT THE START OF THE FRAME
|
//SOMEBODY PLEASE FUCKING EXPLAIN TO ME WHY MUST CLEAR THE FRAMEBUFFER HERE WHEN IT IS LITERALLY CLEARED AT THE START OF THE FRAME
|
||||||
// WITHOUT THIS, WATER DOESNT RENDER
|
// WITHOUT THIS, WATER DOESNT RENDER
|
||||||
//TODO: FIXME, WHAT THE ACTUAL FUCK
|
//TODO: FIXME, WHAT THE ACTUAL FUCK
|
||||||
//glBindFramebuffer(GL_FRAMEBUFFER, this.capture.framebuffer.id);
|
glBindFramebuffer(GL_FRAMEBUFFER, this.capture.framebuffer.id);
|
||||||
//glClearDepth(1);
|
glClearDepth(1);
|
||||||
//glClear(GL_DEPTH_BUFFER_BIT);
|
glClear(GL_DEPTH_BUFFER_BIT);
|
||||||
|
|
||||||
|
|
||||||
glBindFramebuffer(GL_FRAMEBUFFER, 0);
|
glBindFramebuffer(GL_FRAMEBUFFER, 0);
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ public class RenderService<T extends AbstractSectionRenderer<J, ?>, J extends Vi
|
|||||||
this.nodeManager.removeTopLevelNode(pos);
|
this.nodeManager.removeTopLevelNode(pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setup(Camera camera) {
|
public void tickModelService() {
|
||||||
this.modelService.tick();
|
this.modelService.tick();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -135,7 +135,7 @@ public class RenderService<T extends AbstractSectionRenderer<J, ?>, J extends Vi
|
|||||||
|
|
||||||
//Cap the number of consumed sections per frame to 40 + 2% of the queue size, cap of 200
|
//Cap the number of consumed sections per frame to 40 + 2% of the queue size, cap of 200
|
||||||
//int geoUpdateCap = 20;//Math.max(100, Math.min((int)(0.15*this.geometryUpdateQueue.count()), 260));
|
//int geoUpdateCap = 20;//Math.max(100, Math.min((int)(0.15*this.geometryUpdateQueue.count()), 260));
|
||||||
this.geometryUpdateQueue.consumeMillis(2);
|
this.geometryUpdateQueue.consumeMillis(1);
|
||||||
if (this.nodeManager.writeChanges(this.traversal.getNodeBuffer())) {//TODO: maybe move the node buffer out of the traversal class
|
if (this.nodeManager.writeChanges(this.traversal.getNodeBuffer())) {//TODO: maybe move the node buffer out of the traversal class
|
||||||
UploadStream.INSTANCE.commit();
|
UploadStream.INSTANCE.commit();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ import org.joml.Matrix4f;
|
|||||||
import org.lwjgl.opengl.GL11;
|
import org.lwjgl.opengl.GL11;
|
||||||
import org.lwjgl.system.MemoryUtil;
|
import org.lwjgl.system.MemoryUtil;
|
||||||
|
|
||||||
|
import java.lang.invoke.VarHandle;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
@@ -45,6 +46,7 @@ public class VoxyRenderSystem {
|
|||||||
private final PostProcessing postProcessing;
|
private final PostProcessing postProcessing;
|
||||||
private final WorldEngine worldIn;
|
private final WorldEngine worldIn;
|
||||||
private final RenderDistanceTracker renderDistanceTracker;
|
private final RenderDistanceTracker renderDistanceTracker;
|
||||||
|
private long runTimeNano = 0;
|
||||||
|
|
||||||
public VoxyRenderSystem(WorldEngine world, ServiceThreadPool threadPool) {
|
public VoxyRenderSystem(WorldEngine world, ServiceThreadPool threadPool) {
|
||||||
//Trigger the shared index buffer loading
|
//Trigger the shared index buffer loading
|
||||||
@@ -98,11 +100,18 @@ public class VoxyRenderSystem {
|
|||||||
downstream.submit();
|
downstream.submit();
|
||||||
downstream.tick();
|
downstream.tick();
|
||||||
}*/
|
}*/
|
||||||
|
VarHandle.fullFence();
|
||||||
|
long start = System.nanoTime();
|
||||||
|
VarHandle.fullFence();
|
||||||
|
|
||||||
this.renderDistanceTracker.setCenterAndProcess(camera.getBlockPos().getX(), camera.getBlockPos().getZ());
|
this.renderDistanceTracker.setCenterAndProcess(camera.getBlockPos().getX(), camera.getBlockPos().getZ());
|
||||||
|
|
||||||
this.renderer.setup(camera);
|
this.renderer.tickModelService();
|
||||||
PrintfDebugUtil.tick();
|
PrintfDebugUtil.tick();
|
||||||
|
|
||||||
|
VarHandle.fullFence();
|
||||||
|
this.runTimeNano = System.nanoTime() - start;
|
||||||
|
VarHandle.fullFence();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Matrix4f makeProjectionMatrix(float near, float far) {
|
private static Matrix4f makeProjectionMatrix(float near, float far) {
|
||||||
@@ -128,9 +137,9 @@ public class VoxyRenderSystem {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void renderOpaque(MatrixStack matrices, double cameraX, double cameraY, double cameraZ) {
|
public void renderOpaque(MatrixStack matrices, double cameraX, double cameraY, double cameraZ) {
|
||||||
|
VarHandle.fullFence();
|
||||||
//if (true) return;
|
long startTime = System.nanoTime();
|
||||||
|
VarHandle.fullFence();
|
||||||
|
|
||||||
if (IrisUtil.irisShadowActive()) {
|
if (IrisUtil.irisShadowActive()) {
|
||||||
return;
|
return;
|
||||||
@@ -200,11 +209,20 @@ public class VoxyRenderSystem {
|
|||||||
|
|
||||||
this.postProcessing.renderPost(projection, RenderSystem.getProjectionMatrix(), boundFB);
|
this.postProcessing.renderPost(projection, RenderSystem.getProjectionMatrix(), boundFB);
|
||||||
glBindFramebuffer(GlConst.GL_FRAMEBUFFER, oldFB);
|
glBindFramebuffer(GlConst.GL_FRAMEBUFFER, oldFB);
|
||||||
|
|
||||||
|
VarHandle.fullFence();
|
||||||
|
this.runTimeNano += System.nanoTime() - startTime;
|
||||||
|
VarHandle.fullFence();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private double role = 0;
|
||||||
public void addDebugInfo(List<String> debug) {
|
public void addDebugInfo(List<String> debug) {
|
||||||
debug.add("GlBuffer, Count/Size (mb): " + GlBuffer.getCount() + "/" + (GlBuffer.getTotalSize()/1_000_000));
|
debug.add("GlBuffer, Count/Size (mb): " + GlBuffer.getCount() + "/" + (GlBuffer.getTotalSize()/1_000_000));
|
||||||
this.renderer.addDebugData(debug);
|
this.renderer.addDebugData(debug);
|
||||||
|
double aa = (((double)(this.runTimeNano/1000))/1000);
|
||||||
|
|
||||||
|
this.role = Math.max(Math.ceil((this.role * 0.99 + (aa*0.01))*1000)/1000, aa);
|
||||||
|
debug.add("Voxy frame runtime (millis): " + this.role);
|
||||||
PrintfDebugUtil.addToOut(debug);
|
PrintfDebugUtil.addToOut(debug);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ public class VoxelIngestService {
|
|||||||
private final ConcurrentLinkedDeque<IngestSection> ingestQueue = new ConcurrentLinkedDeque<>();
|
private final ConcurrentLinkedDeque<IngestSection> ingestQueue = new ConcurrentLinkedDeque<>();
|
||||||
|
|
||||||
public VoxelIngestService(ServiceThreadPool pool) {
|
public VoxelIngestService(ServiceThreadPool pool) {
|
||||||
this.threads = pool.createServiceNoCleanup("Ingest service", 1000, ()-> this::processJob);
|
this.threads = pool.createServiceNoCleanup("Ingest service", 5000, ()-> this::processJob);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void processJob() {
|
private void processJob() {
|
||||||
|
|||||||
Reference in New Issue
Block a user