IPB

Welcome Guest ( Log In | Register )

 
Reply to this topicStart new topic
> GLSL compiler error in 169.04, Bad scope in ConvertLocalReferences()
Cyril Crassin
post Nov 1 2007, 04:05 PM
Post #1


Advanced Member
***

Group: Members
Posts: 21
Joined: 25-July 07
From: Grenoble, France
Member No.: 95



Hello,
Since I have updated my drivers to 169.04 (to be able to do very serious Crysis analysis at work ;-), I get this compiler error on every "multi-part" shaders (saying a shader program build from multiple shader linked togethers) I compile:

"fatal error C9999: Bad scope in ConvertLocalReferences()"

What is this ? Am I doing something wrong or is it simply a compiler bug ? I am quite frustrated since I noticed that the compiler have been updated to 2.0.1.18 !

Thank you for your response,


Cyril


--------------------
Go to the top of the page
 
+Quote Post
Chris Dodd
post Nov 1 2007, 07:02 PM
Post #2


Advanced Member
***

Group: Members
Posts: 133
Joined: 14-August 07
Member No.: 416



This is a known bug which should be fixed in a future driver drop.

For now you can avoid the problem by changing the order in which you link the programs -- always link the shader with the function definitions first and the shader with 'main' last. Leaving out the argument names in the function declaration (in the shader that uses the function but doesn't define it) also works.
Go to the top of the page
 
+Quote Post
Cyril Crassin
post Nov 5 2007, 08:12 PM
Post #3


Advanced Member
***

Group: Members
Posts: 21
Joined: 25-July 07
From: Grenoble, France
Member No.: 95



Thank you for this information, but unfortunately I can't get my shader to work even reordering the attachShader() instructions call nor removing arguments names of my functions prototypes in the shaders. I have multiples shaders with inter-dependences so it may be due to this.
Hope It will be solved quickely...

Cyril


--------------------
Go to the top of the page
 
+Quote Post
Cyril Crassin
post Nov 15 2007, 08:59 AM
Post #4


Advanced Member
***

Group: Members
Posts: 21
Joined: 25-July 07
From: Grenoble, France
Member No.: 95



The bug is not yet fixed in 169.09, it is a real problem for me because my application use both GLSL and CUDA and I'm planing to jump to CUDA 1.1, only supported in this driver release. Any feedback from NVidia on when this bug will be fixed ?
Thank you in advance.


--------------------
Go to the top of the page
 
+Quote Post
Dave Parks
post Nov 30 2007, 04:09 AM
Post #5


Newbie
*

Group: Members
Posts: 2
Joined: 8-November 07
From: San Francisco
Member No.: 1,872



Having the same problem here. We just went to public beta with a version of our renderer that relies heavily on the GLSL linker. We're basically resorting to falling back to fixed function for anyone with an 8800 GT.
Go to the top of the page
 
+Quote Post
Cyril Crassin
post Dec 6 2007, 12:34 PM
Post #6


Advanced Member
***

Group: Members
Posts: 21
Joined: 25-July 07
From: Grenoble, France
Member No.: 95



Hello Dave, do you have some news from NVidia about that bug ? It is also critical for me...


--------------------
Go to the top of the page
 
+Quote Post
Dave Parks
post Dec 8 2007, 08:46 AM
Post #7


Newbie
*

Group: Members
Posts: 2
Joined: 8-November 07
From: San Francisco
Member No.: 1,872



No news. I've e-mailed my account manager several times, but no response. It bothers me that there's no mention of this issue in the 169.09 release notes. It also bothers me that the 169.02 are WHQL certified.

I'm very worried that NVIDIA is about to release non-beta drivers across the board that contain this bug. This would totally sink our product update, which 1 million+ users are waiting for.
Go to the top of the page
 
+Quote Post
Hinkley
post Dec 8 2007, 04:24 PM
Post #8


Newbie
*

Group: Members
Posts: 1
Joined: 8-December 07
Member No.: 2,273



QUOTE (Dave Parks @ Dec 8 2007, 08:46 AM) *
I'm very worried that NVIDIA is about to release non-beta drivers across the board that contain this bug. This would totally sink our product update, which 1 million+ users are waiting for.


Worse than that Dave, it screws some of the nicer visual effects in the current version of your product. If NVIDIA release these drivers for all cards then you're going to have a whole load of your customers asking why your product suddenly looks like it did three years ago.

It's really pretty poor QA on Nvidia's part to release these drivers. It's not as if they are beta drivers, for 8800GT owners like myself these are the 169 series are the official drivers. Like you say, WHQL certified. Kind of makes you wonder just what you have to do to get a WHQL sticker, probably just fill in a form.
Go to the top of the page
 
+Quote Post
plg
post Jan 15 2009, 02:34 PM
Post #9


Newbie
*

Group: Members
Posts: 2
Joined: 14-January 09
Member No.: 7,244



It seems like this (or related problem) has resurfaced in recent driver updates. I'm getting the same error in the 180.48 and 181.20 versions.

I have just one fragment shader object compiled and linked with one vertex shader object. After rearranging all the code such that all definitions are made first, and prototypes wouldn't be needed, it still produced that error:
fatal error C9999: Bad scope in ConvertLocalReferences()

I still had some prototypes and when I removed them it all worked. In the end it turned out to be just one function prototype causing the issue, with the following signature:
vec4 funcName(in vec4 pos, in vec4 maxpos, in vec4 dir, in vec4 invdir);

The function definition has the exact same signature. I can have other prototypes and it works, but not this one.
The shader has 1380 lines but a fair amount of comments and ifdefs, about 20-25 functions.

Any clues??? It seems to me a driver bug!

/ Patric
Go to the top of the page
 
+Quote Post
Chris Dodd
post Jan 15 2009, 06:46 PM
Post #10


Advanced Member
***

Group: Members
Posts: 133
Joined: 14-August 07
Member No.: 416



All the 169.x bugs related to linking should (still) be fixed in 180.x drivers. If your seeing a problem with a single vertex and single fragment shader, then its not an issue with linking multiple shaders of the same type, but a different problem. If you post the entire shader, I might be able to figure out whats going wrong.
Go to the top of the page
 
+Quote Post
plg
post Jan 15 2009, 07:06 PM
Post #11


Newbie
*

Group: Members
Posts: 2
Joined: 14-January 09
Member No.: 7,244



Thanks,

unfortunately I can't post the shader. If I'm able to reproduce the problem in a test shader I will post it.

The error is reported as a link error and our shader worked fine with previous drivers, 178.13 and 169.02.

It did not help to remove the arguments and just declare the function.

/ Patric
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



RSS Copyright © 2008 NVIDIA® Corporation.  Terms of Use | Legal Info | Privacy Policy Time is now: 29th July 2010 - 06:20 PM