[Intel-gfx] A simple driver question

Dave Airlie airlied at gmail.com
Tue Oct 2 10:01:03 CEST 2012


On Mon, Oct 1, 2012 at 4:45 PM, Nikolskiy Alexey
<alexey.nikolskiy at yandex.ru> wrote:
> Good time of day!
>
> My name is Alexey Nikolskiy. I am a student in the St.Petersburg State Polytechnical University. Now I am doing my research arond operating system we are developing in our university. So I am looking for creating some graphics window system support for our operating system. All we need is basic 2D graphics support for this. Currently we are using VBE through real mode emulation in protected mode to make modeset functions enabled with LFB. After that we have several asm functions for double-buffered graphics engine. But enabling alpha blending makes performence issues so far. So now I am looking for the way I can get real GPU acceleration for this. I have some experience in driver writing (especially ethernet cards), so I can port some drivers from Linux to our OS. Out OS is not a Linux, so to port any driver I have to understand which functionsly I expect from the driver (like packet send/receive functionality from ethernet cards), then I serach in linux driver for setup and
>  other functions and then I port them by creating own ethernet driver. But with graphics driver it is not that easy for me.
> I really want to get intel HD graphis card support (basic 2D acceleration from intel GPU) so I have explored your documentation and driver sources and I have found a lot of useful information about all of this stuff. But the ammount of information is too big, so what I need is some guidence of basic actions to perform to make graphics mode setup (like 1024x768x24) and then use some functions that allows me to draw images on the screen  with apha blending. I do not need 3D acceleration
>
> Please, if it is possible, provide me with some guide about basic intel HD graphics setup, by extending this one:
> 1. Find PCI device (using class, device and vendor IDs) - it is ok I have done it.
> 2. Map MMIO areas. - it is also I have done. I also have found MMIO register map in your manuals.
> 3. Parse Video BIOS to understand modes supported... - or how I can get supported modes list?
> 4. Get connector/monitor status - how I can do it?
> 5. Setup graphics mode (1024x768x24) on some of enabled connectors - using VGA and VGA extended registers I guess. How I can do this? Hwere I can find some code examples?
> 6. Setup overlay/screen/display...or some other objects on GPU? - what I need to setup and in what order?
> 7. Setup some command stream and DMA areas...- for commands to be executed.  - what I need to setup and in what order?
> 8. What  commands I have to send and in what order to make some image in memory to be drawn with alpha blending on the screen?
>
> Any information will be extreamly helpful.

I'm not 100% the Intel 2D blit can do alpha blending, if it can't then
you need to use the 3D engine,

Either way you are talking about a huge amount of work, possibly more
than porting your application to Linux.

you'd have to port a lot of the kernel driver from Linux, though you
could drop all the modesetting pieces if VBE is capable enough for
you.

Dave.



More information about the Intel-gfx mailing list