Skip to content

Commit 8007b05

Browse files
committed
Fixed flicker
1 parent ddb9dc2 commit 8007b05

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

src/main/java/me/cortex/voxy/client/core/rendering/AbstractFarWorldRenderer.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,8 @@ public abstract class AbstractFarWorldRenderer <T extends Viewport> {
5959

6060
private final List<T> viewports = new ArrayList<>();
6161

62+
protected IntArrayList updatedSectionIds;
63+
6264
private final ConcurrentLinkedDeque<Mapper.StateEntry> blockStateUpdates = new ConcurrentLinkedDeque<>();
6365
private final ConcurrentLinkedDeque<Mapper.BiomeEntry> biomeUpdates = new ConcurrentLinkedDeque<>();
6466
public AbstractFarWorldRenderer(int geometrySize, int maxSections) {
@@ -96,7 +98,7 @@ public void setupRender(Frustum frustum, Camera camera) {
9698
}
9799

98100
//Upload any new geometry
99-
this.geometry.uploadResults();
101+
this.updatedSectionIds = this.geometry.uploadResults();
100102
{
101103
boolean didHaveBiomeChange = false;
102104

src/main/java/me/cortex/voxy/client/core/rendering/Gl46FarWorldRenderer.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@
2929
import static org.lwjgl.opengl.GL42.GL_FRAMEBUFFER_BARRIER_BIT;
3030
import static org.lwjgl.opengl.GL43.*;
3131
import static org.lwjgl.opengl.GL43.GL_SHADER_STORAGE_BUFFER;
32-
import static org.lwjgl.opengl.GL45C.glBindTextureUnit;
33-
import static org.lwjgl.opengl.GL45C.glClearNamedBufferData;
32+
import static org.lwjgl.opengl.GL45.glBindTextureUnit;
33+
import static org.lwjgl.opengl.GL45.glClearNamedBufferData;
3434

3535
public class Gl46FarWorldRenderer extends AbstractFarWorldRenderer<Gl46Viewport> {
3636
private final Shader commandGen = Shader.make()
@@ -104,6 +104,13 @@ public void renderFarAwayOpaque(Gl46Viewport viewport) {
104104
return;
105105
}
106106

107+
{//Mark all of the updated sections as being visible from last frame
108+
for (int id : this.updatedSectionIds) {
109+
long ptr = UploadStream.INSTANCE.upload(viewport.visibilityBuffer, id * 4L, 4);
110+
MemoryUtil.memPutInt(ptr, viewport.frameId - 1);//(visible from last frame)
111+
}
112+
}
113+
107114
glDisable(GL_BLEND);
108115
glEnable(GL_DEPTH_TEST);
109116

0 commit comments

Comments
 (0)