vram-guild / canvas Goto Github PK
View Code? Open in Web Editor NEWShader-Based Minecraft Renderer for Fabric
License: GNU Lesser General Public License v3.0
Shader-Based Minecraft Renderer for Fabric
License: GNU Lesser General Public License v3.0
Not sure what else to call it. As I play, my VRAM slowly fills up.
Running Manjaro 20.0.3
Kernel 20.5.6.16-1-MANJARO
Nvidia 2070 Super
Using proprietary Nvidia drivers, version 440.
Java 14
New Minecraft 1.16.1 instance, latest fabric loader (0.8.9+build.203), fabric api (0.14.1+build.372-1.16), and Canvas (1.0.728)
No other mods.
Default settings.
It seems like it happens as more blocks / chunks are loaded.
Returning to the main menu doesn't free the memory, Minecraft has to be entirely closed.
Here's the log, but there's nothing interesting as far as I can see. Ignore the java arguments, I was testing something else and forgot to disable them.
Not that it helps much, but Screenshots:
Crash report: https://pastebin.com/Pyz5dukK (hastebin is not having it today, idkw)
It is entirely possible that I have included something wrong or otherwise messed up so for reference here's my build.gradle and gradle.properties: https://pastebin.com/qnKk6xjD
Mods that mixin to the rendery bits of MC may not get their hooks called because Canvas replaces big chunks of the renderer.
See various compatibility hacks and Haven-King/glowcase#1 for examples.
https://pastebin.com/nZSBh7b4 log
https://pastebin.com/1FUzDZqn crash report
https://i.imgur.com/I6E64gA.jpg
From the user:
... the graphics card displaying this issue is an NVidia GeForce GTX 870M, and it has persisted into canvas-0.6.45, 0.6.1.281 and 0.6.2.283 using both Fabric API build 165 and 168. Lightmap Noise and Batched Chunk Render have no visible effect.
Introduced with 0b02521
Versions:
Issue:
Seems like there's an issue related to logging GLX errors. I have conciseErrors
set to false, and when any errors occur, I get the following in console:
Canvas unable to create shader canvas:shaders/default.vert with property index 1024 due to unexpected error: Unknown OpenGL Error..
* note that my shader is an override of default.vert
.
When I go back into the logging process through debugger mode, the error is empty before being printed. It comes from CanvasGLHelper.getShaderInfoLog
into AbstractGlShader#load#getShaderInfoLog
.
Steps to Reproduce:
canvas:shaders/default.vert
Performance impact. Could also be a problem if HD lightmaps are enabled but game settings have flat lighting. Not clear how lighter should behave in that case - maybe just ignore game settings?
https://i.imgur.com/lh54ZIY.png
This is a vanilla bug, but opaque blocks that produce light really shouldn't also shade neighbors.
Canvas version: 0.6.2.283
Indigo version: 0.1.3+9e67cf46
Configuration:
{
/* Applies material properties and shaders to items. (WIP) */
"itemShaderRender": false,
/* Reduces terrain lighting to full darkness in absence of moon/torch light. */
"hardcoreDarkness": false,
/* Makes terrain fog a little less foggy. */
"subtleFog": false,
/* Truly smoothh lighting. Some impact to memory use, chunk loading and frame rate. */
"hdLightmaps": true,
/* Slight variation in light values - may prevent banding. Slight performance impact and not usually necessary. */
"lightmapNoise": true,
/* Mimics directional light. */
"diffuseShadingMode": "SKY_ONLY",
/* Makes light sources less cross-shaped. Chunk loading a little slower. Overall light levels remain similar. */
"lightSmoothing": true,
/* Mimics light blocked by nearby objects. */
"aoShadingMode": "SUBTLE_ALWAYS",
/* Setting > 0 may give slightly better FPS at cost of potential flickering when lighting changes. */
"maxLightmapDelayFrames": 0,
/* Extra lightmap capacity. Ensure enabled if you are getting `unable to create HD lightmap(s) - out of space' messages. */
"moreLightmap": true,
/* Helps with chunk rebuild and also rendering when player is moving or many blocks update. */
"fastChunkOcclusion": true,
/* Draws multiple chunks with same view transformation. Much faster, but try without if you see visual defects. */
"batchedChunkRender": true,
/* Adjusts quads on some vanilla models (like iron bars) to avoid z-fighting with neighbor blocks. */
"preventDepthFighting": true,
/* Forces game to allow up to this many nanoseconds for chunk loading each frame. May prevent chunk load delay at high FPS. */
"minChunkBudgetNanos": 100000,
/* Output runtime per-material shader source. For shader development debugging. */
"shaderDebug": false,
/* Shows HD lightmap pixels for debug purposes. Also looks cool. */
"lightmapDebug": false,
/* Summarizes multiple errors and warnings to single-line entries in the log. */
"conciseErrors": true,
/* Writes information useful for bug reports to the game log at startup. */
"logMachineInfo": true
}
Running Canvas under OpenJ9-JDK11 (not to be confused with OpenJDK9) seems to be causing a gradual memory leak where a full client restart is required.
What's even more interesting, is that RAM usage remains roughly the same (as reported by htop
) - only buff/cache
(indicated by free -mh
under Linux) seems to go up. Thus, not only is a client restart required - but also freeing the buff/cache via echo 3 > /proc/sys/vm/drop_caches
.
This might be caused by virtual memory, but I am not sure.
I initially suspected OpenJ9s "JIT Compiler" threads, since those are the only ones that seem to be using any sort of disk I/O. But that would imply it would happen all the time - and it only happens with Canvas loaded.
Do note the whole buff/cache
thing could be a side-effect of the high memory allocation and might as well be irrelevant.
Asking around Fabrics Discord, a user shared the following screenshot of OptiFines author explaining a similar issue with OpenJ9 (apparently /not/ OpenJDK9, as written in the screenshot)
Note how JDK9-12 are supposed to mitigate this, yet it happens with JDK11 anyways.
No idea if relevant or helpful, but going under water seems to accelerate the issue.
I will try and get more accurate RAM/VRAM measurements later today or tomorrow.
Any ideas on how to try debugging this?
Canvas version: 0.6.42
Fermion version: 0.4.2
Fabric version: 0.3.0-pre+build.165
This is printed to the console when loading with Java 11.0.3
warn.canvas.slow_gl_call java.lang.NoSuchMethodException: java.nio.Bits.copyFromArray(java.lang.Object, long, long, long, long)
at java.base/java.lang.Class.getDeclaredMethod(Class.java:2475)
at grondag.canvas.varia.CanvasGlHelper.initFastNioCopy(CanvasGlHelper.java:142)
at grondag.canvas.varia.CanvasGlHelper.init(CanvasGlHelper.java:51)
at net.minecraft.class_310.handler$hookInit$zbh000(class_310.java:3006)
at net.minecraft.class_310.method_1503(class_310.java:613)
at net.minecraft.class_310.method_1514(class_310.java:395)
at net.minecraft.client.main.Main.main(Main.java:154)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at net.fabricmc.loader.game.MinecraftGameProvider.launch(MinecraftGameProvider.java:170)
at net.fabricmc.loader.launch.knot.Knot.init(Knot.java:127)
at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:26)
This has happened twice so far, upon breaking a block, the game will sometimes crash. The first time around, it even threw an unreported exception; this time, it's reported:
latest.log
Versions are probably evident from that log, but otherwise:
This can have a major performance impact when many mesh-based models are rendered.
Placing a string block will crash the game. No other block tested (which was most of them, including all non full-block models and blocks which may use the same renderer) will cause this issue.
I've attached the full log file, but the relevant part is below
latest.log
[23:33:22] [main/FATAL]: Reported exception thrown!
net.minecraft.class_148: Tesselating block in world - Indigo Renderer
at grondag.canvas.apiimpl.rendercontext.TerrainRenderContext.tesselateBlock(TerrainRenderContext.java:112) ~[canvas-mc116-1.0.716.jar:?]
at grondag.canvas.chunk.BuiltRenderRegion.buildTerrain(BuiltRenderRegion.java:418) ~[canvas-mc116-1.0.716.jar:?]
at grondag.canvas.chunk.BuiltRenderRegion.rebuildOnMainThread(BuiltRenderRegion.java:499) ~[canvas-mc116-1.0.716.jar:?]
at grondag.canvas.render.CanvasWorldRenderer.buildNearRegion(CanvasWorldRenderer.java:302) ~[canvas-mc116-1.0.716.jar:?]
at grondag.canvas.render.CanvasWorldRenderer.setupTerrain(CanvasWorldRenderer.java:222) ~[canvas-mc116-1.0.716.jar:?]
at grondag.canvas.render.CanvasWorldRenderer.renderWorld(CanvasWorldRenderer.java:358) ~[canvas-mc116-1.0.716.jar:?]
at net.minecraft.class_761.handler$zbd000$render(class_761.java:3264) ~[intermediary-fabric-loader-0.8.8+build.202-1.16.1.jar:?]
at net.minecraft.class_761.method_22710(class_761.java) ~[intermediary-fabric-loader-0.8.8+build.202-1.16.1.jar:?]
at net.minecraft.class_757.method_3188(class_757.java:717) ~[intermediary-fabric-loader-0.8.8+build.202-1.16.1.jar:?]
at net.minecraft.class_757.method_3192(class_757.java:540) ~[intermediary-fabric-loader-0.8.8+build.202-1.16.1.jar:?]
at net.minecraft.class_310.method_1523(class_310.java:1021) ~[intermediary-fabric-loader-0.8.8+build.202-1.16.1.jar:?]
at net.minecraft.class_310.method_1514(class_310.java:654) [intermediary-fabric-loader-0.8.8+build.202-1.16.1.jar:?]
at net.minecraft.client.main.Main.main(Main.java:215) [intermediary-fabric-loader-0.8.8+build.202-1.16.1.jar:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_251]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_251]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_251]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_251]
at net.fabricmc.loader.game.MinecraftGameProvider.launch(MinecraftGameProvider.java:192) [fabric-loader-0.8.8+build.202.jar:?]
at net.fabricmc.loader.launch.knot.Knot.init(Knot.java:140) [fabric-loader-0.8.8+build.202.jar:?]
at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:26) [fabric-loader-0.8.8+build.202.jar:?]
Caused by: java.lang.ArrayIndexOutOfBoundsException: -1
at grondag.canvas.apiimpl.RenderMaterialImpl$CompositeMaterial.forBlendMode(RenderMaterialImpl.java:253) ~[canvas-mc116-1.0.716.jar:?]
at grondag.canvas.apiimpl.rendercontext.FallbackConsumer.renderQuad(FallbackConsumer.java:146) ~[canvas-mc116-1.0.716.jar:?]
at grondag.canvas.apiimpl.rendercontext.FallbackConsumer.acceptInsideQuads(FallbackConsumer.java:120) ~[canvas-mc116-1.0.716.jar:?]
at grondag.canvas.apiimpl.rendercontext.FallbackConsumer.accept(FallbackConsumer.java:94) ~[canvas-mc116-1.0.716.jar:?]
at grondag.canvas.apiimpl.rendercontext.FallbackConsumer.accept(FallbackConsumer.java:55) ~[canvas-mc116-1.0.716.jar:?]
at net.minecraft.class_1087.emitBlockQuads(class_1087.java:1045) ~[intermediary-fabric-loader-0.8.8+build.202-1.16.1.jar:?]
at grondag.canvas.apiimpl.rendercontext.TerrainRenderContext.tesselateBlock(TerrainRenderContext.java:107) ~[canvas-mc116-1.0.716.jar:?]
... 19 more
Versions:
Issue:
You can't reload shaders in IntelliJ because Canvas doesn't "let go" of the shader files after reading them. The issue seems to be an InputStream that isn't closed.
Error: Internal error: (java.io.FileNotFoundException) C:\Users\Draylar\Fabric Projects\shaders\build\classes\java\main\assets\canvas\shaders\default.frag (Access is denied)
Steps to Reproduce:
resources/assets/canvas/shaders/default.frag
Encoder doesn't apply it but shaders not in place yet.
Update: just making clear this includes falling blocks, blocks pushed by pistons, blocks held by endermen, etc. As noted below, this is being actively worked and will be corrected "soon."
Demonstration (option toggled off/on): https://imgur.com/a/8TnhwHz
Issue doesn't occur when one of the slabs is broken: https://imgur.com/a/84xZHui
Easily reproduced with renderbender.
Consider fixing, per conversation below:
@grondag does indigo/canvas by any chance fix animated sprite interpolation not interpolating alpha? ๐
i forget where exactly but the code is somewhere in Sprite
interpolated opacity is ๐
i perstered tterrag to implement it in CTM for 1.12
the asm for it is here if you wanna peek https://github.com/Chisel-Team/ConnectedTexturesMod/blob/6bab85ef64b098b9ab854757c3b388f182f60e80/src/main/java/team/chisel/ctm/client/asm/CTMTransformer.java#L192-L220
(dont scroll up if you want to avoid mcp names)
the bytecode is pretty impressive tbh
super clean
i doubt you could get it as high precision as that with a mixin lol
but maybe.. would need to look at the code again
problem is you cant manipulate bitshifts
you might be able to slice and capture mixin-generated locals mid-op :ThinkNoose:
im not sure if youd be able to get into a spot where the local would be visible though.. ive rarely gotten generated locals to capture
i think ive only achieved it once
and it was probably a bug
lol
GrondagToday at 6:58 PM
Canvas doesn't do anything about that. Was not even aware of the bug. If I were going to fix I'd probably just redirect interpolateFrames() altogether and make it a config option.
If I had to do it as a Mixin I'd probably capture the two calls to getFramePixel(), compute my result on the second one, and then hook the call to setPixelRGB and mask in my alpha there. Still a mess.
Canvas version: 0.6.42
Fermion version: 0.4.2
Fabric version: 0.3.0-pre+build.165
When Canvas is loaded, the underside of fluids is rendered incorrectly.
With Canvas:
Without Canvas:
Configuration:
{
/* Applies material properties and shaders to items. (WIP) */
"itemShaderRender": false,
/* Reduces terrain lighting to full darkness in absence of moon/torch light. */
"hardcoreDarkness": false,
/* Makes terrain fog a little less foggy. */
"subtleFog": false,
/* Truly smoothh lighting. Some impact to memory use, chunk loading and frame rate. */
"hdLightmaps": true,
/* Slight variation in light values - may prevent banding. Slight performance impact and not usually necessary. */
"lightmapNoise": true,
/* Mimics directional light. */
"diffuseShadingMode": "SKY_ONLY",
/* Makes light sources less cross-shaped. Chunk loading a little slower. Overall light levels remain similar. */
"lightSmoothing": true,
/* Mimics light blocked by nearby objects. */
"aoShadingMode": "NORMAL",
/* Setting > 0 may give slightly better FPS at cost of potential flickering when lighting changes. */
"maxLightmapDelayFrames": 0,
/* Helps with chunk rebuild and also rendering when player is moving or many blocks update. */
"fastChunkOcclusion": true,
/* Draws multiple chunks with same view transformation. Much faster, but try without if you see visual defects. */
"batchedChunkRender": true,
/* Adjusts quads on some vanilla models (like iron bars) to avoid z-fighting with neighbor blocks. */
"preventDepthFighting": true,
/* Forces game to allow up to this many nanoseconds for chunk loading each frame. May prevent chunk load delay at high FPS. */
"minChunkBudgetNanos": 100000,
/* Output runtime per-material shader source. For shader development debugging. */
"shaderDebug": false,
/* Shows HD lightmap pixels for debug purposes. Also looks cool. */
"lightmapDebug": false,
/* Summarizes multiple errors and warnings to single-line entries in the log. */
"conciseErrors": true,
/* Writes information useful for bug reports to the game log at startup. */
"logMachineInfo": true
}
Same issue as Fabric 223
When Canvas is installed my game won't launch
Fabric Version: fabric-loader-0.4.7+build.147-1.14-build.10
Java Version: Java 8 (jre8-openjdk)
Operating System: Arch Linux
This is all that's found in the latest.log
:
[01:26:20] [main/INFO]: Loading for game Minecraft 1.14.1
Thank you for your time
Canvas seems to crash on 1.14.4.
Caused by: org.spongepowered.asm.mixin.injection.throwables.InjectionError: Critical injection failure: Argument modifier method modify$disableShade$zmf000(Z)Z in canvas.client.json:MixinBakedQuadFactory failed injection check, (0/1) succeeded. Using refmap canvas-refmap.json
Full log: https://paste.ee/p/uQekO
Typically due to HD light maps enabled + ice/snow/water
Multiple reports, not yet reproducible
Update: caused by "Fabulous" graphic settings
https://hastebin.com/zepasofoni.sql
net.minecraft.util.crash.CrashException: Tesselating block in world - Canvas Renderer
at grondag.canvas.apiimpl.rendercontext.TerrainRenderContext.tesselateBlock(TerrainRenderContext.java:98) ~[net.fabricmc.yarn.1.canvas-renderer.canvas-0.6.1.281.jar:?]
at net.minecraft.client.render.chunk.ChunkRenderer.handler$onRebuildChunk$zzl000(ChunkRenderer.java:761) ~[minecraft-1.14.2%20Pre-Release%204-mapped-1.jar:?]
at net.minecraft.client.render.chunk.ChunkRenderer.rebuildChunk(ChunkRenderer.java) ~[minecraft-1.14.2%20Pre-Release%204-mapped-1.jar:?]
at net.minecraft.client.render.chunk.ChunkRenderWorker.runTask(ChunkRenderWorker.java:86) ~[minecraft-1.14.2%20Pre-Release%204-mapped-1.jar:?]
at net.minecraft.client.render.chunk.ChunkBatcher.rebuildSync(ChunkBatcher.java:162) ~[minecraft-1.14.2%20Pre-Release%204-mapped-1.jar:?]
at net.minecraft.client.render.WorldRenderer.setUpTerrain(WorldRenderer.java:836) ~[minecraft-1.14.2%20Pre-Release%204-mapped-1.jar:?]
at net.minecraft.client.render.GameRenderer.renderCenter(GameRenderer.java:704) ~[minecraft-1.14.2%20Pre-Release%204-mapped-1.jar:?]
at net.minecraft.client.render.GameRenderer.renderWorld(GameRenderer.java:654) ~[minecraft-1.14.2%20Pre-Release%204-mapped-1.jar:?]
at net.minecraft.client.render.GameRenderer.render(GameRenderer.java:489) ~[minecraft-1.14.2%20Pre-Release%204-mapped-1.jar:?]
at net.minecraft.client.MinecraftClient.render(MinecraftClient.java:896) ~[minecraft-1.14.2%20Pre-Release%204-mapped-1.jar:?]
at net.minecraft.client.MinecraftClient.start(MinecraftClient.java:386) [minecraft-1.14.2%20Pre-Release%204-mapped-1.jar:?]
at net.minecraft.client.main.Main.main(Main.java:126) [minecraft-1.14.2%20Pre-Release%204-mapped-1.jar:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_201]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_201]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_201]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_201]
at net.fabricmc.loader.game.MinecraftGameProvider.launch(MinecraftGameProvider.java:170) [net.fabricmc.yarn.1.net.fabricmc.fabric-loader-0.4.8+build.154.jar:?]
at net.fabricmc.loader.launch.knot.Knot.init(Knot.java:129) [net.fabricmc.yarn.1.net.fabricmc.fabric-loader-0.4.8+build.154.jar:?]
at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:26) [net.fabricmc.yarn.1.net.fabricmc.fabric-loader-0.4.8+build.154.jar:?]
Caused by: java.lang.ArrayIndexOutOfBoundsException: -1
at grondag.canvas.light.AoCalculator.blendedInsetData(AoCalculator.java:227) ~[net.fabricmc.yarn.1.canvas-renderer.canvas-0.6.1.281.jar:?]
at grondag.canvas.light.AoCalculator.blendedPartialFace(AoCalculator.java:246) ~[net.fabricmc.yarn.1.canvas-renderer.canvas-0.6.1.281.jar:?]
at grondag.canvas.light.AoCalculator.compute(AoCalculator.java:172) ~[net.fabricmc.yarn.1.canvas-renderer.canvas-0.6.1.281.jar:?]
at grondag.canvas.apiimpl.rendercontext.QuadRenderer.renderQuad(QuadRenderer.java:100) ~[net.fabricmc.yarn.1.canvas-renderer.canvas-0.6.1.281.jar:?]
at grondag.canvas.apiimpl.rendercontext.FallbackConsumer.renderQuad(FallbackConsumer.java:145) ~[net.fabricmc.yarn.1.canvas-renderer.canvas-0.6.1.281.jar:?]
at grondag.canvas.apiimpl.rendercontext.FallbackConsumer.accept(FallbackConsumer.java:113) ~[net.fabricmc.yarn.1.canvas-renderer.canvas-0.6.1.281.jar:?]
at grondag.canvas.apiimpl.rendercontext.FallbackConsumer.accept(FallbackConsumer.java:49) ~[net.fabricmc.yarn.1.canvas-renderer.canvas-0.6.1.281.jar:?]
at net.minecraft.client.render.model.BakedModel.emitBlockQuads(BakedModel.java:1044) ~[minecraft-1.14.2%20Pre-Release%204-mapped-1.jar:?]
at grondag.canvas.apiimpl.rendercontext.TerrainRenderContext.tesselateBlock(TerrainRenderContext.java:92) ~[net.fabricmc.yarn.1.canvas-renderer.canvas-0.6.1.281.jar:?]
... 18 more
blendMode is not NULL, for example. Defaults are correct with a new material finder, the problem is only with clear().
It's a massive derp on my part - not clear how it ever actually worked at all. Fallback context was probably masking it for most scenarios.
Discovered as part of JMX #3
When HD light maps are enabled and the player has a long view distances or moves through terrain with different lighting scenarios this message eventually occurs. The short-term workaround is to use F3+A to reload chunks.
This will be fixed in three stages:
This in turn means invariant varying is being used instead of flat varying, which in the past has caused corrupted bit flags on some NVidia cards/drivers.
hello i am using 2 of your other mods: facility and exotic blocks. i love these mods but they have canvas dependency so i must also use this mod. the only problem is while using canvas render mod then the light overlay mod does not work
link to light overlay mod (https://www.curseforge.com/minecraft/mc-mods/light-overlay)
there is no crash but i would love a way to see the light level while also using canvas, so if theres any way that could be possible or if it already is i would love to know! <3
Same issues as Fabric 221
I just built canvas to test out the bloom shaders, and I found that with the Lithos resource pack, the Shroomlight animated texture renders with far fewer colors than it should. In the attached image, you can see what the block looks like under the canvas renderer, and what it looks like rendered in hand/as an entity. I'm pretty sure this has to do with some Lithos textures having reduced color to save space in the pack, but I can't see anything immediately suspect when I open up the textures in GIMP.
I'm running Ubuntu 20.04 with an NVIDIA RTX 2060, and the latest drivers.
Nothing renders.
I installed the required dependencies listen on CF (Canvas, Fabric API, Cloth Config, Auto Config, and FREX), but looks like the mod expects ModMenu to be installed too: https://paste.ee/p/QB8kG
After installing ModMenu, now the mod expects Jankson to come from somewhere: https://paste.ee/p/ddAPN. That should probably be shaded.
Installed the rest of my mod list and I guess something provided Jankson because it's no longer having that error, but now it can't find java.nio.Bits.copyFromArray: https://paste.ee/p/GCFmK. I'm on OpenJDK 11, does this depend on a newer version?
their hit boxes are there but the textures of them aren't. entities are just fine but most stuff in the inventory isn't rendering either. it's your latest curseforge version doing that
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.