DXGI Enumeration

Published February 11, 2006
Advertisement
I've been pretty busy lately, but I thought I'd post the following just to prove I was doing something and that I'm still alive [grin]

Adapter 0:	Dedicated Video Memory: 0gb 127mb 948kb 0b	Shared Video Memory: 0gb 64mb 0kb 0b	Device ID: 20040	Vendor ID: 4098	Sub System ID: 135170	Revision: 0	Description 'RADEON 9800 PRO'	Output 0 for adapter 0		Name: \\.\DISPLAY1		Output is NOT attached to desktop		Desktop Coordinates: [0,0] to [1024,768]		Current display mode:			Dimensions: 1024x768 @ 60hz			Format: DXGI_FORMAT_B8G8R8A8_UNORM		Supported display mode 0:			Dimensions: 1920x1080 @ 59hz			Format: DXGI_FORMAT_B8G8R8A8_UNORM		Supported display mode 1:			Dimensions: 1280x720 @ 59hz			Format: DXGI_FORMAT_B8G8R8A8_UNORM		Supported display mode 2:			Dimensions: 1024x768 @ 75hz			Format: DXGI_FORMAT_B8G8R8A8_UNORM		Supported display mode 3:			Dimensions: 1024x768 @ 72hz			Format: DXGI_FORMAT_B8G8R8A8_UNORM		Supported display mode 4:			Dimensions: 1024x768 @ 70hz			Format: DXGI_FORMAT_B8G8R8A8_UNORM		Supported display mode 5:			Dimensions: 1024x768 @ 60hz			Format: DXGI_FORMAT_B8G8R8A8_UNORM		Supported display mode 6:			Dimensions: 1024x768 @ 86hz			Format: DXGI_FORMAT_B8G8R8A8_UNORM		Supported display mode 7:			Dimensions: 960x720 @ 60hz			Format: DXGI_FORMAT_B8G8R8A8_UNORM		Supported display mode 8:			Dimensions: 856x480 @ 60hz			Format: DXGI_FORMAT_B8G8R8A8_UNORM		Supported display mode 9:			Dimensions: 848x480 @ 75hz			Format: DXGI_FORMAT_B8G8R8A8_UNORM		Supported display mode 10:			Dimensions: 848x480 @ 60hz			Format: DXGI_FORMAT_B8G8R8A8_UNORM		Supported display mode 11:			Dimensions: 800x600 @ 75hz			Format: DXGI_FORMAT_B8G8R8A8_UNORM		Supported display mode 12:			Dimensions: 800x600 @ 72hz			Format: DXGI_FORMAT_B8G8R8A8_UNORM		Supported display mode 13:			Dimensions: 800x600 @ 70hz			Format: DXGI_FORMAT_B8G8R8A8_UNORM		Supported display mode 14:			Dimensions: 800x600 @ 60hz			Format: DXGI_FORMAT_B8G8R8A8_UNORM		Supported display mode 15:			Dimensions: 800x600 @ 56hz			Format: DXGI_FORMAT_B8G8R8A8_UNORM		Supported display mode 16:			Dimensions: 800x600 @ 94hz			Format: DXGI_FORMAT_B8G8R8A8_UNORM		Supported display mode 17:			Dimensions: 720x576 @ 60hz			Format: DXGI_FORMAT_B8G8R8A8_UNORM		Supported display mode 18:			Dimensions: 720x480 @ 75hz			Format: DXGI_FORMAT_B8G8R8A8_UNORM		Supported display mode 19:			Dimensions: 720x480 @ 60hz			Format: DXGI_FORMAT_B8G8R8A8_UNORM		Supported display mode 20:			Dimensions: 704x480 @ 60hz			Format: DXGI_FORMAT_B8G8R8A8_UNORM		Supported display mode 21:			Dimensions: 640x480 @ 75hz			Format: DXGI_FORMAT_B8G8R8A8_UNORM		Supported display mode 22:			Dimensions: 640x480 @ 72hz			Format: DXGI_FORMAT_B8G8R8A8_UNORM		Supported display mode 23:			Dimensions: 640x480 @ 60hz			Format: DXGI_FORMAT_B8G8R8A8_UNORM
Interesting, isn't it. It's the output from examining the available data from the DXGI (DirectX Graphics Infrastructure). Whilst D3D10 has fixed feature caps, things like resolution and monitor output can't be fixed - so enumerations do still exist. The above is pretty similar to IDirect3D9::GetAdapterIdentifier().

The interesting part is being able to get the exact amount of VRAM installed on the physical hardware. Yes, you can get it currently - but it's nowhere near as easy...

I'm not too sure whats up with the refresh rates on the supported modes. Some really odd values in there. 59hz? 86hz? 94hz? I think they should be 60/85/95 respectively. Refresh rates are expressed as rational numbers - with some really odd values.

I installed the Feb '06 SDK on my machine and started building up a simple D3D10 application. It doesn't really do much at the moment, but I'm trying to build up a simple application without copy-n-pasting the stock code. Thus going from the API reference and documentation. Yes, I am that hardcore [razz]

I'm planning on putting some D3D10 goodness into this journal in the near future. I've got a few simple applications I want to mess with, and I'll be posting any notable findings here...

Any requests?
Previous Entry I cheated
Next Entry Untitled
0 likes 2 comments

Comments

Cypher19
One thing I always wanted to get around to doing was a dynamic non-linear/planar tesselator. i.e. increase the # of verts between existing verts, but also curve them appropiately.
February 11, 2006 02:03 PM
jollyjeffers
You mean some form of higher-order surfaces? bezier/cubic patches and so on?

I might see about including something on that, but the current idea I have is to go for the really simple core basics. Sort of like a foundation "here's what sort of information you have, here's how to manipulate it - now go do some cool stuff!"

Jack
February 11, 2006 02:14 PM
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Advertisement
Advertisement