History log of /external/mesa3d/src/gallium/drivers/r600/evergreen_hw_context.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
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