Java-Gaming.org    
Featured games (81)
games approved by the League of Dukes
Games in Showcase (498)
Games in Android Showcase (115)
games submitted by our members
Games in WIP (563)
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 1886 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"
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 20:44:14 »

What happens if you try...?

uniform ivec2 uniPair(0);
Offline bienator

Senior Member




OutOfCoffeeException


« 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 »

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.

 

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

The first screenshot will be displayed as a thumbnail.

radar3301 (12 views)
2014-09-21 23:33:17

BurntPizza (30 views)
2014-09-21 02:42:18

BurntPizza (20 views)
2014-09-21 01:30:30

moogie (20 views)
2014-09-21 00:26:15

UprightPath (28 views)
2014-09-20 20:14:06

BurntPizza (32 views)
2014-09-19 03:14:18

Dwinin (48 views)
2014-09-12 09:08:26

Norakomi (74 views)
2014-09-10 13:57:51

TehJavaDev (102 views)
2014-09-10 06:39:09

Tekkerue (50 views)
2014-09-09 02:24:56
List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50

List of Learning Resources
by SilverTiger
2014-07-31 16:26:06

List of Learning Resources
by SilverTiger
2014-07-31 11:54:12

HotSpot Options
by dleskov
2014-07-08 01:59:08
java-gaming.org 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‑gaming.org
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!