From 2b39b13744b2c7a57e818b805249fc8f93492e58 Mon Sep 17 00:00:00 2001 From: Jozufozu Date: Fri, 8 Mar 2024 12:45:22 -0800 Subject: [PATCH] Reset off offsets - Fix frame uniforms reserving too much space - Fix level uniforms reserving too little space - Actually move flw_constantAmbientLight to level uniforms --- .../flywheel/backend/engine/uniform/FrameUniforms.java | 8 ++------ .../flywheel/backend/engine/uniform/LevelUniforms.java | 5 ++--- .../assets/flywheel/flywheel/internal/uniforms/frame.glsl | 2 -- .../assets/flywheel/flywheel/internal/uniforms/level.glsl | 2 ++ 4 files changed, 6 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/jozufozu/flywheel/backend/engine/uniform/FrameUniforms.java b/src/main/java/com/jozufozu/flywheel/backend/engine/uniform/FrameUniforms.java index 0b784ceec..6505e185b 100644 --- a/src/main/java/com/jozufozu/flywheel/backend/engine/uniform/FrameUniforms.java +++ b/src/main/java/com/jozufozu/flywheel/backend/engine/uniform/FrameUniforms.java @@ -8,21 +8,17 @@ import org.lwjgl.system.MemoryUtil; import com.jozufozu.flywheel.api.event.RenderContext; import com.jozufozu.flywheel.api.visualization.VisualizationManager; -import com.jozufozu.flywheel.backend.mixin.GameRendererAccessor; import com.jozufozu.flywheel.lib.math.MatrixMath; -import com.mojang.blaze3d.vertex.PoseStack; - import net.minecraft.client.Camera; import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.GameRenderer; import net.minecraft.core.BlockPos; import net.minecraft.core.Vec3i; import net.minecraft.world.level.Level; import net.minecraft.world.phys.Vec3; public class FrameUniforms implements UniformProvider { - public static final int SIZE = 1188; + public static final int SIZE = 800; public int debugMode; @Nullable @@ -135,7 +131,7 @@ public class FrameUniforms implements UniformProvider { MatrixMath.writeUnsafe(viewProjection, ptr + 64 * 6); MatrixMath.writeUnsafe(viewProjection.invert(viewProjectionInverse), ptr + 64 * 7); MatrixMath.writeUnsafe(viewProjectionPrev, ptr + 64 * 8); - return ptr + 64 * 15; + return ptr + 64 * 9; } private long writeCamera(long ptr, float camX, float camY, float camZ) { diff --git a/src/main/java/com/jozufozu/flywheel/backend/engine/uniform/LevelUniforms.java b/src/main/java/com/jozufozu/flywheel/backend/engine/uniform/LevelUniforms.java index d45817e07..68951fa55 100644 --- a/src/main/java/com/jozufozu/flywheel/backend/engine/uniform/LevelUniforms.java +++ b/src/main/java/com/jozufozu/flywheel/backend/engine/uniform/LevelUniforms.java @@ -5,14 +5,13 @@ import org.lwjgl.system.MemoryUtil; import com.jozufozu.flywheel.api.event.RenderContext; -import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.resources.ResourceKey; -import net.minecraft.world.phys.Vec3; import net.minecraft.world.level.Level; +import net.minecraft.world.phys.Vec3; public class LevelUniforms implements UniformProvider { - public static final int SIZE = 12 * 4 + 2 * 16; + public static final int SIZE = 13 * 4 + 2 * 16; @Nullable private RenderContext context; diff --git a/src/main/resources/assets/flywheel/flywheel/internal/uniforms/frame.glsl b/src/main/resources/assets/flywheel/flywheel/internal/uniforms/frame.glsl index aa0ec97f7..7e5ead7eb 100644 --- a/src/main/resources/assets/flywheel/flywheel/internal/uniforms/frame.glsl +++ b/src/main/resources/assets/flywheel/flywheel/internal/uniforms/frame.glsl @@ -34,8 +34,6 @@ layout(std140) uniform _FlwFrameUniforms { float flw_aspectRatio; float flw_viewDistance; - uint flw_constantAmbientLight; - uint flw_ticks; float flw_partialTick; diff --git a/src/main/resources/assets/flywheel/flywheel/internal/uniforms/level.glsl b/src/main/resources/assets/flywheel/flywheel/internal/uniforms/level.glsl index 178eef1a2..267f4b46a 100644 --- a/src/main/resources/assets/flywheel/flywheel/internal/uniforms/level.glsl +++ b/src/main/resources/assets/flywheel/flywheel/internal/uniforms/level.glsl @@ -22,6 +22,8 @@ layout(std140) uniform _FlwLevelUniforms { float flw_skyDarken; + uint flw_constantAmbientLight; + /** Use FLW_DIMENSION_* ids to determine the dimension. May eventually be implemented for custom dimensions. */ uint flw_dimension; };