History log of /external/mesa3d/src/gallium/drivers/r300/r300_cs.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
89ba076de4c8cfa171365700e6a3b017d5e3eeff 07-May-2016 Nicolai Hähnle <nicolai.haehnle@amd.com> radeon/winsys: introduce radeon_winsys_cs_chunk

We will chain multiple chunks together and will keep pointers to the older
chunks to support IB dumping.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
cf811faeff1eaa1aef817ae45314cc3419c44222 07-Dec-2015 Marek Olšák <marek.olsak@amd.com> gallium/radeon: remove radeon_winsys_cs_handle

"radeon_winsys_cs_handle *cs_buf" is now equivalent to "pb_buffer *buf".

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
93641f43416b8b8be8944e9d1473369bfda7f302 27-Sep-2015 Marek Olšák <marek.olsak@amd.com> gallium/radeon: stop using "reloc" in a few places

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
d587742650c262dea8007474b9956fd65472f8b2 27-Jun-2015 Marek Olšák <marek.olsak@amd.com> gallium/radeon: allow the winsys to choose the IB size

Picked from the amdgpu branch.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
ba4f6a5fc93b80d23f8a355c219020e2022439f8 20-Apr-2014 Marek Olšák <marek.olsak@amd.com> r300g: fix runtime warning after winsys cleanup

Broken by:
b2238b3452b0bcf3c1216c20c9918f9f0664b464
winsys/radeon: remove cs_write_reloc, add simpler cs_get_reloc
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
b2238b3452b0bcf3c1216c20c9918f9f0664b464 11-Apr-2014 Marek Olšák <marek.olsak@amd.com> winsys/radeon: remove cs_write_reloc, add simpler cs_get_reloc

The only difference is that it doesn't write to the CS and only returns
the index.

Reviewed-by: Christian König <christian.koenig@amd.com>
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
a75ddfd55d24363046f11b2fd2de25563698fa39 08-Jan-2013 Marek Olšák <maraeo@gmail.com> r300g: fix assertion failure in emit_dsa_state

Broken by 8ed6b1400bc8a78f46340f41aaf2e88b24c23267.
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
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_cs.h
ce9c0d280104c8001a3ee360b07218ad3d260e46 10-Feb-2011 Marek Olšák <maraeo@gmail.com> r300g: simplify WRITE_RELOC API and cleanup
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
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_cs.h
6947e5254889b99bfba7104d15e9526a7bc1cdfa 04-Dec-2010 Marek Olšák <maraeo@gmail.com> r300g: cleanup winsys
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
3ba8843307a909f35f2a04e6be6dcadd760ad82b 03-Dec-2010 Marek Olšák <maraeo@gmail.com> r300g: use internal BO handle for add_buffer and write_reloc

Small perf improvement in ipers.

radeon_drm_get_cs_handle is exactly what this commit tries to avoid
in every write_reloc.
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
8c26dc2bfeaa2504d6bcc31caa200299d47772b8 26-Jul-2010 Dave Airlie <airlied@redhat.com> r300g: fix macro substitution problem

isn't a problem yet, but have issues in hiz branch.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
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_cs.h
6acd2117c1b5700077b2220623a06d89fa5c14a7 19-Jun-2010 Marek Olšák <maraeo@gmail.com> r300g: more informative warning in END_CS
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
1c0e5ba9f14ec297cbd5055ea402989b2cc71b8d 14-Jun-2010 Marek Olšák <maraeo@gmail.com> r300g: drop begin_cs/end_cs

I have had a look at the libdrm sources and they just contain more or less
the same checking we do in macros, and begin_cs may realloc the CS buffer
if we overflow it, which never happens with r300g. So these are pretty
much useless.

There is a small but measurable performance increase by dropping the two
functions.
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
39826a2036315ccf8190b9e4c8c40d58bfdbfee9 14-Jun-2010 Marek Olšák <maraeo@gmail.com> r300g: simplify reloc macros
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
c1f18bff3e40cb5a5534974eb41558e169065a8b 13-Jun-2010 Marek Olšák <maraeo@gmail.com> r300g: count CS dwords on debug builds only
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
a062156bb27d604abb19b4ad6a3668c42b1334ab 13-Jun-2010 Marek Olšák <maraeo@gmail.com> r300g: add API for building command buffers

The idea is to build a hardware command buffer for every CSO and memcpy
the buffer to a command stream at bind time (or dirty-state-emission time,
to be precise).
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
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_cs.h
98f67a6bbd19474b1fc4816325ba23d5560ae698 12-Jun-2010 Marek Olšák <maraeo@gmail.com> r300g: reorder CS macros and document them a little
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
8f13e2bda1337c1093d3fa99338eed2c93755d7e 12-Jun-2010 Marek Olšák <maraeo@gmail.com> r300g: drop DBG_CS

I'd like the CS macros to be as lightweight as possible for performance
reasons.
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
7005feabcd199e498a7c557ebdb2e47194f70d2c 12-Jun-2010 Marek Olšák <maraeo@gmail.com> r300g: inline CHECK_CS
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
bb45a15168e6c6678776fea5d8d0085454089260 02-Jun-2010 Marek Olšák <maraeo@gmail.com> r300g: use r300_buffer_domain everywhere
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
a81730cb3205330b5fa1c5a80dc9f0c6dad6cb04 26-May-2010 Marek Olšák <maraeo@gmail.com> r300g: add get_cs_info winsys entrypoint, abandon check_cs
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
b02f1c86f5bf8b1169776975491c7df929e94e2c 26-Apr-2010 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Rudimentary stats, printed on exit.

Whoo!
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
c53142c3f46735f91b2f11308d08fa7e17edbf91 26-Apr-2010 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Add CS table writing.
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
8bf9842fac00369b5cd3a82fb4d87db0e31848b8 21-Mar-2010 Marek Olšák <maraeo@gmail.com> r300g: fix scons build
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
68e58a96e80865878e6881dc4d34fcc3ec24eb19 12-Feb-2010 Dave Airlie <airlied@redhat.com> r300g: rebuild screen/winsys interface

This creates a cleaner winsys and drop the simple screen stuff.

It makes r300g use pb_bufmgr structs.

It also tries to avoid overheads from mapping too often.

v5: clean warnings

v6: break out of cache check on first buffer - since most likely
the first busy one implies all after it are busy.

v7: cleanup a bit

v8-merged: drop cman for now to just get all the interface changes in first.
rework to changes that happened upstream

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
b14548ea32000459f4f0c4b49f3fa11d1ee9c003 22-Feb-2010 Dave Airlie <airlied@redhat.com> Revert "r300g: rebuild winsys/pipe buffer handling and add buffer map"

This reverts commit fff5be8e7b4557c221f2425dcafc2e7cbbba76ba.

Probably went too soon with this, dileX reported OA not working for him
it works here fine, but the optimisations I wanted aren't working properly
yet so I'll fix that now.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
fff5be8e7b4557c221f2425dcafc2e7cbbba76ba 12-Feb-2010 Dave Airlie <airlied@redhat.com> r300g: rebuild winsys/pipe buffer handling and add buffer map

This creates a cleaner winsys and drop the simple screen stuff.

It makes r300g use pb_bufmgr structs and adds usage of the cached
bufmgr for vertex/index buffers.

It also avoids mapping too often.

I'm not 100% sure this is perfect but it won't find its own bugs.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
4c9a8a14e56b6c45c74f2a27bfa8400b89488ee4 09-Jan-2010 Marek Olšák <maraeo@gmail.com> r300g: silence a warning
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
8cc570a48c2e8e18622027cbd76f16a746b430bc 09-Dec-2009 Marek Olšák <maraeo@gmail.com> r300g: clean up r300_emit_aos
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
7679447b5835fd73ab44b3d77b12a034c95af5c5 02-Dec-2009 Marek Olšák <maraeo@gmail.com> r300g, radeong: fix the CS overflow
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
4f77b0103d5f150845300ee8bddcef20d11a9820 02-Dec-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300g, radeong: De-specialize r300_winsys into radeon_winsys.

There's like five good reasons for this, I swear.
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
c7dfffc5d5078e3cf1c28c230177cbbb43b91131 25-Oct-2009 Maciej Cencora <m.cencora@gmail.com> r300g: enable CS dumping
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
a6eb593072298d60286f49a09e6d3a849b684dfb 27-Sep-2009 Maciej Cencora <m.cencora@gmail.com> r300g: add some debugging info
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
4b01e6f614052e48971f2b2ff474fb66afc4f752 06-Sep-2009 Nicolai Hähnle <nhaehnle@gmail.com> r300g: Debug flags infrastructure

So that debugging is no longer a full-spam-or-nothing approach, you are now
supposed to set the RADEON_DEBUG environment flag just like for classic Mesa.

The available debug flags are different, however. Just running an OpenGL
application with RADEON_DEBUG set to an arbitrary string will print out
helpful information.

Everything must be compiled with -DDEBUG for any of this to work
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
90bfff0a295ce28143ecde98ed91eb6d8cfba23c 05-Jun-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300-gallium: Mute some debug info.

Most of it is no longer interesting.
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
4550423211063010a2fa482037d8233bb80e3773 20-May-2009 Corbin Simpson <MostAwesomeDude@gmail.com> radeon-gallium: Don't permit reading and writing a BO in one CS.

This fixes some silent problems in current libdrm_radeon.

surface_copy still locks up hard.
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
d7f4ac9f34a72efe53a1a140557f1822afbadf16 01-May-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300-gallium, radeon-winsys: Reorganize r300_winsys header, break ABI.

Make things more consistent, prepare for more function hooks.
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
8648c2685870174cf620ef15de70ef030a8d5a20 08-Apr-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300-gallium: Properly emit indexbufs.

This fixes hardlocks with anything using elts.
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
f411a66c0679c1aa7a9ee3d1eb633a8cbf3ef5f2 20-Mar-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300-gallium: Misspelled macro name.

*pulls paper bag down over head*
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
edfaa686091a4f6238b8f315a475d90ff2c2f5f5 20-Mar-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300-gallium: Put r300_cs_inlines to bed.

Guess it was a mistake in the first place. Oops.
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
8066edb2a254d15ed92c2d350a7799adf3cca0d7 20-Mar-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300-gallium: Simplify/neaten up packet3.

Deck chairs on the Hindenburg. :3
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
ffbe28d25d755bc51d9f865ac176a110f6f8f5e0 16-Feb-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300-gallium: Add verbosity level to debugging.

Makes it a bit more manageable to read through the console logs.
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
f176c94e49a50b05b3af9f748a67e2ebd2e1b8fd 14-Feb-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300-gallium: Use fui instead of a roll-my-own.

Man, util/u_math just gets better by the day.
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
2e70971e4f1ac5278e9da67341e8c39518308d20 06-Feb-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300: Clean up CS counting.
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
c199f330322921e01c8c30e3ea69a2a5291ae8ee 29-Jan-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300: Unbreak emit, fix up a bunch of little things.
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
f0fce46a48a1f0547a1e50ad54696c4b660c8dce 29-Jan-2009 Joakim Sindholt <bacn@zhasha.com> r300: attempt at trivial/clear on r5xx
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
84ec4d6bedf33bf03ff7a778632eef7b209944cb 28-Jan-2009 Corbin Simpson <MostAwesomeDude@gmail.com> Ack, forgot to update the index again.
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
80dc1801409f9913cc37b8fc8e68c692bc8a22ca 28-Jan-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300: A handful of thingys.
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
2cb90c8e805d010ba4594264dd9edbbb7f95513a 27-Jan-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300: Count BEGIN_CS, END_CS, warn if count is off.
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
29a4f5493529042d1068a7d35da1e7f542474503 26-Jan-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300: Working trivial/clear for RV410.

This might work for other people too.
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
412cf4d38be628200982208b7f93bb17530bb6db 26-Jan-2009 Corbin Simpson <MostAwesomeDude@gmail.com> BROKEN

This commit is only to protect against data loss, so please skip it when
bisecting. Thanks.
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
f2a7d4f2e8e890e69e1dfa9067db4e90df63989f 24-Jan-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300: Newlines, dammit!
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
902b1be0ea2a7fea27cea26915db5977f9a8f76c 24-Jan-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300: Add some useful debugging information; remove a couple compile warnings.

Deck chairs on the Titanic.
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
0ff7cb7c89f0c9ac4e363296e53eada008717252 22-Jan-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300: Add num_vert_pipes (and remove busted num_pipes.)
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
22877265f4fdf66c75df391d6de95bd5c1584ea3 21-Jan-2009 Corbin Simpson <MostAwesomeDude@gmail.com> [BROKEN] r300: Add initial clear/fill code.

Copied from mesa and still broken. Gimme a few to clean it up.
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
7961974fc28257b293961d35f15c0ce7a85f2669 17-Jan-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300: Add a basic dirty state emit.

I feel strangely unproductive. Must be the cold.
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
74288078eab1971cc6ce3ae00fa55eb917b5826a 14-Jan-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300: Add blend state.

Also switched to r300_reg instead of radeon_reg. Yay?
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
432ab001d042b816b5892398064e5735d0293955 14-Jan-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300, amd: Add the ability to flush the CS.

This is probably important, yeah?
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
fbeeb6675733f5b2da36d40b0142dadf8cc953b4 12-Jan-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300, amd: Make everything build. (Not necessarily work, mind you.)

Lots of structural work, especially in getting the two parts to talk nicely.

Todo:
- Get damn blitter working.
- Add CS flush.
- Reverse order of above two items.
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h
78b599fb4cac469f4208ae3057b2a33e3e9913c6 09-Jan-2009 Corbin Simpson <MostAwesomeDude@gmail.com> gallium-r300: Add primitive CS.

Enough to get us up and running, I suppose.
This needs to be pushed down into winsys!
/external/mesa3d/src/gallium/drivers/r300/r300_cs.h