I re-read your error report:
unknown NIR ALU inst: vec1 ssa_371 = fddx ssa_316
and have now came to a different conclusion...
This bug have been reported to the pi userland bugtracker with an easy reproducer.
https://github.com/raspberrypi/userland/issues/289
Based on some research I think this is why it fails:
I hope the following information is correct:
NIR is a New Intermediate Representation used in the Mesa3D Gallium driver architecture.
The NIR representation is commonly used by many free software drivers in between high level Fixed function OpenGL shaders and the GPU machine code instructions.
GLSL -> NIR -> MachineCode instructions for your GPU
The error you see is missing functionality, Mesa3D do not know yet how to convert the NIR fddx operator into machine code for the vc4 GPU.
The NIR fddx opcode is used to implement accurate derivatives, the following document have some nice images that allows you to understand why derivatives is used in OpenGL:
https://www.opengl.org/pipeline/article/vol003_6/
It appears that the java -Dsun.java2d.opengl=True
swing implementation implicit tries to make use of accurate derivatives
Fixed function OpenGL applications implicit uses accurate derivatives if they enable mipmapped or anisotropic texture fetches.
Unfortunately there is no way to easily disable mipmapped textures using the -Dsun.java2d.opengl=True pipeline.
Here is Eric Anholt's bug/workitem to add DDX/DDY support to the new driver, this is required in order to support accurate derivatives.
https://github.com/anholt/mesa/issues/12
It is possible that this was still not implemented in the vc4 test-builds that "worked" for you. The test builds may not have raised a warning however I would have expected it to render incorrect.
Implementing DDX/DDY into the new driver is my best advice how to fix this issue.