From 8c526473e1fa15123c12fd000ba2fd713e320272 Mon Sep 17 00:00:00 2001 From: Username404-59 Date: Sun, 20 Apr 2025 17:31:36 +0200 Subject: [PATCH] Less stupid workaround Should fix compatibility with iris Signed-off-by: Username404-59 --- .../mixins/CursedRenderPassMixin.java | 38 ------------------- .../snowygui/utils/RenderingUtil.kt | 6 ++- .../src/main/resources/snowygui.accessWidener | 5 ++- .../resources/snowygui-fabric.mixins.json | 1 - .../resources/snowygui-neoforge.mixins.json | 4 +- 5 files changed, 10 insertions(+), 44 deletions(-) delete mode 100644 common/src/main/java/fr/username404/snowygui/mixins/CursedRenderPassMixin.java diff --git a/common/src/main/java/fr/username404/snowygui/mixins/CursedRenderPassMixin.java b/common/src/main/java/fr/username404/snowygui/mixins/CursedRenderPassMixin.java deleted file mode 100644 index 0539589..0000000 --- a/common/src/main/java/fr/username404/snowygui/mixins/CursedRenderPassMixin.java +++ /dev/null @@ -1,38 +0,0 @@ -package fr.username404.snowygui.mixins; - -import com.mojang.blaze3d.opengl.*; -import com.mojang.blaze3d.pipeline.RenderPipeline; -import com.mojang.blaze3d.systems.RenderPass; -import com.mojang.blaze3d.textures.GpuTexture; -import org.jetbrains.annotations.Nullable; -import org.spongepowered.asm.mixin.Final; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Overwrite; -import org.spongepowered.asm.mixin.Shadow; - -import static fr.username404.snowygui.misc.CreateRenderPassRewriteKt.createRenderPassRewrite; - -import java.util.OptionalDouble; -import java.util.OptionalInt; - -@Mixin(GlCommandEncoder.class) -abstract class CursedRenderPassMixin { - @Shadow private boolean inRenderPass; - - @Shadow @Final private GlDevice device; - - @Shadow @Nullable private RenderPipeline lastPipeline; - - /** - * @author Username404-59 - * @reason war crimes- I REGRET NOTHING - */ - @Overwrite - public RenderPass createRenderPass(GpuTexture gpuTexture, OptionalInt optionalInt, @Nullable GpuTexture gpuTexture2, OptionalDouble optionalDouble) { - this.inRenderPass = false; // VIP access 😈 - int framebufferId = ((GlTexture)gpuTexture).getFbo(this.device.directStateAccess(), gpuTexture2); - createRenderPassRewrite(framebufferId, gpuTexture, optionalInt, gpuTexture2, optionalDouble); - this.lastPipeline = null; - return new GlRenderPass((GlCommandEncoder) (Object) this, gpuTexture2 != null); - }; -} diff --git a/common/src/main/kotlin/fr/username404/snowygui/utils/RenderingUtil.kt b/common/src/main/kotlin/fr/username404/snowygui/utils/RenderingUtil.kt index abb3e59..2ea93d8 100644 --- a/common/src/main/kotlin/fr/username404/snowygui/utils/RenderingUtil.kt +++ b/common/src/main/kotlin/fr/username404/snowygui/utils/RenderingUtil.kt @@ -2,6 +2,7 @@ package fr.username404.snowygui.utils import com.mojang.blaze3d.buffers.BufferType import com.mojang.blaze3d.buffers.BufferUsage +import com.mojang.blaze3d.opengl.GlCommandEncoder import com.mojang.blaze3d.opengl.GlStateManager import com.mojang.blaze3d.pipeline.RenderPipeline import com.mojang.blaze3d.pipeline.RenderTarget @@ -55,12 +56,14 @@ object RenderingUtil { val builder = Tesselator.getInstance().begin(mode, renderPipeline.vertexFormat) bufferBuilderConsumer(builder) builder.buildOrThrow().use { meshData -> - RenderSystem.getDevice().createCommandEncoder().createRenderPass( + val encoder = RenderSystem.getDevice().createCommandEncoder() as GlCommandEncoder + encoder.createRenderPass( renderTarget.colorTexture!!, OptionalInt.empty(), renderTarget.depthTexture, OptionalDouble.empty() ).use { renderPass -> + encoder.inRenderPass = false; RenderSystem.getDevice().createBuffer( { name }, BufferType.VERTICES, BufferUsage.DYNAMIC_WRITE, meshData.vertexBuffer() ).use { buffer -> @@ -74,6 +77,7 @@ object RenderingUtil { uniformAndSamplerConsumer?.invoke(renderPass) renderPass.drawIndexed(0, meshData.drawState().indexCount()) } + encoder.inRenderPass = false; } } } diff --git a/common/src/main/resources/snowygui.accessWidener b/common/src/main/resources/snowygui.accessWidener index e6479c1..7401c98 100644 --- a/common/src/main/resources/snowygui.accessWidener +++ b/common/src/main/resources/snowygui.accessWidener @@ -3,4 +3,7 @@ accessWidener v2 named accessible field net/minecraft/client/OptionInstance value Ljava/lang/Object; mutable field net/minecraft/client/OptionInstance value Ljava/lang/Object; -accessible field net/minecraft/client/gui/GuiGraphics bufferSource Lnet/minecraft/client/renderer/MultiBufferSource$BufferSource; \ No newline at end of file +accessible field net/minecraft/client/gui/GuiGraphics bufferSource Lnet/minecraft/client/renderer/MultiBufferSource$BufferSource; + +accessible field com/mojang/blaze3d/opengl/GlCommandEncoder inRenderPass Z +mutable field com/mojang/blaze3d/opengl/GlCommandEncoder inRenderPass Z \ No newline at end of file diff --git a/fabric/src/main/resources/snowygui-fabric.mixins.json b/fabric/src/main/resources/snowygui-fabric.mixins.json index 2f93a94..e4f15d8 100644 --- a/fabric/src/main/resources/snowygui-fabric.mixins.json +++ b/fabric/src/main/resources/snowygui-fabric.mixins.json @@ -3,7 +3,6 @@ "package": "fr.username404.snowygui.mixins", "compatibilityLevel": "JAVA_18", "client": [ - "CursedRenderPassMixin", "EndTickMixin", "TitleScreenMixin", "KeysAccessor", diff --git a/neoforge/src/main/resources/snowygui-neoforge.mixins.json b/neoforge/src/main/resources/snowygui-neoforge.mixins.json index 775b8fc..74c07cf 100644 --- a/neoforge/src/main/resources/snowygui-neoforge.mixins.json +++ b/neoforge/src/main/resources/snowygui-neoforge.mixins.json @@ -2,9 +2,7 @@ "required": false, "package": "fr.username404.snowygui.mixins", "compatibilityLevel": "JAVA_21", - "client": [ - "CursedRenderPassMixin" - ], + "client": [], "injectors": { "defaultRequire": 1 },