ARB_vertex_program: where did they get all the extra constants?

Right now my GF3 drivers are telling me MAX_VERTEX_ATTRIBS_ARB which doesnt seem to make much sense.[/b]

This query was busted in some of our drivers, including possibly the most recent on our web site. The correct answer to that query is 16 for all current NVIDIA devices.

Thanks for the clarifications, Pat. Cheers.

I can’t seem to get arrays of attribs going (ATTRIB pos[4] = {vertex.attrib[0…3]}; ) is there any way to do this? As well as arrays of temps, (TEMP sums[4]). Neither of these seem to compile for me is it just an unsupported feature? It seems like a usefull feature to allow.

Oh and thanks for the help, ive been kinda assuming that everything worked the way I imagined, your comments solidify that.

Hi again, is there anything that can cause undefined Temp’s, ive got exactly 12 of them and the vp is refusing to compile.(The max temporaries is 12)

I can’t seem to get arrays of attribs going (ATTRIB pos[4] = {vertex.attrib[0…3]}; ) is there any way to do this? As well as arrays of temps, (TEMP sums[4]). Neither of these seem to compile for me is it just an unsupported feature? It seems like a usefull feature to allow.

You can only have arrays of PARAMs, not ATTRIBs, TEMPs, or OUTPUTs. This is mostly to allow relative addressing and binding to multi-value things like matrices. Out of curiosity, what are you doing where it would be useful to have arrays of attribs or temps?

Hi again, is there anything that can cause undefined Temp’s, ive got exactly 12 of them and the vp is refusing to compile.(The max temporaries is 12)

There are things that can cause implicit (I assume that’s what you mean by undefined) temps. However, as long as you stay under MAX_PROGRAM_TEMPORARIES, your program should compile and execute, though potentially at lower performance. Have you checked the error string / error position to make sure there’s nothing else wrong?

– Ben

Originally posted by PH:
[b]My 8500 reports the following,

GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB : 65535
GL_MAX_PROGRAM_ENV_PARAMETERS_ARB : 65535
GL_MAX_PROGRAM_INSTRUCTIONS_ARB : 65535
GL_MAX_PROGRAM_TEMPORARIES_ARB : 65535
GL_MAX_PROGRAM_PARAMETERS_ARB : 65535
GL_MAX_PROGRAM_ATTRIBS_ARB : 32
GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB : 1
GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB : 65535
GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB : 65535
GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB : 65535
GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB : 32
GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB : 1
[/b]

Is the Radeon8500 already supporting arb_vertex_program? I have the latest drivers but I can’t find that extension on my Radeon9000 (version 6166)…

Thanks
LaBasX2

ATI released some drivers to fix a problem with a game ( don’t remember which ).
http://www.rage3d.com/

To the right of the page there are links to the files ( 6193 ). Those are the best drivers to date.

You will also find an important extension, ATI_vertex_attrib_array_object, so you can use ARB_vp with VAO. ATI wasn’t ready to release the spec ( I did ask and they said they hoped to have it released later this month ), but you should be able to figure it out by looking at the VAO + ARB_vp specs.

The 6193 drivers have the ARB_vp extension.

[This message has been edited by PH (edited 10-20-2002).]

Thanks PH!

Unfortunately they are only working for the 8500 and not for the 9000 at the moment, but this will hopefully soon be fixed as the 8500 and the 9000 are pretty similar. SO I will have to wait for the next unified driver release.

LaBasX2

The arrays of attribs are for all the vertex/normal streams in a skeletal animation vp. Eventually if branching was supported relative addressing would be usefull, but for now it would have just been a easier way to specify attribs/temps. Even now it would be nice to have some sort of looping macro for constant loop amounts.

As for the number of temps yes the program compiles as long as i dont use >= 12 temporaries. MAX_PROGRAM_TEMPORARIES is 12. How do I determine when an implicit temp is used?