• Home
  • Raw
  • Download

Lines Matching refs:save

122    struct vbo_save_context *save = &vbo_context(ctx)->save;  in copy_vertices()  local
124 GLuint sz = save->vertex_size; in copy_vertices()
126 fi_type *dst = save->copied.buffer; in copy_vertices()
138 struct vbo_save_context *save = &vbo_context(ctx)->save; in alloc_vertex_store() local
150 save->out_of_memory = in alloc_vertex_store()
160 save->out_of_memory = GL_TRUE; in alloc_vertex_store()
163 if (save->out_of_memory) { in alloc_vertex_store()
165 _mesa_install_save_vtxfmt(ctx, &save->vtxfmt_noop); in alloc_vertex_store()
261 struct vbo_save_context *save = &vbo_context(ctx)->save; in reset_counters() local
263 save->prims = save->prim_store->prims + save->prim_store->used; in reset_counters()
264 save->buffer_map = save->vertex_store->buffer_map + save->vertex_store->used; in reset_counters()
266 assert(save->buffer_map == save->buffer_ptr); in reset_counters()
268 if (save->vertex_size) in reset_counters()
269 save->max_vert = (VBO_SAVE_BUFFER_SIZE - save->vertex_store->used) / in reset_counters()
270 save->vertex_size; in reset_counters()
272 save->max_vert = 0; in reset_counters()
274 save->vert_count = 0; in reset_counters()
275 save->prim_count = 0; in reset_counters()
276 save->prim_max = VBO_SAVE_PRIM_SIZE - save->prim_store->used; in reset_counters()
277 save->dangling_attr_ref = GL_FALSE; in reset_counters()
321 convert_line_loop_to_strip(struct vbo_save_context *save, in convert_line_loop_to_strip() argument
332 const GLuint sz = save->vertex_size; in convert_line_loop_to_strip()
334 const fi_type *src = save->buffer_map + prim->start * sz; in convert_line_loop_to_strip()
336 fi_type *dst = save->buffer_map + (prim->start + prim->count) * sz; in convert_line_loop_to_strip()
342 save->vert_count++; in convert_line_loop_to_strip()
343 save->buffer_ptr += sz; in convert_line_loop_to_strip()
344 save->vertex_store->used += sz; in convert_line_loop_to_strip()
479 struct vbo_save_context *save = &vbo_context(ctx)->save; in compile_vertex_list() local
486 _mesa_dlist_alloc_aligned(ctx, save->opcode_vertex_list, sizeof(*node)); in compile_vertex_list()
497 if (save->VAO[0]) { in compile_vertex_list()
498 old_offset = save->VAO[0]->BufferBinding[0].Offset in compile_vertex_list()
499 + save->VAO[0]->VertexAttrib[VERT_ATTRIB_POS].RelativeOffset; in compile_vertex_list()
501 const GLsizei stride = save->vertex_size*sizeof(GLfloat); in compile_vertex_list()
503 (save->buffer_map - save->vertex_store->buffer_map) * sizeof(GLfloat); in compile_vertex_list()
526 offset += save->attrsz[i] * sizeof(GLfloat); in compile_vertex_list()
528 node->vertex_count = save->vert_count; in compile_vertex_list()
529 node->wrap_count = save->copied.nr; in compile_vertex_list()
530 node->prims = save->prims; in compile_vertex_list()
531 node->prim_count = save->prim_count; in compile_vertex_list()
532 node->prim_store = save->prim_store; in compile_vertex_list()
539 update_vao(ctx, vpm, &save->VAO[vpm], in compile_vertex_list()
540 save->vertex_store->bufferobj, buffer_offset, stride, in compile_vertex_list()
541 save->enabled, save->attrsz, save->attrtype, offsets); in compile_vertex_list()
544 _mesa_reference_vao(ctx, &node->VAO[vpm], save->VAO[vpm]); in compile_vertex_list()
549 if (save->no_current_update) { in compile_vertex_list()
553 GLuint current_size = save->vertex_size - save->attrsz[0]; in compile_vertex_list()
559 const char *buffer = (const char *)save->buffer_map; in compile_vertex_list()
560 unsigned attr_offset = save->attrsz[0] * sizeof(GLfloat); in compile_vertex_list()
574 assert(save->attrsz[VBO_ATTRIB_POS] != 0 || node->vertex_count == 0); in compile_vertex_list()
576 if (save->dangling_attr_ref) in compile_vertex_list()
579 save->vertex_store->used += save->vertex_size * node->vertex_count; in compile_vertex_list()
580 save->prim_store->used += node->prim_count; in compile_vertex_list()
584 save->copied.nr = copy_vertices(ctx, node, save->buffer_map); in compile_vertex_list()
587 convert_line_loop_to_strip(save, node); in compile_vertex_list()
617 if (save->vertex_store->used > in compile_vertex_list()
618 VBO_SAVE_BUFFER_SIZE - 16 * (save->vertex_size + 4)) { in compile_vertex_list()
622 vbo_save_unmap_vertex_store(ctx, save->vertex_store); in compile_vertex_list()
626 free_vertex_store(ctx, save->vertex_store); in compile_vertex_list()
627 save->vertex_store = NULL; in compile_vertex_list()
630 _mesa_reference_vao(ctx, &save->VAO[vpm], NULL); in compile_vertex_list()
634 save->vertex_store = alloc_vertex_store(ctx); in compile_vertex_list()
635 save->buffer_ptr = vbo_save_map_vertex_store(ctx, save->vertex_store); in compile_vertex_list()
636 save->out_of_memory = save->buffer_ptr == NULL; in compile_vertex_list()
640 save->buffer_ptr = save->vertex_store->buffer_map in compile_vertex_list()
641 + save->vertex_store->used; in compile_vertex_list()
644 if (save->prim_store->used > VBO_SAVE_PRIM_SIZE - 6) { in compile_vertex_list()
645 save->prim_store->refcount--; in compile_vertex_list()
646 assert(save->prim_store->refcount != 0); in compile_vertex_list()
647 save->prim_store = alloc_prim_store(); in compile_vertex_list()
664 struct vbo_save_context *save = &vbo_context(ctx)->save; in wrap_buffers() local
665 GLint i = save->prim_count - 1; in wrap_buffers()
668 assert(i < (GLint) save->prim_max); in wrap_buffers()
673 save->prims[i].count = (save->vert_count - save->prims[i].start); in wrap_buffers()
674 mode = save->prims[i].mode; in wrap_buffers()
682 save->prims[0].mode = mode; in wrap_buffers()
683 save->prims[0].begin = 0; in wrap_buffers()
684 save->prims[0].end = 0; in wrap_buffers()
685 save->prims[0].start = 0; in wrap_buffers()
686 save->prims[0].count = 0; in wrap_buffers()
687 save->prim_count = 1; in wrap_buffers()
698 struct vbo_save_context *save = &vbo_context(ctx)->save; in wrap_filled_vertex() local
707 assert(save->max_vert - save->vert_count > save->copied.nr); in wrap_filled_vertex()
709 numComponents = save->copied.nr * save->vertex_size; in wrap_filled_vertex()
710 memcpy(save->buffer_ptr, in wrap_filled_vertex()
711 save->copied.buffer, in wrap_filled_vertex()
713 save->buffer_ptr += numComponents; in wrap_filled_vertex()
714 save->vert_count += save->copied.nr; in wrap_filled_vertex()
721 struct vbo_save_context *save = &vbo_context(ctx)->save; in copy_to_current() local
722 GLbitfield64 enabled = save->enabled & (~BITFIELD64_BIT(VBO_ATTRIB_POS)); in copy_to_current()
726 assert(save->attrsz[i]); in copy_to_current()
728 if (save->attrtype[i] == GL_DOUBLE || in copy_to_current()
729 save->attrtype[i] == GL_UNSIGNED_INT64_ARB) in copy_to_current()
730 memcpy(save->current[i], save->attrptr[i], save->attrsz[i] * sizeof(GLfloat)); in copy_to_current()
732 COPY_CLEAN_4V_TYPE_AS_UNION(save->current[i], save->attrsz[i], in copy_to_current()
733 save->attrptr[i], save->attrtype[i]); in copy_to_current()
741 struct vbo_save_context *save = &vbo_context(ctx)->save; in copy_from_current() local
742 GLbitfield64 enabled = save->enabled & (~BITFIELD64_BIT(VBO_ATTRIB_POS)); in copy_from_current()
747 switch (save->attrsz[i]) { in copy_from_current()
749 save->attrptr[i][3] = save->current[i][3]; in copy_from_current()
752 save->attrptr[i][2] = save->current[i][2]; in copy_from_current()
755 save->attrptr[i][1] = save->current[i][1]; in copy_from_current()
758 save->attrptr[i][0] = save->current[i][0]; in copy_from_current()
776 struct vbo_save_context *save = &vbo_context(ctx)->save; in upgrade_vertex() local
784 if (save->vert_count) in upgrade_vertex()
787 assert(save->copied.nr == 0); in upgrade_vertex()
797 oldsz = save->attrsz[attr]; in upgrade_vertex()
798 save->attrsz[attr] = newsz; in upgrade_vertex()
799 save->enabled |= BITFIELD64_BIT(attr); in upgrade_vertex()
801 save->vertex_size += newsz - oldsz; in upgrade_vertex()
802 save->max_vert = ((VBO_SAVE_BUFFER_SIZE - save->vertex_store->used) / in upgrade_vertex()
803 save->vertex_size); in upgrade_vertex()
804 save->vert_count = 0; in upgrade_vertex()
808 tmp = save->vertex; in upgrade_vertex()
810 if (save->attrsz[i]) { in upgrade_vertex()
811 save->attrptr[i] = tmp; in upgrade_vertex()
812 tmp += save->attrsz[i]; in upgrade_vertex()
815 save->attrptr[i] = NULL; /* will not be dereferenced. */ in upgrade_vertex()
829 if (save->copied.nr) { in upgrade_vertex()
830 const fi_type *data = save->copied.buffer; in upgrade_vertex()
831 fi_type *dest = save->buffer_map; in upgrade_vertex()
835 if (attr != VBO_ATTRIB_POS && save->currentsz[attr][0] == 0) { in upgrade_vertex()
837 save->dangling_attr_ref = GL_TRUE; in upgrade_vertex()
840 for (i = 0; i < save->copied.nr; i++) { in upgrade_vertex()
841 GLbitfield64 enabled = save->enabled; in upgrade_vertex()
844 assert(save->attrsz[j]); in upgrade_vertex()
848 save->attrtype[j]); in upgrade_vertex()
853 COPY_SZ_4V(dest, newsz, save->current[attr]); in upgrade_vertex()
858 GLint sz = save->attrsz[j]; in upgrade_vertex()
866 save->buffer_ptr = dest; in upgrade_vertex()
867 save->vert_count += save->copied.nr; in upgrade_vertex()
881 struct vbo_save_context *save = &vbo_context(ctx)->save; in fixup_vertex() local
883 if (sz > save->attrsz[attr] || in fixup_vertex()
884 newType != save->attrtype[attr]) { in fixup_vertex()
890 else if (sz < save->active_sz[attr]) { in fixup_vertex()
892 const fi_type *id = vbo_get_default_vals_as_union(save->attrtype[attr]); in fixup_vertex()
897 for (i = sz; i <= save->attrsz[attr]; i++) in fixup_vertex()
898 save->attrptr[attr][i - 1] = id[i - 1]; in fixup_vertex()
901 save->active_sz[attr] = sz; in fixup_vertex()
913 struct vbo_save_context *save = &vbo_context(ctx)->save; in reset_vertex() local
915 while (save->enabled) { in reset_vertex()
916 const int i = u_bit_scan64(&save->enabled); in reset_vertex()
917 assert(save->attrsz[i]); in reset_vertex()
918 save->attrsz[i] = 0; in reset_vertex()
919 save->active_sz[i] = 0; in reset_vertex()
922 save->vertex_size = 0; in reset_vertex()
952 struct vbo_save_context *save = &vbo_context(ctx)->save; \
955 if (save->active_sz[A] != N) \
959 C *dest = (C *)save->attrptr[A]; \
964 save->attrtype[A] = T; \
970 for (i = 0; i < save->vertex_size; i++) \
971 save->buffer_ptr[i] = save->vertex[i]; \
973 save->buffer_ptr += save->vertex_size; \
975 if (++save->vert_count >= save->max_vert) \
1051 struct vbo_save_context *save = &vbo_context(ctx)->save; in dlist_fallback() local
1053 if (save->vert_count || save->prim_count) { in dlist_fallback()
1054 if (save->prim_count > 0) { in dlist_fallback()
1056 GLint i = save->prim_count - 1; in dlist_fallback()
1057 save->prims[i].count = save->vert_count - save->prims[i].start; in dlist_fallback()
1064 save->dangling_attr_ref = GL_TRUE; in dlist_fallback()
1072 if (save->out_of_memory) { in dlist_fallback()
1073 _mesa_install_save_vtxfmt(ctx, &save->vtxfmt_noop); in dlist_fallback()
1156 struct vbo_save_context *save = &vbo_context(ctx)->save; in vbo_save_NotifyBegin() local
1157 const GLuint i = save->prim_count++; in vbo_save_NotifyBegin()
1161 assert(i < save->prim_max); in vbo_save_NotifyBegin()
1162 save->prims[i].mode = mode & VBO_SAVE_PRIM_MODE_MASK; in vbo_save_NotifyBegin()
1163 save->prims[i].begin = 1; in vbo_save_NotifyBegin()
1164 save->prims[i].end = 0; in vbo_save_NotifyBegin()
1165 save->prims[i].start = save->vert_count; in vbo_save_NotifyBegin()
1166 save->prims[i].count = 0; in vbo_save_NotifyBegin()
1168 save->no_current_update = no_current_update; in vbo_save_NotifyBegin()
1170 if (save->out_of_memory) { in vbo_save_NotifyBegin()
1171 _mesa_install_save_vtxfmt(ctx, &save->vtxfmt_noop); in vbo_save_NotifyBegin()
1174 _mesa_install_save_vtxfmt(ctx, &save->vtxfmt); in vbo_save_NotifyBegin()
1186 struct vbo_save_context *save = &vbo_context(ctx)->save; in _save_End() local
1187 const GLint i = save->prim_count - 1; in _save_End()
1190 save->prims[i].end = 1; in _save_End()
1191 save->prims[i].count = (save->vert_count - save->prims[i].start); in _save_End()
1193 if (i == (GLint) save->prim_max - 1) { in _save_End()
1195 assert(save->copied.nr == 0); in _save_End()
1202 if (save->out_of_memory) { in _save_End()
1203 _mesa_install_save_vtxfmt(ctx, &save->vtxfmt_noop); in _save_End()
1224 struct vbo_save_context *save = &vbo_context(ctx)->save; in _save_PrimitiveRestartNV() local
1226 if (save->prim_count == 0) { in _save_PrimitiveRestartNV()
1234 GLenum curPrim = save->prims[save->prim_count - 1].mode; in _save_PrimitiveRestartNV()
1235 bool no_current_update = save->no_current_update; in _save_PrimitiveRestartNV()
1312 struct vbo_save_context *save = &vbo_context(ctx)->save; in _save_OBE_DrawArrays() local
1324 if (save->out_of_memory) in _save_OBE_DrawArrays()
1407 struct vbo_save_context *save = &vbo_context(ctx)->save; in _save_OBE_DrawElementsBaseVertex() local
1427 if (save->out_of_memory) in _save_OBE_DrawElementsBaseVertex()
1478 struct vbo_save_context *save = &vbo_context(ctx)->save; in _save_OBE_DrawRangeElements() local
1501 if (save->out_of_memory) in _save_OBE_DrawRangeElements()
1548 struct vbo_save_context *save = &vbo_context(ctx)->save; in vtxfmt_init() local
1549 GLvertexformat *vfmt = &save->vtxfmt; in vtxfmt_init()
1592 struct vbo_save_context *save = &vbo_context(ctx)->save; in vbo_save_SaveFlushVertices() local
1599 if (save->vert_count || save->prim_count) in vbo_save_SaveFlushVertices()
1615 struct vbo_save_context *save = &vbo_context(ctx)->save; in vbo_save_NewList() local
1620 if (!save->prim_store) in vbo_save_NewList()
1621 save->prim_store = alloc_prim_store(); in vbo_save_NewList()
1623 if (!save->vertex_store) in vbo_save_NewList()
1624 save->vertex_store = alloc_vertex_store(ctx); in vbo_save_NewList()
1626 save->buffer_ptr = vbo_save_map_vertex_store(ctx, save->vertex_store); in vbo_save_NewList()
1640 struct vbo_save_context *save = &vbo_context(ctx)->save; in vbo_save_EndList() local
1645 if (save->prim_count > 0) { in vbo_save_EndList()
1646 GLint i = save->prim_count - 1; in vbo_save_EndList()
1648 save->prims[i].end = 0; in vbo_save_EndList()
1649 save->prims[i].count = save->vert_count - save->prims[i].start; in vbo_save_EndList()
1655 save->dangling_attr_ref = GL_TRUE; in vbo_save_EndList()
1665 vbo_save_unmap_vertex_store(ctx, save->vertex_store); in vbo_save_EndList()
1667 assert(save->vertex_size == 0); in vbo_save_EndList()
1678 struct vbo_save_context *save = &vbo_context(ctx)->save; in vbo_save_BeginCallList() local
1679 save->replay_flags |= dlist->Flags; in vbo_save_BeginCallList()
1690 struct vbo_save_context *save = &vbo_context(ctx)->save; in vbo_save_EndCallList() local
1693 save->replay_flags = 0; in vbo_save_EndCallList()
1749 struct vbo_save_context *save = &vbo_context(ctx)->save; in current_init() local
1755 save->currentsz[i] = &ctx->ListState.ActiveAttribSize[j]; in current_init()
1756 save->current[i] = (fi_type *) ctx->ListState.CurrentAttrib[j]; in current_init()
1762 save->currentsz[i] = &ctx->ListState.ActiveMaterialSize[j]; in current_init()
1763 save->current[i] = (fi_type *) ctx->ListState.CurrentMaterial[j]; in current_init()
1772 vbo_save_api_init(struct vbo_save_context *save) in vbo_save_api_init() argument
1774 struct gl_context *ctx = save->ctx; in vbo_save_api_init()
1776 save->opcode_vertex_list = in vbo_save_api_init()
1785 _mesa_noop_vtxfmt_init(ctx, &save->vtxfmt_noop); in vbo_save_api_init()