On Sun, Jul 11, 2010 at 4:21 PM, Roderick Colenbrander <thunderbird2k@gmail.com> wrote:

The PCI id is something else. For instance run 'lspci -x':
01:00.1 Audio device: ATI Technologies Inc RV620 Audio device [Radeon
HD 34xx Series]
00: 02 10 28 aa 07 01 10 40 00 00 03 04 10 00 80 00
..

This line shows a part of the PCI configuration header. The first two
bytes contain the PCI vendor id (0x1002 = ATI; you have to swap the
bytes) and byte 3 and 4 contain the PCI device id (0xaa28 = radeon
3450). Each device has such information and it is used by the
operating system to detect which hardware is around.

A lot of games use the PCI id, since it can be easier to parse than
the renderer strings.


That makes sense. I had based my thinking on the following comment,

A Direct3D device object contains the PCI id (vendor + device) of the videocard which is used for rendering.

I had assumed vendor + device meant the strings.


We have to keep the current static database. Extending it with video
memory reporting is likely the best way to go. So now and then it just
means that we have to refine it a little.

Roderick

Thinking things over I think you are right. Trying to add any kind of dynamic support at this stage is not worth it. Even the memory reporting is very recent and new. Maybe in a couple years more support will have materialized from opengl or the drivers to help with this issue. For now though I just submitted a patch to deal with the issue of a 8500/8400 being reported as a 8300. I moved the detection to be reported as an 8600. I thought about creating a new 8500 in the database but I realized that an 8600 is of feature parity and has the same video memory minimum.


Thanks,

Seth Shelnutt