Java-Gaming.org
Play Revenge of the Titans! The situation is critical. We need fancy commanders to defend Earth, the moon, Mars!
Featured games (78)
games approved by the League of Dukes
Games in Showcase (404)
games submitted by our members
Games in WIP (289)
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 1373 times)
0 Members and 1 Guest are viewing this topic.
Offline AI Guy

Senior Newbie





« Posted 2008-01-31 20: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"
myArray[uniSingle];

// accessing a uniform itself as an array also causes the same link error
uniPair[1];

// this links though
uniPair.y;
}


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

Junior Member





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

What happens if you try...?

uniform ivec2 uniPair(0);
Offline bienator

Senior Member




OutOfCoffeeException


« Reply #2 - Posted 2008-01-31 22: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!
Play the free demo of Revenge of the Titans!
Offline AI Guy

Senior Newbie





« Reply #3 - Posted 2008-02-01 00:39:22 »

Chris;
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  
 
 
You cannot reply to this message, because it is very, very old.

Play Revenge of the Titans! The situation is critical. We need fancy commanders to defend Earth, the moon, Mars!
 
Play Revenge of the Titans! The situation is critical. We need fancy commanders to defend Earth, the moon, Mars and Titan!

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

The invasion has landed! On Mars! And you're there to beat 'em!
cubemaster21 (39 views)
2013-05-17 21:29:12

alaslipknot (47 views)
2013-05-16 21:24:48

gouessej (76 views)
2013-05-16 00:53:38

gouessej (76 views)
2013-05-16 00:17:58

theagentd (84 views)
2013-05-15 15:01:13

theagentd (78 views)
2013-05-15 15:00:54

StreetDoggy (120 views)
2013-05-14 15:56:26

kutucuk (144 views)
2013-05-12 17:10:36

kutucuk (144 views)
2013-05-12 15:36:09

UnluckyDevil (154 views)
2013-05-12 05:09:57
Complex number cookbook
by Roquen
2013-04-24 12:47:31

2D Dynamic Lighting
by Oskuro
2013-04-17 16:46:12

2D Dynamic Lighting
by Oskuro
2013-04-17 16:45:57

2D Dynamic Lighting
by Oskuro
2013-04-17 16:23:20

Noise (bandpassed white)
by Roquen
2013-04-05 17:36:01

Noise (bandpassed white)
by Roquen
2013-04-03 16:17:38

Java Data structures
by Roquen
2013-03-29 13:21:12

Topic Request
by kutucuk
2013-03-22 21:42:01
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!
Page created in 0.085 seconds with 21 queries.