History log of /external/mesa3d/src/gallium/drivers/r300/r300_flush.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
1a1cc67edd4c1ae08b739adaf78e014b828908de 15-Jul-2016 Marek Olšák <marek.olsak@amd.com> gallium/radeon: remove RADEON_FLUSH_KEEP_TILING_FLAGS flag

always set

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
8140154ae92c6bd022e409790bb069966a857aed 11-Mar-2016 Marek Olšák <marek.olsak@amd.com> gallium/radeon: remove old CS tracing

Cons:
- it was only integrated in r600g
- it doesn't work with GPUVM
- it records buffer contents at the end of IBs instead of at the beginning,
so the replay isn't exact
- it lacks an IB parser and user-friendliness

A better solution is apitrace in combination with gallium/ddebug, which
has a complete IB parser and can pinpoint hanging CP packets.

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
b7da8fa11d5c6ec71113350eed1959191a7d5990 23-Feb-2016 Marek Olšák <marek.olsak@amd.com> r300g: remove support for DRM < 2.12.0
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
d70eb3851753ed7b57c56e4a7fd538857e4385ce 14-Nov-2014 Eric Anholt <eric@anholt.net> gallium: Replace u_simple_list.h with util/simple_list.h

The code was exactly the same, except util/ has c++ guards and a struct
simple_node declaration.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
70cf6639c331342619e65c46db925d115bf51920 12-Apr-2014 Marek Olšák <marek.olsak@amd.com> gallium/radeon: create and return a fence in the flush function

All flush functions get a fence parameter. cs_create_fence is removed.

Reviewed-by: Christian König <christian.koenig@amd.com>
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
6067a30838535c838262a9229b400afe4d92c184 08-Oct-2013 Marek Olšák <marek.olsak@amd.com> winsys/radeon: add the implementation of fences from r300g
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
8c347d4e5762b41320a80acf474284b5c096fd0d 02-May-2013 Chia-I Wu <olvaffe@gmail.com> gallium: fix type of flags in pipe_context::flush()

It should be unsigned, not enum pipe_flush_flags.

Fixed a build error:

src/gallium/state_trackers/egl/android/native_android.cpp:426:29: error:
invalid conversion from 'int' to 'pipe_flush_flags' [-fpermissive]

v2: replace all occurrences of enum pipe_flush_flags by unsigned

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Marek Olšák <maraeo@gmail.com>

[olv: document the parameter now that the type is unsigned]
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
abb96fdea70546f974ba59cbd00bc54afee9cfdb 24-Apr-2013 Jerome Glisse <jglisse@redhat.com> winsys/radeon: consolidate tracing into winsys v2

This move the tracing timeout and printing into winsys and add
an debug environement variable for it (R600_DEBUG=trace_cs).

Lot of file touched because of winsys API changes.

v2: Do not write lockup file if ib uniq id does not match last one

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Reviewed-by: Marek Olšák <maraeo@gmail.com>
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
8ed6b1400bc8a78f46340f41aaf2e88b24c23267 05-Jan-2013 Marek Olšák <maraeo@gmail.com> r300g: implement MSAA

This is not as optimized as r600g - the MSAA compression is missing,
so r300g needs a lot of bandwidth (more than r600g to do the same thing).
However, if the bandwidth is not an issue for you, you can enjoy this
unoptimized MSAA support.
The only other missing optimization for MSAA is the fast color clear.

MSAA is enabled on r500 only, because that's the only GPU family I tested.
That said, MSAA should work on r300 and r400 as well (but you must set
RADEON_MSAA=1 to allow it, then turn MSAA on in your app or set GALLIUM_MSAA=n,
n >= 2, n <= 6)
I will enable the support by default on r300-r400 once someone (other than me)
tests those chipsets with piglit.

The supported modes are 2x, 4x, 6x.

The supported MSAA formats are RGBA8, BGRA8, and RGBA16F (r500 only).
Those 3 formats are used for all GL internal formats.

Tested with piglit. (I have ported all MSAA tests to GL2.1)
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
ad1d1a4d9e4cb06424d477ddabac5885fa0613af 04-Jan-2013 Marek Olšák <maraeo@gmail.com> r300g/swtcl: simplify vertex uploading

- skip the vertex buffer reallocation in flush and just use
the unsynchronized flag to get new memory.
- remove the cruft needed to get around the issues with the vertex buffer
reallocation in flush
- use pb_buffer instead of pipe_resource
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
12aeb47b6af4b3100da26b3ab72ef93886479219 21-Dec-2012 Marek Olšák <maraeo@gmail.com> gallium/radeon: send the END_OF_FRAME flag to the DRM
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
598cc1f74d7ae924e84dee801b456ab7b0b22f84 21-Dec-2012 Marek Olšák <maraeo@gmail.com> gallium: extend pipe_context::flush for it to accept an END_OF_FRAME flag

Usage with pipe_context:
pipe->flush(pipe, NULL, PIPE_FLUSH_END_OF_FRAME);

Usage with st_context_iface:
st->flush(st, ST_FLUSH_END_OF_FRAME, NULL);

The flag is only a hint for drivers. Radeon will use it for buffer eviction
heuristics in the kernel (e.g. for queries like how many frames have passed
since a buffer was used).

The flag is currently only generated by st/dri on SwapBuffers.

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
448cd5ea60403576c3eec86ffb2b892e78b9dfe0 09-Dec-2012 Marek Olšák <maraeo@gmail.com> winsys/radeon: don't use BIND flags, add a flag for the cache bufmgr instead
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
3e3a586236815970b5eab36697e221e9a72542d6 01-Dec-2012 Marek Olšák <maraeo@gmail.com> r300g: fix revoking hyperz access

The bug was uncovered by 67c8e96f5ace67f9c17556934ee9532877d3a00.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=57763
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
67c8e96f5ace67f9c17556934ee9532877d3a00f 30-Nov-2012 Dave Airlie <airlied@gmail.com> r300g: fix comparison of hyperz flush time.

I haven't confirmed this is doing the correct thing, but at
least this might make someone review it!

Reported by internal RH coverity scan.

Signed-off-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Marek Olšák <maraeo@gmail.com>
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
dc4c821f0817a3db716f965692fb701079f66340 10-Jan-2012 Marek Olšák <maraeo@gmail.com> Squash-merge branch 'gallium-clip-state'

Conflicts:
src/gallium/auxiliary/tgsi/tgsi_strings.c
src/mesa/state_tracker/st_atom_clip.c

commit d919791f2742e913173d6b335128e7d4c63c0840
Author: Christoph Bumiller <e0425955@student.tuwien.ac.at>
Date: Fri Jan 6 17:59:22 2012 +0100

d3d1x: adapt to new clip state

commit cfec82bca3fefcdefafca3f4555285ec1d1ae421
Author: Christoph Bumiller <e0425955@student.tuwien.ac.at>
Date: Fri Jan 6 14:16:51 2012 +0100

gallium/docs: update for clip state changes

commit c02bfeb81ad9f62041a2285ea6373bbbd602912a
Author: Christoph Bumiller <e0425955@student.tuwien.ac.at>
Date: Fri Jan 6 14:21:43 2012 +0100

tgsi: add TGSI_PROPERTY_PROHIBIT_UCPS

commit d4e0a785a6a23ad2f6819fd72e236acb9750028d
Author: Brian Paul <brianp@vmware.com>
Date: Thu Jan 5 08:30:00 2012 -0700

tgsi: consolidate TGSI string arrays in new tgsi_strings.h

There was some duplication between the tgsi_dump.c and tgsi_text.c
files. Also use some static assertions to help catch errors when
adding new TGSI values.

v2: put strings in tgsi_strings.c file instead of the .h file.

Reviewed-by: Dave Airlie <airlied@redhat.com>

commit c28584ce0d8c62bd92c8f140729d344f88a0b3cd
Author: Christoph Bumiller <e0425955@student.tuwien.ac.at>
Date: Fri Jan 6 12:48:09 2012 +0100

gallium: extend user_clip_plane_enable to apply to clip distances

commit f1d5016c07f786229ed057effbe55fbfd160b019
Author: Marek Olšák <maraeo@gmail.com>
Date: Fri Jan 6 02:39:09 2012 +0100

nvfx: adapt to new clip state

commit 6f6fa1c26bd19f797c1996731708e3569c9bfe24
Author: Marek Olšák <maraeo@gmail.com>
Date: Fri Jan 6 01:41:39 2012 +0100

st/mesa: fix DrawPixels with GL_DEPTH_CLAMP

commit c86ad730aa1c017788ae88a55f54071bf222be12
Author: Christoph Bumiller <e0425955@student.tuwien.ac.at>
Date: Tue Jan 3 23:51:30 2012 +0100

nv50: adapt to new clip state

commit 3a8ae6ac243bae5970729dc4057fe02d992543dc
Author: Christoph Bumiller <e0425955@student.tuwien.ac.at>
Date: Tue Jan 3 23:32:36 2012 +0100

nvc0: adapt to new clip state

commit 6243a8246997f8d2fcc69ab741a2c2dea080ff11
Author: Marek Olšák <maraeo@gmail.com>
Date: Thu Dec 29 01:32:51 2011 +0100

draw: initalize pt.user.planes in draw_init

This fixes a crash in glean/fpexceptions.

commit e3056524b19b56d473f4faff84ffa0eb41497408
Author: Marek Olšák <maraeo@gmail.com>
Date: Mon Dec 26 06:26:55 2011 +0100

svga: adapt to new clip state

commit c5bfa8b37d6d489271df457229081d6bbb51b4b7
Author: Marek Olšák <maraeo@gmail.com>
Date: Sun Dec 25 14:11:51 2011 +0100

r600g: adapt to new clip state

commit f11890905362f62627c4a28a8255b76eb7de7df2
Author: Marek Olšák <maraeo@gmail.com>
Date: Sun Dec 25 14:10:26 2011 +0100

r300g: adapt to new clip state

commit e37465327c79a01112f15f6278d9accc5bf3103f
Author: Marek Olšák <maraeo@gmail.com>
Date: Sun Dec 25 12:39:16 2011 +0100

draw: adapt to new clip state

This adds a regression in the LLVM clipping path. Can anybody see anything
wrong with the code? It works for every other case, just glean/fpexceptions
crashes when doing the "Infinite clip plane test".

commit b474d2b18c72d965eefae4e427c269cba5ce6ba2
Author: Marek Olšák <maraeo@gmail.com>
Date: Sun Dec 25 13:14:59 2011 +0100

u_blitter: don't save/set/restore clip state

commit 9dd240ea91f523a677af45e8d0adb9e661e28602
Author: Marek Olšák <maraeo@gmail.com>
Date: Sun Dec 25 13:11:56 2011 +0100

gallium: don't cso_save/set/restore clip state

The enable bits are in the rasterizer state.

commit a4f7031179f5f4ad524b34b394214b984ac950f6
Author: Marek Olšák <maraeo@gmail.com>
Date: Sun Dec 25 12:58:55 2011 +0100

gallium: default depth_clip to 1

depth_clip = !depth_clamp

commit fe21147a00ab90e549d63fe12ee4625c9c2ffcc3
Author: Marek Olšák <maraeo@gmail.com>
Date: Mon Dec 26 06:14:19 2011 +0100

trace,util: update state logging to new clip state

Also dump the other missing flags.

commit 2a3b96e84ac872dcc5bc1de049fe76bb58d64b23
Author: Marek Olšák <maraeo@gmail.com>
Date: Sun Dec 25 10:43:43 2011 +0100

st/mesa: adapt to new clip state

commit b7b656a42fca19d7c85267f42649a206a85a2c72
Author: Marek Olšák <maraeo@gmail.com>
Date: Sat Dec 17 15:45:19 2011 +0100

gallium: move state enable bits from clip_state to rasterizer_state
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
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/r300/r300_flush.c
35d2764f853fa749e36871d11fc22ced2a851702 13-Dec-2011 Marek Olšák <maraeo@gmail.com> r300g: take advantage of KEEP_TILING_FLAGS flush flag

This fixes at least two multi-context-related races.
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
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/r300/r300_flush.c
34f4bd81906d8385eb3e9af721d50e985cb9d7d4 13-Sep-2011 Marek Olšák <maraeo@gmail.com> winsys/radeon: use the cache bufmgr for buffers with PIPE_BIND_CUSTOM

so that we don't abuse PIPE_BIND_VERTEX_BUFFER all the time.
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
7db148d3a5a350f80df8dc588e0079fda7aa378a 23-Jul-2011 Marek Olšák <maraeo@gmail.com> winsys/radeon: remove usage parameter from buffer_create
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
ce9daf6f0bda857c9ee5d021cfb444db6376bfe7 22-Jul-2011 Marek Olšák <maraeo@gmail.com> winsys/radeon: add R300 infix to winsys feature names
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
fdd37af3f76ea3ac32f21e9a9c41979a9b33cc5c 07-May-2011 Marek Olšák <maraeo@gmail.com> r300g: dynamically ask for and release Hyper-Z access

We ask for Hyper-Z access when clearing a zbuffer.
We release it if no zbuffer clear has been done for 2 seconds.
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
d35aeff4bb0b03450b2c3c08bd7f84db5bf43283 18-Apr-2011 Marek Olšák <maraeo@gmail.com> r300g/winsys: rename r300->radeon and do a little cleanup

Renaming a few files, types, and functions.
Also make the winsys independent of r300g.
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
7e02303497237cde958c28608477d0c355a8038b 08-Mar-2011 Marek Olšák <maraeo@gmail.com> gallium: remove flags from the flush function

The drivers have been changed so that they behave as if all of the flags
were set. This is already implicit in most hardware drivers and required
for multiple contexts.

Some state trackers were also abusing the PIPE_FLUSH_RENDER_CACHE flag
to decide whether flush_frontbuffer should be called.
New flag ST_FLUSH_FRONT has been added to st_api.h as a replacement.
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
5650a719f0c69c00954e47bd7a7b3e9433cb551d 08-Mar-2011 Marek Olšák <maraeo@gmail.com> r300g: decide whether a flush should be asynchronous when calling it

Thread offloading is not sometimes desirable, e.g. when mapping a buffer.
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
a6314eb47f0c916c51362dfbd0f1db21e72745ee 02-Mar-2011 Marek Olšák <maraeo@gmail.com> r300g: require DRM 2.3.0 (kernel 2.6.34)

Running any older kernel is not recommended anyway.
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
fd8d4b32ede6ebeae332539b71d38c36420e2654 18-Feb-2011 Marek Olšák <maraeo@gmail.com> r300g: remove tracking whether vertex buffers need to be validated

This was getting hard to maintain and didn't really bring any real benefits.
Instead, validate buffers when the vertex array state is dirty.
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
b9e2cde6006b557a3a23a82384899f4d5a5ac7b8 15-Feb-2011 Marek Olšák <maraeo@gmail.com> r300g: offload the CS ioctl to another thread

This is a multi-threading optimization which hides the kernel overhead
behind a thread. It improves performance in CPU-limited apps by 2-15%.
Of course you must have at least 2 cores for it to make any difference.

It can be disabled with:

export RADEON_THREAD=0
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
18b4978ac8d2fb9b4f0830f33267e36ffc67b89c 15-Feb-2011 Marek Olšák <maraeo@gmail.com> r300g: implement fences using dummy relocations

So finally we have them.
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
20112cca262c926de887dff7d7f108b046ea781a 14-Feb-2011 Marek Olšák <maraeo@gmail.com> r300g: do not track whether occlusion queries have been flushed

The winsys takes care of flushing automatically.
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
5a6ba08c21f24b14458a2084a170ddfbe8f5d793 14-Feb-2011 Marek Olšák <maraeo@gmail.com> r300g: emit 3D_LOAD_VBPNTR only when necessary

I thought I couldn't skip emitting this packet in some cases.
Well it looks like I can.
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
529d867207a7f14364d9453cc2beaa4da4ea4752 06-Feb-2011 Marek Olšák <maraeo@gmail.com> r300g: do not flush the uploader

We don't have to unmap and recreate the upload buffer when a flush occurs.
This should also prevent buffer allocations from failing.
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
1f0348c4a2ba4f8ca812a2daccf3b01c3f984ef1 04-Dec-2010 Marek Olšák <maraeo@gmail.com> r300g: rework command submission and resource space checking

The motivation behind this rework is to get some speed by reducing
CPU overhead. The performance increase depends on many factors,
but it's measurable (I think it's about 10% increase in Torcs).

This commit replaces libdrm's radeon_cs_gem with our own implemention.
It's optimized specifically for r300g, but r600g could use it as well.
Reloc writes and space checking are faster and simpler than their
counterparts in libdrm (the time complexity of all the functions
is O(1) in nearly all scenarios, thanks to hashing).
(libdrm's radeon_bo_gem is still being used in the driver.)

It works like this:

cs_add_reloc(cs, buf, read_domain, write_domain) adds a new relocation and
also adds the size of 'buf' to the used_gart and used_vram winsys variables
based on the domains, which are simply or'd for the accounting purposes.
The adding is skipped if the reloc is already present in the list, but it
accounts any newly-referenced domains.

cs_validate is then called, which just checks:
used_vram/gart < vram/gart_size * 0.8
The 0.8 number allows for some memory fragmentation. If the validation
fails, the pipe driver flushes CS and tries do the validation again,
i.e. it validates only that one operation. If it fails again, it drops
the operation on the floor and prints some nasty message to stderr.

cs_write_reloc(cs, buf) just writes a reloc that has been added using
cs_add_reloc. The read_domain and write_domain parameters have been removed,
because we already specify them in cs_add_reloc.

The space checking has been tested by putting small values in vram/gart_size
variables.
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
31afa7616e3c11e9874f3297ac66ebdd50a67186 27-Dec-2010 Marek Olšák <maraeo@gmail.com> r300g: skip buffer validation of upload buffers when appropriate

because the upload buffers are reused for subsequent draw operations.
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
4953ba6a717ad1d3aa4426d147b52d05932c47ab 07-Dec-2010 Marek Olšák <maraeo@gmail.com> r300g: validate buffers only if any of bound buffers is changed

This prevents needless buffer validation (CS space checking).
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
66d45567b4e2c6f2585789b68667e6c00b7567e1 04-Dec-2010 Marek Olšák <maraeo@gmail.com> r300g: optimize looping over atoms

This also removes DBG_STATS (the stats can be obtained with valgrind instead).
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
536d52702034a03d94866cb6cf8fc05502860320 03-Dec-2010 Marek Olšák <maraeo@gmail.com> r300g: add capability bit index_bias_supported

.. instead of calling r500_index_bias_supported(..) every draw call.
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
0392e48867c27f2aa445c5c9b35f4a52ecef2f2d 13-Sep-2010 Marek Olšák <maraeo@gmail.com> r300g: fix SWTCL

https://bugs.freedesktop.org/show_bug.cgi?id=29901
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
cb925970eeade17016f59497d2123e4e8a447164 24-Aug-2010 Marek Olšák <maraeo@gmail.com> r300g: reset the index bias to 0 at the end of CS
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
eb430b0e948caf02b9f4095d0e1435880073c2aa 23-Aug-2010 Dave Airlie <airlied@redhat.com> r300g: avoid stall in no-tcl drawing when mapping vbo

the current code reuses the same vbo over and over, however after a flush
we'd stall and wait for mapping on the vbo when we should just fire and forget.

On a gears test this brings me from ~620 to ~750 on my rv530 in swtcl mode.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
ab0a3f30b8070a0204c023f8ea5375f1d3f710fd 07-Aug-2010 Marek Olšák <maraeo@gmail.com> r300g: fix cbzb clears when hyperz is off
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
6eb2a7fbafd49e75b6cbbee57f23dda63eff73ef 07-Jul-2010 Dave Airlie <airlied@redhat.com> r300g: implement hyper-z support. (v4)

This implements fast Z clear, Z compression, and HiZ support for r300->r500
GPUs.

It also allows cbzb clears when fast Z clears are being used for the ZB.

It requires a kernel with hyper-z support.

Thanks to Marek Olšák <maraeo@gmail.com>, who started this off, and Alex Deucher at AMD for providing lots of hints.

v2:
squashed zmask ram size fix]
squashed r300g/blitter: fix Z readback when compressed]

v3:
rebase around texture changes in master - .1 fix more bits

v4:
migrated to using u_mm in r300_texture to manage hiz/zmask rams consistently
disabled HiZ when using OQ
flush z-cache before turning hyper-z off
update hyper-z state on dsa state change
store depthclearvalue across cbzb clears and replace it afterwards.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
d8d7a3e0f9629a220e2394dd7c6634f2d6a93e20 29-Jul-2010 Marek Olšák <maraeo@gmail.com> r300g/swtcl: fix crash in ETQW and minor fixups

The Draw flush inside r300_flush was the culprit.

Also, no need to flush Draw when changing a state since the flush is
already inside swtcl_draw_vbo.
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
4eaf591d1504f61e131f77f01711d27a75d02e90 18-Jul-2010 Dave Airlie <airlied@redhat.com> r300g: u_upload optimisation

fix vb/ib uploads
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
fe3caa91d3f637bf9cf9f9e7adb992aa8c7ef8e4 14-Jul-2010 Marek Olšák <maraeo@gmail.com> r300g: rebuild winsys and command submission to support multiple contexts
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
8c836f7f740c6f74511c727c7bed0680ddba9974 12-Jul-2010 Marek Olšák <maraeo@gmail.com> r300g: implement fast color clear

An initial implementation made by Dave Airlie.

For it to be used, a color-only clear must be invoked and exactly one
point-sampled render target must be set. The render target must be
macrotiled (for us to overcome alignment issues) and bpp must be either
16 or 32.

I can't see a difference in performance. :(

Conflicts:

src/gallium/drivers/r300/r300_blit.c
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
9cdd481f8ef65f3a66c422c548add3682d108db0 11-Jul-2010 Marek Olšák <maraeo@gmail.com> r300g: ugly fix of a hardlock in the cubestorm xscreensaver

FDO bug #28563.
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
7ca24dfa6daead4722d03d9a947f1e049b9c7d38 12-Jun-2010 Marek Olšák <maraeo@gmail.com> r300g: inline FLUSH_CS

The fewer macros, the better.
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
1bdbc0e38ff2a58f5aadbb0321d0f3c35db96fcc 26-May-2010 Marek Olšák <maraeo@gmail.com> r300g: fix fence referencing
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
2c072c8f72647a3b32e9855f7635b37ba399f5be 26-May-2010 Marek Olšák <maraeo@gmail.com> r300g: implement fake but compliant fences
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
d1dac360048e5eace88b93f88a4a4e23d2cec582 25-May-2010 Marek Olšák <maraeo@gmail.com> r300g: remove r300_flush.h
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
0b94c05c2827336e2abf46629590edf05a6b3f64 16-May-2010 Marek Olšák <maraeo@gmail.com> r300g: implement flush+sync (AKA glFinish)

See comments in the code.
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
95ba021105a2f1a29c8a4f51641c7a0b527226be 15-May-2010 Marek Olšák <maraeo@gmail.com> r300g: fix emission of some non-CSO atoms at the beginning of CS
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
251fae69e5d3a44c1a2a03f7172182e803a04792 15-May-2010 Marek Olšák <maraeo@gmail.com> r300g: fix BO space accounting for occlusion queries
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
0b4df63609e9fb25319debd56142a90b11d75671 18-Apr-2010 Marek Olšák <maraeo@gmail.com> r300g: various other cleanups

It seems to me that the resource management code is the most blurry.

Also some of my notes about fastfill are wrong, removing them too.
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
eb4e399ef0d7b4fbeee744e79abcb79263549f7e 14-Apr-2010 Marek Olšák <maraeo@gmail.com> r300g: atomize beginning occlusion query
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
3da70606b3af1e907d56666d199957b6da0c73fe 14-Apr-2010 Marek Olšák <maraeo@gmail.com> r300g: atomize VS constant buffer
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
b71bfc4400e1d7c15a2bebbbd3b26a8770fbf546 05-Apr-2010 Marek Olšák <maraeo@gmail.com> r300g: simplify accessing screen from context
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
690ded32cdda4363c30aca32ef94383ba356a3c5 07-Mar-2010 Marek Olšák <maraeo@gmail.com> r300g: disable emitting the HWTCL-related state when SWTCL is in use

Now SWTCL renders at least "something", we're close...
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
978568c647844693f602364bd9e1041d1cecea4f 28-Jan-2010 Vinson Lee <vlee@vmware.com> r300g: Remove unnecessary headers.
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
fcbd285e421903ee0a65f19f5d633b25b5923c24 20-Jan-2010 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Make invariant state into an atom.
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
b01ffb12ed82dcf435b186e2aff35e344a8a6ebe 14-Jan-2010 Jakob Bornecrantz <jakob@vmware.com> Merge branch 'mesa_7_7_branch'

Conflicts:
src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c
src/gallium/auxiliary/util/Makefile
src/gallium/drivers/r300/r300_state_derived.c
66334847744f2547a6891cbcf2191306a72f04ab 12-Jan-2010 Marek Olšák <maraeo@gmail.com> r300g: mark all states as dirty after flush

It fixes almost all regressions introduced lately.
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
4775723d2f641dcd82e8c9cd39ba52f8d86158c7 09-Jan-2010 Vinson Lee <vlee@vmware.com> r300g: Silence unused variable warnings.
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
511bd5f32b67f903b590f00f7ccf8132127ef2e4 22-Oct-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Check for NULL Draw during flush.

Split from the fastpath WIP.
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
6a448a525baf81173f92ee8c3074b98baa54397b 21-Oct-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Cleanup header includes.
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
16a06fea73b1e6e8857f7568762bfc56dcfe2940 19-Oct-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Fix up a bunch of warnings.
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
51d1cf55da6f8b8a215814589a189b6e5e537fe5 14-Oct-2009 Dave Airlie <airlied@redhat.com> r300g: port over last parts of oq support.

Add support for begin/end in each CS so we don't get any other
processes rendering in between.

TODO:
blame other parts of driver for this not working like Z.
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
c1bee7bdea470b6b5dcebef9aacc8fe4feca687c 14-Oct-2009 Dave Airlie <airlied@redhat.com> r300g: fixup arb occulsion query support.

1: add rv530 support
- num z pipes cap
- add proper start/finish query options for rv530

2: convert to use linked list properly.

3: add flushing required check.

4: initial Z top disabling support.

TODO:
make it actually work on my rv530.
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
96ef7aae1d58db2cbc2e46347aa87c34126983ef 02-Jul-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Fix recursive Draw flush.

Also just noticed that demos/copypix walks around the overlapping blit rules.

Bad, bad Mesa. :3
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
86d2144412915b0052a468806c4fba81d72a682d 26-Apr-2009 Mathias Gottschlag <mathias-go@web.de> r300-gallium: Add a draw_flush() to r300_flush().

This fixes some missing primitives which had been drawn right before the next glClear().
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
f822ac0fff2521b5e43c79df2e4802b5688faa3c 17-Mar-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300-gallium: Emit invariant state, no matter what.

It's called "invariant" for a reason. :3
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c
2c2f819a1de0fc29866fdf90cce4550b0d2a0bad 26-Jan-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300: Add r300_flush.

Haha, I always do this.
/external/mesa3d/src/gallium/drivers/r300/r300_flush.c