r300: translate_rgb_opcode: Unknown opcode DDX
System information
- OS:
Debian GNU/Linux 11 (bullseye)
- GPU:
01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] RV350/M10 / RV360/M11 [Mobility Radeon 9600 (PRO) / 9700] [1002:4e50]
- Kernel version:
Linux espresso 5.10.0-18-686 #1 SMP Debian 5.10.140-1 (2022-09-02) i686 GNU/Linux
- Mesa version:
OpenGL version string: 2.1 Mesa 20.3.5
- Xserver version
xorg-server 2:1.20.11-1+deb11u2
- Desktop manager and compositor:
fluxbox
(Mesa from Bullseye isn't the absolute latest but the file that emits the error below has had no significant changes for a decade...)
Describe the issue
I made a small audio-visual artwork using Pure-data and GEM, which uses OpenGL for graphics.
This was all working fine until I added a small fragment shader to anti-alias quad edges and reduce crawling:
uniform sampler2D tex;
void main (void)
{
vec2 coord = (gl_TextureMatrix[0] * gl_TexCoord[0]).st;
vec4 colour = texture2D(tex, coord) * gl_Color;
float d = length(vec4(dFdx(coord), dFdy(coord))) * sqrt(2.0);
colour.a
= smoothstep(0.0, d, coord.x)
* smoothstep(0.0, d, 1.0 - coord.x)
* smoothstep(0.0, d, coord.y)
* smoothstep(0.0, d, 1.0 - coord.y)
;
gl_FragColor = colour;
}
It still works on modern hardware (desktop with AMD RX 580), but on the old laptop (ASUS W3N from mid 00s) that I use for exhibitions I get this message in the terminal and the quads are all black instead of textured:
r300 FP: Compiler Error:
../src/gallium/drivers/r300/compiler/r300_fragprog_emit.c::translate_rgb_opcode(): translate_rgb_opcode: Unknown opcode DDX
Using a dummy shader instead.
Log files as attachment
- Output of
dmesg
(please ignore segfaults in the log as those were from unrelated tests...) : espresso-dmesg.log
Any extra information would be greatly appreciated
I may be able to work around the issue by calculating d
manually instead of by dFdx()
and dFdy()
, so this issue is not a total show-stopper for me. Other better workaround suggestions would be welcome.
Source code for my project is at git clone https://code.mathr.co.uk/puzzle.git
, note that I'm using an old version of GEM (0.93.git 2cac768 compiled Jul 23 2013) because the Debian Bullseye version crashes on this hardware.