Skip to content

Commit

Permalink
Port to 24w20a
Browse files Browse the repository at this point in the history
  • Loading branch information
IMS212 committed May 15, 2024
1 parent cd449b3 commit 11b7424
Show file tree
Hide file tree
Showing 13 changed files with 62 additions and 55 deletions.
8 changes: 4 additions & 4 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@ import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform

object Constants {
// https://fabricmc.net/develop/
const val MINECRAFT_VERSION: String = "1.20.5"
const val FABRIC_LOADER_VERSION: String = "0.15.10"
const val MINECRAFT_VERSION: String = "24w20a"
const val FABRIC_LOADER_VERSION: String = "0.15.11"
const val FABRIC_API_VERSION: String = "0.97.5+1.20.5"

// https://semver.org/
const val MOD_VERSION: String = "1.7.0"

const val CUSTOM_SODIUM: Boolean = false
const val CUSTOM_SODIUM_NAME: String = "sodium-fabric-0.5.8-snapshot+mc24w14a-local.jar"
const val CUSTOM_SODIUM: Boolean = true
const val CUSTOM_SODIUM_NAME: String = "sodium-fabric-0.5.8-snapshotmc24w20a-local.jar"

const val IS_SHARED_BETA: Boolean = false
const val ACTIVATE_RENDERDOC: Boolean = false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import net.irisshaders.batchedentityrendering.impl.TransparencyType;
import net.irisshaders.iris.shaderpack.materialmap.WorldRenderingSettings;
import net.minecraft.client.Camera;
import net.minecraft.client.DeltaTracker;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.GameRenderer;
import net.minecraft.client.renderer.LevelRenderer;
Expand Down Expand Up @@ -40,7 +41,7 @@ public class MixinLevelRenderer {
private Groupable groupable;

@Inject(method = "renderLevel", at = @At("HEAD"))
private void batchedentityrendering$beginLevelRender(float f, long l, boolean bl, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f matrix4f, Matrix4f matrix4f2, CallbackInfo ci) {
private void batchedentityrendering$beginLevelRender(DeltaTracker deltaTracker, boolean bl, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f matrix4f, Matrix4f matrix4f2, CallbackInfo ci) {
if (renderBuffers instanceof DrawCallTrackingRenderBuffers) {
((DrawCallTrackingRenderBuffers) renderBuffers).resetDrawCounts();
}
Expand All @@ -54,21 +55,21 @@ public class MixinLevelRenderer {
}

@Inject(method = "renderLevel", at = @At(value = "INVOKE", target = RENDER_ENTITY))
private void batchedentityrendering$preRenderEntity(float f, long l, boolean bl, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f matrix4f, Matrix4f matrix4f2, CallbackInfo ci) {
private void batchedentityrendering$preRenderEntity(DeltaTracker deltaTracker, boolean bl, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f matrix4f, Matrix4f matrix4f2, CallbackInfo ci) {
if (groupable != null) {
groupable.startGroup();
}
}

@Inject(method = "renderLevel", at = @At(value = "INVOKE", target = RENDER_ENTITY, shift = At.Shift.AFTER))
private void batchedentityrendering$postRenderEntity(float f, long l, boolean bl, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f matrix4f, Matrix4f matrix4f2, CallbackInfo ci) {
private void batchedentityrendering$postRenderEntity(DeltaTracker deltaTracker, boolean bl, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f matrix4f, Matrix4f matrix4f2, CallbackInfo ci) {
if (groupable != null) {
groupable.endGroup();
}
}

@Inject(method = "renderLevel", at = @At(value = "CONSTANT", args = "stringValue=translucent"), locals = LocalCapture.CAPTURE_FAILHARD)
private void batchedentityrendering$beginTranslucents(float f, long l, boolean bl, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f matrix4f, Matrix4f matrix4f2, CallbackInfo ci) {
private void batchedentityrendering$beginTranslucents(DeltaTracker deltaTracker, boolean bl, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f matrix4f, Matrix4f matrix4f2, CallbackInfo ci) {
if (renderBuffers.bufferSource() instanceof FullyBufferedMultiBufferSource fullyBufferedMultiBufferSource) {
fullyBufferedMultiBufferSource.readyUp();
}
Expand All @@ -89,14 +90,14 @@ public class MixinLevelRenderer {


@Inject(method = "renderLevel", at = @At(value = "CONSTANT", args = "stringValue=translucent", shift = At.Shift.AFTER), locals = LocalCapture.CAPTURE_FAILHARD)
private void batchedentityrendering$endTranslucents(float f, long l, boolean bl, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f matrix4f, Matrix4f matrix4f2, CallbackInfo ci) {
private void batchedentityrendering$endTranslucents(DeltaTracker deltaTracker, boolean bl, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f matrix4f, Matrix4f matrix4f2, CallbackInfo ci) {
if (WorldRenderingSettings.INSTANCE.shouldSeparateEntityDraws()) {
this.renderBuffers.bufferSource().endBatch();
}
}

@Inject(method = "renderLevel", at = @At("RETURN"))
private void batchedentityrendering$endLevelRender(float f, long l, boolean bl, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f matrix4f, Matrix4f matrix4f2, CallbackInfo ci) {
private void batchedentityrendering$endLevelRender(DeltaTracker deltaTracker, boolean bl, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f matrix4f, Matrix4f matrix4f2, CallbackInfo ci) {
((RenderBuffersExt) renderBuffers).endLevelRendering();
groupable = null;
}
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/net/irisshaders/iris/Iris.java
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ public class Iris {

static {
if (!BuildConfig.ACTIVATE_RENDERDOC && FabricLoader.getInstance().isDevelopmentEnvironment() && System.getProperty("user.name").contains("ims") && Util.getPlatform() == Util.OS.LINUX) {
Configuration.GLFW_LIBRARY_NAME.set("/usr/lib/libglfw.so");
//Configuration.GLFW_LIBRARY_NAME.set("/usr/lib/libglfw.so");
}
}

Expand Down
10 changes: 6 additions & 4 deletions src/main/java/net/irisshaders/iris/mixin/MixinGameRenderer.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
import net.irisshaders.iris.api.v0.IrisApi;
import net.irisshaders.iris.uniforms.CapturedRenderingState;
import net.irisshaders.iris.uniforms.SystemTimeUniforms;
import net.minecraft.Util;
import net.minecraft.client.DeltaTracker;
import net.minecraft.client.Minecraft;
import net.minecraft.client.player.LocalPlayer;
import net.minecraft.client.renderer.GameRenderer;
Expand Down Expand Up @@ -328,11 +330,11 @@ public class MixinGameRenderer {
}

@Inject(method = "render", at = @At("HEAD"))
private void iris$startFrame(float tickDelta, long startTime, boolean pBoolean2, CallbackInfo ci) {
private void iris$startFrame(DeltaTracker deltaTracker, boolean bl, CallbackInfo ci) {
// This allows certain functions like float smoothing to function outside a world.
CapturedRenderingState.INSTANCE.setRealTickDelta(tickDelta);
CapturedRenderingState.INSTANCE.setRealTickDelta(deltaTracker.getGameTimeDeltaPartialTick(true));
SystemTimeUniforms.COUNTER.beginFrame();
SystemTimeUniforms.TIMER.beginFrame(startTime);
SystemTimeUniforms.TIMER.beginFrame(Util.getNanos());
}

@Inject(method = {
Expand Down Expand Up @@ -469,7 +471,7 @@ private static void override(ShaderKey key, CallbackInfoReturnable<ShaderInstanc
}

@Inject(method = "renderLevel", at = @At("TAIL"))
private void iris$runColorSpace(float f, long l, CallbackInfo ci) {
private void iris$runColorSpace(DeltaTracker deltaTracker, CallbackInfo ci) {
Iris.getPipelineManager().getPipeline().ifPresent(WorldRenderingPipeline::finalizeGameRendering);
}

Expand Down
38 changes: 19 additions & 19 deletions src/main/java/net/irisshaders/iris/mixin/MixinLevelRenderer.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import net.irisshaders.iris.uniforms.SystemTimeUniforms;
import net.minecraft.ChatFormatting;
import net.minecraft.client.Camera;
import net.minecraft.client.DeltaTracker;
import net.minecraft.client.Minecraft;
import net.minecraft.client.multiplayer.ClientLevel;
import net.minecraft.client.renderer.GameRenderer;
Expand Down Expand Up @@ -74,16 +75,15 @@ public class MixinLevelRenderer {
// This is important or else very odd issues will happen with shaders that have a final pass that doesn't write to
// all pixels.
@Inject(method = "renderLevel", at = @At("HEAD"))
private void iris$setupPipeline(float tickDelta, long startTime, boolean renderBlockOutline,
private void iris$setupPipeline(DeltaTracker deltaTracker, boolean renderBlockOutline,
Camera camera, GameRenderer gameRenderer, LightTexture lightTexture,
Matrix4f modelView, Matrix4f projection, CallbackInfo callback) {
DHCompat.checkFrame();

IrisTimeUniforms.updateTime();
CapturedRenderingState.INSTANCE.setGbufferModelView(modelView);
CapturedRenderingState.INSTANCE.setGbufferProjection(projection);
TickRateManager lvTickRateManager10 = this.minecraft.level.tickRateManager();
float fakeTickDelta = lvTickRateManager10.runsNormally() ? tickDelta : 1.0F;
float fakeTickDelta = deltaTracker.getGameTimeDeltaPartialTick(false);
CapturedRenderingState.INSTANCE.setTickDelta(fakeTickDelta);
CapturedRenderingState.INSTANCE.setCloudTime((ticks + fakeTickDelta) * 0.03F);

Expand All @@ -105,7 +105,7 @@ public class MixinLevelRenderer {
// This is important or else very odd issues will happen with shaders that have a final pass that doesn't write to
// all pixels.
@Inject(method = "renderLevel", at = @At(value = "INVOKE", target = CLEAR, shift = At.Shift.AFTER, remap = false))
private void iris$beginLevelRender(float f, long l, boolean bl, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f matrix4f, Matrix4f matrix4f2, CallbackInfo ci) {
private void iris$beginLevelRender(DeltaTracker deltaTracker, boolean bl, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f matrix4f, Matrix4f matrix4f2, CallbackInfo ci) {
pipeline.beginLevelRendering();
pipeline.setPhase(WorldRenderingPhase.NONE);
}
Expand All @@ -114,8 +114,8 @@ public class MixinLevelRenderer {
// Inject a bit early so that we can end our rendering before mods like VoxelMap (which inject at RETURN)
// render their waypoint beams.
@Inject(method = "renderLevel", at = @At(value = "RETURN", shift = At.Shift.BEFORE))
private void iris$endLevelRender(float tickDelta, long l, boolean bl, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f modelMatrix, Matrix4f matrix4f2, CallbackInfo ci) {
HandRenderer.INSTANCE.renderTranslucent(modelMatrix, tickDelta, camera, gameRenderer, pipeline);
private void iris$endLevelRender(DeltaTracker deltaTracker, boolean bl, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f modelMatrix, Matrix4f matrix4f2, CallbackInfo ci) {
HandRenderer.INSTANCE.renderTranslucent(modelMatrix, deltaTracker.getGameTimeDeltaPartialTick(true), camera, gameRenderer, pipeline);
Minecraft.getInstance().getProfiler().popPush("iris_final");
pipeline.finalizeLevelRendering();
pipeline = null;
Expand All @@ -136,7 +136,7 @@ public class MixinLevelRenderer {

// Do this before sky rendering so it's ready before the sky render starts.
@Inject(method = "renderLevel", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/LevelRenderer;renderSky(Lorg/joml/Matrix4f;Lorg/joml/Matrix4f;FLnet/minecraft/client/Camera;ZLjava/lang/Runnable;)V"))
private void iris$renderTerrainShadows(float f, long l, boolean bl, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f matrix4f, Matrix4f matrix4f2, CallbackInfo ci) {
private void iris$renderTerrainShadows(DeltaTracker deltaTracker, boolean bl, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f matrix4f, Matrix4f matrix4f2, CallbackInfo ci) {
pipeline.renderShadows((LevelRendererAccessor) this, camera);
}

Expand All @@ -146,7 +146,7 @@ public class MixinLevelRenderer {
}

@Inject(method = "renderLevel", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/LevelRenderer;renderSky(Lorg/joml/Matrix4f;Lorg/joml/Matrix4f;FLnet/minecraft/client/Camera;ZLjava/lang/Runnable;)V"))
private void iris$beginSky(float f, long l, boolean bl, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f matrix4f, Matrix4f matrix4f2, CallbackInfo ci) {
private void iris$beginSky(DeltaTracker deltaTracker, boolean bl, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f matrix4f, Matrix4f matrix4f2, CallbackInfo ci) {
// Use CUSTOM_SKY until levelFogColor is called as a heuristic to catch FabricSkyboxes.
pipeline.setPhase(WorldRenderingPhase.CUSTOM_SKY);

Expand Down Expand Up @@ -196,17 +196,17 @@ public class MixinLevelRenderer {
}

@Inject(method = "renderLevel", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/LevelRenderer;renderSky(Lorg/joml/Matrix4f;Lorg/joml/Matrix4f;FLnet/minecraft/client/Camera;ZLjava/lang/Runnable;)V", shift = At.Shift.AFTER))
private void iris$endSky(float f, long l, boolean bl, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f matrix4f, Matrix4f matrix4f2, CallbackInfo ci) {
private void iris$endSky(DeltaTracker deltaTracker, boolean bl, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f matrix4f, Matrix4f matrix4f2, CallbackInfo ci) {
pipeline.setPhase(WorldRenderingPhase.NONE);
}

@Inject(method = "renderLevel", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/LevelRenderer;renderClouds(Lcom/mojang/blaze3d/vertex/PoseStack;Lorg/joml/Matrix4f;Lorg/joml/Matrix4f;FDDD)V"))
private void iris$beginClouds(float f, long l, boolean bl, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f matrix4f, Matrix4f matrix4f2, CallbackInfo ci) {
private void iris$beginClouds(DeltaTracker deltaTracker, boolean bl, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f matrix4f, Matrix4f matrix4f2, CallbackInfo ci) {
pipeline.setPhase(WorldRenderingPhase.CLOUDS);
}

@Inject(method = "renderLevel", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/LevelRenderer;renderClouds(Lcom/mojang/blaze3d/vertex/PoseStack;Lorg/joml/Matrix4f;Lorg/joml/Matrix4f;FDDD)V", shift = At.Shift.AFTER))
private void iris$endClouds(float f, long l, boolean bl, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f matrix4f, Matrix4f matrix4f2, CallbackInfo ci) {
private void iris$endClouds(DeltaTracker deltaTracker, boolean bl, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f matrix4f, Matrix4f matrix4f2, CallbackInfo ci) {
pipeline.setPhase(WorldRenderingPhase.NONE);
}

Expand All @@ -222,7 +222,7 @@ public class MixinLevelRenderer {
}

@Inject(method = "renderLevel", at = @At(value = "INVOKE", target = RENDER_WEATHER))
private void iris$beginWeather(float f, long l, boolean bl, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f matrix4f, Matrix4f matrix4f2, CallbackInfo ci) {
private void iris$beginWeather(DeltaTracker deltaTracker, boolean bl, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f matrix4f, Matrix4f matrix4f2, CallbackInfo ci) {
pipeline.setPhase(WorldRenderingPhase.RAIN_SNOW);
}

Expand All @@ -236,27 +236,27 @@ public class MixinLevelRenderer {
}

@Inject(method = "renderLevel", at = @At(value = "INVOKE", target = RENDER_WEATHER, shift = At.Shift.AFTER))
private void iris$endWeather(float f, long l, boolean bl, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f matrix4f, Matrix4f matrix4f2, CallbackInfo ci) {
private void iris$endWeather(DeltaTracker deltaTracker, boolean bl, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f matrix4f, Matrix4f matrix4f2, CallbackInfo ci) {
pipeline.setPhase(WorldRenderingPhase.NONE);
}

@Inject(method = "renderLevel", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/LevelRenderer;renderWorldBorder(Lnet/minecraft/client/Camera;)V"))
private void iris$beginWorldBorder(float f, long l, boolean bl, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f matrix4f, Matrix4f matrix4f2, CallbackInfo ci) {
private void iris$beginWorldBorder(DeltaTracker deltaTracker, boolean bl, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f matrix4f, Matrix4f matrix4f2, CallbackInfo ci) {
pipeline.setPhase(WorldRenderingPhase.WORLD_BORDER);
}

@Inject(method = "renderLevel", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/LevelRenderer;renderWorldBorder(Lnet/minecraft/client/Camera;)V", shift = At.Shift.AFTER))
private void iris$endWorldBorder(float f, long l, boolean bl, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f matrix4f, Matrix4f matrix4f2, CallbackInfo ci) {
private void iris$endWorldBorder(DeltaTracker deltaTracker, boolean bl, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f matrix4f, Matrix4f matrix4f2, CallbackInfo ci) {
pipeline.setPhase(WorldRenderingPhase.NONE);
}

@Inject(method = "renderLevel", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/debug/DebugRenderer;render(Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/MultiBufferSource$BufferSource;DDD)V"))
private void iris$setDebugRenderStage(float f, long l, boolean bl, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f matrix4f, Matrix4f matrix4f2, CallbackInfo ci) {
private void iris$setDebugRenderStage(DeltaTracker deltaTracker, boolean bl, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f matrix4f, Matrix4f matrix4f2, CallbackInfo ci) {
pipeline.setPhase(WorldRenderingPhase.DEBUG);
}

@Inject(method = "renderLevel", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/debug/DebugRenderer;render(Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/MultiBufferSource$BufferSource;DDD)V", shift = At.Shift.AFTER))
private void iris$resetDebugRenderStage(float f, long l, boolean bl, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f matrix4f, Matrix4f matrix4f2, CallbackInfo ci) {
private void iris$resetDebugRenderStage(DeltaTracker deltaTracker, boolean bl, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f matrix4f, Matrix4f matrix4f2, CallbackInfo ci) {
pipeline.setPhase(WorldRenderingPhase.NONE);
}

Expand All @@ -271,9 +271,9 @@ public class MixinLevelRenderer {
}

@Inject(method = "renderLevel", at = @At(value = "CONSTANT", args = "stringValue=translucent"))
private void iris$beginTranslucents(float tickDelta, long l, boolean bl, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f modelMatrix, Matrix4f matrix4f2, CallbackInfo ci) {
private void iris$beginTranslucents(DeltaTracker deltaTracker, boolean bl, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f modelMatrix, Matrix4f matrix4f2, CallbackInfo ci) {
pipeline.beginHand();
HandRenderer.INSTANCE.renderSolid(modelMatrix, tickDelta, camera, gameRenderer, pipeline);
HandRenderer.INSTANCE.renderSolid(modelMatrix, deltaTracker.getGameTimeDeltaPartialTick(true), camera, gameRenderer, pipeline);
Minecraft.getInstance().getProfiler().popPush("iris_pre_translucent");
pipeline.beginTranslucents();
}
Expand Down

0 comments on commit 11b7424

Please sign in to comment.