making a graphics driver

This is a discussion on making a graphics driver within the C++ Programming forums, part of the General Programming Boards category; I know ogl and dx are so fast because they directly access the graphics card ect..
But how difficult of ...

making a graphics driver

I know ogl and dx are so fast because they directly access the graphics card ect..
But how difficult of an undertaking would it be to make your own graphics driver that works like ogl and dx? (but nowhere near as complex of course)
Is is fesable for 1 person to do this even if it is really simple?

I know ogl and dx are so fast because they directly access the graphics card ect..
But how difficult of an undertaking would it be to make your own graphics driver that works like ogl and dx? (but nowhere near as complex of course)
Is is fesable for 1 person to do this even if it is really simple?

Single programmers write drivers all the time. But OpenGL and DirectX are more than drivers, they are entire API frameworks which specify a set of supported operations. Depending on the graphics card, some of these operations can be done by the hardware, and some might need to be emulated in software on cards which can't do them.

If you just want to exercise the features of some specific graphics card, you could write a driver for that card, depending on your skill level. Be prepared to reboot a lot during development.

GL and DX are typically implemented as part of the driver package. (In the case of DX, there's a fixed part, too. In the case of GL, usually not. But Linux GL variants may be based on the X DRI infrastructure, in which case they only supply hardware hooks for Mesa.)

But the main problem with writing graphics drivers is knowing what there is to do. To write a graphics driver:
1) You first need to write the 2d part of the driver, or your system won't boot. You can't reuse the 2d part of the existing driver - drivers don't like their controlled devices being messed with.
2) You need the hardware-level interface of the card. Which means getting specifications (ATI has released theirs - partially, so far) or reverse engineering.
3) Note that just trying things out is not a valid way of finding out what the card does. Improper access at hardware level can damage your graphics card. If you develop a driver by reverse engineering, there's a good chance you'll kill a card at least once.

An engine? Well, you could do that, but that's an entirely different subject.

Note that just trying things out is not a valid way of finding out what the card does. Improper access at hardware level can damage your graphics card. If you develop a driver by reverse engineering, there's a good chance you'll kill a card at least once.

Let's say you start peek'n and poke'n around (pun intended) and accidentally *way* over-clock a chip and burn it up. Or perhaps there's a register that indirectly controls voltage somewhere that needs to stay within certain parameters....ect, ect...