diff --git a/src/main/java/me/cortex/voxy/client/core/IrisVoxyRenderPipeline.java b/src/main/java/me/cortex/voxy/client/core/IrisVoxyRenderPipeline.java index d23121d6..c1e461bc 100644 --- a/src/main/java/me/cortex/voxy/client/core/IrisVoxyRenderPipeline.java +++ b/src/main/java/me/cortex/voxy/client/core/IrisVoxyRenderPipeline.java @@ -109,6 +109,10 @@ public class IrisVoxyRenderPipeline extends AbstractRenderPipeline { glClear(GL_COLOR_BUFFER_BIT); } + if (this.data.useViewportDims) { + srcWidth = viewport.width; + srcHeight = viewport.height; + } this.initDepthStencil(sourceFramebuffer, this.fb.framebuffer.id, srcWidth, srcHeight, viewport.width, viewport.height); return this.fb.getDepthTex().id; } diff --git a/src/main/java/me/cortex/voxy/client/iris/IrisShaderPatch.java b/src/main/java/me/cortex/voxy/client/iris/IrisShaderPatch.java index a1c8e451..3bd97bd3 100644 --- a/src/main/java/me/cortex/voxy/client/iris/IrisShaderPatch.java +++ b/src/main/java/me/cortex/voxy/client/iris/IrisShaderPatch.java @@ -26,6 +26,7 @@ public class IrisShaderPatch { public static final boolean IMPERSONATE_DISTANT_HORIZONS = System.getProperty("voxy.impersonateDHShader", "false").equalsIgnoreCase("true"); + private static final class SSBODeserializer implements JsonDeserializer> { @Override public Int2ObjectOpenHashMap deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { @@ -157,6 +158,7 @@ public class IrisShaderPatch { public String taaOffset; public boolean excludeLodsFromVanillaDepth; public float[] renderScale; + public boolean useViewportDims; public boolean checkValid() { return this.opaqueDrawBuffers != null && this.translucentDrawBuffers != null && this.uniforms != null && this.opaquePatchData != null; } @@ -178,6 +180,10 @@ public class IrisShaderPatch { } } + public boolean useViewportDims() { + return this.patchData.useViewportDims; + } + public Int2ObjectMap getSSBOs() { return new Int2ObjectLinkedOpenHashMap<>(this.ssbos); } diff --git a/src/main/java/me/cortex/voxy/client/iris/IrisVoxyRenderPipelineData.java b/src/main/java/me/cortex/voxy/client/iris/IrisVoxyRenderPipelineData.java index 50435f0d..0e5e59a3 100644 --- a/src/main/java/me/cortex/voxy/client/iris/IrisVoxyRenderPipelineData.java +++ b/src/main/java/me/cortex/voxy/client/iris/IrisVoxyRenderPipelineData.java @@ -49,6 +49,8 @@ public class IrisVoxyRenderPipelineData { public final boolean renderToVanillaDepth; public final float[] resolutionScale; public final String TAA; + public final boolean useViewportDims; + private IrisVoxyRenderPipelineData(IrisShaderPatch patch, int[] opaqueDrawTargets, int[] translucentDrawTargets, StructLayout uniformSet, Runnable blendingSetup, ImageSet imageSet, SSBOSet ssboSet) { this.opaqueDrawTargets = opaqueDrawTargets; this.translucentDrawTargets = translucentDrawTargets; @@ -61,6 +63,7 @@ public class IrisVoxyRenderPipelineData { this.renderToVanillaDepth = patch.emitToVanillaDepth(); this.TAA = patch.getTAAShift(); this.resolutionScale = patch.getRenderScale(); + this.useViewportDims = patch.useViewportDims(); } public SSBOSet getSsboSet() {