<br><br><div class="gmail_quote">On Mon, Feb 27, 2012 at 2:20 PM, Bill Spitzak <span dir="ltr"><<a href="mailto:spitzak@gmail.com">spitzak@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">David Jackson wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Ok, well, to have the GPU, render a square, you have to tell the GPU, from the app, "place a square which is 30x20 at the coordinate 40x40. Apps need a way to give a command to the GPU to render a square. How does a wayland app give a command to render a square to GPU? What about triangles, spheres, and cubes, and even more complex graphics?<br>
</blockquote>
<br></div>
Think of how Floating Point Co-Processors worked in 1984 and you may have a clearer idea of how modern GPU's work.<br>
<br>
You don't do an OS or driver call to tell the math processor to run a trig function. The OS instead time-shares it just like it does the CPU.<br>
</blockquote></div><br><br>I apologize if I am asking questions here that are ignorant. Appications it sounds like to me need someway to send a vector command such as an OpenGL command, to render a square, to the GPU. <br>
<br>How does a wayland app do that? How does a wayland app tell the GPU to render a square 30x30 at coordinate 40x40? Keep in mind, there are many different manufacturers of GPUs and each may have different bugs and differences in the interface to the hardware, if not a completely different hardware interface, and an application is not going to know about every GPU that exists.<br>
<br>A purpose of a driver is to isolate applications from hardware so an application does not need to know about the 500 different hardware devices and each of their hardware interfaces, but instead can use a single API for all of them. This is to avoid putting hardware specific code in applications, and its a good design technique.<br>
<br><br>