Lines Matching full:exec
45 vbo_exec_debug_verts( struct vbo_exec_context *exec ) in vbo_exec_debug_verts() argument
47 GLuint count = exec->vtx.vert_count; in vbo_exec_debug_verts()
53 exec->vtx.prim_count, in vbo_exec_debug_verts()
54 exec->vtx.vertex_size); in vbo_exec_debug_verts()
56 for (i = 0 ; i < exec->vtx.prim_count ; i++) { in vbo_exec_debug_verts()
57 struct _mesa_prim *prim = &exec->vtx.prim[i]; in vbo_exec_debug_verts()
75 vbo_copy_vertices( struct vbo_exec_context *exec ) in vbo_copy_vertices() argument
77 GLuint nr = exec->vtx.prim[exec->vtx.prim_count-1].count; in vbo_copy_vertices()
79 GLuint sz = exec->vtx.vertex_size; in vbo_copy_vertices()
80 GLfloat *dst = exec->vtx.copied.buffer; in vbo_copy_vertices()
81 const GLfloat *src = (exec->vtx.buffer_map + in vbo_copy_vertices()
82 exec->vtx.prim[exec->vtx.prim_count-1].start * in vbo_copy_vertices()
83 exec->vtx.vertex_size); in vbo_copy_vertices()
86 switch (exec->ctx->Driver.CurrentExecPrimitive) { in vbo_copy_vertices()
130 exec->vtx.prim[exec->vtx.prim_count-1].count--; in vbo_copy_vertices()
164 struct vbo_exec_context *exec = &vbo->exec; in vbo_exec_bind_arrays() local
165 struct gl_client_array *arrays = exec->vtx.arrays; in vbo_exec_bind_arrays()
166 const GLuint count = exec->vtx.vert_count; in vbo_exec_bind_arrays()
174 switch (get_program_mode(exec->ctx)) { in vbo_exec_bind_arrays()
177 exec->vtx.inputs[attr] = &vbo->currval[VBO_ATTRIB_POS+attr]; in vbo_exec_bind_arrays()
180 ASSERT(VERT_ATTRIB_GENERIC(attr) < Elements(exec->vtx.inputs)); in vbo_exec_bind_arrays()
181 exec->vtx.inputs[VERT_ATTRIB_GENERIC(attr)] = in vbo_exec_bind_arrays()
193 exec->vtx.inputs[attr] = &vbo->currval[VBO_ATTRIB_POS+attr]; in vbo_exec_bind_arrays()
196 ASSERT(VERT_ATTRIB_GENERIC(attr) < Elements(exec->vtx.inputs)); in vbo_exec_bind_arrays()
197 exec->vtx.inputs[VERT_ATTRIB_GENERIC(attr)] = in vbo_exec_bind_arrays()
208 exec->vtx.inputs[VERT_ATTRIB_GENERIC0] = exec->vtx.inputs[0]; in vbo_exec_bind_arrays()
209 exec->vtx.attrsz[VERT_ATTRIB_GENERIC0] = exec->vtx.attrsz[0]; in vbo_exec_bind_arrays()
210 exec->vtx.attrptr[VERT_ATTRIB_GENERIC0] = exec->vtx.attrptr[0]; in vbo_exec_bind_arrays()
211 exec->vtx.attrsz[0] = 0; in vbo_exec_bind_arrays()
221 if (exec->vtx.attrsz[src]) { in vbo_exec_bind_arrays()
222 GLsizeiptr offset = (GLbyte *)exec->vtx.attrptr[src] - in vbo_exec_bind_arrays()
223 (GLbyte *)exec->vtx.vertex; in vbo_exec_bind_arrays()
226 ASSERT(attr < Elements(exec->vtx.inputs)); in vbo_exec_bind_arrays()
227 ASSERT(attr < Elements(exec->vtx.arrays)); /* arrays[] */ in vbo_exec_bind_arrays()
228 exec->vtx.inputs[attr] = &arrays[attr]; in vbo_exec_bind_arrays()
230 if (_mesa_is_bufferobj(exec->vtx.bufferobj)) { in vbo_exec_bind_arrays()
232 assert(exec->vtx.bufferobj->Pointer); /* buf should be mapped */ in vbo_exec_bind_arrays()
234 arrays[attr].Ptr = (GLubyte *)exec->vtx.bufferobj->Offset + offset; in vbo_exec_bind_arrays()
238 arrays[attr].Ptr = (GLubyte *)exec->vtx.buffer_map + offset; in vbo_exec_bind_arrays()
240 arrays[attr].Size = exec->vtx.attrsz[src]; in vbo_exec_bind_arrays()
241 arrays[attr].StrideB = exec->vtx.vertex_size * sizeof(GLfloat); in vbo_exec_bind_arrays()
242 arrays[attr].Stride = exec->vtx.vertex_size * sizeof(GLfloat); in vbo_exec_bind_arrays()
243 arrays[attr].Type = exec->vtx.attrtype[src]; in vbo_exec_bind_arrays()
245 vbo_attrtype_to_integer_flag(exec->vtx.attrtype[src]); in vbo_exec_bind_arrays()
251 exec->vtx.bufferobj); in vbo_exec_bind_arrays()
267 vbo_exec_vtx_unmap( struct vbo_exec_context *exec ) in vbo_exec_vtx_unmap() argument
269 if (_mesa_is_bufferobj(exec->vtx.bufferobj)) { in vbo_exec_vtx_unmap()
270 struct gl_context *ctx = exec->ctx; in vbo_exec_vtx_unmap()
273 GLintptr offset = exec->vtx.buffer_used - exec->vtx.bufferobj->Offset; in vbo_exec_vtx_unmap()
274 GLsizeiptr length = (exec->vtx.buffer_ptr - exec->vtx.buffer_map) * sizeof(float); in vbo_exec_vtx_unmap()
278 exec->vtx.bufferobj); in vbo_exec_vtx_unmap()
281 exec->vtx.buffer_used += (exec->vtx.buffer_ptr - in vbo_exec_vtx_unmap()
282 exec->vtx.buffer_map) * sizeof(float); in vbo_exec_vtx_unmap()
284 assert(exec->vtx.buffer_used <= VBO_VERT_BUFFER_SIZE); in vbo_exec_vtx_unmap()
285 assert(exec->vtx.buffer_ptr != NULL); in vbo_exec_vtx_unmap()
287 ctx->Driver.UnmapBuffer(ctx, exec->vtx.bufferobj); in vbo_exec_vtx_unmap()
288 exec->vtx.buffer_map = NULL; in vbo_exec_vtx_unmap()
289 exec->vtx.buffer_ptr = NULL; in vbo_exec_vtx_unmap()
290 exec->vtx.max_vert = 0; in vbo_exec_vtx_unmap()
299 vbo_exec_vtx_map( struct vbo_exec_context *exec ) in vbo_exec_vtx_map() argument
301 struct gl_context *ctx = exec->ctx; in vbo_exec_vtx_map()
309 if (!_mesa_is_bufferobj(exec->vtx.bufferobj)) in vbo_exec_vtx_map()
312 assert(!exec->vtx.buffer_map); in vbo_exec_vtx_map()
313 assert(!exec->vtx.buffer_ptr); in vbo_exec_vtx_map()
315 if (VBO_VERT_BUFFER_SIZE > exec->vtx.buffer_used + 1024) { in vbo_exec_vtx_map()
317 if (exec->vtx.bufferobj->Size > 0) { in vbo_exec_vtx_map()
318 exec->vtx.buffer_map = in vbo_exec_vtx_map()
320 exec->vtx.buffer_used, in vbo_exec_vtx_map()
322 exec->vtx.buffer_used), in vbo_exec_vtx_map()
324 exec->vtx.bufferobj); in vbo_exec_vtx_map()
325 exec->vtx.buffer_ptr = exec->vtx.buffer_map; in vbo_exec_vtx_map()
328 exec->vtx.buffer_ptr = exec->vtx.buffer_map = NULL; in vbo_exec_vtx_map()
332 if (!exec->vtx.buffer_map) { in vbo_exec_vtx_map()
334 exec->vtx.buffer_used = 0; in vbo_exec_vtx_map()
338 NULL, usage, exec->vtx.bufferobj)) { in vbo_exec_vtx_map()
340 exec->vtx.buffer_map = in vbo_exec_vtx_map()
344 exec->vtx.bufferobj); in vbo_exec_vtx_map()
348 exec->vtx.buffer_map = NULL; in vbo_exec_vtx_map()
352 exec->vtx.buffer_ptr = exec->vtx.buffer_map; in vbo_exec_vtx_map()
354 if (!exec->vtx.buffer_map) { in vbo_exec_vtx_map()
356 _mesa_install_exec_vtxfmt( ctx, &exec->vtxfmt_noop ); in vbo_exec_vtx_map()
359 if (_mesa_using_noop_vtxfmt(ctx->Exec)) { in vbo_exec_vtx_map()
364 _mesa_install_exec_vtxfmt(ctx, &exec->vtxfmt); in vbo_exec_vtx_map()
369 printf("map %d..\n", exec->vtx.buffer_used); in vbo_exec_vtx_map()
379 vbo_exec_vtx_flush(struct vbo_exec_context *exec, GLboolean keepUnmapped) in vbo_exec_vtx_flush() argument
382 vbo_exec_debug_verts( exec ); in vbo_exec_vtx_flush()
384 if (exec->vtx.prim_count && in vbo_exec_vtx_flush()
385 exec->vtx.vert_count) { in vbo_exec_vtx_flush()
387 exec->vtx.copied.nr = vbo_copy_vertices( exec ); in vbo_exec_vtx_flush()
389 if (exec->vtx.copied.nr != exec->vtx.vert_count) { in vbo_exec_vtx_flush()
390 struct gl_context *ctx = exec->ctx; in vbo_exec_vtx_flush()
400 if (_mesa_is_bufferobj(exec->vtx.bufferobj)) { in vbo_exec_vtx_flush()
401 vbo_exec_vtx_unmap( exec ); in vbo_exec_vtx_flush()
405 printf("%s %d %d\n", __FUNCTION__, exec->vtx.prim_count, in vbo_exec_vtx_flush()
406 exec->vtx.vert_count); in vbo_exec_vtx_flush()
409 exec->vtx.prim, in vbo_exec_vtx_flush()
410 exec->vtx.prim_count, in vbo_exec_vtx_flush()
414 exec->vtx.vert_count - 1, in vbo_exec_vtx_flush()
419 if (_mesa_is_bufferobj(exec->vtx.bufferobj) && !keepUnmapped) { in vbo_exec_vtx_flush()
420 vbo_exec_vtx_map( exec ); in vbo_exec_vtx_flush()
428 _mesa_is_bufferobj(exec->vtx.bufferobj) && in vbo_exec_vtx_flush()
429 exec->vtx.buffer_map) { in vbo_exec_vtx_flush()
430 vbo_exec_vtx_unmap( exec ); in vbo_exec_vtx_flush()
433 if (keepUnmapped || exec->vtx.vertex_size == 0) in vbo_exec_vtx_flush()
434 exec->vtx.max_vert = 0; in vbo_exec_vtx_flush()
436 exec->vtx.max_vert = ((VBO_VERT_BUFFER_SIZE - exec->vtx.buffer_used) / in vbo_exec_vtx_flush()
437 (exec->vtx.vertex_size * sizeof(GLfloat))); in vbo_exec_vtx_flush()
439 exec->vtx.buffer_ptr = exec->vtx.buffer_map; in vbo_exec_vtx_flush()
440 exec->vtx.prim_count = 0; in vbo_exec_vtx_flush()
441 exec->vtx.vert_count = 0; in vbo_exec_vtx_flush()