xCollateral / VulkanMod

Vulkan renderer mod for Minecraft.
GNU Lesser General Public License v3.0
1.59k stars 181 forks source link

Weird mixin error, maybe you need to support renderer API #480

Open axelkar opened 3 months ago

axelkar commented 3 months ago

Describe the bug

A mixin error happens in Meteor client only when using VulkanMod. Expected Lnet/fabricmc/fabric/impl/client/indigo/renderer/mesh/MutableQuadViewImpl;Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;, but found (Lnet/fabricmc/fabric/impl/client/indigo/renderer/mesh/MutableQuadViewImpl;ZLorg/spongepowered/asm/mixin/injection/callback/CallbackInfo; in net.fabricmc.fabric.impl.client.indigo.renderer.render.AbstractBlockRenderContext.renderQuad. Are you adding a bool to renderQuad?

Mixin: https://github.com/MeteorDevelopment/meteor-client/blob/master/src/main/java/meteordevelopment/meteorclient/mixin/indigo/AbstractBlockRenderContextMixin.java

@Mixin(AbstractBlockRenderContext.class)
public abstract class AbstractBlockRenderContextMixin {
    @Final @Shadow(remap = false) protected BlockRenderInfo blockInfo;

    @Inject(method = "renderQuad", at = @At(value = "INVOKE", target = "Lnet/fabricmc/fabric/impl/client/indigo/renderer/render/AbstractBlockRenderContext;bufferQuad(Lnet/fabricmc/fabric/impl/client/indigo/renderer/mesh/MutableQuadViewImpl;Lnet/minecraft/client/render/VertexConsumer;)V"), cancellable = true)
    private void onBufferQuad(MutableQuadViewImpl quad, boolean isVanilla, CallbackInfo ci) {

Steps to reproduce

  1. Install VulkanMod and Meteor client
  2. Launch the game

Log files

[17:41:42] [Render thread/WARN]: Mixin apply for mod meteor-client failed meteor-client-indigo.mixins.json:AbstractBlockRenderContextMixin from mod meteor-client ->
net.fabricmc.fabric.impl.client.indigo.renderer.render.AbstractBlockRenderContext:
org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException
Invalid descriptor on meteor-client-indigo.mixins.json:AbstractBlockRenderContextMixin
from mod meteor-client->@Inject::onBufferQuad(Lnet/fabricmc/fabric/impl/client/indigo/renderer/mesh/MutableQuadViewImpl;ZLorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;)V!
Expected (Lnet/fabricmc/fabric/impl/client/indigo/renderer/mesh/MutableQuadViewImpl;Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;)V
but found (Lnet/fabricmc/fabric/impl/client/indigo/renderer/mesh/MutableQuadViewImpl;ZLorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;)V
[ -> Inject -> meteor-client-indigo.mixins.json:AbstractBlockRenderContextMixin from mod meteor-client->@Inject::onBufferQuad(Lnet/fabricmc/fabric/impl/client/indigo/renderer/mesh/MutableQuadViewImpl;ZLorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;)V]
org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException: Invalid descriptor on meteor-client-indigo.mixins.json:AbstractBlockRenderContextMixin from mod meteor-client->@Inject::onBufferQuad(Lnet/fabricmc/fabric/impl/client/indigo/renderer/mesh/MutableQuadViewImpl;ZLorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;)V! Expected (Lnet/fabricmc/fabric/impl/client/indigo/renderer/mesh/MutableQuadViewImpl;Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;)V but found (Lnet/fabricmc/fabric/impl/client/indigo/renderer/mesh/MutableQuadViewImpl;ZLorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;)V [ -> Inject -> meteor-client-indigo.mixins.json:AbstractBlockRenderContextMixin from mod meteor-client->@Inject::onBufferQuad(Lnet/fabricmc/fabric/impl/client/indigo/renderer/mesh/MutableQuadViewImpl;ZLorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;)V]
odeyaio commented 3 months ago

Meteor Client is incompatible.

axelkar commented 3 months ago

Meteor Client is incompatible.

I don't think it uses OpenGL? Could VulkanMod support a rendering API?

The signature should be (Lnet/fabricmc/fabric/impl/client/indigo/renderer/mesh/MutableQuadViewImpl;Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;)V, but it isn't with VulkanMod: https://github.com/FabricMC/fabric/blob/7363c44ea9c96c8c57087a07d86fe936fb86104e/fabric-renderer-indigo/src/client/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/AbstractBlockRenderContext.java#L96

NXTler commented 3 months ago

FabricAPI implementation is slowly progressing, but I suspect that Meteorclient tries to change way too much for VulkanMod to work. Besides, we don't support third party clients, especially hack clients. This can be closed.

NXTler commented 3 weeks ago

This can be closed as well.