Did someone try D3D API hooking? Looking for 120Hz Black Frame Insertiion on existing applications
category: general [glöplog]
I don't know if this is common knowledge here. Starting something from a year ago there have been people talking about getting more crt-quality motion on lcds, talking about technologies in use in high end tvs like bfi or scanning or strobing backlights, with led backlight and short response lcds. The key point is that the screen must be off during frames and frames must be short. Then it appears nvidia 3dvision2 screens aka lightboost dating from 2 years ago permitted a 100/120Hz strobing mode in 2d that's better than anything else found in mainstream lcds, now, with a hack. 144Hz displays are available now.
The blurbusters site was created by a guy name Mark Rejhon. Michael Abrash on his blog and John Carmack in conferences have also brought these subjects, along with total lag, into broad light, mainly due to their researches on vr headsets where these things matters so much more.
Then nvidia just announced g-sync variable display rate and the end of vsync which apparently is a huge improvement in motion perception, and it appeared that these controllers also include an even better 2d lightboost mode starting at 85Hz (the two techniques are exclusive for now unfortunately).
Blurbusters site has pushed several pc emulators to include a bfi mode for people with a 120Hz display and feedback has been very positive.
Now here's my question: I have 120Hz lcds. It would be possible to do the same that has been done for some emulators, but with a D3D api hook like softTH did for multicreen, or softwire/swiftshader for alternate renderer. Information seem t be scarce on this.
Did anyone experiment this, and is it hard? What I'd want is simply something that forces 120Hz on modeset, renders asynchronously a frame alternating with black frame insertion at 2x60 fps, repeating the frame if needed, and when the application code requests a blit, update my frame.
This would provide a huge reduction in motion blur on existing 120Hz setups for a big share of existing applications, at the cost of some brightness.
The blurbusters site was created by a guy name Mark Rejhon. Michael Abrash on his blog and John Carmack in conferences have also brought these subjects, along with total lag, into broad light, mainly due to their researches on vr headsets where these things matters so much more.
Then nvidia just announced g-sync variable display rate and the end of vsync which apparently is a huge improvement in motion perception, and it appeared that these controllers also include an even better 2d lightboost mode starting at 85Hz (the two techniques are exclusive for now unfortunately).
Blurbusters site has pushed several pc emulators to include a bfi mode for people with a 120Hz display and feedback has been very positive.
Now here's my question: I have 120Hz lcds. It would be possible to do the same that has been done for some emulators, but with a D3D api hook like softTH did for multicreen, or softwire/swiftshader for alternate renderer. Information seem t be scarce on this.
Did anyone experiment this, and is it hard? What I'd want is simply something that forces 120Hz on modeset, renders asynchronously a frame alternating with black frame insertion at 2x60 fps, repeating the frame if needed, and when the application code requests a blit, update my frame.
This would provide a huge reduction in motion blur on existing 120Hz setups for a big share of existing applications, at the cost of some brightness.
I think the kkapture source is pretty much what you're looking for.
Ah, I did not think of this. I should look into this. Also, it seems that one can find some other interesting projects that have to do with directx api hooking.
Thank you very much.
Thank you very much.
just one hint:
http://research.microsoft.com/en-us/projects/detours/
http://research.microsoft.com/en-us/projects/detours/
Quote:
fuck detours and their licensing bullshit.
thx for nice link ryg!
i never really used detours, so i can skip that finally ;-)