mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-15 03:00:18 +01:00
This is necessary because i965 will need to call vbo_bind_array() when cleaning up after a buffer resolve meta-op. Detailed Explanation -------------------- The vbo module tracks vertex attributes separately from the gl_context. Specifically, the vbo module maintins vertex attributes in vbo_exec_context::array::inputs, which is synchronized with gl_context::Array::ArrayObj::VertexAttrib by vbo_bind_array(). vbo_draw_arrays() calls vbo_bind_array() to perform the synchronization before calling the real draw call, vbo_context::draw_arrays. Intel hardware accomplishes buffer resolves with a meta-op. Frequently, that meta-op must be performed within glDraw* in the moment immediately before the draw occurs (The hardware designers hate us...). After performing the meta-op, but before calling vbo_bind_array(), the gl_context's vertex attributes will have been restored to their original state (that is, their state before the meta-op began), but the vbo module's vertex attribute are those used in the last meta-op. Therefore we must manually synchronize the two with vbo_bind_array() before continuing with the original draw command (that is, the one requested with glDraw*). See brw_predraw_resolve_buffers(), which will be added in a future commit. Reviewed-by: Brian Paul <brianp@vmware.com> Signed-off-by: Chad Versace <chad@chad-versace.us> |
||
|---|---|---|
| .. | ||
| egl | ||
| gallium | ||
| gbm | ||
| getopt | ||
| glsl | ||
| glu | ||
| glx | ||
| mapi | ||
| mesa | ||
| Makefile | ||
| SConscript | ||