Slideshow Mod compatibility issue in Iris 1.6.1

After 1.6.1 update has been released, there have been compatibility issues with the slideshow mod. Screenshots soon
41 Replies
AndyWithCatz
AndyWithCatzOP2y ago
1.6.1
No description
AndyWithCatz
AndyWithCatzOP2y ago
1.6
No description
AndyWithCatz
AndyWithCatzOP2y ago
one shader named Photon even crashes when theres a slideshow image nearby
IMS
IMS2y ago
yeah the slideshow mod needs to implement BlendingStateHolder I can implement a small workaround, but it won’t be good
AndyWithCatz
AndyWithCatzOP2y ago
ill notify the mod maker then
IMS
IMS2y ago
another solution is to make their render type extend CompositeRenderType instead of RenderType
3TUSK
3TUSK2y ago
@IMS Former SlideShow dev here. I learnt this report through other channel and would like to know more about this. Specifically the BlendingStateHolder part, because I couldn't find it anywhere. (A remark: op is using a fork of SlideShow which ports SlideShow from Forge to Fabric. I am the former dev of the original one which is Forge only for now; still, I believe fixing it on upstream is worth it.)
IMS
IMS2y ago
BlendingStateHolder is an interface that tells Iris what stage of translucency an render type renders in Iris uses this for batched entity rendering to properly sort objects so they’re not invisible compositerendertype has a default implementation of this, but rendertype does not
3TUSK
3TUSK2y ago
Interesting, but where is this interface (?) located at? Vanilla? Iris itself? Somewhere else?
IMS
IMS2y ago
Iris
3TUSK
3TUSK2y ago
Now this is strange
No description
IMS
IMS2y ago
weird it’s in net.coderbot.batchedentityrendering.impl iirc
3TUSK
3TUSK2y ago
Found it, so it's GitHub search index broke And we have CompositeRenderType implemented it via Mixin, got it Thank you for your heads-up!
Zbx1425
Zbx14252y ago
Umm isn't CompositeRenderType final?
IMS
IMS2y ago
We use an access widener but yes annoyingly
Zbx1425
Zbx14252y ago
Oh I see that in the access widener config Thanks; have to also do that then
AIDA64S(Infrastructure Giant)
It was originally necessary to execute specific code after
state.forEach(RenderStateShard::setupRenderState)
state.forEach(RenderStateShard::setupRenderState)
, but because this part was written into the constructor of "CompositeRenderType", these specific codes could not be executed in the original position, resulting in an exception , what is the solution
IMS
IMS2y ago
hm let me see
IMS
IMS2y ago
I'll just edit Iris to not care
AIDA64S(Infrastructure Giant)
This is the original code when inheriting RenderType I really can't think of any good way, it seems that I need to execute
RenderSystem.enableTexture(); RenderSystem.setShader(); RenderSystem.setShaderTexture(0 , textureId);
RenderSystem.enableTexture(); RenderSystem.setShader(); RenderSystem.setShaderTexture(0 , textureId);
IMS
IMS2y ago
so yeah your best option is shadowing this part of Iris specifically and implementing the interface but if you don't want to do that I have a temporary fix when Iris 1.6.2 releases, it won't crash anymore, but it'll still look wrong
AIDA64S(Infrastructure Giant)
Means to have IRIS as a dependency?
IMS
IMS2y ago
you could do that you don't need to do anything until 1.6.2 releases
AndyWithCatz
AndyWithCatzOP2y ago
hoping this will be updated for 1.19.2 too right currently iris fork is in 1.19.2 only + the server im playing on is 1.19.2 only too
AIDA64S(Infrastructure Giant)
I have updated Iris to 1.6.2, but this issue still exists
AIDA64S(Infrastructure Giant)
Normal when viewed from left to right, brightness is no longer valid when viewed from right to left, starting from version 1.6.0
AndyWithCatz
AndyWithCatzOP2y ago
..
AIDA64S(Infrastructure Giant)
I still don't know how to solve it
AndyWithCatz
AndyWithCatzOP2y ago
@AIDA64S(Infrastructure Giant) probably u tried it right?
AIDA64S(Infrastructure Giant)
Perhaps it's because I don't know how to do it I have attempted to inherit CompositeRenderType
AIDA64S(Infrastructure Giant)
After inheriting from CompositeRenderType,
RenderSystem.setShader(GameRender::getPositionTexShader);
RenderSystem.setShaderTexture(0, textureId);
RenderSystem.setShader(GameRender::getPositionTexShader);
RenderSystem.setShaderTexture(0, textureId);
There is no place to call them
No description
AIDA64S(Infrastructure Giant)
It seems that when the constructor is called, the last two parameters each create new threads to execute certain commands. However, due to the fact that the CompositeRenderType constructor has already implemented these two Runnable interfaces through Lambda, it is not possible to add new commands to these two functions Perhaps it is more effective to seek help from the original author, as it is only a simple transplant @3TUSK By the way, it seems that some people have reported that it is normal in 1.18.2
AndyWithCatz
AndyWithCatzOP2y ago
bump so discord doesnt hide the channel for me
Zbx1425
Zbx14252y ago
@IMS Sorry for the ping. I've carried out the suggested steps. I got rid of inheriting RenderType, and just instantiates a vanilla CompositeRenderType instead. However, the rendering output is still erratic when using shaders.
Zbx1425
Zbx14252y ago
No description
Zbx1425
Zbx14252y ago
It'd be a honor if you could shine some light on this matter qwq The normals passed into VertexConsumer are correct and it works fine in vanilla
Zbx1425
Zbx14252y ago
Want results from more Discord servers?
Add your server