CIT Resewn

CIT Resewn

14M Downloads

Canvas incompatibility relating to config crash

BreadChild opened this issue ยท 6 comments

commented

System Information
Minecraft Version 1.18.1
MultiMC launcher (latest dev build)
Fabric 0.12.12
Cit Resewn 0.8.1
Other mods and versions installed
Canvas 1.0.2256
How to trigger behavior
Canvas and CIT resewn can launch together only when the config folder has not been generated before starting.

  1. Create a new instance, add fabric, and add canvas and cit resewn.
  2. Launch the instance
  3. After the instance successfully loads, exit out
  4. Launch the instance
  5. Crashes
  6. Delete config folder
  7. Launch the instance and it will successfully load

Logs and Screenshots
latest.log

commented

Not really sure how the config is causing this but canvas is using @Overwrite in MixinItemRenderer#54 which is usually frowned upon in the fabric community as it causes incompatibility with any mod trying to inject into the method.

While support for canvas is planned in the future(if still relevant), I currently do not have the capacity to add it with my current schedules. I suggest you switch to sodium as it's built to support much more than canvas.

commented

I suggest you switch to sodium as it's built to support much more than canvas

sodium and canvas are two completely different rendering mods with completely different purposes.

commented

sodium and canvas are two completely different rendering mods with completely different purposes.

I suggested sodium as a rendering performance help alternative.. Frankly I do not really know what canvas does other than aid with performance.

commented

Unlike Canvas, Sodium was tested to work with CIT Resewn and supports it better.

commented

Frankly I do not really know what canvas does other than aid with performance.

canvas is a shaders mod that provides a much more capable and as such a highly superior shader interface compared to optifine and as such sodium + iris, while also having optimisations and a decent performance advantage over the vanilla renderer, sodium is a mod that provides aggressive performance improvements over the vanilla renderer while also not supporting frapi, unless you download another mod, or shaders, unless you again download another mod, a mod that provides the old legacy shader interface from optifine.

(from vram-guild/canvas) Sodium and Canvas serve different purposes and audiences. Sodium is a performance mod that uses shaders to optimize and also offers some nice visual improvements. Canvas is a shaders mod with enough optimization to give good performance.

example of a canvas shader: spiralhalo/lumilights

if you only want performance improvements, then sure, sodium is a better suit, but we can't know why breadchild uses canvas, and as such, there's no reason to pull a stackoverflow.

commented

Not really sure how the config is causing this but canvas is using @Overwrite in MixinItemRenderer#54 which is usually frowned upon in the fabric community as it causes incompatibility with any mod trying to inject into the method.

Canvas does use @Overwrite in a handful of places. It may be possible to relax this at the cost of some performance and additional complexity but the way CIT is working here isn't consistent with how the Fabric rendering API was designed. FRAPI intended that mods would alter models instead of trying to hack into rendering code directly which is prone to conflicts. (Canvas is an implementation of the API, so it's expected to make invasive changes.)

Item model output with FRAPI can be fully dynamic and with the FREX rendering API the options are even more powerful. If I'm not able to make CIT compatible then I may consider producing a CIT implementation that uses supported APIs.