Skip to content

Commit acbd3b1

Browse files
committed
Fix bad flipping behavior
1 parent 9ea4079 commit acbd3b1

File tree

3 files changed

+8
-8
lines changed

3 files changed

+8
-8
lines changed

src/main/java/net/coderbot/iris/compat/dh/DHCompatInternal.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -59,17 +59,17 @@ public void prepareNewPipeline(NewWorldRenderingPipeline pipeline, boolean dhSha
5959
}
6060

6161
ProgramSource terrain = pipeline.getDHTerrainShader().get();
62-
solidProgram = IrisLodRenderProgram.createProgram(terrain.getName(), false, terrain, pipeline.getCustomUniforms(), pipeline);
62+
solidProgram = IrisLodRenderProgram.createProgram(terrain.getName(), false, false, terrain, pipeline.getCustomUniforms(), pipeline);
6363

6464
if (pipeline.getDHWaterShader().isPresent()) {
6565
ProgramSource water = pipeline.getDHWaterShader().get();
66-
translucentProgram = IrisLodRenderProgram.createProgram(water.getName(), false, water, pipeline.getCustomUniforms(), pipeline);
66+
translucentProgram = IrisLodRenderProgram.createProgram(water.getName(), false, true, water, pipeline.getCustomUniforms(), pipeline);
6767
dhWaterFramebuffer = pipeline.createDHFramebuffer(water, true);
6868
}
6969

7070
if (pipeline.getDHShadowShader().isPresent() && dhShadowEnabled) {
7171
ProgramSource shadow = pipeline.getDHShadowShader().get();
72-
shadowProgram = IrisLodRenderProgram.createProgram(shadow.getName(), true, shadow, pipeline.getCustomUniforms(), pipeline);
72+
shadowProgram = IrisLodRenderProgram.createProgram(shadow.getName(), true, false, shadow, pipeline.getCustomUniforms(), pipeline);
7373
if (pipeline.hasShadowRenderTargets()) {
7474
dhShadowFramebuffer = pipeline.createDHFramebufferShadow(shadow);
7575
}

src/main/java/net/coderbot/iris/compat/dh/IrisLodRenderProgram.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ public class IrisLodRenderProgram
7474
private final ProgramImages images;
7575
private final BlendModeOverride blend;
7676

77-
public static IrisLodRenderProgram createProgram(String name, boolean isShadowPass, ProgramSource source, CustomUniforms uniforms, NewWorldRenderingPipeline pipeline) {
77+
public static IrisLodRenderProgram createProgram(String name, boolean isShadowPass, boolean translucent, ProgramSource source, CustomUniforms uniforms, NewWorldRenderingPipeline pipeline) {
7878
Map<PatchShaderType, String> transformed = TransformPatcher.patchDH(
7979
name,
8080
source.getVertexSource().orElseThrow(RuntimeException::new),
@@ -92,7 +92,7 @@ public static IrisLodRenderProgram createProgram(String name, boolean isShadowPa
9292
.addSources(transformed)
9393
.setName("dh_" + name)
9494
.print();
95-
return new IrisLodRenderProgram(name, isShadowPass, source.getDirectives().getBlendModeOverride().orElse(null), vertex, tessControl, tessEval, geometry, fragment, uniforms, pipeline);
95+
return new IrisLodRenderProgram(name, isShadowPass, translucent, source.getDirectives().getBlendModeOverride().orElse(null), vertex, tessControl, tessEval, geometry, fragment, uniforms, pipeline);
9696
}
9797

9898
public int tryGetUniformLocation2(CharSequence name) {
@@ -104,7 +104,7 @@ public int tryGetUniformLocation2(CharSequence name) {
104104
// Noise Uniforms
105105

106106
// This will bind AbstractVertexAttribute
107-
private IrisLodRenderProgram(String name, boolean isShadowPass, BlendModeOverride override, String vertex, String tessControl, String tessEval, String geometry, String fragment, CustomUniforms customUniforms, NewWorldRenderingPipeline pipeline)
107+
private IrisLodRenderProgram(String name, boolean isShadowPass, boolean translucent, BlendModeOverride override, String vertex, String tessControl, String tessEval, String geometry, String fragment, CustomUniforms customUniforms, NewWorldRenderingPipeline pipeline)
108108
{
109109
id = GL43C.glCreateProgram();
110110

@@ -160,7 +160,7 @@ private IrisLodRenderProgram(String name, boolean isShadowPass, BlendModeOverrid
160160
customUniforms.assignTo(uniformBuilder);
161161
BuiltinReplacementUniforms.addBuiltinReplacementUniforms(uniformBuilder);
162162
ProgramImages.Builder builder = ProgramImages.builder(id);
163-
pipeline.addGbufferOrShadowSamplers(samplerBuilder, builder, isShadowPass ? () -> pipeline.flippedBeforeShadow : () -> pipeline.flippedAfterPrepare, isShadowPass, new InputAvailability(false, true, false));
163+
pipeline.addGbufferOrShadowSamplers(samplerBuilder, builder, isShadowPass ? () -> pipeline.flippedBeforeShadow : () -> translucent ? pipeline.flippedAfterTranslucent : pipeline.flippedAfterPrepare, isShadowPass, new InputAvailability(false, true, false));
164164
customUniforms.mapholderToPass(uniformBuilder, this);
165165
this.uniforms = uniformBuilder.buildUniforms();
166166
this.customUniforms = customUniforms;

src/main/java/net/coderbot/iris/pipeline/newshader/NewWorldRenderingPipeline.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ public class NewWorldRenderingPipeline implements WorldRenderingPipeline, CoreWo
151151

152152
public final ImmutableSet<Integer> flippedBeforeShadow;
153153
public final ImmutableSet<Integer> flippedAfterPrepare;
154-
private final ImmutableSet<Integer> flippedAfterTranslucent;
154+
public final ImmutableSet<Integer> flippedAfterTranslucent;
155155

156156
public boolean isBeforeTranslucent;
157157

0 commit comments

Comments
 (0)