diff options
author | Marek Olšák <maraeo@gmail.com> | 2010-12-07 06:24:06 +0100 |
---|---|---|
committer | Marek Olšák <maraeo@gmail.com> | 2010-12-07 06:42:05 +0100 |
commit | 78068a5fbfc21fb52b289a81142b4211628f845c (patch) | |
tree | 240905149e7ff6410b663153629b6c6971367ca9 /src/gallium/drivers/r300/r300_context.h | |
parent | 857d107bfe1d8c98e614f93da06588639576d3fe (diff) |
r300g: cache packet dwords of 3D_LOAD_VBPNTR in a command buffer if possible
It's not always possible to preprocess the content of 3D_LOAD_VBPNTR
in a command buffer, because the offset to all vertex buffers (which
the packet depends on) is derived from the "start" parameter of draw_arrays
and the "indexBias" parameter of draw_elements, but we can at least lazily
make a command buffer for the case when offset == 0, which should occur
most of the time.
Diffstat (limited to 'src/gallium/drivers/r300/r300_context.h')
-rw-r--r-- | src/gallium/drivers/r300/r300_context.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/gallium/drivers/r300/r300_context.h b/src/gallium/drivers/r300/r300_context.h index ba5e9bca40..8d50ea3a30 100644 --- a/src/gallium/drivers/r300/r300_context.h +++ b/src/gallium/drivers/r300/r300_context.h @@ -610,6 +610,10 @@ struct r300_context { /* const tracking for VS */ int vs_const_base; + + /* AOS (PACKET3_3D_LOAD_VBPNTR) command buffer for the case offset=0. */ + uint32_t aos_cb[(16 * 3 + 1) / 2]; + boolean aos_dirty; }; #define foreach_atom(r300, atom) \ |