Skip to main content
gamedev.net
🔒 Locked

Pure device?

Started by aker_jus 6 replies 950+ views
Original Post
aker_jus
aker_jus
When I specify a pure device, I think it is not possible to use GetRenderState functions, right? Should I use the pure device if it exists along with TL, for example: PURE_DEVICE | HARDWARE_PROCESSING (or mixed) or just pure device flag?
GraphicsWare|RenderTechhttp://www.graphicsware.com3D Graphics & Solutions
JD
JD
I think it''s pure device alone. The pure device basically takes the fastest hw path so no get calls. See dx8.1 docs for detail info.
niyaw
niyaw
quote:
Original post by aker_jus
Should I use the pure device if it exists along with TL, for example:
PURE_DEVICE | HARDWARE_PROCESSING (or mixed)

or just pure device flag?

msdn is your friend.
quote:

Note that the D3DCREATE_HARDWARE_VERTEXPROCESSING flag is required to be set when creating a pure device (D3DCREATE_PUREDEVICE).



the most relevant thing i could find for the renderstate reading is this:
quote:

The pure device mode is a variant of the HAL device. The pure device type supports hardware vertex processing only, and allows only a small subset of the device state to be queried by the application. Additionally, the pure device is available only on adapters that have a minimum level of capabilities.


why would you want to read a renderstate anyway?
aker_jus
aker_jus
Why wouldn''t I read it? Say I need to know wether lighting is enabled. What should I do?

So, pure devices could be faster than normal HARDWARE_VERTEX_PROCESSING?
GraphicsWare|RenderTechhttp://www.graphicsware.com3D Graphics & Solutions
niyaw
niyaw
quote:
Original post by aker_jus
Why wouldn''t I read it? Say I need to know wether lighting is enabled.


that doesn''t answer the question. i can understand that you may want to read a renderstate for debugging purposes, but since you set all renderstates you use anyway, i fail to see a good reason for reading them in production code.
quote:

So, pure devices could be faster than normal HARDWARE_VERTEX_PROCESSING?

this is a possibility, but i think not a definite one.
IFooBar
IFooBar
From what I understand the pure device bypasses all the checking done by the cards driver on set render states. If you dont use a pure device and use hardware vertex processing instead, then when you set render states the driver (or d3d) checks the states and ignores it if it''s already been set (saves you from doing it) but when you specify pure then those checks are not made. I dont remember eaxctly what goes on, but S1CA answered a question on this which cleared everything up (with a diagram and everything ). If the search engine was working you coulve found it, but...

I think basically using a pure device makes that path that a pixel/vertex takes from your program to the screen much shorter. But before using a pure device you have to be sure that the card supports EVERYTHING YOUR DOING IN HARDWARE...or something like that


:::Al:::
[Triple Buffer V2.0] - Resource leak imminent. Memory status: Fragile
[size=2]aliak.net
thona
thona
alfmga - exactly :-)

Not that it is too hard given the effects framework etc. PURE devices are really high throughput shortcuts - you better have your state changes properly :-)


Regards

Thomas Tomiczek
THONA Consulting Ltd.
(Microsoft MVP C#/.NET)
RegardsThomas TomiczekTHONA Consulting Ltd.(Microsoft MVP C#/.NET)
aker_jus
aker_jus
I see, thanks everyone. I will try to find that post manually, but I wont be lucky I think.
GraphicsWare|RenderTechhttp://www.graphicsware.com3D Graphics & Solutions

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.