Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Sign In with Facebook Sign In with Google Sign In with OpenID

Categories

We have migrated to a new platform! Please note that you will need to reset your password to log in (your credentials are still in-tact though). Please contact lee@programmersheaven.com if you have questions.
Welcome to the new platform of Programmer's Heaven! We apologize for the inconvenience caused, if you visited us from a broken link of the previous version. The main reason to move to a new platform is to provide more effective and collaborative experience to you all. Please feel free to experience the new platform and use its exciting features. Contact us for any issue that you need to get clarified. We are more than happy to help you.

A doubt about GPU hardware...

Hi!

I am trying to write an hobby OS with hardware 2D/3D acceleration support.

I don't need code example, just a little bit of theory.

I need some clarification about how the GPU hardware works.
Let say that I send an command to the GPU, to draw a poly to screen. The question is: When the GPU hardware terminate fetching the instruction stream, terminate to read the data from the RAM, then terminate to calculate it all, then, where the stuff are written? Let be a projected shape, where this 2D shape is written - in the video RAM? It is directed to the monitor connector? The specs often talk to finally write to an frame buffer. So is this frame buffer the video ram? There where one write data to draw as in VESA mode? Do I need to enter an special video mode (VESA for example) in order to draw to screen the GPU output?

For example if I want to render through the GPU only one windows content, representing this way only a part of the screen, how achieve it?

Thanks!

Comments

  • PhilTaylorPhilTaylor Posts: 4Member
    typically the driver buffers 2-3 frames worth of the command stream.

    the command buffer is only accessible by the driver, in Ring0, you cant get at it in Ring3.

    why is it not acceptible to issue standard API calls, just like the OS does?

    for instance, Windows Desktop Window Manager uses D3D9Ex in Vista, and provides each window that is created with a rendertarget buffer to draw into.

    unless your hobby OS is writing a driver layer, its pretty hard to get below the API.

    and then, you'd need to write drivers for each piece of hw you want to support, using your new driver layer, eg device driver interface or DDI.

    to understand the DDI between the driver and the hw, you'd have to not only have access to the Windows DDK and the driver source MS provides to have a working example, but also access to each IHVs hardware reference manual. unless you have relationships with all those companies, that is pretty hard to pull off.
Sign In or Register to comment.