Display drivers programming

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
John
Posts: 8
Joined: Wed Feb 22, 2012 11:47 pm

Display drivers programming

Post by John »

Hi.

I'm writing a display driver to boost up the display rate of ATI and NVidia cards.
I'm wondering if anyone has experience to share how easy or difficult to program such driver?
And if anyone has successfully boost the display to above 500Hz?

Cheers.
User avatar
Brynet-Inc
Member
Member
Posts: 2426
Joined: Tue Oct 17, 2006 9:29 pm
Libera.chat IRC: brynet
Location: Canada
Contact:

Re: Display drivers programming

Post by Brynet-Inc »

Before you proceed, I'd make sure you have only the very best cable.

I recommend this one.
Image
Twitter: @canadianbryan. Award by smcerm, I stole it. Original was larger.
User avatar
Combuster
Member
Member
Posts: 9301
Joined: Wed Oct 18, 2006 3:45 am
Libera.chat IRC: [com]buster
Location: On the balcony, where I can actually keep 1½m distance
Contact:

Re: Display drivers programming

Post by Combuster »

Making your video card pump a refresh rate of 500Hz is easy. Even hardware from the nineties can do that. There's just no display out there that can handle it.
"Certainly avoid yourself. He is a newbie and might not realize it. You'll hate his code deeply a few years down the road." - Sortie
[ My OS ] [ VDisk/SFS ]
John
Posts: 8
Joined: Wed Feb 22, 2012 11:47 pm

Re: Display drivers programming

Post by John »

Thanks.
I'm looking to write a display driver. So, I dont see how I would need a cable.
Anyone has experience or could point me to someone who might be doing something similar?
Cheers.
J
gerryg400
Member
Member
Posts: 1801
Joined: Thu Mar 25, 2010 11:26 pm
Location: Melbourne, Australia

Re: Display drivers programming

Post by gerryg400 »

John wrote:Thanks.
I'm looking to write a display driver. So, I dont see how I would need a cable.
Anyone has experience or could point me to someone who might be doing something similar?
Cheers.
J
You need a cable to connect the video card to the video monitor. It will help with debugging.
If a trainstation is where trains stop, what is a workstation ?
User avatar
Brendan
Member
Member
Posts: 8561
Joined: Sat Jan 15, 2005 12:00 am
Location: At his keyboard!
Contact:

Re: Display drivers programming

Post by Brendan »

Hi,
John wrote:And if anyone has successfully boost the display to above 500Hz?
What exactly do you mean?

If you mean "500 frames per second" (from an application's perspective), then you only need to discard the unwanted/extra frames that will never be seen. For example, if the monitor only displays 60 frames per second, then for "500 frames per second" you discard 440 frames per second (and maybe add a note about the application being a piece of crap in your logs).

If you mean "500 Hz vertical refresh rate" then it will never happen. Most monitors can only handle 60 Hz to 75 Hz or 80 Hz. Some can handle up to 120 Hz. 500 Hz vertical refresh rate is both expensive and pointless.

If you mean "500 Hz horizontal refresh rate", then that's not going to happen either (500 Hz is far too low). In a similar way "500 Hz pixel clock frequency" is extremely slow. For example, a VGA 640*480 mode uses a 31468 Hz horizontal refresh rate and a 25175000 Hz pixel clock frequency.

If you mean "500 Hz GPU clock" (e.g. you want to severely under-clock the video card's GPU because there's no point wasting power when your driver can't use the GPU at all) then you'd need to write a native video driver for your video card (typically based on the results of reverse engineering), and it'd defeat the purpose (it would make more sense to actually use the GPU rather than severely under-clocking it to save power).


Cheers,

Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
John
Posts: 8
Joined: Wed Feb 22, 2012 11:47 pm

Re: Display drivers programming

Post by John »

I thought we are already seeing monitor/tv with a few hundreds Hz refresh rate? LED monitors that can handle very high refresh rate? With ultra high response time of 1 or 2 ms?
So if we've such a high refresh rate monitor, then all we need is just a good driver that can drive the display. Wouldnt that work? Or I'm missing something?
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re: Display drivers programming

Post by Solar »

CRT monitors running at 85 Hz were considered "good" at the time. Myself, being somewhat sensitive to flicker, I called a high-end monitor my own that topped the scale at 120-something Hz. (I was running it at 95 Hz, which was plenty.)

TVs are a different story. PAL is 50 Hz, NTSC is 60 Hz. Both is a little bit on the low side; it doesn't matter much with low-contrast movie scenes, but with the advent of on-screen text (like with news channels, teletext etc.) it became apparent. Since the signal is 50/60 Hz no matter what, the only thing you could do to get a better picture was to double the frames, resulting in "100/120 Hz TV".

For computer displays, it was the advent of LCD shutter glasses (for 3D effects), which effectively half the refresh rate, that drove the development towards 120 Hz (double the 60 Hz that result in a stable display on LCDs).

The response time of LCDs is something else entirely; this is about the speed of the pixels changing, to avoid "motion blur" with modern 3D shooters. The vertical refresh frequency is not affected by this. (You still get X fps at Y Hz, just the picture quality is better.)

All in all, no-one needs 500 Hz, and no display supports 500 Hz.
Every good solution is obvious once you've found it.
User avatar
bubach
Member
Member
Posts: 1223
Joined: Sat Oct 23, 2004 11:00 pm
Location: Sweden
Contact:

Re: Display drivers programming

Post by bubach »

I've never understood people that can tell 60hz and 75hz apart. Back in school I had classmates that noticed and changed to 75hz immediately if they came across some lower hertz screen. They must have eye issues, on a normal screen I sure as hell can't detect any flicker when something is updated 60 times a second, vs 75 times. :?
"Simplicity is the ultimate sophistication."
http://bos.asmhackers.net/ - GitHub
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re: Display drivers programming

Post by Solar »

Yes, it's a matter of the eyes. I wouldn't go so far as to call it "issues": For example, my eyes are generally very good, always have been. Both sharpness (close up and distance) as well as night vision is excellent. An oculists' test (the one with the ever-smaller letters or three-quarter circles) I usually end early by simply reading the bottom-most line first. So I wouldn't say I've got "issues" with my eyes.

But I really cannot stand flicker; the type given by bad flourescent lighting or bad CRT monitors. Or stroboscope light - it gives me a migraine in no time. (Not your average tension headache, but a full-blown, disabling, leave-me-alone-or-I'll-be-sick-on-your-shoes migraine.) Again, I wouldn't call it an "issue", it's just that my eyes are sensitive to something that most people don't even notice.

As such, I could easily tell even 75 and 85 Hz apart easily. I could work at 85 Hz monitors, but 95 Hz was much more comfortable over time. And LCDs were a gift from above, if you ask me.
Every good solution is obvious once you've found it.
User avatar
bubach
Member
Member
Posts: 1223
Joined: Sat Oct 23, 2004 11:00 pm
Location: Sweden
Contact:

Re: Display drivers programming

Post by bubach »

Hehe, well for those test I usually do the same thing, and have very good results so it's not like I can't detect it because of poor eyesight. Anyway, couldn't agree more - LCD ftw. :D
"Simplicity is the ultimate sophistication."
http://bos.asmhackers.net/ - GitHub
User avatar
bluemoon
Member
Member
Posts: 1761
Joined: Wed Dec 01, 2010 3:41 am
Location: Hong Kong

Re: Display drivers programming

Post by bluemoon »

It's obvious if you are watching big TV with small news text rolling at bottom. On low frame rate(25fps) or refresh rate(50Hz) the text jumps.

To OP:
> I'm writing a .... ATI and NVidia cards.

Give up now. These cards have thousand of models and mostly closed interfaces, it's almost impossible for 3rd party to write anything for them.

By the way, the VGA, DVI or HDMI interfaces all impose a bandwidth limitation; for instance,
The DVI specification mandates a maximum pixel clock frequency of 165 MHz when running in single-link mode.
If you make a calculation for 1280x960, 500Hz, that is well beyond the limit.
John
Posts: 8
Joined: Wed Feb 22, 2012 11:47 pm

Re: Display drivers programming

Post by John »

What's the bandwidth limit for HDMI?

Just for discussion sake, let's put the need for 500Hz aside.

So, in effect, how do we get to control the "pixel changes" that come with the monitor?
For a monitor that response in 2ms, surely there is a way to push the rate up to make display changes at this rate?
I've the impression that vertical sync is only related to old monitor. With today's led monitors, dont we have more control over
at the low pixel levels? Which means that I can hit a high fps of close to a few hundreds?
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re: Display drivers programming

Post by Solar »

Apparently you didn't quite get what was said.
For a monitor that response in 2ms, surely there is a way to push the rate up to make display changes at this rate?
Response time is unrelated to vertical refresh rate. You can up the vert refresh no matter what the response time, and early LCDs actually did that. The effect is that quick changes of screen content will look "smeared" as the pixels cannot change from the old content to the new content quick enough. Somewhat acceptable for desktop work, not appropriate for 3D gaming.

But, again, the response time does in no way limit the vertical refresh rate.
I've the impression that vertical sync is only related to old monitor.
No. It just was more important for old (CRT) monitors, as the effects of a low vert refresh were more pronounced.

A CRT pixel "flashed" when hit by the cathode ray, and rapidly dimmed afterwards. The faster the ray moved, the more "stable" the picture looked.

On an LCD, the pixels don't "flash" or "dim", so there is no need to increase the refresh rates, unless you intend to use 3D shutter glasses. I.e., 60 Hz is enough for an LCD, and if you half the effective refresh using shutters and still want the original 60 Hz effect, you need 120 Hz. Anything beyond that is nonsensical.
Which means that I can hit a high fps of close to a few hundreds?
Welcome to another subject entirely. We had pixel response time and vertical refresh rate, now we arrived at the subject of FPS - frames per second - which are not related to display capabilities at all, but usually limited by what the CPU / GPU / RAM can do, and not up to the operating system to do anything about but in the domain of the game's 3D engine and the GPU designers.

Actually, many 3D games actually toss away perfectly-rendered, undisplayed frames if the display cannot keep up, with no negative impact on the experience. Early games had a problem that, without motion blur, quickly-moving objects seem to "jump" no matter what the FPS rate. The solution is not in pushing the FPS to unreasonable levels, but to add motion blur to the 3D engine.

In any case, there is neither leeway nor necessity to push a LCD beyond the 60/75 Hz it is already doing.
Last edited by Solar on Thu Feb 23, 2012 7:52 am, edited 1 time in total.
Every good solution is obvious once you've found it.
User avatar
Combuster
Member
Member
Posts: 9301
Joined: Wed Oct 18, 2006 3:45 am
Libera.chat IRC: [com]buster
Location: On the balcony, where I can actually keep 1½m distance
Contact:

Re: Display drivers programming

Post by Combuster »

John wrote:What's the bandwidth limit for HDMI?
Erm, what happened to the forum rule that tells you to search before posting?
Wikipedia wrote:The maximum pixel clock rate for HDMI 1.0 was 165 MHz
"Certainly avoid yourself. He is a newbie and might not realize it. You'll hate his code deeply a few years down the road." - Sortie
[ My OS ] [ VDisk/SFS ]
Post Reply