Heavy artifacting started appearing
Oreeeee opened this issue ยท 14 comments
What happened?
On some shaders, I started getting artifacting. With Complementary Shaders 4.5 I get them only underwater after a second, it looks like two triangles with solid colors. With SEUS PTGI HRR 3 it's constant, there are two triangles too, but you can make out the image.
Screenshots
Log output
No response
Minecraft Version
1.21
Iris Version
Iris 1.7.3+mc1.21
Operating System
Arch Linux, 6.6.39-1-lts Kernel
What is your GPU?
Gigabyte RX 580 8 GB
Additional context
It used to work like a week ago.
Same problem after upgrading from 1.7.0 to 1.7.2 on the default kernel. On 1.7.0 I only had this problem with some shaders, but my favorite AstraLex worked fine. Now even it has this problem. Also it spams this in the console every frame:
[13:22:18] [Thread-34/INFO]: OpenGL debug message: id=2, source=API, type=ERROR, severity=HIGH, message='GL_INVALID_OPERATION in glBindTexture(non-gen name)'
MC version: 1.20.1
Iris version: 1.7.2
System info:
Operating System: Arch Linux
KDE Plasma Version: 6.1.2
KDE Frameworks Version: 6.4.0
Qt Version: 6.7.2
Kernel Version: 6.9.9-arch1-1 (64-bit)
Graphics Platform: Wayland
Processors: 12 ร AMD Ryzen 5 5600X 6-Core Processor
Memory: 15.6 GiB of RAM
Graphics Processor: AMD Radeon RX 5700 XT
Manufacturer: Gigabyte Technology Co., Ltd.
Product Name: B450 GAMING X
I am currently investigating; seems most likely to be a Mesa bug. It would be helpful if someone could bisect either Iris or Mesa.
After a little bit of digging I found that in AstraLex shaders it is caused by Biome Refract (add haze effect in biomes) option, In 1.7.2 and 1.7.0 versions of iris
However even when disabled shaders still show artifacts underwater.
Right now I can't try mesa-git, because I don't have the resources to build it, I'll add an update when I get mesa 24.2
I noticed this happens mostly on shaders not designed for 1.21. Latest Complementary Shaders - which are updated to support 1.21 work, but SEUS PTGI HRR3, which is an 1.18 shader doesn't. I won't really take my time to switch to mesa-git, as I'm currently fine with using Complementary over SEUS PTGI until the patch is in stable mesa.
This also happens on 1.6.11, so it certainly isn't a regression.
Does anyone know whether the root cause has been identified yet? Or at least which version of Mesa introduced this bug?
Btw, as a temporary workaround, you can utilise the zink opengl driver implemented atop Vulkan using this env var: MESA_LOADER_DRIVER_OVERRIDE=zink
. It renders correctly.
It appears to be a lot less performant though but I don't have a good reference at hand.
This suggests to me that the issue likely lies in radeonsi.
Can confirm that MESA_LOADER_DRIVER_OVERRIDE=zink
fixes the artifacts, but the performance hit is not worth it at all. Im on a 5700 XT and shaders that usually had stable 60 fps (capped) are barely hitting 20.
@zmike do you know why Zink perf in MC shaders is at like 1/3 of radeonsi? (I'm sure Big Triangle is behind all this...)
No, but if you file a ticket with simple repro instructions I can probably find out.
Update: This issue has been confirmed on older versions of Optifine under similar conditions, and latest git fixed it. Not sure what I can do here.
(Other than waiting for 24.2, of course.)
sp614x/optifine#7697
I can confirm that mesa 24.2 fixes this issue (somehow...). Though I'd still like to know what actually fixed the issue so that it can be backported to 24.1.
In 24.2, zink now has 90% of the perf of radeonsi istead of ~33% which is within expected margins, so it appears that has been fixed too.