mesa/src
Chad Versace 8c7c589c4e vbo: Redeclare bind_array() as non-static vbo_bind_array()
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>
2011-10-18 11:42:54 -07:00
..
egl configure: replace pkg-config calls with $(PKG_CONFIG) in the makefiles. 2011-10-04 11:19:48 -07:00
gallium svga: Plug a fence leak 2011-10-18 10:37:12 +02:00
gbm gbm/dri: avoid crash in dri_screen_create 2011-08-04 14:09:34 +02:00
getopt getopt: Make code more portable. 2011-01-12 16:54:21 +00:00
glsl mesa: Add a flag for shader programs to allow SSO linkage in GLES2. 2011-10-18 10:54:32 -07:00
glu glu: Avoid defining conflicting DEBUG NDEBUG macros. 2011-08-30 09:42:01 +01:00
glx dri2: Implement a throttle dri extension. 2011-10-14 09:52:53 +02:00
mapi glapi: Enclose glapi.h in an extern "C" block when included by C++. 2011-10-04 15:11:42 -07:00
mesa vbo: Redeclare bind_array() as non-static vbo_bind_array() 2011-10-18 11:42:54 -07:00
Makefile
SConscript scons: Unbreak mingw build. 2011-09-20 20:50:48 +01:00