PDA

View Full Version : Vertex Array Range Issues



opla
04-26-2001, 12:32 AM
I use VAR, and I want to use vertex programs too.
In "GDC01_Performance.pdf" doc from nVidia, it's written (page 18) that you shouldn't use VAR with vertex program on NV1X
My question is : how can I know if the 3D card is a NV1X ?
If there's no way to do it, what are the glGetString(GL_RENDERER) for NV1X cards ?

IsaackRasmussen
04-26-2001, 03:21 AM
NV1x cards are Geforce cards... except GF3.

So, Geforce, Geforce2, Geforce Go, Geforce2 MX(and it's variations).

Maybe some of Nvidia guys can provide with the real GL_RENDERER strings.

opla
04-27-2001, 12:15 AM
I know that NV20 is Geforce3, and NV1X are older cards.
But can I get the ID of the card ? (like with DX) or does I have to do with the GL_RENDERER string ?

Tom Nuydens
04-27-2001, 01:19 AM
Maybe some of Nvidia guys can provide with the real GL_RENDERER strings.[/B]

Unfortunately, the renderer string usually only says "GeForce" for people who are running reference drivers. For those who use the drivers that came with their card, it will usually say something like, e.g., "Elsa Gladiac 920".

I don't know if DX lets you find out the real ID of the chip, but if it does, why not use it?

- Tom

julius
04-27-2001, 02:00 AM
I think DX only displays what kind of driver you have installed/configured.

To get the info try typing "dxdiag", in: start/run . Works on win2k and dx8 at least.

mcraighead
04-27-2001, 10:56 AM
Ugh. Our vendors are changing our renderer string? I don't think they should be doing that...

- Matt

opla
04-28-2001, 01:28 PM
Using DX, I can get the card ID with :


enum
{
DT_NOT_NVIDIA,
DT_RIVA_128,
DT_TNT,
DT_TNT2,
DT_GEFORCE
};


#define DT_NVIDIA_VENDOR_ID 0x10DE

int Direct3DToolkit::isNVIDIA()
{

DDDEVICEIDENTIFIER_TYPE did;

dtData().pDD->GetDeviceIdentifier(&did, 0);

WORD wProduct, wVersion, wSubVersion,wBuild;

wProduct = HIWORD(did.liDriverVersion.HighPart);
wVersion = LOWORD(did.liDriverVersion.HighPart);
wSubVersion = HIWORD(did.liDriverVersion.LowPart);
wBuild = LOWORD(did.liDriverVersion.LowPart);


if(did.dwVendorId == 0x12D2)
{
switch(did.dwDeviceId)
{
case 0x18:
case 0x19:
return DT_RIVA_128;
}
}
else if(did.dwVendorId == DT_NVIDIA_VENDOR_ID)
{

if (did.dwDeviceId == 0x20)
return DT_TNT;

if (did.dwDeviceId >= 0x28 && did.dwDeviceId < 0x2F)
return DT_TNT2;

if ((did.dwDeviceId >= 0x100 && did.dwDeviceId <= 0x103) &#0124; &#0124;
(did.dwDeviceId >= 0x110 && did.dwDeviceId <= 0x113) &#0124; &#0124;
(did.dwDeviceId >= 0x150 && did.dwDeviceId <= 0x153) )
return DT_GEFORCE;
}
return DT_NOT_NVIDIA;
}


but I don't want to mix DX and OpenGL.