Hi !
Featured games (90)
games approved by the League of Dukes
Games in Showcase (789)
Games in Android Showcase (234)
games submitted by our members
Games in WIP (864)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  nVidia GLSL linking errors when uniforms mixed with array access  (Read 3834 times)
0 Members and 1 Guest are viewing this topic.
Offline AI Guy

Senior Newbie

« Posted 2008-01-31 19:00:52 »

Have observed some problems when linking successfully compiled shaders using the GeForce 8800 GTX/PCI/SSE2 render, using ForceWare version 169.25.

uniform int   uniSingle;
uniform ivec2 uniPair;
void main() {
float myArray[25];

// using a uniform to access an array causes "error C1011: cannot index a non-array value"

// accessing a uniform itself as an array also causes the same link error

// this links though

I have employed permanent workarounds, but though I would document this when I could not it done so before.
Offline Chris61182

Junior Devvie

« Reply #1 - Posted 2008-01-31 20:44:14 »

What happens if you try...?

uniform ivec2 uniPair(0);
Offline bienator

Senior Devvie


« Reply #2 - Posted 2008-01-31 21:46:12 »

the Nvidia compiler does a lot of optimizations (some of them accrue in the linking process). eg: never used uniforms are optimized away...
maybe this is your problem?

your sample compiles and links on a X1600 but I bet it wont on my GF 7...

Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline AI Guy

Senior Newbie

« Reply #3 - Posted 2008-01-31 23:39:22 »

Trying to do what you ask results in compile errors:
(1) : error C0000: syntax error, unexpected integer constant at token "<int-const>"
(1) : error C0501: type name expected at token "<int-const>"
(1) : warning C7011: implicit cast from "int" to "float"
(1) : error C1010: expression left of ."x" is not a struct or array
(1) : error C1010: expression left of ."y" is not a struct or array

Those after the first two, are just repercussions of the initial error, later in the source.

Michael (I believe);
I was only documenting this for others.  I think I am good.

It looks like just expressing the uniPair as a structure(.x or .y) fixes that issue in a shader am still test running.  Pretty sure you would get this error regardless of whether it is in dead code or not.

I changed my design in another shader to avoid the issue I had using a uniform to index an array.  Kind of cheated, and am not even using a uniform.  That shader completely tested!

It fails on GF 8, so it is very likely to fail on GF 7.

Thanks guys.

Pages: [1]
  ignore  |  Print  

hadezbladez (2616 views)
2018-11-16 13:46:03

hadezbladez (943 views)
2018-11-16 13:41:33

hadezbladez (2570 views)
2018-11-16 13:35:35

hadezbladez (508 views)
2018-11-16 13:32:03

EgonOlsen (3737 views)
2018-06-10 19:43:48

EgonOlsen (4135 views)
2018-06-10 19:43:44

EgonOlsen (2495 views)
2018-06-10 19:43:20

DesertCoockie (3301 views)
2018-05-13 18:23:11

nelsongames (3398 views)
2018-04-24 18:15:36

nelsongames (4375 views)
2018-04-24 18:14:32
Java Gaming Resources
by philfrei
2019-05-14 16:15:13

Deployment and Packaging
by philfrei
2019-05-08 15:15:36

Deployment and Packaging
by philfrei
2019-05-08 15:13:34

Deployment and Packaging
by philfrei
2019-02-17 20:25:53

Deployment and Packaging
by mudlee
2018-08-22 18:09:50

Java Gaming Resources
by gouessej
2018-08-22 08:19:41

Deployment and Packaging
by gouessej
2018-08-22 08:04:08

Deployment and Packaging
by gouessej
2018-08-22 08:03:45 is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!