History log of /external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
9e1aa81dfeced2381aa0df73758dd76f2722d857 27-Dec-2016 Marek Olšák <marek.olsak@amd.com> gallium/radeon: prevent SDMA stalls by detecting RAW hazards in need_dma_space

Call r600_dma_emit_wait_idle only when there is a possibility of
a read-after-write hazard. Buffers not yet used by the SDMA IB don't
have to wait.

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
9e62012c30812091e5400d449869f5022ac945ca 26-May-2016 Marek Olšák <marek.olsak@amd.com> r600g: only do necessary cache flushes in cp_dma_clear_buffer

The main impact is that fast color clear doesn't flush TC, CONST, DB.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Tested-by: Grazvydas Ignotas <notasas@gmail.com>
Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
5ea5ed60500a8612166853975b42abd40a459216 26-May-2016 Marek Olšák <marek.olsak@amd.com> r600g: fix CP DMA hazard with index buffer fetches (v3)

v3: use PFP_SYNC_ME on EG-CM only when supported by the kernel,
otherwise use MEM_WRITE + WAIT_REG_MEM to emulate that

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Tested-by: Grazvydas Ignotas <notasas@gmail.com>
Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
c23273532e711f3f0263bfff8bf8a0e733b90e12 06-May-2016 Nicolai Hähnle <nicolai.haehnle@amd.com> gallium/radeon: use radeon_emit

Mostly generated using a sed-script, with manual fix-up for multi-line
statements.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
bb74152597de44ee877b8928587b1cece8b49656 28-Apr-2016 Marek Olšák <marek.olsak@amd.com> gallium/radeon: flush if DMA IB memory usage is too high

This prevents IB rejections due to insane memory usage from
many concecutive texture uploads.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
a512da36aed3a1c893b34681dec2dfd51d250ee5 26-Apr-2016 Marek Olšák <marek.olsak@amd.com> gallium/radeon: fix (S)DMA read-after-write hazards

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
6cc8f6c6a72b1aab7bb506deb220e04ae50d8c2b 07-Nov-2015 Marek Olšák <marek.olsak@amd.com> gallium/radeon: inline the r600_rings structure

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
2edb0606397d16fe88d7b488285df379aaae5893 26-Sep-2015 Marek Olšák <marek.olsak@amd.com> gallium/radeon: tell the winsys the exact resource binding types

Use the priority flags and expand them.
This information will be used for debugging.

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
7ff2991e344130c8eb6e4be0b146320b3f02c1e6 30-Aug-2015 Marek Olšák <marek.olsak@amd.com> gallium/radeon: rename r600_context_bo_reloc -> radeon_add_to_buffer_list

this name should be easy to understand without other knowledge

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
05e7f7f4388bde882b7ce74124000a4d435affff 22-Apr-2015 Zoë Blade <zoe@bytenoise.co.uk> Fix a few typos

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
f6c392a2705322a01ff75d5bdc2c8f7df42b484b 06-Aug-2014 Marek Olšák <marek.olsak@amd.com> r600g: use gpu_address from r600_resource

Reviewed-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
54690a5f3b113914224537ec14f88cf2fa9e6403 17-Mar-2014 Marek Olšák <marek.olsak@amd.com> r600g: use more appropriate names for async DMA functions

*_dma_copy calls either *_dma_copy_buffer or *_dma_copy_tile.

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
6c487ff3bd40acdfc553b328e8327bfa90c49340 17-Mar-2014 Marek Olšák <marek.olsak@amd.com> r600g: deobfuscate async DMA code

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
2c703ee8ad8a396e2daffa6fd005009d9ea987d6 16-Mar-2014 Marek Olšák <marek.olsak@amd.com> r600g: don't flush the gfx IB explicitly before doing DMA

It's flushed by calling r600_context_bo_reloc.

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
acf55e73252e46fa51378ef4b23c94a89902ae1c 17-Mar-2014 Niels Ole Salscheider <niels_ole@salscheider-online.de> radeon: Move r600_need_dma_space to common code

Signed-off-by: Niels Ole Salscheider <niels_ole@salscheider-online.de>
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
bee2b96b02161cf75cfe17f7d30d14f2b838423f 20-Feb-2014 Marek Olšák <marek.olsak@amd.com> r600g,radeonsi: set priorities for relocations
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
e4ef639a5700cff492fbddf7131d1cc9e52a2bb0 04-Dec-2013 Marek Olšák <marek.olsak@amd.com> r600g,radeonsi: fix initialized buffer range tracking for DMA, add comments

The DMA functions modify dst_offset and size and util_range_add gets wrong
values.

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
bba39d88046670bdd4db2ab1e7ba07b7e4ae277c 28-Nov-2013 Marek Olšák <marek.olsak@amd.com> r600g,radeonsi: share flags has_cp_dma and has_streamout

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
373f8670d1c670003674e1eaa7c1f0cd823a0431 05-Oct-2013 Marek Olšák <marek.olsak@amd.com> Revert "r600g: only flush the caches that need to be flushed during CP DMA operations"

This reverts commit 7948ed1250cae78ae1b22dbce4ab23aceacc6159.

It caused graphical corruption. I've got no idea why.

Bugzilla:
https://bugs.freedesktop.org/show_bug.cgi?id=70042
https://bugs.freedesktop.org/show_bug.cgi?id=68451

Conflicts:
src/gallium/drivers/r600/evergreen_hw_context.c
src/gallium/drivers/r600/r600_hw_context.c
src/gallium/drivers/r600/r600_pipe.h
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
d5b23dfc1c07f98afe749053b9cb4b69829fe3d4 13-Aug-2013 Marek Olšák <marek.olsak@amd.com> r600g: move streamout state to drivers/radeon

This streamout state code will be used by radeonsi.

There are new structures r600_common_context and r600_common_screen.
What is inherited by what is shown here:

pipe_context -> r600_common_context -> r600_context
pipe_screen -> r600_common_screen -> r600_screen

The common structures reside in drivers/radeon. Currently they only contain
enough functionality to be able to handle streamout. Eventually I'd like
the whole pipe_screen implementation to be shared and some of the context
stuff too.

This is quite big, but most changes are because of the new structures and
the fact r600_write_value is replaced by radeon_emit.

Thanks to Tom Stellard for fixing the build for r600g/compute.

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Tested-by: Tom Stellard <thomas.stellard@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
0d7f087483d014305ec96a84ce5a28355f843c86 16-Jul-2013 Marek Olšák <maraeo@gmail.com> r600g: use WAIT_3D_IDLE before using CP DMA

I broke this with 7948ed1250cae78ae1b22dbce4ab23aceacc6159 for r700 at least.
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
7948ed1250cae78ae1b22dbce4ab23aceacc6159 30-Jun-2013 Marek Olšák <maraeo@gmail.com> r600g: only flush the caches that need to be flushed during CP DMA operations

This should increase performance if constant uploads are done with the CP DMA,
because only the cache that needs to be flushed is flushed.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
1b40398d024d2ac5c8e8b78d0f4941e2a007de2c 30-Jun-2013 Marek Olšák <maraeo@gmail.com> r600g: split INVAL_READ_CACHES into vertex, tex, and const cache flags

also flushing any cache in evergreen_emit_cs_shader seems to be superfluous
(we don't flush caches when changing the other shaders either)

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
098316211ce65db79d00c5975fa30873426450a6 23-Jun-2013 Alex Deucher <alexander.deucher@amd.com> r600g: adjust flush flags (v3)

1. flush SH with read caches
2. add flag for DB flushes
3. add flag for CB flushes

v2: flush all CBs, remove redundant emit_state variable.
v3: Marek: also set the new flags in r600_context_flush, the CP dma functions,
and texture_barrier, and rename them

Signed-off-by: Marek Olšák <maraeo@gmail.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
5bbeae7a3d3be17d44b1bc851872a107a75c393b 24-Apr-2013 Alex Deucher <alexander.deucher@amd.com> r600g: use CP DMA for buffer clears on evergreen+

Lighter weight then using streamout. Only evergreen
and newer asics support embedded data as src with
CP DMA.

Reviewed-by: Jerome Glisse <jglisse@redhat.com>
Reviewed-by: Marek Olšák <maraeo@gmail.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
ec7d775790bef929b15e4c82d68ccaaf92c9f6b7 03-Mar-2013 Marek Olšák <maraeo@gmail.com> r600g: remove r600_hw_context_priv.h, move the stuff to r600_pipe.h

Reviewed-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
1724ef8908bf969633048337d571c6b133770855 02-Mar-2013 Marek Olšák <maraeo@gmail.com> r600g: remove deprecated state management code

It's nice to see so much code that did pretty much nothing go away.

Reviewed-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
65cbf895670d2afb44d320fcc9d607f3c6c582ef 02-Mar-2013 Marek Olšák <maraeo@gmail.com> r600g: atomize pixel shader

Reviewed-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
63042af933eb97930077ad57b047ffa7abb0f6e0 28-Feb-2013 Marek Olšák <maraeo@gmail.com> r600g: atomize vertex shader

Reviewed-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
89e2898e9ecfcf93c337b99542b06892a8e30cbe 27-Feb-2013 Marek Olšák <maraeo@gmail.com> r600g: always map uninitialized buffer range as unsynchronized

Any driver can implement this simple and efficient optimization.
Team Fortress 2 hits it always. The DISCARD_RANGE codepath is not even used
with TF2 anymore, so we avoid a ton of useless buffer copies.

Tested-by: Andreas Boll <andreas.boll.dev@gmail.com>

NOTE: This is a candidate for the 9.1 branch.
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
8f192a3c9e4e2253e8cd68ebe84a2ab787e4ef36 27-Feb-2013 Marek Olšák <maraeo@gmail.com> r600g: cleanup deprecated register tables

These registers are either already emitted elsewhere or moved to start_cs.

Tested-by: Andreas Boll <andreas.boll.dev@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
e1598cb642334c809e6ec219d793e7bc85a213de 29-Jan-2013 Jerome Glisse <jglisse@redhat.com> r600g: use uint64_t instead of unsigned long for proper 32bits cpu support

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
325422c49449acdd8df1eb2ca8ed81f7696c38cc 07-Jan-2013 Jerome Glisse <jglisse@redhat.com> r600g: add async for staging buffer upload v2

v2: Add virtual address to dma src/dst offset for cayman

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
bff07638a86d36ac826fb287214eda9ce31c02ad 07-Jan-2013 Jerome Glisse <jglisse@redhat.com> r600g: add multi ring support with dma as first second ring v4

We keep track of ring emission order in a stack, whenever we need to
flush we empty the stack in a fifo order. There is few helpers function
for bo mapping and other ring activities that will make sure that
the ring stack is properly flush and submitted.

v2: fix st flush path, and other flush path to properly flush all
rings if necessary
v3: - improve name of ring helpers
- make sure that each time a cs is gona be written it endup at
top of the stack to avoid any issue such as :
STACK[0] = dma (withbo A,B)
STACK[1] = gfx (withbo C,D)
Now if code try to emit a dma command relative to bo C or D
it will start writting cmd stream into the cs and once it
reach the point where it adds relocation it will flush.
At that point the cs will have cmd that don't have proper
relocation into the relocation buffer and kernel will just
refuse to run.
v4: - Drop the stack idea as it turn out there is no way to use it
or benefit from it. Any time the driver start command on other
ring, it always need to flush the previous ring. So make code
simpler by not using a stack.

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
c5584e93b186bdec3d47c993db4c6461dcf6a75c 06-Oct-2012 Marek Olšák <maraeo@gmail.com> r600g: move DB_SHADER_CONTROL into db_misc_state

Also update the register value in more appropriate places
than r600_update_derived_state.

Reviewed-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
ef723613e017ba33e9d9568ae59eb9faab80aba2 05-Oct-2012 Marek Olšák <maraeo@gmail.com> r600g: atomize depth-stencil-alpha state

Reviewed-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
711f3bae9d8bde9750448c23fde4a15efbcfacb5 05-Oct-2012 Marek Olšák <maraeo@gmail.com> r600g: atomize rasterizer state

Reviewed-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
18a189188ab5f209942ccc85cb8aac51f419b591 05-Oct-2012 Marek Olšák <maraeo@gmail.com> r600g: atomize scissor state

The workaround for R600 lacking VPORT_SCISSOR_ENABLE has also been simplified.

Reviewed-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
ab075de53baa9829780cc133e5ac06e5498a763c 05-Oct-2012 Marek Olšák <maraeo@gmail.com> r600g: atomize polygon offset state

POLY_OFFSET_DB_FMT_CNTL is moved to the framebuffer state, because it only
depends on the zbuffer format.

Reviewed-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
a50edc8ed84c4c48c0dc8e1a079e8d5e8f1c3a0e 05-Oct-2012 Marek Olšák <maraeo@gmail.com> r600g: atomize fetch shader

The state object is actually a buffer, it's literally a buffer containing
the shader code.

Reviewed-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
faaba52aedf9807ced2ddfccc4133589a7bacd5f 05-Oct-2012 Marek Olšák <maraeo@gmail.com> r600g: atomize blend state

This is not so trivial, because we disable blending if the dual src
blending is turned on and the number of color outputs is less than 2.
I decided to create 2 command buffers in the blend state object and just
switch between them when needed, because there are other states unrelated
to blending (like the color mask) and those shouldn't be changed
(the old code had it wrong).

Reviewed-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
11e2a41b84829ce20d2ed963b6c8c9ab1adb5121 18-Sep-2012 Marek Olšák <maraeo@gmail.com> r600g: use CS helpers to emit streamout state

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
669bfaaa1e97d0f66a0e449a83ed6379e4503539 18-Sep-2012 Marek Olšák <maraeo@gmail.com> r600g: remove initialization of unused loop register tables

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
b71701d43e22078cff2316e9b23fe1654d8b278c 18-Sep-2012 Marek Olšák <maraeo@gmail.com> r600g: remove now-unused SURFACE_BASE_UPDATE logic

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
e3ecfecadaa4210168f7c850b89992307016bc64 18-Sep-2012 Marek Olšák <maraeo@gmail.com> r600g: remove unused CB registers from register lists

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
c8b06dccff9cb89e20378664f3cbc202876a180f 18-Sep-2012 Marek Olšák <maraeo@gmail.com> r600g: atomize framebuffer state

Tested on RS880, Evergreen and Cayman.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
1f5a7567e84fa3e861939dbbfd8f559e24a42e31 11-Sep-2012 Marek Olšák <maraeo@gmail.com> r600g: convert the remnants of VGT state into immediate register writes/atoms v4

v2: Group vgt register together to avoid lockup
v3: Split multi primitive register and index bias register
v4: Bump R600_NUM_ATOMS

Signed-off-by: Marek Olšák <maraeo@gmail.com>
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
150decffb4352a8290b149b10fba5f0ef5cd74fb 10-Sep-2012 Marek Olšák <maraeo@gmail.com> r600g: emit the primitive type and associated regs only if the type is changed

Reviewed-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
c56dca909a0dc1410301c48618768adf58023fe7 10-Sep-2012 Marek Olšák <maraeo@gmail.com> r600g: add clip_misc_state for clip registers emitted in draw_vbo

Reviewed-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
2b8d39bbfc111166105d7e06f6f6f908fea3d243 10-Sep-2012 Marek Olšák <maraeo@gmail.com> r600g: atomize clip state

Reviewed-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
de89fe1e5de581df280df41170f411692c6ddf4a 10-Sep-2012 Marek Olšák <maraeo@gmail.com> r600g: atomize blend color

Reviewed-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
605fd0c14abf14ed500b95dc957d762726243df8 10-Sep-2012 Marek Olšák <maraeo@gmail.com> r600g: atomize viewport state

Reviewed-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
63bf0f905ae9c8cc0dea9ebbde9dc59d83a3a94f 10-Sep-2012 Marek Olšák <maraeo@gmail.com> r600g: atomize stencil ref state

Reviewed-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
64db3cc6ad2d52dec46119e5b80030393cb60bf4 30-Aug-2012 Marek Olšák <maraeo@gmail.com> r600g: implement MSAA for Cayman

Everything works except for blitting MSAA colorbuffers, which isn't
so trivial on Cayman. It's a rarely-used feature anyway.
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
a3d9d7ec79d6f7205fab2324e47d8ea185431de0 12-Aug-2012 Marek Olšák <maraeo@gmail.com> r600g: implement compression for MSAA colorbuffers for evergreen

This adds the FMASK and CMASK buffers. They share the same resource
with color data.

COMPRESSION and FAST_CLEAR are always enabled if both FMASK and CMASK are
allocated. We initialize the CMASK to a "compressed" state (not "fast cleared"),
so that we can keep FAST_CLEAR enabled all the time.

Both FMASK and CMASK must be present at the moment. If either one is missing,
the other one is not used.

v2: add cayman regs in the list

Reviewed-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
4b78df9c81f1ca8af2b750616de8ff440e99c3c1 09-Aug-2012 Marek Olšák <maraeo@gmail.com> r600g: implement MSAA rendering and texturing for evergreen and cayman
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
6517225078a6a56c9fb3c1ea9f310992e6400b77 22-Jul-2012 Marek Olšák <maraeo@gmail.com> r600g: implement alpha-to-coverage
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
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/evergreen_hw_context.c
bc2f5fc01e678ecd19f921e5bc7bd55c131dde66 18-Jul-2012 Marek Olšák <maraeo@gmail.com> r600g: atomize alphatest state
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
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/evergreen_hw_context.c
e634651024d6507cf325999494a3e2630f3072c8 14-Jul-2012 Jerome Glisse <jglisse@redhat.com> r600g: fix DB decompression on evergreen

Separated out of the hyperz patch by Marek with minor modifications.

Signed-off-by: Marek Olšák <maraeo@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
4fe74412cfdba9af6ce878aebbb0c367f19cbb4b 07-Jul-2012 Marek Olšák <maraeo@gmail.com> r600g: move CB_SHADER_MASK setup into cb_misc_state

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
0ea76916e63f8fc556f5e8f5a46c196d317cd5ad 07-Jul-2012 Marek Olšák <maraeo@gmail.com> r600g: move CB_TARGET_MASK setup into new cb_misc_state

to remove some overhead from draw_vbo. This is a derived state.

BTW, I've got no idea how compute interacts with 3D here, but it should
use cb_misc_state, so that 3D and compute don't conflict.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
68bbfc1afe210d82acfb14a78b0fd8c436a8f78c 01-Apr-2012 Marek Olšák <maraeo@gmail.com> r600g: rework state emission of constant buffers

Framerate in ipers:
before: 43.6 FPS
after: 46.6 FPS

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
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/evergreen_hw_context.c
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/evergreen_hw_context.c
80e4d18f84748f903cea07b9bba2d519cfa4163a 08-Mar-2012 Marek Olšák <maraeo@gmail.com> Revert "r600g: rework rasterizer discard for evergreen"

I will use SX_MISC instead.

This reverts commit 734792e83fdc526623d8fe0a60479648c936bd53.

Conflicts:

src/gallium/drivers/r600/evergreen_hw_context.c
src/gallium/drivers/r600/evergreen_state.c
src/gallium/drivers/r600/r600_hw_context.c
src/gallium/drivers/r600/r600_pipe.h
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
e363dd5c7d8ba40984d937ad7487abbb5be439bc 05-Mar-2012 Marek Olšák <maraeo@gmail.com> r600g: replace atom_ prefix with _state and _cmd suffixes
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
330b6c85c961b32f704ce8ec7dbf8cb7fc0b80a8 05-Mar-2012 Marek Olšák <maraeo@gmail.com> r600g: cleanup includes
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
428146c14fed5b41e3da9e72488396f214b23b0d 27-Feb-2012 Marek Olšák <maraeo@gmail.com> r600g: initialize VS_GS_OUT_PRIM_TYPE

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
734792e83fdc526623d8fe0a60479648c936bd53 24-Feb-2012 Marek Olšák <maraeo@gmail.com> r600g: rework rasterizer discard for evergreen

Implement it right using STRMOUT_CONFIG.RAST_STREAM. This fixes rasterizer
discard with points and lines.

This also adds another derived state. It's a combination of rasterizer discard
and streamout enable.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
cd5d02bf51af370233f35604a69d07e70db11eaf 25-Feb-2012 Marek Olšák <maraeo@gmail.com> r600g: make some scissor regs invariant on evergreen

We only need one scissor for the framebuffer.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
2881d456a5dd267bf2291532c9d95b1d48e93c08 24-Feb-2012 Marek Olšák <maraeo@gmail.com> r600g: rework scissor for evergreen

VPORT_SCISSOR is the OpenGL scissor. How do I know? Because there are
16 of them just like GL4.1 has multiple scissor rectangles.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
5b84a8c3c3f85cd6b109861c6eebe3ece29d664e 21-Feb-2012 Marek Olšák <maraeo@gmail.com> r600g: cleanup magic numbers in set_xx_sampler

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

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

Reviewed-by: Jerome Glisse <jglisse@redhat.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
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/evergreen_hw_context.c
985bd5487edc974f1ed7a9c50456478d959b51e2 21-Feb-2012 Marek Olšák <maraeo@gmail.com> r600g: remove duplicated function r600_state_sampler_init

Reviewed-by: Jerome Glisse <jglisse@redhat.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
cf59ed3f23e8ee72c044ec029127876cf27a4afa 21-Feb-2012 Marek Olšák <maraeo@gmail.com> r600g: fixup name of evergreen-specific function

Reviewed-by: Jerome Glisse <jglisse@redhat.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
9670e72f6ef85f0e6f6c9afe136dc67c017e3fae 21-Feb-2012 Marek Olšák <maraeo@gmail.com> r600g: consolidate common context init code

Reviewed-by: Jerome Glisse <jglisse@redhat.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
f841b8a833f32074c79724c66c85cdc7b48087e2 21-Feb-2012 Marek Olšák <maraeo@gmail.com> r600g: define GROUP_FORCE_NEW_BLOCK in common header

Reviewed-by: Jerome Glisse <jglisse@redhat.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
5d2de9232d3bee91a6df49d1558fa00995a235c5 08-Feb-2012 Marek Olšák <maraeo@gmail.com> r600g: move invariant register updates into start_cs for evergreen and cayman
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
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/evergreen_hw_context.c
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/evergreen_hw_context.c
182fd4c54476ced92b61412b0cac5be32e257b53 02-Feb-2012 Marek Olšák <maraeo@gmail.com> r600g: move all invariant state from draw_vbo into start_cs
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
f126253040654d52db134063a69ebaf0c417d410 31-Jan-2012 Marek Olšák <maraeo@gmail.com> r600g: turn init_config into a command buffer for starting a CS

This is the first pure command buffer. It contains CS initialization
packets and emits invariant state (i.e. the registers which never or rarely
change).

The affected registers are removed from *_hw_context.c, so that both ways
of emitting commands can co-exist.

v2: emit context_control in cayman's start_cs too
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
b0337b679ad4c2feae59215104cfa60b58a619d5 31-Jan-2012 Marek Olšák <maraeo@gmail.com> r600g: shorten expressions accessing family and chip_class
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
70d40fc6755a2e4b23c831143cb02133f30fbb02 30-Jan-2012 Marek Olšák <maraeo@gmail.com> r600g: rename r600_reg::flush_flags -> sbu_flags

There is no other use for that.
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
1c5625cdb96332a746c9eebe042a3a9dbe844351 30-Jan-2012 Marek Olšák <maraeo@gmail.com> r600g: remove unused r600_reg::flush_mask
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
74027a9ba250f07a77ee40e105c50c27e4fc3bc0 30-Jan-2012 Marek Olšák <maraeo@gmail.com> r600g: remove dead code for tracking relocations
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
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/evergreen_hw_context.c
621e0db71c5ddcb379171064a4f720c9cf01e888 30-Jan-2012 Marek Olšák <maraeo@gmail.com> r600g: remove redundant pm4 and pm4_cdwords in r600_context

These only mirrored radeon_winsys_cs.
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
3b0467192057cc561b6d495d6445b2ed04fc3ebf 30-Jan-2012 Marek Olšák <maraeo@gmail.com> r600g: consolidate some context_draw code
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
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/evergreen_hw_context.c
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/evergreen_hw_context.c
78293b99b23268e6698f1267aaf40647c17d95a5 29-Jan-2012 Marek Olšák <maraeo@gmail.com> r600g: remove u8,u16,u32,u64 types
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
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/evergreen_hw_context.c
c9cd170f2e076b096e8fed35eb464482053beb70 23-Jan-2012 Alex Deucher <alexander.deucher@amd.com> r600g: clean up register headers

- CP_INTERRUPT packet doesn't exist
- remove lots of r6xx copy/paste remnants from evergreen reg header
- fix some cayman specific registers

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
54e8dcaad65cbe3603730414fd8d76ac53f89a86 20-Jan-2012 Vadim Girlin <vadimgirlin@gmail.com> r600g: implement clip vertex v2

Clip planes are uploaded as a constant buffer and used by the vertex
shader to produce corresponding clip distances for hw clipping.

Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
c60dcc49e443eb1442b8f191e63078f2558eec31 18-Jan-2012 Vadim Girlin <vadimgirlin@gmail.com> r600g: fix streamout on evergreen

Enable it in the evergreen_context_draw if needed.
Same as already done in the r600_context_draw for r6xx/r7xx.

Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
bb1f0cf3508630a9a93512c79badf8c493c46743 02-Dec-2011 Jerome Glisse <jglisse@redhat.com> r600g: add support for virtual address space on cayman v11

Virtual address space put the userspace in charge of their GPU
address space. It's up to userspace to bind bo into the virtual
address space. Command stream can them be executed using the
IB_VM chunck.

This patch add support for this configuration. It doesn't remove
the 64K ib size limit thought this limit can be extanded up to
1M for IB_VM chunk.

v2: fix rendering
v3: fix rendering when using index buffer
v4: make vm conditional on kernel support add basic va management
v5: catch the case when we already have va for a bo
v6: agd5f: update on top of ioctl changes
v7: agd5f: further ioctl updates
v8: indentation cleanup + fix non cayman
v9: rebase against lastest mesa + improvement from Marek & Michel
v10: fix cut/paste bug
v11: don't rely on updated radeon_drm.h

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
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/evergreen_hw_context.c
6a490149d9b8b77ead81b4227f2860ec22095217 10-Nov-2011 Marek Olšák <maraeo@gmail.com> r600g: turn some CS overflow checks into assertions

They're not really exhaustive and not so useful either.
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
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/evergreen_hw_context.c
cb7c6c30d02ab46efc4ed711b2a632de50157347 10-Nov-2011 Marek Olšák <maraeo@gmail.com> r600g: properly reserve CS space for queries_suspend
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
1d09831253b82374774daee772e90a83de17517a 10-Nov-2011 Marek Olšák <maraeo@gmail.com> r600g: reserve CS space for a draw command in begin_query and render_condition

There's no point in emitting those if you can't emit a draw command too.
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
11bdd28796e303eda70f1d73bd2469597bd561bc 09-Nov-2011 Marek Olšák <maraeo@gmail.com> r600g: consolidate checking whether CS is full

This adds a new function r600_need_cs_space. Currently, it's easy to overflow
the CS - queries are not counted in. I guess that's not the only case where
the driver may crap out.
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
391e33ffbf01180d66d4c4e9a6c91fc17f9feaca 06-Nov-2011 Dave Airlie <airlied@redhat.com> r600g: add initial linestipple support.

It seems line loop stipple in hardware needs something I don't know, it might
need a proper geometry shader who knows.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
b40edc63d7d272ac132fded52f3119f4780c7e6b 29-Oct-2011 Marek Olšák <maraeo@gmail.com> r600g: shortcut ctx->screen->ws to ctx->ws
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
bbad5103e61806ef6d6a0d5e53abc4b9e77a7fe9 28-Oct-2011 Marek Olšák <maraeo@gmail.com> r600g: get backend mask after the context is fully set up
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
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/evergreen_hw_context.c
bf0baa771709e1076613cf9f9bed6ac004dd0439 27-Sep-2011 Marek Olšák <maraeo@gmail.com> r600g: move all files from winsys/r600 into drivers/r600

Be sure to reconfigure after this commit.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c