Spend a few hours to parse shadertoy database and can say that we have many not working because of:
1). no iChannel implemented 2). compilation failed 3). error named "need XXX SGPRs, which exceeds the maximum of 102" 4). a bit of those ones which give some broken visuals (not very much, just 5-10 of ~400 shaders tested)
If takes 100% of all shaders, we can say that 60% of all shadertoy shaders want iChannel (so additional textures and stuff), then compilation failed are about 20%, then "need more SGRPS" about 10%, and other 10% works :)
There new ones which found interesting to look and which works:
If takes 100% of all shaders, we can say that 60% of all shadertoy shaders want iChannel (so additional textures and stuff), then compilation failed are about 20%, then "need more SGRPS" about 10%, and other 10% works :)
Sounds like ShaderToy/Joy shaders are a good way to test the limits of our shader compiler. Please submit bug tickets for the Warp3D Nova compilation failures.
I wish we had a compiler expert who could help out with the shader compiler. The Linux drivers use LLVM, which is out of reach for us. And, writing compilers is an entire specialized field of its own.
Btw, i see that sometime it not only textures, but also sound. Do you think it possible to add it as well (over AHI maybe, etc?), why i ask , its because some shaders are pure "demos" , with nice music/sounds and stuff :)
@Capehill Through probabaly mic and network almost none will use, but after testing for more than 700 shaders now, textures and sound surely pretty common.
Btw, i do find a lot more shaders which produce noise we talk about on mantis, and it looks like that root cause will be surely the same.
I also found interting shader which produce "half working + half noise" effects, which can help to strip things down, check that one:
Also after another few hours of shadertoy database testing, i can say that i didn't find any shader which crash (only one you report in mantis), also not that many fail to compile. Mostly non-working ones are limitations of our 102 SGRPs and 256 of VGRPs.
The range of user reported FPS with foot torus shader is larger than expected. Lower on X1000 and higher on RRX X5000 - 17 through to 54. What is contributing to this? RX drivers?
I have from 45 to 52 fps with that one on 2 years old PC notebook with more or less modern graphics card. You can speed it up to changing in the shader itself at top "#define AA 4 " , to " #define AA 3".
But on my RadeonRX it surely faster than on my RadeonHD (through i use latest beta of RadeonRX driver)
Also sometimes I can see that sound coming in iChannel (like in those 2 examples above), but sometimes sound come as another piece of code (sound shader?:) ), like there:
Also, what I find a bit strange (but that not related to the ShaderJoy, it's related to all amigaos4 animation in the windows), that in the window we never have really fluid animation movement even if it shows 60 fps, while in fullscreen we have an exactly good look. While for example on the Win box, I can see in window modes the same fluid movement. On our side it always a bit jerky, even if it 60 fps and only real way to have it all looks as needed, to switch to full screen. Maybe that issue with all those Waitofs and co?
@ddni Yep, even if on risen with all the stuff it give only 140 fps, it means that shader itself quite very heavy. But as no CPU should be involved, but only GPU, it means that we still have some issues with speed. And if there no DMA will help, then dunno what else.
iResolution should be working. Only open issue is that I don't know what the .z coordinate is supposed to be. IIRC I wrote 32 (bits) there. I haven't seen any shader to use iResolution.z though.
iChannel is always a texture when it's looked from a fragment shader perspective. It's sampler2D (could be samplerCube, too).
At first, I try to make texture channels working using image files. Then the procedural textures (multiple shaders).
iChannel is always a texture when it's looked from a fragment shader perspective. It's sampler2D (could be samplerCube, too).
But how code will known when iChannels "texture" are real texture, or a sound ? I mean, there should be some header-check or something on the header of data files ?