https://bugs.freedesktop.org/show_bug.cgi?id=28966
Summary: [r300g] Dynamic branching 3 demo does not run Product: Mesa Version: git Platform: Other URL: http://www.humus.name/index.php?page=3D&ID=67 OS/Version: All Status: NEW Severity: normal Priority: medium Component: Drivers/DRI/r300 AssignedTo: dri-devel@lists.freedesktop.org ReportedBy: sa@whiz.se
I'm filing this just in case it's of interest for those hacking shaders on r300. Humus DynamicBranching3 demo does not run:
Note: 'for (i ... )' body is too large/complex to unroll Fragment program using varying vars not written by vertex shader
For reference, this demo does work with the i965 driver.
http://www.humus.name/index.php?page=3D&ID=67
System environment: -- system architecture: 32-bit -- Linux distribution: Debian unstable -- GPU: RV570 -- Model: Asus EAX1950Pro 256MB -- Display connector: DVI -- xf86-video-ati: 801e83227a59a29eea425ea612083bbf2b536c30 -- xserver: 1.8.1.901 -- mesa: 61a26cdfdc9c75a83c0d362c973d5436fe077be4 -- drm: 6ea2bda5f5ec8f27359760ce580fdad3df0464df -- kernel: 2.6.35-rc3
https://bugs.freedesktop.org/show_bug.cgi?id=28966
--- Comment #1 from Marek Olšák maraeo@gmail.com 2010-08-17 19:34:13 PDT --- Could you test the demo with current mesa git?
https://bugs.freedesktop.org/show_bug.cgi?id=28966
--- Comment #2 from Sven Arvidsson sa@whiz.se 2010-08-18 11:56:54 PDT --- It seems to have regressed after the glsl2 merge it fails with "0:4(2): preprocessor error: Invalid tokens after #" for both shaders.
/* Shader 2 source, checksum 0 */ #version 120 #define saturate(x) clamp(x,0.0,1.0) #define lerp mix #line 2 attribute vec2 textureCoord; attribute vec3 tangent; attribute vec3 binormal; attribute vec3 normal;
uniform vec3 camPos;
varying vec2 texCoord; varying vec3 vVec;
void main(){ gl_Position = ftransform();
#ifdef MULTIPASS texCoord = textureCoord;
vec3 viewVec = camPos - gl_Vertex.xyz; vVec.x = dot(viewVec, tangent); vVec.y = dot(viewVec, binormal); vVec.z = dot(viewVec, normal); #endif }
/* Compile status: fail */ /* Log Info: */ 0:4(2): preprocessor error: Invalid tokens after #
https://bugs.freedesktop.org/show_bug.cgi?id=28966
--- Comment #3 from Marek Olšák maraeo@gmail.com 2010-08-18 12:37:15 PDT --- Could you please file a new bug against the GLSL2 compiler (Mesa core, I guess) to keep driver-specific and core bugs separate?
https://bugs.freedesktop.org/show_bug.cgi?id=28966
--- Comment #4 from Marek Olšák maraeo@gmail.com 2010-08-18 12:39:08 PDT --- Other than that, dynamic branching and loops should work with r300g to my knowledge, I recall Tom adding the support for it just recently.
https://bugs.freedesktop.org/show_bug.cgi?id=28966
--- Comment #5 from Sven Arvidsson sa@whiz.se 2010-08-18 13:14:40 PDT --- Filed as bug 29654
https://bugs.freedesktop.org/show_bug.cgi?id=28966
--- Comment #6 from Sven Arvidsson sa@whiz.se 2010-08-22 14:24:17 PDT --- Small update: the demo runs now, but isn't rendering correctly. It is however looking the same as softpipe, so any bugs is probably on a more general level.
https://bugs.freedesktop.org/show_bug.cgi?id=28966
--- Comment #7 from Sven Arvidsson sa@whiz.se 2010-08-26 06:43:14 PDT --- Since error messages was added to r300g it now reports:
r300 FP: Compiler Error: Fragment program does not support relative addressing of source operands. Using a dummy shader instead. r300 VP: Compiler error: Vertex program does not support relative addressing of destination operands (yet). Using a dummy shader instead.
https://bugs.freedesktop.org/show_bug.cgi?id=28966
--- Comment #8 from Sven Arvidsson sa@whiz.se 2010-09-03 13:50:30 PDT --- Seems to be running fine now with loop unrolling.
https://bugs.freedesktop.org/show_bug.cgi?id=28966
Sven Arvidsson sa@whiz.se changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED
dri-devel@lists.freedesktop.org