History log of /external/mesa3d/src/gallium/drivers/r600/r600.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
2df399c34bb39122a45bdd5b430b48346542e1cb 01-Aug-2012 Jerome Glisse <jglisse@redhat.com> r600g: atomize sampler state v2

Use atom for sampler state. Does not provide new functionality
or fix any bug. Just a step toward full atom base r600g.

v2: Split seamless on r6xx/r7xx into it's own atom. Make sure it's
emited after sampler and with a pipeline flush before otherwise
it does not take effect.

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
ff9a49328e5d8b647aeb7511a01e5a41592a2799 18-Jul-2012 Marek Olšák <maraeo@gmail.com> r600g: inline r600_context_draw_opaque_count
/external/mesa3d/src/gallium/drivers/r600/r600.h
c26fadf195876271e559f844c1fc88effa6a60c1 15-Jul-2012 Marek Olšák <maraeo@gmail.com> r600g: remove unused code after conversion of sampler views
/external/mesa3d/src/gallium/drivers/r600/r600.h
3d3194e93cbfe0fc42dd96218e8e999f5ccfe726 26-Jun-2012 Tom Stellard <thomas.stellard@amd.com> r600g: Add r600_context_pipe_state_emit()

This function is used when dispatching compute shader in order to avoid
mixing compute and 3D registers in the context's dirty list. This
allows the compute code to resuse 3D functions like evergreen_cb, which
return a struct r600_pipe_state and still have control over when and how
the register writes are emitted.
/external/mesa3d/src/gallium/drivers/r600/r600.h
e00e1586dd94c1bbcd1ecfd9649fde9281be1977 25-Jun-2012 Tom Stellard <thomas.stellard@amd.com> r600g: Add pkt_flag parameter to r600_context_block_emit_dirty()

This allows the shader type bit to be set in the pm4 header when
emitting registers for compute shaders.

Reviewed-by: Marek Olšák <maraeo@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
e0773da1e897164ed7597437070e32b867734ee5 10-Apr-2012 Marek Olšák <maraeo@gmail.com> gallium: make user vertex buffers optional

This couldn't be split because it would break bisecting.

Summary:
* r300g,r600g: stop using u_vbuf
* r300g,r600g: also report that the FIXED vertex type is unsupported
* u_vbuf: refactor for use in the state tracker
* cso: wire up u_vbuf with cso_context
* st/mesa: conditionally install u_vbuf
/external/mesa3d/src/gallium/drivers/r600/r600.h
a52b3338c6e51421e3836ae210cd98d9c1ec337b 10-Apr-2012 Marek Olšák <maraeo@gmail.com> u_vbuf: remove u_vbuf_resource
/external/mesa3d/src/gallium/drivers/r600/r600.h
62b0323cf6af90aa2be89ec76ec3693213b0de5e 23-Apr-2012 Dave Airlie <airlied@redhat.com> r600g: split add_reg into add_reg and add_reg_bo variants

This shaves 2k off the final dri.so, and removes lots of pointless
NULL, 0 passing.

most like pointless - but it looked nicer to me.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
a633d82ce352a69fd54a2b0e262a91f27f478119 02-Apr-2012 Marek Olšák <maraeo@gmail.com> r600g: remove dead code after the rework

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
c76462b45f1e3a0aa2ee7971191e30e8a5f52015 30-Mar-2012 Marek Olšák <maraeo@gmail.com> r600g: rework state emission of vertex buffers

This reduces a little of CPU overhead.
The idea is to translate pipe vertex buffers directly into the CS
and not using any intermediate representations.

Framerate in Torcs:
before: 32.2
after: 34.6

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
ead0a89c9661135d66e086bbe524f9623b00af5b 29-Mar-2012 Marek Olšák <maraeo@gmail.com> r600g: cleanup after get_query_result change

Finally, union r600_query_result can be removed.
/external/mesa3d/src/gallium/drivers/r600/r600.h
b4082f492b4b55df4c636445e47b97d1f1e4b5b2 21-Mar-2012 Alex Deucher <alexander.deucher@amd.com> r600g: add support for TN (trinity) APUs

Note: this is a candidate for the stable branches.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
8a56ed8d6dc37c23d4695d0fc292d7bcc2976f08 05-Mar-2012 Marek Olšák <maraeo@gmail.com> r600g: remove unused definitions
/external/mesa3d/src/gallium/drivers/r600/r600.h
83667acfd9feed932f6864092382e752466975ed 23-Feb-2012 Marek Olšák <maraeo@gmail.com> r600g: move all query code into r600_query.c

And rename or inline functions where appropriate.
There is no reason to keep this stuff in r600_hw_context.c.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
df00dc3c817771ac5034a44dff2b14cd7759b207 22-Feb-2012 Marek Olšák <maraeo@gmail.com> r600g: rework queries

We always mapped the query buffer in begin_query, causing stalls
if the buffer was busy.

This commit reworks it such that the query buffer is only mapped
in get_query_result as it's supposed to be.

The query buffer is no longer treated as a ring buffer. Instead, the results
are just appended and when the buffer is full, we create a new one. One query
can have more than one query buffer, though that's a very rare case.
Begin_query releases all query buffers.

Reviewed-by: Jerome Glisse <jglisse@redhat.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
edc0ce292b5a34ba1e2ef96c0b530fbf8428e67d 21-Feb-2012 Marek Olšák <maraeo@gmail.com> r600g: remove duplicated set_xx_resource functions

Reviewed-by: Jerome Glisse <jglisse@redhat.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
e2809849ecac69615ece294a55ee355afaac33d3 02-Feb-2012 Marek Olšák <maraeo@gmail.com> r600g: add a depth misc state which depends on occlusion queries

This is a state which is derived from other states and is actually the first
state which doesn't correspond to any gallium state.

There are two state flags:
bool occlusion_query_enabled
bool flush_depthstencil_enabled

Additional flags can be added later if needed, e.g. bool hiz_enabled.
The emit function will have to figure out the register values by itself.

It basically just emits the registers when the state changes.
This commit also adds a few helper functions for writing registers directly
into a command stream.
/external/mesa3d/src/gallium/drivers/r600/r600.h
8f5c172c854a52b2a69b8383a55c76f1faa5f704 02-Feb-2012 Marek Olšák <maraeo@gmail.com> r600g: consolidate the main draw code

The code was almost the same for r600 and eg. What can't be consolidated is
in the *_prepare functions.
/external/mesa3d/src/gallium/drivers/r600/r600.h
6d0a011acbea90537d142c86b8dd5aecd1e14390 30-Jan-2012 Marek Olšák <maraeo@gmail.com> r600g: fix computation of how many dwords is needed for a flush at the end of CS
/external/mesa3d/src/gallium/drivers/r600/r600.h
0671400dcc72553b5f9719639e86069a1734dbe5 30-Jan-2012 Marek Olšák <maraeo@gmail.com> r600g: remove more dead code
/external/mesa3d/src/gallium/drivers/r600/r600.h
0813e58a3e41faf6f2072d034dfdc6198a3a1fee 30-Jan-2012 Marek Olšák <maraeo@gmail.com> r600g: rework cache flushing

This also significantly improves the RV670 flush by using the CB1 flush
*always* and also DEST_BASE_0_ENA, which appears to magically fix some tests.
I am not entirely sure, but it's possible that RV670 flushing is fixed
completely.

v2: fix cayman by flushing texture cache instead of vertex cache

Thanks to Dave Airlie for testing Cayman.
/external/mesa3d/src/gallium/drivers/r600/r600.h
3b0467192057cc561b6d495d6445b2ed04fc3ebf 30-Jan-2012 Marek Olšák <maraeo@gmail.com> r600g: consolidate some context_draw code
/external/mesa3d/src/gallium/drivers/r600/r600.h
bc70bcfc6915883bd5c60712b70e9ed7e1d80ea8 29-Jan-2012 Marek Olšák <maraeo@gmail.com> r600g: don't initialize the screen and winsys pointer twice
/external/mesa3d/src/gallium/drivers/r600/r600.h
e4340c1908a6a3b09e1a15d5195f6da7d00494d0 29-Jan-2012 Marek Olšák <maraeo@gmail.com> r600g: merge r600_context with r600_pipe_context

The split made no sense.
/external/mesa3d/src/gallium/drivers/r600/r600.h
78293b99b23268e6698f1267aaf40647c17d95a5 29-Jan-2012 Marek Olšák <maraeo@gmail.com> r600g: remove u8,u16,u32,u64 types
/external/mesa3d/src/gallium/drivers/r600/r600.h
85db52025189c88437f82369716ffe88429dc08b 29-Jan-2012 Marek Olšák <maraeo@gmail.com> r600g: don't use r600_context_reg on r6xx-r7xx

Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
b1b969f670c50a15110fd41527ccbc7e885e1cdd 29-Jan-2012 Marek Olšák <maraeo@gmail.com> r600g: don't use r600_context_reg on evergreen

Just getting rid of things which use the register mask.

Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
9344ab382a1765c1a7c2560e771485edf4954fe2 29-Jan-2012 Marek Olšák <maraeo@gmail.com> r600g: get rid of the mask in r600_pipe_reg

Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
4a058aebb2ce340d0e03434a8820fdf5853b971e 29-Jan-2012 Marek Olšák <maraeo@gmail.com> r600g: get rid of the mask parameter in pipe_state_add_reg

Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
2449695e822421fdcaf1c66dffc12d7d705ea69d 17-Dec-2011 Marek Olšák <maraeo@gmail.com> gallium: improve the pipe_stream_output_info struct (v2)

There are 3 changes:

1) stride is specified for each buffer, not just one, so that drivers don't
have to derive it from the outputs

2) new per-output property dst_offset, which specifies the offset
into the buffer in dwords where the output should be stored,
so that drivers don't have to compute the offsets manually;
this will also be useful for gl_SkipComponents
from ARB_transform_feedback3

3) register_mask is removed, instead, there is start_component
and num_components; register_mask with non-consecutive 1s
doesn't make much sense (some hardware cannot do packing of components)

Christoph Bumiller: fixed nvc0.

v2: resolve merge conflicts in Draw and clean it up
/external/mesa3d/src/gallium/drivers/r600/r600.h
93f4e3cb6c1ca303ee1f5c2a2491a8eff33f2633 24-Dec-2011 Marek Olšák <maraeo@gmail.com> winsys/radeon: move managing GEM domains back to drivers

This partially reverts commit 363ff844753c46ac9c13866627e096b091ea81f8.

It caused severe performance drops in Nexuiz. Reported by Phoronix.

Tested by me on r300g and by IRC people on r600g.
/external/mesa3d/src/gallium/drivers/r600/r600.h
543b2331d7b45a29ccd3530daa2389e87e65d89b 08-Nov-2011 Marek Olšák <maraeo@gmail.com> r600g: implement transform feedback

r600: DONE.
r700: MOSTLY (done but locks up).
Evergreen: MOSTLY (done but doesn't work for an unknown reason).

The kernel support will come soon.
/external/mesa3d/src/gallium/drivers/r600/r600.h
fba685a0995e76f86af5920163297e5c3b32fb4b 22-Nov-2011 Marek Olšák <maraeo@gmail.com> u_vbuf_mgr: rename to u_vbuf
/external/mesa3d/src/gallium/drivers/r600/r600.h
72c1658554b2d1e90e687340c5db4fec939b3901 10-Nov-2011 Marek Olšák <maraeo@gmail.com> r600g: the type of OCCLUSION_PREDICATE result should be boolean
/external/mesa3d/src/gallium/drivers/r600/r600.h
ec3d2c7f089e0a4750dc42f10da914b58858499e 10-Nov-2011 Marek Olšák <maraeo@gmail.com> r600g: flush the whole context when CS is full, not just hw_context

Because we disable render condition in r600_flush, but not in r600_context_flush.
/external/mesa3d/src/gallium/drivers/r600/r600.h
5222e16e2b611064c0add9eef7f56488c9b8fbe6 10-Nov-2011 Marek Olšák <maraeo@gmail.com> r600g: put the rest of CS overflow checks in r600_need_cs_space
/external/mesa3d/src/gallium/drivers/r600/r600.h
cb7c6c30d02ab46efc4ed711b2a632de50157347 10-Nov-2011 Marek Olšák <maraeo@gmail.com> r600g: properly reserve CS space for queries_suspend
/external/mesa3d/src/gallium/drivers/r600/r600.h
1b375f8413d898a18c989c20d0dc16d3b1be33bc 08-Nov-2011 Marek Olšák <maraeo@gmail.com> r600g: cosmetic changes in query code

Mainly updating comments and removing one use of a magic number.
/external/mesa3d/src/gallium/drivers/r600/r600.h
b40edc63d7d272ac132fded52f3119f4780c7e6b 29-Oct-2011 Marek Olšák <maraeo@gmail.com> r600g: shortcut ctx->screen->ws to ctx->ws
/external/mesa3d/src/gallium/drivers/r600/r600.h
7684808f9ce2da944be3ca9cc1ac4661d9b167fb 28-Oct-2011 Marek Olšák <maraeo@gmail.com> r600g: remove one pointless flush

It's not useful for anything.
The rest of the patch is just a cleanup resulting
from some of the variables being no longer used.

There are no piglit regressions.
/external/mesa3d/src/gallium/drivers/r600/r600.h
e9b6f21a5054b2639a1dfc6401e4e9053dce5394 28-Oct-2011 Marek Olšák <maraeo@gmail.com> r600g: only maintain the list of active queries

And not all existing queries. The only reason we have that list is to be able
to suspend and resume the active ones.

This reduces looping over queries when suspending and resuming.
The queries no longer have to track some of their states.
/external/mesa3d/src/gallium/drivers/r600/r600.h
6e79127e79e6ff80e3715a2190e437cfa92b4e96 28-Oct-2011 Marek Olšák <maraeo@gmail.com> r600g: remove redundant variable r600_query::buffer_size
/external/mesa3d/src/gallium/drivers/r600/r600.h
363ff844753c46ac9c13866627e096b091ea81f8 27-Sep-2011 Marek Olšák <maraeo@gmail.com> winsys/radeon: move GEM domains out of the drivers into winsys

The drivers don't need to care about the domains. All they need to set
are the bind and usage flags. This simplifies the winsys too.

This also fixes on r600g:
- fbo-depth-GL_DEPTH_COMPONENT32F-copypixels
- fbo-depth-GL_DEPTH_COMPONENT16-copypixels
- fbo-depth-GL_DEPTH_COMPONENT24-copypixels
- fbo-depth-GL_DEPTH_COMPONENT32-copypixels
- fbo-depth-GL_DEPTH24_STENCIL8-copypixels
I can't explain it.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
90ce3cdde9fb2dd507b4e21c5456a3371f5996bc 17-Sep-2011 Marek Olšák <maraeo@gmail.com> r600g: remove struct radeon (or what's left of it)

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
518557d74abd4ce035dae079ff6eb1b08cc639d0 17-Sep-2011 Marek Olšák <maraeo@gmail.com> r600g: move family and chip_class from struct radeon to r600_screen

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
6101b6d442b06a347c001fe85848d636ab7df260 11-Sep-2011 Marek Olšák <maraeo@gmail.com> r600g: merge r600_bo with r600_resource

I have moved 'last_flush' and 'binding' from r600_bo to winsys/radeon.
The other members are now part of r600_resource.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
12325b7962ba0dcc34cef2b6070ecd511e5ffa88 11-Sep-2011 Marek Olšák <maraeo@gmail.com> r600g: remove an irrelevant XXX comment
/external/mesa3d/src/gallium/drivers/r600/r600.h
ac028b20e5431ed3c78b6a4a9192e84f6873c9fd 11-Sep-2011 Marek Olšák <maraeo@gmail.com> r600g: set the return type of radeon_destroy to void
/external/mesa3d/src/gallium/drivers/r600/r600.h
b87bc2eb44cd605f2992335b5649ca907ba0c55d 11-Sep-2011 Marek Olšák <maraeo@gmail.com> r600g: remove r600_drm_public.h
/external/mesa3d/src/gallium/drivers/r600/r600.h
1a532ca79a4a87bb86c641a6ca22da0301dc1f62 11-Sep-2011 Marek Olšák <maraeo@gmail.com> r600g: inline some of the winsys r600_get functions
/external/mesa3d/src/gallium/drivers/r600/r600.h
3603d157889544230f1787bbdc4915ccd7461c59 11-Sep-2011 Marek Olšák <maraeo@gmail.com> r600g: compute tiling info in the pipe, not in the winsys

The winsys doesn't need it.
/external/mesa3d/src/gallium/drivers/r600/r600.h
47dcfb8dab517e2c92af2f4813b0f5ad200b8b07 07-Aug-2011 Marek Olšák <maraeo@gmail.com> r600g: set read/write usage flags for each relocation

This takes advantage of the new GEM_WAIT ioctl when mapping buffers.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
0bbbd82488c11710aaca79ed3db2b605888ac65d 04-Aug-2011 Marek Olšák <maraeo@gmail.com> r600g: undefine RADEON_CTX_MAX_PM4

winsys/radeon has its own definition.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
041ed559e11ee99d720c8132428c07d8fe57ec81 04-Aug-2011 Marek Olšák <maraeo@gmail.com> r600g: remove an unused parameter from r600_bo_destroy

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
c6fec83726d3435a800f0a4e3ded89628b1a504f 04-Aug-2011 Marek Olšák <maraeo@gmail.com> r600g: merge radeon_bo with r600_bo

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
ab630b5768b0bfa4d7729d110ce4fb8f42e0cfb9 04-Aug-2011 Marek Olšák <maraeo@gmail.com> r600g: use buffer_map/unmap from radeon_winsys

This also drops the unneeded bo_busy/wait functions.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
e2e1dc9e66ff348caa97b7b35e558d75c6cc6899 04-Aug-2011 Marek Olšák <maraeo@gmail.com> r600g: set the flush callback in radeon_winsys

I have also renamed the winsys function.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
e6fb62594fca714883af9bba9795be8838c16900 04-Aug-2011 Marek Olšák <maraeo@gmail.com> r600g: emit CS using radeon_winsys

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
685b8345a8ff69460f0c62c678493527b59b18a9 04-Aug-2011 Marek Olšák <maraeo@gmail.com> r600g: remove struct r600_reloc

That is really private to winsys/radeon.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
638d75185e66727faaba5dc2df1b6e14c7c0c075 03-Aug-2011 Marek Olšák <maraeo@gmail.com> r600g: let radeon_winsys maintain the list of relocations

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
9865b1ec8c88154d8ceb982c42844b68e9224217 03-Aug-2011 Marek Olšák <maraeo@gmail.com> r600g: remove now-unused r600_context::fenced_bo

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
2ce783d8ddec1b1fcadc0798af0ebb045bba1cc4 02-Aug-2011 Marek Olšák <maraeo@gmail.com> r600g: put radeon_winsys in screen::winsys, don't include drm_driver in the pipe

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
354f76f386afd980e8c1564c0b0502f9768007b5 22-Jul-2011 Marek Olšák <maraeo@gmail.com> r600g: cleanup includes in winsys

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
6eb94fc3444a300a0419c40cfcf356fdd88bc304 02-Aug-2011 Vadim Girlin <vadimgirlin@gmail.com> r600g: use backend mask for occlusion queries

Use backend_map kernel query if supported, otherwise analyze ZPASS_DONE
results to get the mask.

Fixes lockups with predicated rendering due to incorrect query buffer
initialization on some cards.

Note: this is a candidate for the 7.11 branch.

Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
e69dde5233a2fc6ad4c5483d079e1ea3a2123a59 23-Jul-2011 Marek Olšák <maraeo@gmail.com> r600g: remove dummy function r600_bo_offset

Always returned 0.
/external/mesa3d/src/gallium/drivers/r600/r600.h
f6df430a85141f6a384c18079fb5b2ad848dac0d 22-Jul-2011 Marek Olšák <maraeo@gmail.com> r600g: remove unused code
/external/mesa3d/src/gallium/drivers/r600/r600.h
ef29bfee031cdab3dbb0f9a79828c4b0d0405991 15-Jul-2011 Vadim Girlin <vadimgirlin@gmail.com> r600g: fix queries and predication

Use all zpass data for predication instead of the last block only.
Use query buffer as a ring instead of reusing the same area
for each new BeginQuery. All query buffer offsets are in bytes
to simplify offsets math.
/external/mesa3d/src/gallium/drivers/r600/r600.h
fbe9d4261f94b8a22ae04dccb8201a6762b66d40 04-Jul-2011 Vadim Girlin <vadimgirlin@gmail.com> r600g: reduce flushes for queries
/external/mesa3d/src/gallium/drivers/r600/r600.h
61c976c3ccc815aaf0128eea835aee9667cd8bbe 29-Jun-2011 Vadim Girlin <vadimgirlin@gmail.com> r600g: fix check for empty cs
/external/mesa3d/src/gallium/drivers/r600/r600.h
2743851c1a73305dd83e42b99edc49906d9c0a51 07-Jun-2011 Dave Airlie <airlied@redhat.com> r600g: move depth texture flushing out of line.

this needs a piglit run.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
ba78a5a679b3f6b00d0f2070bb1ab6d56443ab16 07-Jun-2011 Dave Airlie <airlied@redhat.com> r600g: split resource emit path from main register emit path

Since resources don't generally vary in size, this splits
the emit path, it also takes into a/c that texture and vertex resources
have different number of relocs, and avoids emitting the extra
reloc for vertex resources.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
4707ae20ad6cd99bbcaa33747fc7b043c85bb084 07-Jun-2011 Dave Airlie <airlied@redhat.com> r600g: inline r600_bo_reference.

This relies on the reference member being first, so document it.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
5d4c4798223c3463dbf67c47b9563f82c9057e7f 07-Jun-2011 Alex Deucher <alexdeucher@gmail.com> r600g: remove pre-r6xx asic families and pci ids

Not sure why these were included originally.

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
eaae63b7155f1fd00fe36a3db4cb8b94aa5ad7b2 07-Jun-2011 Marek Olšák <maraeo@gmail.com> r600g: add missing r300 families

Wondering why r600g needs to include r300_pci_ids.h
/external/mesa3d/src/gallium/drivers/r600/r600.h
63184bc8b278ba82f5462798b323774c67a019e6 03-Jun-2011 Dave Airlie <airlied@redhat.com> r600g: use an enabled list to track enabled blocks.

At the end of flushing we were scanning over 450 blocks
with generally about 50 enabled. This reduces the scanning
to just the list of enabled blocks.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
f356bb74de7ab9ad1085a0fc2f16c1dae4ff171e 06-Jun-2011 Dave Airlie <airlied@redhat.com> r600g/winsys: overhaul resource range/blocks.

There isn't much point taking the overhead of range/block lookups on resources
we aren't going to be getting resource registers at wierd offsets.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
cf0f02e501eb2eb8edcf2c4f6db826b0cdd31c9b 03-Jun-2011 Dave Airlie <airlied@redhat.com> r600g: move resource setting to its own structures.

resource setting could be a fair bit more lightweight,
this patch just separates the resource structs from the standard
reg tracking structs in the driver, later patches will improve
the winsys.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
51d0892ee2daaa442a48abff2329e1485dd337e8 03-Jun-2011 Dave Airlie <airlied@redhat.com> r600g: sampler and texture state doesn't need a range/block.

These are handled separately in the winsys, so don't need the calculations
done at this point. this manifested as a crash in point-sprite,

Thanks to XoD on #radeon for pointing it out.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
573758fd094431c8b3220786cea28dfdb4cfad1c 02-Jun-2011 Dave Airlie <airlied@redhat.com> r600g: decrease CPU time on set buffer resources

This splits the initialisation and the setting of values in the resource
buffers. We only should end up initialising once and updateing with new values
when needed.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
4423c79ddf6853d1d4594afda3e1262c1b9af4f5 02-Jun-2011 Dave Airlie <airlied@redhat.com> r600g: work out range/block etc at state build time.

This moves the overhead of working out the range/block to state build time,
it also allows the compiler to use constants for a lot of things instead
of working them out each time.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
42502b6f03230b828121f60143190c39bc5c8dda 02-Jun-2011 Dave Airlie <airlied@redhat.com> r600g: deinline r600_pipe_state_add_reg.

This is going to get too big to be a forced inline. Also going to remove it
from some hotpaths.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
7f6672f6a737bc1c47e36c9567bd6d908855ce4d 02-Jun-2011 Dave Airlie <airlied@redhat.com> r600g: prepare for passing ctx into _r600_pipe_state_add_reg

This moves the functions down the file, and also adds a ctx parameter.

This is precursor patch just moving stuff around and getting it ready.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
991dbd71fdcc95e42bc56097d2fef3a7df0e8eaa 02-Jun-2011 Dave Airlie <airlied@redhat.com> r600g: migrate macros from r600_priv.h to r600.h

this is just an precursor change for some later patches.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
414cd5df50435f475d92b02c229453d037369c0f 04-Apr-2011 Alex Deucher <alexdeucher@gmail.com> r600g: add llano support

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
7779f6d1dffde2c0501e44adc342e52803de08d4 09-Mar-2011 Dave Airlie <airlied@redhat.com> r600g: add initial cayman acceleration support.

Cayman is the RadeonHD 69xx series of GPUs. This adds support for
3D acceleration to the r600g driver.

Major changes:
Some context registers moved around - mainly MSAA and clipping/guardband related.
GPR allocation is all dynamic
no vertex cache - all unified in texture cache.
5-wide to 4-wide shader engines (no scalar or trans slot)
- some changes to how instructions are placed into slots
- removal of END_OF_PROGRAM bit in favour of END flow control clause
- no vertex fetch clause - TC accepts vertex or texture

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
d015d2f3912463e694d1e3c1b8cb6891f553f1f1 12-May-2011 Dave Airlie <airlied@redhat.com> r600g: reduce memory usage from range/block hash table.

This table covered a large range unnecessarily, reduce the address
range covered, use the fact that the bottom two bits aren't significant,
and remove unused fields from the range struct. It also drops the hash_size/shift in context in favour of a define, which should make doing the math
a bit less CPU intensive.

valgrind glxinfo
Before:
==320== in use at exit: 419,754 bytes in 706 blocks
==320== total heap usage: 3,691 allocs, 2,985 frees, 7,272,467 bytes allocated

After:
==967== in use at exit: 419,754 bytes in 706 blocks
==967== total heap usage: 3,552 allocs, 2,846 frees, 3,550,131 bytes allocated

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
d116fe51c1aee3453290ac30ffe993bc131c53f7 05-May-2011 Alex Deucher <alexdeucher@gmail.com> r600g: fix cache flushes on r6xx

r6xx asics have some problems with the surface
sync logic for the CB and DB. It's recommended
to use the event write interface for flushing
the DB/CB caches rather than the sync packets.
A single event write flush flushes all dst
caches, so we only need one for all CBs and DB.

Should fix:
https://bugs.freedesktop.org/show_bug.cgi?id=35312

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
6067a2a67f9a7aab2aee051469bea8af03747a95 20-Apr-2011 Fredrik Höglund <fredrik@kde.org> r600g: don't flush the dest caches on every draw

Keep track of when the caches are dirty, and only flush them when
the framebuffer state is set and when the context is flushed.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
162bc40eed9dc54091b6e64bcd7eab06607b500d 18-Apr-2011 Dave Airlie <airlied@redhat.com> r600g: modify block to only emit the first few dirty registers. (v2)

This gets me from 2200 to 1978 dwords for a gears frame.

This is due to us having some 32-dwords blocks in the SPI, that we only
modify the first dwords off.

v2: fix dirty reg count from Bas Nieuwenhuizen

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
c058067e578e4426f56f9b23e33e3d3fac4562f7 17-Apr-2011 Dave Airlie <airlied@redhat.com> r600g: track dirty registers better. (v2)

This is a first step to decreasing the CPU usage, by decreasing how much
stuff we pass to the GPU and hence to the kernel CS checker.

This adds a check to see if the values we need to write are actually dirty,
and avoids writing if they are. However certain register need to always
be written so we add a new flag to say which ones should be always written
if used. (Note this could probably be done cleaner with a larger refactoring,
since I think the CONST_BUFFER_SIZE_PS/VS and CONST_CACHE_PS/VS might
be better off as a special state).

It also moves the need_bo to be a flags on the register now.

With this, a frame of gears goes from emitting 3k dwords to emitting 2k dwords,
and I'm sure it could get a lot smaller.

v2: fix some evergreen dirty bits.

Original patch from: Bas Nieuwenhuizen, I NIHed nearly the same thing
before seeing his patch on the list, oops.

Reviewed-by: Bas Nieuwenhuizen
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
d04ab396a54d29948363c3353efa5aaa888076a3 29-Mar-2011 Fredrik Höglund <fredrik@kde.org> r600g: implement texture barrier
/external/mesa3d/src/gallium/drivers/r600/r600.h
948e1eb8e9c166ad5b74abc630d0760768ce78c9 29-Mar-2011 Fredrik Höglund <fredrik@kde.org> r600g: implement the pipe_screen fence functions

v2: Allocate the fences from a single shared buffer object.
v3: Allocate the r600_fence structs in blocks of 16.
Spin a few times before calling sched_yield in r600_fence_finish().
/external/mesa3d/src/gallium/drivers/r600/r600.h
a44b65312e2cbba641652f4c78b8db9f24ba39b6 28-Feb-2011 Dave Airlie <airlied@redhat.com> r600g: add NV_conditional_render support.

This is reliant on a drm patch that I posted on the list + a version bump.

These will appear in drm-next today.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
929be6eb95c33d5885a89b36dbc82db64c1344fe 01-Mar-2011 Dave Airlie <airlied@redhat.com> r600g: start using drm minor version to enable things.

If the drm minor version is > 9 (i.e. whats in drm-next),
we enable s3tc + texture tiling by default now.

this changes R600_FORCE_TILING to R600_TILING which can
be set to false to disable tiling on working drm.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
c33e091d17b90df61f7b3873a2f124c4f26adf06 28-Feb-2011 Jerome Glisse <jglisse@redhat.com> r600g: indentation fixes

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
26a4c1cb650eee1380f87f3d7e8cff43c3d6a3e6 31-Jan-2011 Alex Deucher <alexdeucher@gmail.com> r600g: fix OQ on evergreen

6xx/7xx have a max of 4 DBs, evergreen have a max of 8.

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
df8089df90de3e720fec46d6118b15094e94ccd7 31-Jan-2011 Dave Airlie <airlied@redhat.com> r600g: fix occlusion query results.

Like on some r5xx, there are multiple DB backends on the r600,
we need to add up the query results from each of these to get the
final correct value.

So far I'm not 100% sure how to calculate the num_db, value
setting it to 4 should be harmless enough until we do.

This fixes occulsion_query piglit test on my rv740.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
90c2fd86407999475ff6accecf36e5a2c75feb9b 23-Jan-2011 Mathias Fröhlich <Mathias.Froehlich@web.de> r600g: Implement timer queries.
/external/mesa3d/src/gallium/drivers/r600/r600.h
63b9790a55038c262b57c846a5f7067ea33fc60f 11-Jan-2011 Jerome Glisse <jglisse@redhat.com> r600g: move user fence into base radeon structure

This avoid any issue when context is free and we still try to
access fence through radeon structure.

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
f54366bcf61a414885abb9f7f47e897598a80859 07-Jan-2011 Alex Deucher <alexdeucher@gmail.com> r600g: add support for NI (Northern Islands) GPUs

This adds support for Barts, Turks, and Caicos asics.
/external/mesa3d/src/gallium/drivers/r600/r600.h
1039f36c47bf8c5db93b1d39c912c86fc3b1eb2f 24-Dec-2010 Vinson Lee <vlee@vmware.com> r600g: Rearrange print order of outputs of R600_ERR.
/external/mesa3d/src/gallium/drivers/r600/r600.h
f431e0452b33ca9028e07cd85783297df6e87e69 22-Dec-2010 Dave Airlie <airlied@redhat.com> r600g: drop unused code in evergreen.

this code was pretty much duplicated, thanks to Henri Verbeet on irc for
pointing it out.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
edda44e0dc72302afa04a767772d5d97ab9d9aa6 03-Dec-2010 Jerome Glisse <jglisse@redhat.com> r600g: more indentation fix + warning silencing + dead code removal

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
0e4c5f63b9023b292b88b2f0d5d0f6154e8ad263 22-Nov-2010 Alex Deucher <alexdeucher@gmail.com> r600g: add support for ontario APUs

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
f609b2ab0342d77a8beca9efb5fbc5b66ff98295 18-Nov-2010 Jerome Glisse <jglisse@redhat.com> r600g: add fetch shader capabilities

Use fetch shader instead of having fetch instruction in the vertex
shader. Allow to restrict shader update to a smaller part when
vertex buffer input layout changes.

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
46c19700676e17bfaa0a88346d512449fbeede79 03-Nov-2010 Benjamin Franzke <benjaminfranzke@googlemail.com> r600g: implement texture_get_handle (needed for eglExportDRMImageMESA)
/external/mesa3d/src/gallium/drivers/r600/r600.h
29c4a15bf61a76cd71ffa5b8f09706d0eab84281 02-Nov-2010 Keith Whitwell <keithw@vmware.com> r600g: propogate resource usage flags to winsys, use to choose bo domains

This opens the question of what interface the winsys layer should
really have for talking about these concepts.

For now I'm using the existing gallium resource usage concept, but
there is no reason not use terms closer to what the hardware
understands - eg. the domains themselves.
/external/mesa3d/src/gallium/drivers/r600/r600.h
8a74f7422bedb419f3527bb1ccd60e1e9220502c 18-Oct-2010 Dave Airlie <airlied@redhat.com> r600g: retrieve tiling info from kernel for shared buffers.

we need to know if the back is tiled so we can blit from it properly.
/external/mesa3d/src/gallium/drivers/r600/r600.h
7b3fa038830663de9bceded1b0dd2d64b8cf39c4 08-Oct-2010 Dave Airlie <airlied@redhat.com> r600g: get tiling info from kernel
/external/mesa3d/src/gallium/drivers/r600/r600.h
ea5a74fb5892c9b6ca62054be2ee83a743103f4c 05-Oct-2010 Jerome Glisse <jglisse@redhat.com> r600g: userspace fence to avoid kernel call for testing bo busy status

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
2cf3199ee3b0014bc426bc3163dfa279c00eabb3 05-Oct-2010 Jerome Glisse <jglisse@redhat.com> r600g: simplify block relocation

Since flush rework there could be only one relocation per
register in a block.

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
ac8a1ebe55b08180945ffaebcff6b3bed336c9ec 05-Oct-2010 Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> r600g: use dirty list to track dirty blocks

Got a speed up by tracking the dirty blocks in a seperate list instead of looping through all blocks. This version should work with block that get their dirty state disabled again and I added a dirty check during the flush as some blocks were already dirty.
/external/mesa3d/src/gallium/drivers/r600/r600.h
585e4098aa0cb68a2cfce55ced5c585bd20aba24 05-Oct-2010 Jerome Glisse <jglisse@redhat.com> r600g: improve bo flushing

Flush read cache before writting register. Track flushing inside
of a same cs and avoid reflushing same bo if not necessary. Allmost
properly force flush if bo rendered too and then use as a texture
in same cs (missing pipeline flush dunno if it's needed or not).

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
d22a1247d8a709cf433a6dd99b2f87a224c27d88 04-Oct-2010 Jerome Glisse <jglisse@redhat.com> r600g: allow r600_bo to be a sub allocation of a big bo

Add bo offset everywhere needed if r600_bo is ever a sub bo
of a bigger bo.

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
294c9fce1b924beddf198a3cce738b88eabb5537 04-Oct-2010 Jerome Glisse <jglisse@redhat.com> r600g: rename radeon_ws_bo to r600_bo

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
9c284b5cae916a083d17d1039d2f2da128b47882 29-Sep-2010 Jerome Glisse <jglisse@redhat.com> r600g: delete old path

Lot of clean can now happen.

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
5646964b1360883b6254e2ebacc198f43869d36f 28-Sep-2010 Jerome Glisse <jglisse@redhat.com> r600g: use a hash table instead of group

Instead of creating group of register use a hash table
to lookup into which block each register belongs. This
simplify code a bit.

Signed-off-by: Jerome Glisse <jglisse@redhat.com
/external/mesa3d/src/gallium/drivers/r600/r600.h
fe790a3c346b5edb8b64cfc937b0d5cd9e337412 28-Sep-2010 Jerome Glisse <jglisse@redhat.com> r600g: suspend/resume occlusion query around clear/copy

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
99c422ef5ab3924aad66af026945f491d75d226f 27-Sep-2010 Jerome Glisse <jglisse@redhat.com> r600g: build packet header once

Build packet header once and allow to add fake register support so
we can handle things like indexed set of register (evergreen sampler
border registers for instance.

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
7eab5ef425e1e08c0dc0ea8d161c33610a91586f 27-Sep-2010 Dave Airlie <airlied@redhat.com> r600g: add evergreen texture resource properly.

adding sampler border looks impossible with current design, another day, another corner case not worked out.
/external/mesa3d/src/gallium/drivers/r600/r600.h
a852615946b98de2d832d4907f09649803577db7 26-Sep-2010 Jerome Glisse <jglisse@redhat.com> r600g: disable early cull optimization when occlusion query running

When occlusion query are running we want to have accurate
fragment count thus disable any early culling optimization
GPU has.

Based on work from Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
b360c050b60a578ce6c75cbc872dd54999b3f6c5 22-Sep-2010 Jerome Glisse <jglisse@redhat.com> r600g: initial evergreen support in new path

This doesn't work yet.

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
ca35292a4456fec1c584d40bf9b4197fe733f609 22-Sep-2010 Jerome Glisse <jglisse@redhat.com> r600g: occlusion query for new design

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
6048be89697fe27e30ef0f45594daba4e896362c 21-Sep-2010 Jerome Glisse <jglisse@redhat.com> r600g: directly allocate bo for user buffer

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
363dfb83f1ca7f1ab09eec30aeb89732c5ce3e02 20-Sep-2010 Jerome Glisse <jglisse@redhat.com> r600g: move chip class to radeon common structure

So texture code can be shared btw new state design
& old one.

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h
affd46cc2bb327490fbc6a96f936dccf82d4996d 19-Sep-2010 Henri Verbeet <hverbeet@gmail.com> r600g: Buffer object maps imply a wait.

Unless e.g. PB_USAGE_DONTBLOCK or PB_USAGE_UNSYNCHRONIZED would be specified.
/external/mesa3d/src/gallium/drivers/r600/r600.h
fd266ec62ca772a8551d2d7922d718d9d84bdf07 17-Sep-2010 Jerome Glisse <jglisse@redhat.com> r600g: alternative command stream building from context

Winsys context build a list of register block a register block is
a set of consecutive register that will be emited together in the
same pm4 packet (the various r600_block* are there to provide basic
grouping that try to take advantage of states that are linked together)
Some consecutive register are emited each in a different block,
for instance the various cb[0-7]_base. At winsys context creation,
the list of block is created & an index into the list of block. So
to find into which block a register is in you simply use the register
offset and lookup the block index. Block are grouped together into
group which are the various pkt3 group of config, context, resource,

Pipe state build a list of register each state want to modify,
beside register value it also give a register mask so only subpart
of a register can be updated by a given pipe state (the oring is
in the winsys) There is no prebuild register list or define for
each pipe state. Once pipe state are built they are bound to
the winsys context.

Each of this functions will go through the list of register and
will find into which block each reg falls and will update the
value of the block with proper masking (vs/ps resource/constant
are specialized variant with somewhat limited capabilities).

Each block modified by r600_context_pipe_state_set* is marked as
dirty and we update a count of dwords needed to emit all dirty
state so far.

r600_context_pipe_state_set* should be call only when pipe context
change some of the state (thus when pipe bind state or set state)

Then to draw primitive you make a call to r600_context_draw
void r600_context_draw(struct r600_context *ctx, struct r600_draw *draw)
It will check if there is enough dwords in current cs buffer and
if not will flush. Once there is enough room it will copy packet
from dirty block and then add the draw packet3 to initiate the draw.

The flush will send the current cs, reset the count of dwords to
0 and remark all states that are enabled as dirty and recompute
the number of dwords needed to send the current context.

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600.h