• Advertisement

(in a proxy d3d9.dll) forcing a game to use fixed pipeline instead of shader?? HELP!

Recommended Posts

Hello.

Could anyone please help me with this:

I'm playing around with a proxy d3d9.dll to make games run on my slow system. If I've understood correctly, a lot of the heavy and costly things done in a game (such as postprocessing effect, fogs, etc. etc.) happen in the shader part. What I'm struggling with is to intercept the game's call to SetVertexShader and SetPixelShader and instead tell directx to simply use the fixed pipeline instead of custom shaders, hoping that would make the game run smoother (I don't care about the loss of all the fancy eye candy shader effects!). The interception is easy, but I have no idea how to pass the fixed pipeline as a shader to the original d3d9.dll. I've done a lot of digging about shaders and stuff, but I'm still totally confused.

Can anyone point me in the right direction please?

Thank you so much in advance.

 

Share this post


Link to post
Share on other sites
Advertisement

There's no way to do this without knowing what's going on in the game's shader programs. Shaders don't just add "fancy eye candy", they're completely responsible for computing vertex locations and screen space, and the final value of a pixel written to a render target. It's totally possible that the game's shaders are only doing straightforward things that could be mostly replicated in the old fixed-function pipeline, or it could be doing things in a complex, unorthodox way. Even common things like skeletal animation will screw you up if you don't know what's going on in the shader, since you would have to know that the vertex shader is doing joint skinning and set up the equivalent functionality with fixed-function states (if it's even possible to do so).

Share this post


Link to post
Share on other sites

Modern Windows emulate Fixed Pipeline using a set of shaders. Such modification does not rather help.

Share this post


Link to post
Share on other sites

Thanks a lot. I was afraid that would be the case!!

So, does a game do all of the gpu-intensive stuff (fog, postprocessing, etc.) using shaders?

Share this post


Link to post
Share on other sites
2 hours ago, megatenfreak said:

Thanks a lot. I was afraid that would be the case!!

So, does a game do all of the gpu-intensive stuff (fog, postprocessing, etc.) using shaders?

Yup! Post-processing is usually done by drawing a triangle that covers the entire screen, and using a pixel shader to sample textures and perform image processing operations on them. 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Advertisement