Iris & Oculus Flywheel Compat

Iris & Oculus Flywheel Compat

15M Downloads

Blocks in contraptions don't render when shaderpack real-time shadows are enabled

adueppen opened this issue ยท 10 comments

commented

I'm using:

  • Forge 47.1.0 on 1.20.1
  • Create 0.5.1.d
  • Oculus 1.6.4
  • Rubidium 0.4.20
  • Oculus Flywheel Compat 0.2.0
  • Complementary Reimagined shaders

This is running on Linux, with an AMD RX 6800 XT GPU. When the real-time shadows in this or any other shaderpack are enabled, contraptions fail to render any ordinary blocks that are part of them. Disabling this mod fixes the issue, but at the expense of reasonable framerates.

Mod enabled:
2023-07-14_00 21 55

Mod disabled:
2023-07-14_00 21 01

commented

I can confirm these findings with rendering set to instancing on fabric 1.19.2. In addition, there is some serious log spam:
image

image
and the Complementary Re-imagined shaderpack.

commented

this is still an issue with 0.2.1, at least on fabric

  • fabric loader 0.14.24
  • fabric api 0.90.4
  • sodium 0.5.3
  • iris 1.6.10
  • create 0.5.1d from https://github.com/Treetrain1/Create
  • iris flywheel compat 0.2.1
  • complimentary reimagined (but is an issue with any shader)

also running on linux with a 6800 XT. did anyone either of you find a workaround?

commented

Confirmed this is happening for me as well.

commented

I've been googling around for exactly the same Create Astral issue. I'm away from my home PC for a couple more days for the US holiday, but will test if disabling real-time shadows also fixes the issue for me.

EDIT: I should also be able to play around with RenderDoc a bit. If I have any luck fixing things I'll put up a PR

commented

Happening on my end as well. RX 6800 XT on Linux. Currently playing the Create Astral modpack. Viewing a contraption while shaders are enabled brings my framerate down into single digits, gives me the GL_INVALID_OPERATION in glDrawElements error repeatedly in my logs, and most blocks in the contraptions don't render.

Disabling real-time shadows does seem to fix it, at least in the Complimentary-based shaderpacks (I haven't tested any others yet).

Currently using:

  • OS: Linux
  • GPU: RX 6800 XT
  • Minecraft version 1.18.2
  • Fabric Loader 0.14.22
  • Create 0.5.0.i
  • Sodium 0.4.1
  • Iris 1.6.10
  • Iris Flywheel Compat 0.2.0
  • Tested with Complimentary Reimagined, Complimentary Unbound, BSL, AstraLex, and MakeUp UltraFast. All of them have the same issue.
commented

I was able to confirm that turning off real-time shadows fixes the issue for me. I was unfortunately not able to get any debugging done - both RenderDoc and ApiTrace cause java to crash immediately if I try to launch minecraft with them loaded.

If anybody can give me tips for running Minecraft in RenderDoc or ApiTrace on Linux, I'll happily spend more time debugging this. But unfortunately I am sort of stuck.

commented

I got ApiTrace working, and managed to track this down ๐Ÿ˜Ž

The issue is that Create's ContraptionProgram hardcodes one of its samplers, which causes a conflict with Iris.

I've tested rebuilding Create with that sampler set to 31 (just to get it way out of the range that Iris might use), and that got dynamic shadow working for me!

I think the correct fix for this is probably to try to use a Mixin to override the Iris list of reserved samplers, but that is far beyond my java skills to implement as a quick PR to this repo without doing a lot more learning about how Mixins work.

EDIT: On second thought, I think just modifying The builder method to always add 4 to the reserved list is probably more robust. Mixins are still dark magic that's outside of my java knowledge, but overriding methods seems better documented than replacing constants? If I can figure it out I'll put up a PR

commented

Sorry for the issue update spam, but I dug through the Mixin docs and got this fixed!

The PR is in #86, but for anyone who feels like trusting a jar from a stranger on the internet, you can replace iris-flywheel-compat-1.18.2-0.2.0.jar in your mods folder with my version

commented

My good friend, you're amazing.

I can confirm the fix is working on my end. I tested with the same set of shaders as last time, all are working fine even with realtime shadows re-enabled.

commented

Sorry for the issue update spam, but I dug through the Mixin docs and got this fixed!

The PR is in #86, but for anyone who feels like trusting a jar from a stranger on the internet, you can replace iris-flywheel-compat-1.18.2-0.2.0.jar in your mods folder with my version

WIll this work as a replacement for the Oculus equivalent compatibility mod?