native instructions

I’m noticing a lot of my programs, both fragment and vertex, take fairly significantly different amounts of resources on a GeForce or Radeon. Not just ALU instructions, but temporaries, attributes, parameters, and texture instructions. The only thing consistant between them is attributes and texture indirections.

Something may take 17 ALU instructions on a Radeon, but 23 or a GeForce. It seems there is a couple free instructions on a GeForce and some tex instructions on a Radeon are ALU on a GeForce.

Is anybody else finding this? I don’t want to create a 40 ALU instruction program and find it expands to 49 instructions on some card in the future that only supports the minimum required by the standard.

BTW why does the XGI Volari report -1 native instructions? http://delphi3d.net/hardware/viewreport.php?report=906

Here’s a useful table for ATI cards:

Instruction	HW Instructions	HW Temps	HW Constants
ABS		0-1		0	0
FLR		2		1	0
FRC		1		0	0
LIT		7		1	1
MOV		0-1		0	0
COS		11		2	3
EX2		1		0	0
LG2		1		0	0
RCP		1		0	0
RSQ		1		0	0
SIN		10		2	3
SCS		6-8		1	2
POW		3		1	0
ADD		1		0	0
DP3		1		0	0
DP4		1		0	0
DPH		2		1	0
DST		4		1	0
MAX		1		0	0
MIN		1		0	0
MUL		1		0	0
SGE		2		1	0
SLT		2		1	0
SUB		1		0	0
XPD		2		1	0
CMP		1		0	0
LRP		1-2		0-1	0
MAD		1		0	0
SWZ		1-4		1	0
TEX		1 Texture		0	0
TXP		1 Texture		0	0
TXB		1 Texture		0	0
KIL		1 Texture		0	0

[This message has been edited by Ostsol (edited 12-16-2003).]

[This message has been edited by Ostsol (edited 12-16-2003).]

BTW why does the XGI Volari report -1 native instructions?

I didn’t know those things were even out, or had real OpenGL implementations. Maybe its a bug in their drivers. Given the other parameters, (which aren’t really trustworthy since the -1’s are in there too), we can see that these XGI cards are pretty crappy. 96 per-vertex parameters isn’t a reasonable number. I think DX9 itself requires 256 at a minimum, and I certainly won’t accept anything less.

Probably that’s a engineering sample with broken drivers. It was announced 1 month ago or something.

But what’s the deal with the driver number?
There is a few other cards in that database with the exact same number. Must be a mistake.

Originally posted by V-man:
Probably that’s a engineering sample with broken drivers

Possibly, but apparently the cards are shipping now in “limited quantities” so it might not be: http://www.xbitlabs.com/news/video/display/20031217101659.html

Here’s a useful table for NVidia cards(from http://www.3dcenter.org/)::slight_smile:

Command Cycle Comment
nop 1
mov 1
add 1
mad 1
mul 1
rcp 1 1/x
rsq16 1 1/radical(x) FP16
rsq32 2 1/radical(x) FP32
dp3 1
dp4 1
min 1
max 1
slt 1
sge 1
exp 1
log 1
frc 1
lit 1
dst 1
lrp 2
texcoord 1
texkill 1
2d texture read 1 Function can performed twice in a clock.
cube texture read 1 Function can performed twice in a clock.
3d texture 1
texbem 2 From here functions for compatibility NV25/PS 1.1-1.3.
texbeml 3
texbemproj 2
texreg2ar 1
texreg2gb 1
texm3x2pad 1
texm3x2tex 2
texm3x2depth 2
texm3x3pad 1
texm3x3tex 2
texm3x3cube 3
texreg2rgb 1
texreg2rgbcube 1
texdp3 2
texdp3tex 2
texdp3depth 2
texbrdf 1
texm3x3spec 7