Max uniform components bug (Fixed)

Hi,

sorry to duplicate posts here, but my beginner’s question is perhaps more evasive than I first surmised.

        [http://www.opengl.org/discussion_boards/ubb/ultimatebb.php?ubb=get_topic;f=2;t=020383](http://www.opengl.org/discussion_boards/ubb/ultimatebb.php?ubb=get_topic;f=2;t=020383)            

I believe the spec clearly states that the max uniform count is in individual floats/bools/ints. The number reported by my card, and those listed at the glinfo registry, is 256, which, according to the spec, should be the number of individual float components supported on this card. However, I know for certain that this card has 256 vec4 registers.

Is this a case of Nvidia mistakenly reporting the number as vec4 registers, or is there a difference in register counts with GLSL?

Geforce 6800, FW 84.21.

Any thoughts?

Thanks,

Sean

From the table at the end of the specs:

MAX_VERTEX_UNIFORM_COMPONENTS_ARB Z+ GetIntegerv 512 Number of words for vertex shader uniform variables 2.15.3 -

I know at the begining it says max number of float or integers or boolean. But here it is said word. And don’t know what a word means here (which size ?). So maybe a word is 64 or 128 bits so allowing four times more floats.

Anyway I also have 256 when getting that value on a geforce FX.

Hi Jide,

Yes, it’s most puzzling.

I think that finally the conventional wisdom is that it’s 256 vec4 registers being reported, not individual floats (words). Jan, in the other thread, pointed out that his X1600 has 4096 uniform components, so I imagine the 6800 is more in line with that figure - 1024 sounds a lot better than 256, anyway :slight_smile: .

It’d be nice to have a confirmation that this is in fact a (permanent) departure from the spec, or a bona fide difference in uniform counts. I’m working on a test to simply check for failure, but obviously I don’t want to rely on such a scheme permanently.

Thanks,

Sean

[Update] I’ve confirmed that the query in question returns the number of vec4 registers, not uniform components. So the question remains as to whether the spec aberration is on permanent footing. All things being equal, I’d just as soon not have to resort to code littered with IHV switch statements.

I have reported the bug in our internal bug tracking system.

Hi Bob(?),

Many thanks for that. I really appreciate it.

And my sincere thanks to Nvidia for an awesome OpenGL implementation!

Best regards,

Sean

This is just a quick reminder that this bug still exists as of driver version 91.47.

Any new information regarding this matter would be greatly appreciated.

Thanks

I’m pleased to report this issue is resolved as of forceware release 93.71 :slight_smile:

This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.