[Resolved]Emulate various graphic cards in DirectX

Started by
7 comments, last by CadeF 18 years, 1 month ago
Hey everyone, I'm trying to make my engine compatible with as wide a range of graphic cards as possible, so I need to test them by emulating various caps and shader versions. Is there any application that lets me emulate a gfx card for directx? I found NVEmulate, but that is only for OpenGL and it still let me compile and run a parallax mapping shader on emulated NV1x hardware. Thanks :) [Edited by - CadeF on March 14, 2006 4:42:01 AM]
Advertisement
Use the reference rasterizer, although it is painfully slow, it supports all of Direct3D's features.
hi,

I think that if you cannot have the cards at your hand (even by buying or borrowing from a friend from a PC shop), then the best you can do is:

solution 1. create a class that makes a layer above the caps structure. in a normal situation, it should query the caps and provide you functions to get the values you are interested in. when you want to test your engine with different caps, then you should crate another class with the same interface (or modify the existing) so that it gives you the values of the card that you wanna emulate.

solution 2. create a demo of your app, and post a link here. kindly ask people to test it on their hardware and post the results in your thred. I can recall others did this before and received many feedback!

half-solution 3. if you want to try your shaders only (whether they'll compile to a given shader model or card) then use the command line fxc , and NVShaderPerf, they accept shader model and chip type as command line parameters.

kp
------------------------------------------------------------Neo, the Matrix should be 16-byte aligned for better performance!
Thanks, I think I'll try solution 2, once I make a proper benchmark. I'm thinking something like a fixed flyby, which outputs the results in a .txt file, including a graph.

I'll get back to you, so be sure to check my demo. ;)
Quote:Original post by kovacsp
hi,

solution 1. create a class that makes a layer above the caps structure. in a normal situation, it should query the caps and provide you functions to get the values you are interested in. when you want to test your engine with different caps, then you should crate another class with the same interface (or modify the existing) so that it gives you the values of the card that you wanna emulate.

kp


This Tool contains a plugin that allows to change the caps that are reported to the game without change the game source code at all.
Quote:Original post by Demirug
This Tool contains a plugin that allows to change the caps that are reported to the game without change the game source code at all.


hey, this is a much more elegant way! thanks for showing it!

kp
------------------------------------------------------------Neo, the Matrix should be 16-byte aligned for better performance!
Thanks, Demirug.
At least it was a shameless plug because I am the lead developer for this thing. But as we don’t sell it I believe it was OK.

As soon as I have some time I will add a option to select the caps for know cards to make it more comfortable.

CadeF, be careful this plugin only change the caps that are reported. It does not check if your app does use anything that is not supported depending on these caps. We are working on another tool for this that records the D3D commands from your App and generate a list of caps that are required to execute it and compare this with a database that contains different GPU. But it isn’t even in a beta state yet.
Thanks, but I've decided option 2 for now. :)

This topic is closed to new replies.

Advertisement