<div dir="ltr"><div><div><div>Hi Ilia, you were straight to the point for me in:<br><br>"src/mesa/vbo will upload it to a vbo. The driver then points the<br>
hardware at the vbo and tells it to read from there."<br><br></div>But where is it the function that implements this? Is it in<br></div>nv30_draw_vbo(...)? Please, give me a function name or<br></div>at least a file name?<br></div><div class="gmail_extra"><br><div class="gmail_quote">2016-04-19 10:04 GMT-04:00 Ilia Mirkin <span dir="ltr"><<a href="mailto:imirkin@alum.mit.edu" target="_blank">imirkin@alum.mit.edu</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Tue, Apr 19, 2016 at 8:52 AM, Daniel Melo Jorge da Cunha<br>
<<a href="mailto:dmjcunha@gmail.com">dmjcunha@gmail.com</a>> wrote:<br>
> Hi, for example, if I have glVertex3f(0.75, 0.75, 1.0) how the video card<br>
> processes<br>
> these three floats? Does the card work with floats? Does (mesa? gallium?<br>
> driver?)<br>
> process these three input floats before it is sent to the card? Where is the<br>
> code<br>
> for it?<br>
<br>
</span>src/mesa/vbo will upload it to a vbo. The driver then points the<br>
hardware at the vbo and tells it to read from there. (Under some<br>
circumstances, the vbo data might have to be transformed on the cpu as<br>
well if the driver can't handle the format.)<br>
<span class=""><br>
><br>
> If you say the floats are memory mapped as in<br>
> exec->vtx.buffer_map = (GLfloat *)ctx->Driver.MapBufferRange(...) I would<br>
> say<br>
> from what I learned that it has to pass through gallium and that means:<br>
> st_draw_vbo(...) ending up in nv30_draw_vbo(..) but these functions don't<br>
> make<br>
> any reference to those (memory mapped) input floats. So where is the piece<br>
> of<br>
> code that instructs the card to fetch those three (possibly processed) input<br>
> floats<br>
> and send them to the card?<br>
><br>
> Thanks in advance.<br>
<br>
</span>The vbo module converts this to the equivalent of<br>
<br>
glGenBuffers(1, &buf)<br>
glBindBuffer(GL_ARRAY_BUFFER, buf)<br>
glBufferData(GL_ARRAY_BUFFER, ...)<br>
foo = glMapBuffer(buf)<br>
write vertex values to foo<br>
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, 0);<br>
draw<br>
<br>
Hope that helps,<br>
<br>
  -ilia<br>
</blockquote></div><br></div>