History log of /external/mesa3d/src/gallium/drivers/r600/r600_blit.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
2cc880cba54d687a122298c8187ecc31b4a0ee2d 26-Aug-2016 Mario Kleiner <mario.kleiner.de@gmail.com> r600: increase performance for DRI PRIME offloading if 2nd GPU is Evergreen+

This is a direct port of Marek Olšáks patch
"radeonsi: increase performance for DRI PRIME
offloading if 2nd GPU is CIK or VI" to r600.

It uses SDMA for the detiling blit from renderoffload VRAM
to GTT, as SDMA is much faster for tiled->linear blits from
VRAM to GTT.

Testing on a dual Radeon HD-5770 setup reduced the time
for the render offload gpu to get its rendering into
system RAM from approximately 16 msecs for simple rendering
at 1920x1080 pixel 32 bpp to 5 msecs, a > 3x speedup!

This was measured using ftrace to trace the time the radeon kms
driver waited on the dmabuf fence of the renderoffload gpu to
complete.

All in all this brought the time for a flip down from 20 msecs
to 9 msecs, so the prime setup can display at full 60 fps instead
of barely 30 fps vsync'ed.

The current r600 implementation supports SDMA on Evergreen and
later, but not R600/R700 due to some bugs apparently present
in their SDMA implementation.

Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Cc: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
7df15389afea467163b8edc09a61bf1f9b3000fa 09-Aug-2016 Marek Olšák <marek.olsak@amd.com> gallium/radeon: handle render_condition_enable for clear_rt/ds

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
a909210131494a6a131855d7d344b61b81fbf40e 09-Aug-2016 Marek Olšák <marek.olsak@amd.com> gallium: add render_condition_enable param to clear_render_target/depth_stencil

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
f2eb34f82f074284b691d568d26426a1f633d5f0 30-Jun-2016 Nicolai Hähnle <nicolai.haehnle@amd.com> gallium/radeon: replace is_flushing_texture with db_compatible

This is a left-over of when I considered generalizing the separate stencil
support. I do prefer the new name since it emphasizes what flushing vs.
non-flushing means from a functional point-of-view, namely special handling
of the texture format.

v2: adjust r600_init_color_surface as well

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
dd651261530e2d885d150755c9521e8f6e97c851 29-Jun-2016 Nicolai Hähnle <nicolai.haehnle@amd.com> gallium/radeon: add can_sample_z/s flags for textures

v2: adjust r600_init_color_surface as well

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
014c8ec770ff13ad6b235a6ca1c0d034f00125bd 05-Jun-2016 Marek Olšák <marek.olsak@amd.com> r600g: use hw MSAA resolve for non-trivial resolves

This improves MSAA resolve performance.

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
c92a3ae7e99e5271ae0671da1bd5b74fc6c41d2b 01-Jun-2016 Marek Olšák <marek.olsak@amd.com> r600g: remove a CP DMA workaround that's not needed anymore

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/r600_blit.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/r600_blit.c
d4271108825e2d1590d62cdc3d99b1b6fb2c5fef 31-May-2016 Marek Olšák <marek.olsak@amd.com> r600g: do GL-compliant integer resolves

The GL spec has been clarified and the new rule says we should just
copy 1 sample. u_blitter does the right thing.

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
4489d75a58716327380d6b2e8c3db7df0be3c717 30-Apr-2016 Marek Olšák <marek.olsak@amd.com> r600g: use the hw MSAA resolving if formats are compatible

This allows resolving RGBA into RGBX.
This should improve HL2 Lost Coast performance.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
f564b61d33fd8fd23211e1762e2b04c25495b8fd 22-Apr-2016 Marek Olšák <marek.olsak@amd.com> radeonsi: rework clear_buffer flags

Changes:
- don't flush DB for fast color clears
- don't flush any caches for initial clears
- remove the flag from si_copy_buffer, always assume shader coherency

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
72d0d2ba59f7b4c905539a4d1fb5e75a79cc627b 07-Mar-2016 Oded Gabbay <oded.gabbay@gmail.com> r600g: fix code indentation

Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
686b018ab313e3a95931676995be0e65dc7a9b75 10-Apr-2016 Marek Olšák <marek.olsak@amd.com> r600g: use common scissor and viewport code

It's the same as radeonsi. This adds guard band support to r600g.

Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Reviewed-by: Grigori Goronzy <greg@chown.ath.cx>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
73aeebd772cfb840dee05d5815239b365d68f09e 10-Apr-2016 Marek Olšák <marek.olsak@amd.com> radeonsi: allow clearing buffers >= 4 GB

Only CMASK and DCC clears can use this, because only textures can be so
large.

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
7347c068d88a0bd10f27a48c6e068cf098442098 08-Apr-2016 Marek Olšák <marek.olsak@amd.com> r600g: don't manually stop queries for blitter

r600_set_active_query_state does it better.

Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
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/r600/r600_blit.c
d13ac272006f0298146508d7d7b3b67e7fa27133 07-Dec-2015 Edward O'Callaghan <eocallaghan@alterapraxis.com> r600g: allow copying between compatible un/compressed formats

See: `commit e82c527f1fc2f8ddc64954ecd06b0de3cea92e93`

which is where a block in src maps to a pixel in dst and vice versa.
e.g. DXT1 <-> R32G32_UINT
DXT5 <-> R32G32B32A32_UINT

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
382e2a2901015b75acecdbbbdb180cf605181ed2 30-Nov-2015 Dave Airlie <airlied@redhat.com> r600/blit: add tcs/tes shader saves.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
7e43a280793af50e826fb6183670de8e3d427d74 06-Dec-2015 Edward O'Callaghan <eocallaghan@alterapraxis.com> gallium/radeon*: Remove useless casts

These are unnecessary and are likely just left overs from prior
work.

Signed-off-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
6eff5415e46fb43619b543368fa427334d267a71 07-Nov-2015 Marek Olšák <marek.olsak@amd.com> gallium/radeon: simplify disabling render condition for u_blitter

just disable it by not setting the predication bit

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.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/r600_blit.c
7f1e34e6c80b4cc59822eaf0c1731cab46befa46 05-Nov-2015 Marek Olšák <marek.olsak@amd.com> r600g: fix clear_buffer fallback with offset != 0

Discovered by luck. This code path hasn't been exercised since transform
feedback was implemented.

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
27b102e7fdbcd2beedc815996e1b5fcb2b612206 06-Sep-2015 Marek Olšák <marek.olsak@amd.com> r600g: only do depth-only or stencil-only in-place decompression

instead of always doing both.
Usually, only depth is needed, so stencil decompression is useless.

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
4d9af438bc41ed20da1963a438249fee43213121 03-Sep-2015 Grazvydas Ignotas <notasas@gmail.com> r600g: make all viewport states use single atom

Similarly to scissor states, we can use single atom to track all viewport
states. This will allow to simplify dirty atom handling later.

Signed-off-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
7d475bad66b99e171542bc9ea62abac56abfa6f2 03-Sep-2015 Grazvydas Ignotas <notasas@gmail.com> r600g: make all scissor states use single atom

As suggested by Marek Olšák, we can use single atom to track all scissor
states. This will allow to simplify dirty atom handling later.

Signed-off-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
0c2eed0edec877584c9362bd9cb9004ff10a8b91 29-Aug-2015 Marek Olšák <marek.olsak@amd.com> radeonsi: avoid redundant CB and DB register updates

The main idea is to avoid setting CB_COLORi_INFO = 0 for i>0 repeatedly
when those colorbuffers aren't used. This is mainly for glamor.

Same for DB. Z_INFO and STENCIL_INFO need to be cleared only once.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
ab0643225e2718884eea874b67b55eb4aa936e53 08-Nov-2014 Marek Olšák <marek.olsak@amd.com> util/u_blitter: implement alpha blending for pipe->blit
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
3206d4ed44e761186fee3c679801e57f8ce923cb 09-Aug-2015 Grazvydas Ignotas <notasas@gmail.com> gallium/radeon: use helper functions to mark atoms dirty

This is analogous to r300_mark_atom_dirty() used by r300, and will
be used by later patches. For common radeon code, appropriate helper
is called through a function pointer.

No functional changes.

Signed-off-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
de59a40f6898e20a61ac4ea0e5995334f6ed2932 02-Aug-2015 Marek Olšák <marek.olsak@amd.com> r600g: re-enable single-sample fast clear

Fixed by the CB_SHADER_MASK fix.

Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de>
Reviewed-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
64d3130994bde98b0be44a5c54511e376b6d994e 28-Jul-2015 Marek Olšák <marek.olsak@amd.com> r600g: early exit in r600_clear if there's nothing to do

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
97ec2c694fe568e375ec7a2b85c1acb1e4666b54 03-Jul-2015 Marek Olšák <marek.olsak@amd.com> r600g: disable single-sample fast color clear due to hangs

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=73528
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=82186

Cc: 10.4 10.5 10.6 <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
edf18da85dd3b1865c4faaba650a8fa371b7103c 29-Dec-2014 Marek Olšák <marek.olsak@amd.com> radeonsi: only flush the right set of caches for CP DMA operations

That's either framebuffer caches or caches for shader resources.
The motivation is that framebuffer caches need to be flushed very rarely
here.

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
acdcef6788beaa2a1532e13ff84c3e246b8025ed 08-Sep-2014 Niels Ole Salscheider <niels_ole@salscheider-online.de> r600: Use DMA transfers in r600_copy_global_buffer

v2: Do not demote items that are already in the pool

Signed-off-by: Niels Ole Salscheider <niels_ole@salscheider-online.de>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
d13d2fd16132f351ec7c8184f165faeac3b31bb4 06-Sep-2014 Marek Olšák <marek.olsak@amd.com> r600g,radeonsi: add debug option which forces DMA for copy_region and blit
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
d159c5e3e0bdfe3c19a2da7526133fdd94ffee79 20-Aug-2014 Marek Olšák <marek.olsak@amd.com> r600g: fix layered clear

Cc: mesa-stable@lists.freedesktop.org
Acked-by: Michel Dänzer <michel.daenzer@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
0ccc653c707d8eeb793fa261f2bfa60f5ff53792 20-Aug-2014 Marek Olšák <marek.olsak@amd.com> r600g: enable fast depth clear for array textures and cubemaps

I have a piglit test that hits this.

Acked-by: Michel Dänzer <michel.daenzer@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
db51ab6d6ada69287dfe3a671ecc1b338917e7aa 18-Aug-2014 Marek Olšák <marek.olsak@amd.com> radeonsi: use r600_draw_rectangle from r600g

Rectangles are easier than triangles for the rasterizer.

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
a9528cef6b6ff4875c9d125a60b7309a2ad24766 26-Jul-2014 Marek Olšák <marek.olsak@amd.com> r600g,radeonsi: switch all occurences of array_size to util_max_layer

This fixes 3D texture support in all these cases, because array_size is 1
with 3D textures and depth0 actually contains the "array size".
util_max_layer is universal and returns the last layer index for any texture
target.

A lot of the cases below can't actually be hit with 3D textures, but let's
be consistent.

This fixes a failure in:
piglit layered-rendering/clear-color-all-types 3d single_level
for r600g and radeonsi, which was caused by an incorrect CMASK size
calculation.

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
f5dafc156a28f6550b6a0bfd5153b40448402f0c 04-Jun-2014 Grigori Goronzy <greg@chown.ath.cx> util/u_format: move utility function from r600g

We need this for radeonsi, and it might be useful for other drivers,
too.
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
d2261918202697febed0de18f66416e273001088 02-Jun-2014 Marek Olšák <marek.olsak@amd.com> r600g,radeonsi: don't use hardware MSAA resolve if dst is fast-cleared

It doesn't work and our docs say so too.

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
3a92fc1bddf465bd523447eef783edccd83f2e15 02-Jun-2014 Marek Olšák <marek.olsak@amd.com> r600g: BlitFramebuffer should follow render condition
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
0967970768c517c8c2f1a969e0a043982b4b1bf7 20-Apr-2014 Marek Olšák <marek.olsak@amd.com> r600g: fix buffer copying on R600-R700

This fixes broken rendering in DOTA 2.

Cc: 10.0 10.1 mesa-stable@lists.freedesktop.org
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
28eb0bcf19a2a82166f685bf68bb0366bc560ba9 06-Mar-2014 Marek Olšák <marek.olsak@amd.com> r600g: move fast color clear code to a common place

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
d3c1be530a9e13378b66fb1ff8760ba0faa1a260 06-Mar-2014 Marek Olšák <marek.olsak@amd.com> r600g,radeonsi: move CMASK register values from r600_surface to r600_texture

When doing fast clear for single-sample color buffers for the first time,
a CMASK buffer has to be allocated and the CMASK state in all pipe_surfaces
referencing the color buffer must be updated. Updating all surfaces is kinda
silly, so let's move the values to r600_texture instead.

This is only for Evergreen and later. R600-R700 don't have fast clear.

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
fcdf6fa86cb4dc530b8ab6881faa1da1aafa2b81 03-Mar-2014 Marek Olšák <marek.olsak@amd.com> r600g: fix blitting the last 2 mipmap levels for Evergreen

This fixes a lot of compressedteximage piglit tests.

R600-R700 don't have this issue.

Cc: mesa-stable@lists.freedesktop.org
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
6d434252e239bc872549e59c64eb3d0e5dab0655 31-Jan-2014 Dave Airlie <airlied@redhat.com> r600g: add support for multiple viewports.

tested on rv635 and barts.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
1371d65a7fbd695d3516861fe733685569d890d0 02-Aug-2013 Vadim Girlin <vadimgirlin@gmail.com> r600g: initial support for geometry shaders on evergreen (v2)

This is Vadim's initial work with a few regression fixes squashed in.

v2: (airlied)
fix regression in glsl-max-varyings - need to use vs and ps_dirty
fix regression in shader exports from rebasing.
whitespace fixing.
v2.1: squash fix assert

Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
4e5c70e066b0fa28a6e40791963604286929a412 21-Jan-2014 Marek Olšák <marek.olsak@amd.com> r600g: move queries to drivers/radeon

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
df918b5b90c0c1fc564adc026c9da1b8e7003807 08-Jan-2014 Marek Olšák <marek.olsak@amd.com> r600g: fix glClearBuffer by handling PIPE_CLEAR_COLORi flags correctly

also restructure the code
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
07032d40684c3ad8e12fd6979b0b4b6582871db4 08-Jan-2014 Marek Olšák <marek.olsak@amd.com> r600g: handle NULL colorbuffers correctly on Evergreen
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
696229523d919de15ebc25d0f475bf56d7dad4a9 12-Dec-2013 Marek Olšák <marek.olsak@amd.com> r600g: use shader-based MSAA resolving when hw-based one cannot be used

This fixes some MSAA integer tests.
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
f0ed082babe29eee502ec81302dae5fc15347e3f 06-Dec-2013 Marek Olšák <marek.olsak@amd.com> gallium/u_blitter: remove useless parameters from some functions

Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
ca5812b45c09aabe2f2c400c323b4f2cc23ca93c 07-Dec-2013 Andreas Hartmetz <ahartmetz@gmail.com> radeon: rearrange r600_texture and related code a bit.

This should make the differences and similarities between color and
depth buffer handling more clear.
/external/mesa3d/src/gallium/drivers/r600/r600_blit.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/r600_blit.c
171e4842ec8be269d3eb7c6ad741fac576b8e7dd 27-Nov-2013 Marek Olšák <marek.olsak@amd.com> r600g: use common interfaces in buffer_transfer_unmap

i.e. dma_copy and resource_copy_region.

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
6b919b1b2d296f7d7410c2291b7e0332d7bef1a0 21-Nov-2013 Marek Olšák <marek.olsak@amd.com> gallium/util: implement layered framebuffer clear in u_blitter

All bound layers (from first_layer to last_layer) should be cleared.

This uses a vertex shader which outputs gl_Layer = gl_InstanceID, so each
instance goes to a different layer. By rendering a quad and setting
the instance count to the number of layers, it will trivially clear all
layers.

This requires AMD_vertex_shader_layer (or PIPE_CAP_TGSI_VS_LAYER), which only
radeonsi supports at the moment. r600 could do this too. Standard DX11
hardware will have to use a geometry shader though, which has higher overhead.
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
1b9511d7ce70a9f9cadd0c03bd0c916b88b6dd43 14-Nov-2013 Tom Stellard <thomas.stellard@amd.com> r600g/compute: Fix handling of global buffers in r600_resource_copy_region()

Global buffers do not have an associate cs_buf handle, so
we can't copy them using r600_copy_buffer()

https://bugs.freedesktop.org/show_bug.cgi?id=64226

Reviewed-by: Marek Ol????k <marek.olsak@amd.com>

CC: "10.0" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.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/r600_blit.c
e64633e8c3a5498998a45ab721bf80edca101cf5 22-Sep-2013 Marek Olšák <marek.olsak@amd.com> r600g,radeonsi: share r600_texture.c

The function r600_choose_tiling is new and needs a review.

The only change in functionality is that it enables 2D tiling for compressed
textures on SI. It was probably accidentally turned off.

v2: don't make scanout buffers linear
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
ef6680d3eee621bbb207ca0eda2e142bcc099ed3 23-Sep-2013 Marek Olšák <marek.olsak@amd.com> r600g: move the low-level buffer functions for multiple rings to drivers/radeon

Also slightly optimize r600_buffer_map_sync_with_rings.
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
68f6dec32ed5eede361f76c8dbdf897652659baf 22-Sep-2013 Marek Olšák <marek.olsak@amd.com> r600g: move aux_context and r600_screen_clear_buffer to drivers/radeon

This will be used in the next commit.
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
ba29324dba334054950cb25b0a4bd98b05fc6631 21-Sep-2013 Marek Olšák <marek.olsak@amd.com> r600g: get rid of r600_texture::array_mode
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
39801d4ba7e19e9ce1dbde3ba3441cae38e7dbaa 21-Sep-2013 Marek Olšák <marek.olsak@amd.com> r600g,radeonsi: consolidate transfer, cmask, and fmask structures
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
edbbfac6cfc634e697d7f981155a5072c52d77ac 11-Sep-2013 Grigori Goronzy <greg@chown.ath.cx> r600g: fast color clears for single-sample buffers

Allocate a CMASK on demand and use it to fast clear single-sample
colorbuffers. Both FBOs and window system colorbuffers are fast
cleared. Expand as needed when colorbuffers are mapped or displayed
on screen.

v2: cosmetics, move transfer expansion into dma_blit

Signed-off-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
419cd5f2a24b87d31a2fd9dd9b7d0025b4f5515c 20-Sep-2013 Marek Olšák <marek.olsak@amd.com> gallium: add flush_resource context function

r600g needs explicit flushing before DRI2 buffers are presented on the screen.

v2: add (stub) implementations for all drivers, fix frontbuffer flushing
v3: fix galahad

Signed-off-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.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/r600_blit.c
356c041167ac96131869622f2a41b3d5b3017f9a 06-Aug-2013 Marek Olšák <marek.olsak@amd.com> radeonsi: port texture improvements from r600g

This started as an attempt to add support for MSAA texture transfers and
MSAA depth-stencil decompression for the DB->CB copy path.
It has gotten a bit out of control, but it's for the greater good.

Some changes do not make much sense, they are there just to make it look
like the other driver.

With a few cosmetic modifications, r600_texture.c can be shared with
a symlink.

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
287b2fa115f95f675f7b7915777ed29d8e9d6f44 01-Jul-2013 Marek Olšák <maraeo@gmail.com> r600g: explicitly flush caches for streamout-based buffer copying & clearing

It's done automatically for vertex buffers, but not for constant buffers,
textures, and colorbuffers.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
a3263cca59b463a9c49bd165226e36fdfec96d8b 01-Jul-2013 Marek Olšák <maraeo@gmail.com> r600g: fix color resolve for RGBX8 and RGBX16 integer formats

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
b1a061b81ed78cd3c71304e122374ae970d04908 01-Jul-2013 Marek Olšák <maraeo@gmail.com> r600g: enable fast MSAA color clear for array/3D/cube textures

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
87669c3654fa22491fed68781d31cdec75c2a96c 01-Jul-2013 Marek Olšák <maraeo@gmail.com> r600g: implement fast MSAA color clear for integer textures

this also fixes the fast clear with multiple colorbuffers and each having
a different format

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
30004b20c2ae5ee78619f441b01afef0d4d992f0 12-Jun-2013 Grigori Goronzy <greg@chown.ath.cx> r600g: implement fast color clears for MSAA on evergreen+

Allows MSAA colorbuffers, which have a CMASK automatically and don't
need any further special handling, to be fast cleared. Instead
of clearing the buffer, set the clear color and the CMASK to the
cleared state.

Fast clear is used only when all bound colorbuffers fulfill certain
conditions: a CMASK is required, we have to be able to create a clear
color value for the format and the texture mustn't contain multiple
images. Technically, it should be possible to support array textures
and cubemaps if all images are attached to the framebuffer,
but this does not appear to be common.

v2: fix fast clear check
v3: Marek: - disable fast clear with 128-bit formats, which are unsupported
- set tex->dirty_level_mask in r600_clear, so that the driver knows
the resource must be decompressed/expanded
- return early from r600_clear if there's nothing else to do

Signed-off-by: Marek Olšák <maraeo@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
793e8e3d7ed816cc9a066245dde798afdcf8b581 14-Jun-2013 Roland Scheidegger <sroland@vmware.com> gallium: add condition parameter to render_condition

For conditional rendering this makes it possible to skip rendering
if either the predicate is true or false, as supported by d3d10
(in fact previously it was sort of implied skip rendering if predicate
is false for occlusion predicate, and true for so_overflow predicate).
There's no cap bit for this as presumably all drivers could do it trivially
(but this patch does not implement it for the drivers using true
hw predicates, nvxx, r600, radeonsi, no change is expected for OpenGL
functionality).

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
d6d4a9a2e87d9ed2c5b3a6acee771ff55a903e47 29-May-2013 Marek Olšák <maraeo@gmail.com> gallium/u_blitter: make clearing independent of the colorbuffer format

There isn't any difference between 32_FLOAT and 32_*INT in vertex fetching.
Both of them don't do any format conversion.

Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
17350ea979b883662573dac136cd9efb49938210 29-May-2013 Marek Olšák <maraeo@gmail.com> gallium/u_blitter: make clearing independent of the number of bound colorbuffers

We can use the fragment shader TGSI property WRITES_ALL_CBUFS.

Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
5a3fac4d2667b5d46058564151142fec158f5f82 11-Apr-2013 Marek Olšák <maraeo@gmail.com> r600g: cleanup MSAA texture support checking

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
61c995bc47b838317a4a62fba2ff2031bcb0c23e 11-Apr-2013 Marek Olšák <maraeo@gmail.com> r600g: rewrite FMASK allocation, fix FMASK texturing with 2 and 4 samples

This fixes and enables texturing with compressed MSAA colorbuffers
on Evergreen and Cayman. For the first time, multisample textures work
on Cayman.

This requires the libdrm flag RADEON_SURF_FMASK.

v2: require libdrm_radeon 2.4.45

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.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/r600_blit.c
b69207642079fe8ba33c594750415e8d9c66a06f 21-Apr-2013 Marek Olšák <maraeo@gmail.com> r600g: initialize CMASK and HTILE with the GPU using streamout

This fixes a crash when a resource cannot be mapped to the CPU's address space
because it's too big.

This puts a global pipe_context in r600_screen, which is guarded by a mutex,
so that we can use pipe_context when there isn't one around.
Hopefully our multi-context support is solid.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>

NOTE: This is a candidate for the 9.1 branch.
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
58bd926d9e555e7be4af576fae60a65774d9d743 21-Feb-2013 Marek Olšák <maraeo@gmail.com> r600g: don't require dword alignment with CP DMA for buffer transfers

which is a leftover from the days when we used streamout to copy buffers

Tested-by: Andreas Boll <andreas.boll.dev@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
6f25de6711491bbcfc906cd8804f30acc6534b2d 26-Feb-2013 Marek Olšák <maraeo@gmail.com> r600g: atomize streamout enabling

This doesn't fix any issue we know of, but there indeed is a week spot
in draw_vbo where streamout can fail. After streamout is enabled,
the need_cs_space call can flush the context, which causes the streamout
to be disabled right after it was enabled and bad things happen.

One way to fix it is to atomize the beginning part, so that no context flush
can happen between streamout enabling and the first drawing.

Tested-by: Andreas Boll <andreas.boll.dev@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
3857f450a6d88cf4d0c616a4224bbd5b9cc89388 02-Jan-2013 Marek Olšák <maraeo@gmail.com> gallium/util: add helper util_max_layer from r600g
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
8891b2f9c91b2f6c8625184c23a10b8e55875dc0 25-Jan-2013 Marek Olšák <maraeo@gmail.com> r600g: add more cases for copying unsupported formats to resource_copy_region

just in case a new format is added to gallium
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
26c872c2a22f25ec95065a71770b19b6a9eb06c7 25-Jan-2013 Marek Olšák <maraeo@gmail.com> r600g: don't use radeon_surface_level::npix_x/y/z

npix_x/y/z is wrong with NPOT textures, since it's always aligned to POT
if the level is non-zero, so we can't use that.

This fixes piglit/spec/EXT_texture_shared_exponent/fbo-generatemipmap-formats.
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
a70e5e2b94194da3f4102a9f8e3c8ed5ca6dd8b8 22-Dec-2012 Marek Olšák <maraeo@gmail.com> r600g: implement buffer copying using CP DMA for R7xx, Evergreen, Cayman

R6xx doesn't work - the issue seems to be with flushing (sometimes
the destination buffer contains garbage). There are no hangs, so we're good.

R7xx doesn't seem to have any alignment restriction despite our initial
thinking. Everything just works.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
ccfcf3287326b924d745d7915b0cb471f4c8e24e 19-Dec-2012 Marek Olšák <maraeo@gmail.com> gallium/u_blitter: unify some parameters into a dstbox parameter in blit_generic

Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
23f76f558eac7f59ead6d49325c7edb4a010c0c5 19-Dec-2012 Marek Olšák <maraeo@gmail.com> gallium/u_blitter: remove useless parameter from blitter_default_dst_texture

Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
9c6410e5c3ffc74564fae5afcc1b6982759cdd01 21-Dec-2012 Marek Olšák <maraeo@gmail.com> r600g: always use a tiled resource as the destination of MSAA resolve

i.e. we have to allocate a temporary tiled resource if dst isn't tiled.

This fixes hardlocks on r6xx-r7xx, though using a linear resource is forbidden
on later asics as well.

NOTE: This is a candidate for the stable branches.
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
6532eb17baff6e61b427f29e076883f8941ae664 11-Oct-2012 Jerome Glisse <jglisse@redhat.com> r600g: add htile support v16

htile is used for HiZ and HiS support and fast Z/S clears.
This commit just adds the htile setup and Fast Z clear.
We don't take full advantage of HiS with that patch.

v2 really use fast clear, still random issue with some tiles
need to try more flush combination, fix depth/stencil
texture decompression
v3 fix random issue on r6xx/r7xx
v4 rebase on top of lastest mesa, disable CB export when clearing
htile surface to avoid wasting bandwidth
v5 resummarize htile surface when uploading z value. Fix z/stencil
decompression, the custom blitter with custom dsa is no longer
needed.
v6 Reorganize render control/override update mecanism, fixing more
issues in the process.
v7 Add nop after depth surface base update to work around some htile
flushing issue. For htile to 8x8 on r6xx/r7xx as other combination
have issue. Do not enable hyperz when flushing/uncompressing
depth buffer.
v8 Fix htile surface, preload and prefetch setup. Only set preload
and prefetch on htile surface clear like fglrx. Record depth
clear value per level. Support several level for the htile
surface. First depth clear can't be a fast clear.
v9 Fix comments, properly account new register in emit function,
disable fast zclear if clearing different layer of texture
array to different value
v10 Disable hyperz for texture array making test simpler. Force
db_misc_state update when no depth buffer is bound. Remove
unused variable, rename depth_clearstencil to depth_clear.
Don't allocate htile surface for flushed depth. Something
broken the cliprect change, this need to be investigated.
v11 Rebase on top of newer mesa
v12 Rebase on top of newer mesa
v13 Rebase on top of newer mesa, htile surface need to be initialized
to zero, somehow special casing first clear to not use fast clear
and thus initialize the htile surface with proper value does not
work in all case.
v14 Use resource not texture for htile buffer make the htile buffer
size computation easier and simpler. Disable preload on evergreen
as its still troublesome in some case
v15 Cleanup some comment and remove some left over
v16 Define name for bit 20 of CP_COHER_CNTL

Signed-off-by: Pierre-Eric Pelloux-Prayer <pelloux@gmail.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
ef11ed61a0414d0405c3faf7f48fa3f1d083f82e 20-Dec-2012 Marek Olšák <maraeo@gmail.com> r600g: add assertions to prevent creation of invalid surfaces
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
25409c6da8163d9acb386511aef0c11577c7aadb 08-Dec-2012 Marek Olšák <maraeo@gmail.com> gallium: remove pipe_surface::usage

Not really used by anybody now.

Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
eb44c36df842af010269eda1be77c4aea8ebe736 03-Nov-2012 Dave Airlie <airlied@gmail.com> r600g: add initial cube map array support (v2)

This contains the evergreen support.

Support is possible on rv670 upwards and the code in here
should work, but it doesn't and I haven't debugged it to
figure out why.

Beyond just adding support for the cube map array sampling,
r600 resinfo isn't conformant with the GL specification,
which states the number of layers should be returned for
the textureSize, so we have to track in an external
constant buffer the layers for each sampler if we need
them in the shader.

v2: only update the sampler constants if the sampler views have changed,
as suggested by Marek.

Reviewed-by: Marek Olšák <maraeo@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
428e37c2da420f7dc14a2ea265f2387270f9bee1 02-Oct-2012 Marek Olšák <maraeo@gmail.com> r600g: add in-place DB decompression and texturing with DB tiling

The decompression is done in-place and only the compressed tiles are
decompressed. Note: R6xx-R7xx can do that only with Z16 and Z32F.

The texture unit is programmed to use non-displayable tiling and depth
ordering of samples, so that it can fetch the texture in the native DB format.

The latest version of the libdrm surface allocator is required for stencil
texturing to work. The old one didn't create the mipmap tree correctly.
We need a separate mipmap tree for stencil, because the stencil mipmap
offsets are not really depth offsets/4.

There are still some known bugs, but this should save some memory and it also
improves performance a little bit in Lightsmark (especially with low
resolutions; tested with Radeon HD 5000).

The DB->CB copy is still used for transfers.

Reviewed-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
e73bf3b805de78299f1a652668ba4e6eab9bac94 29-Mar-2012 Marek Olšák <maraeo@gmail.com> gallium: add start_slot parameter to set_vertex_buffers

This allows updating only a subrange of buffer bindings.

set_vertex_buffers(pipe, start_slot, count, NULL) unbinds buffers in that
range. Binding NULL resources unbinds buffers too (both buffer and user_buffer
must be NULL).

The meta ops are adapted to only save, change, and restore the single slot
they use. The cso_context can save and restore only one vertex buffer slot.
The clients can query which one it is using cso_get_aux_vertex_buffer_slot.
It's currently set to 0. (the Draw module breaks if it's set to non-zero)

It should decrease the CPU overhead when using a lot of meta ops, but
the drivers must be able to treat each vertex buffer slot as a separate
state (only r600g does so at the moment).

I can imagine this also being useful for optimizing some OpenGL use cases.

Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
96ed6c90eff58ce030c39c2b4db6daf512586b34 12-Oct-2012 Marek Olšák <maraeo@gmail.com> r600g: implement texturing with 8x MSAA compressed surfaces for Evergreen

The 2x and 4x MSAA cases are completely broken. The lfdptr instruction returns
garbage there.

The 8x MSAA case is broken on Cayman, though at least the result looks somewhat
correct.

Only the 8x MSAA case works on Evergreen and is enabled.
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
7997b3c97c898c8467afff98458b9a9e52173092 12-Oct-2012 Marek Olšák <maraeo@gmail.com> r600g: implement MSAA resolving for 8-bit and 16-bit integer formats

by changing the format to NORM.
/external/mesa3d/src/gallium/drivers/r600/r600_blit.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/r600_blit.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/r600_blit.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/r600_blit.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/r600_blit.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/r600_blit.c
eb65fefa4bd5e9a6f08ec599b95f9d63d11c15fa 07-Oct-2012 Marek Olšák <maraeo@gmail.com> r600g: inline r600_atom_dirty

Reviewed-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
6db53ca490b22ba3f16b3ab0beef7a5fc071a074 23-Sep-2012 Marek Olšák <maraeo@gmail.com> r600g: don't modify pipe_resource in resource_copy_region, fixing race condition

pipe_resource can be shared between contexts, we shouldn't modify its
description. Instead, let's use the resource "views" (sampler views and
surfaces), where we can freely change almost any property of a resource.
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
de80660c2bd43db112b6c82d970660ed9806cd33 13-Sep-2012 Marek Olšák <maraeo@gmail.com> gallium: remove resource_resolve

The functionality is provided by the new blit function.

Tested-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
fc887d687b0598e09de76be885652d96e20ae07e 13-Sep-2012 Marek Olšák <maraeo@gmail.com> r600g: implement blit

Tested-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
0b0697e80dd442d7e7cb23641ad8f58f82df120d 12-Sep-2012 Marek Olšák <maraeo@gmail.com> gallium/u_blitter: add gallium blit implementation

The original blit function is extended and the otAher functions reuse it.

Tested-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
84d2f2295e8274c1b3676b59fedfc173836d378e 12-Sep-2012 Marek Olšák <maraeo@gmail.com> gallium/u_blitter: add ability to disable and restore the render condition

Tested-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.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/r600_blit.c
fac7031a04a581c377140320bedd4cdcaa9baa9b 13-Sep-2012 Marek Olšák <maraeo@gmail.com> r600g: consolidate decompression code for the blitter
/external/mesa3d/src/gallium/drivers/r600/r600_blit.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/r600_blit.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/r600_blit.c
f2eac1423a92ba47981ba50a4af22e6596059cf4 10-Sep-2012 Marek Olšák <maraeo@gmail.com> r600g: put sampler states and views into an array indexed by shader type

Reviewed-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
3fe78594b1221358f4ba96072d952e33a7e54a76 10-Sep-2012 Marek Olšák <maraeo@gmail.com> r600g: do fine-grained sampler state updates

Update only those sampler states which are changed in a shader stage,
instead of always updating all sampler states in the shader stage.
That requires keeping a bitmask of those states which are enabled, and those
states which are dirty at a given point (subset of enabled states).

This is similar to how sampler views, constant buffers, and vertex buffers
are handled.

Reviewed-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.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/r600_blit.c
2f6eb3afb725112b2a0b110493f5062f80a78a3f 26-Aug-2012 Marek Olšák <maraeo@gmail.com> r600g: disable MSAA depth decompression on r6xx
/external/mesa3d/src/gallium/drivers/r600/r600_blit.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/r600_blit.c
48edfe0505ee79d35f770f53b9c9b7ca3c69fd2b 13-Aug-2012 Marek Olšák <maraeo@gmail.com> r600g: cleanup names around depth decompression

for consistency with the upcoming color decompression naming

Reviewed-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
795834432b11418d82db9a5580c916b3bee1a8f2 07-Aug-2012 Marek Olšák <maraeo@gmail.com> r600g: fix blits of subsampled formats
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
951ac46a6a0a901b53a518c8dcde734578cbf228 14-Aug-2012 Marek Olšák <maraeo@gmail.com> r600g: rename r600_resource_texture to r600_texture
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
773ff5705f3b2d88fb7094b8d2e051bb684c2323 12-Aug-2012 Marek Olšák <maraeo@gmail.com> r600g: cleanup r600_resource_texture in favor of radeon_surface
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
e0cc61bd91f5ef84bacaf5e7c6cda9eeefed478d 13-Aug-2012 Marek Olšák <maraeo@gmail.com> gallium/u_blitter: document custom meta helpers
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
870af19d70bf985a253f1ea8398fb7ec8704cf9c 09-Aug-2012 Marek Olšák <maraeo@gmail.com> r600g: implement copying between MSAA textures
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
0f86915c5322b096b7154b6c84e21288074b775d 09-Aug-2012 Marek Olšák <maraeo@gmail.com> r600g: implement MSAA color resolve
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
94b634eca0e2bd32d4b5bd92d06d510eae8a5625 09-Aug-2012 Marek Olšák <maraeo@gmail.com> r600g: implement MSAA depth-stencil decompression and resolve

and integer textures, which are resolved the same as depth, I think.
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
a01791add08fbcb5386e0e9209ba21ed58fbdc42 22-Jul-2012 Marek Olšák <maraeo@gmail.com> r600g: implement set_sample_mask
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
825b45366d5308fd3e8e71c0c1943cb6ca8f69ea 25-Jul-2012 Marek Olšák <maraeo@gmail.com> gallium/u_blitter: implement blitting multisample resources

It can blit only one sample at a time (it should be called in a loop).
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
7c371f46958910dd2ca9487c89af1b72bbfdada9 28-Jul-2012 Marek Olšák <maraeo@gmail.com> r600g: make sure copying of all texture formats is accelerated
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
e2f623f1d6da9bc987582ff68d0471061ae44030 28-Jul-2012 Marek Olšák <maraeo@gmail.com> r600g: don't decompress depth or stencil if there isn't any
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
c8ff737a18672c86f4ec01b25b4893550667b17c 27-Jul-2012 Marek Olšák <maraeo@gmail.com> gallium/u_blitter: remove fallback for stencil copy that all drivers skipped

Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
99c65bac341f808279a8a847158ace4f058aa72e 26-Feb-2012 Marek Olšák <maraeo@gmail.com> r600g: implement wait-free buffer transfer for DISCARD_RANGE

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
8ac9801669c68c33d9dd35a57baf985a4be49eff 24-Feb-2012 Marek Olšák <maraeo@gmail.com> r600g: accelerate buffer copying

This will be useful for efficient handling of the DISCARD transfer flags.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
b242adbe5cfa165b252064a1ea36f802d8251ef1 18-Jul-2012 Marek Olšák <maraeo@gmail.com> r600g: remove needless wrapper r600_texture_depth_flush
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
5d8d4252f2f6632fc455dcf1079c95495ef445ac 14-Jul-2012 Marek Olšák <maraeo@gmail.com> r600g: convert sampler view emission into atoms

Vertex and constant buffers are emitted in the same way.
This is mainly a simplification of the code. The cleanup is in another patch.
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
80755ff56317446a8c89e611edc1fdf320d6779b 14-Jul-2012 Marek Olšák <maraeo@gmail.com> r600g: properly track which textures are depth

This fixes the issue with have_depth_texture never being set to false.
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
585baac652ffa172fb3fbbdd4c7559d03b7c27ef 06-Jul-2012 Marek Olšák <maraeo@gmail.com> r600g: do fine-grained vertex buffer updates

If only some buffers are changed, the other ones don't have to re-emitted.
This uses bitmasks of enabled and dirty buffers just like
emit_constant_buffers does.
/external/mesa3d/src/gallium/drivers/r600/r600_blit.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/r600_blit.c
fe1fd675565231b49d3ac53d0b4bec39d8bc6781 08-Jul-2012 Marek Olšák <maraeo@gmail.com> r600g: don't flush depth textures set as colorbuffers

The only case a depth buffer can be set as a color buffer is when flushing.

That wasn't always the case, but now this code isn't required anymore.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
5a17d8318ec2c20bf86275044dc8f715105a88e7 08-Jul-2012 Marek Olšák <maraeo@gmail.com> r600g: flush depth textures bound to vertex shaders

This was missing/broken. There are also minor code cleanups.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
dee58f94af833906863b0ff2955b20f3ab407e63 08-Jul-2012 Marek Olšák <maraeo@gmail.com> r600g: do fine-grained depth texture flushing

- maintain a mask of which mipmap levels are dirty (instead of one big flag)
- only flush what was requested at a given point and not the whole resource
(most often only one level and one layer has to be flushed)

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
df79eb59566f20a7fa8e11d87b63b81ec35eaf25 07-Jul-2012 Marek Olšák <maraeo@gmail.com> r600g: remove is_flush from DSA state

we can just update the state when decompressing, there's no need to add
additional info into the DSA state

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
37708479608af877986b76302a9c92611d1e23d0 11-Jul-2012 Vadim Girlin <vadimgirlin@gmail.com> r600g: improve flushed depth texture handling v2

Use r600_resource_texture::flished_depth_texture for GPU access, and
allocate it in the VRAM. For transfers we'll allocate texture in the GTT
and store it in the r600_transfer::staging.

Improves performance when flushed depth texture is frequently used by the
GPU, e.g. in Lightsmark (~30%)

Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
c1e8c845ea9c6f843cc5bba5974668c007799bbc 07-Jul-2012 Marek Olšák <maraeo@gmail.com> r600g: inline r600_hw_copy_region
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
4891c5dc64ccd8cf2bf8a8550ae23e1a61806a7d 25-Jun-2012 Marek Olšák <maraeo@gmail.com> r600g: inline r600_blit_push_depth and use resource_copy_region

We are going to have a separate resource for depth texturing and transfers
and this is just a transfer thing.
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
da98bb6fc105e1a2f688a1713ca9e50f0ac8fbed 25-Jun-2012 Marek Olšák <maraeo@gmail.com> r600g: split flushed depth texture creation and flushing
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
e0773da1e897164ed7597437070e32b867734ee5 10-Apr-2012 Marek Olšák <maraeo@gmail.com> gallium: make user vertex buffers optional

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

Summary:
* r300g,r600g: stop using u_vbuf
* r300g,r600g: also report that the FIXED vertex type is unsupported
* u_vbuf: refactor for use in the state tracker
* cso: wire up u_vbuf with cso_context
* st/mesa: conditionally install u_vbuf
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
a52b3338c6e51421e3836ae210cd98d9c1ec337b 10-Apr-2012 Marek Olšák <maraeo@gmail.com> u_vbuf: remove u_vbuf_resource
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
889238c8b1e6b8ac5eed30ec3122be94216ca7cf 31-Mar-2012 Marek Olšák <maraeo@gmail.com> u_vbuf: override create/bind/destroy_vertex_elements_state
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
330b6c85c961b32f704ce8ec7dbf8cb7fc0b80a8 05-Mar-2012 Marek Olšák <maraeo@gmail.com> r600g: cleanup includes
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
370c8b5ee7666f4f515d63603afe8282b1b3c682 24-Feb-2012 Marek Olšák <maraeo@gmail.com> r600g: remove obsolete todo comments

Also use XXX in the other ones, because it's the most used word for that
purpose in Mesa.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
09ec30f02830b3cbf9d6ac04d9497634dca86846 23-Feb-2012 Marek Olšák <maraeo@gmail.com> r600g: don't suspend timer queries for u_blitter

Timer queries should be able to measure the time spent in u_blitter as well.

Queries are split into two groups: the timer ones and the others (streamout,
occlusion), because we should only suspend non-timer queries for u_blitter,
and later if the non-timer queries are suspended, the context flush should
only suspend and resume the timer queries.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
83667acfd9feed932f6864092382e752466975ed 23-Feb-2012 Marek Olšák <maraeo@gmail.com> r600g: move all query code into r600_query.c

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

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
d334d591a71c41d6a1eb4f2ea6cdabedc425e42f 24-Feb-2012 Marek Olšák <maraeo@gmail.com> r600g: rename r600_resource_texture::depth to bool is_depth

It's used as a boolean.
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
7335cf1c326c7815164c242e19ba0c0b2b19f0f6 07-Feb-2012 Brian Paul <brianp@vmware.com> r600g: remove unused vars to silence warnings
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
c0c979eebc076b95cc8d18a013ce2968fe6311ad 30-Jan-2012 Jerome Glisse <jglisse@redhat.com> r600g: add support for common surface allocator for tiling v13

Tiled surface have all kind of alignment constraint that needs to
be met. Instead of having all this code duplicated btw ddx and
mesa use common code in libdrm_radeon this also ensure that both
ddx and mesa compute those alignment in the same way.

v2 fix evergreen
v3 fix compressed texture and workaround cube texture issue by
disabling 2D array mode for cubemap (need to check if r7xx and
newer are also affected by the issue)
v4 fix texture array
v5 fix evergreen and newer, split surface values computation from
mipmap tree generation so that we can get them directly from the
ddx
v6 final fix to evergreen tile split value
v7 fix mipmap offset to avoid to use random value, use color view
depth view to address different layer as hardware is doing some
magic rotation depending on the layer
v8 fix COLOR_VIEW on r6xx for linear array mode, use COLOR_VIEW on
evergreen, align bytes per pixel to a multiple of a dword
v9 fix handling of stencil on evergreen, half fix for compressed
texture
v10 fix evergreen compressed texture proper support for stencil
tile split. Fix stencil issue when array mode was clear by
the kernel, always program stencil bo. On evergreen depth
buffer bo need to be big enough to hold depth buffer + stencil
buffer as even with stencil disabled things get written there.
v11 rebase on top of mesa, fix pitch issue with 1d surface on evergreen,
old ddx overestimate those. Fix linear case when pitch*height < 64.
Fix r300g.
v12 Fix linear case when pitch*height < 64 for old path, adapt to
libdrm API change
v13 add libdrm check

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.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/r600_blit.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/r600/r600_blit.c
2175634e73f9c5ccaf565f0dc15520610b1eb7ff 25-Dec-2011 Marek Olšák <maraeo@gmail.com> r600g: fix a warning that a variable may be uninitialized
/external/mesa3d/src/gallium/drivers/r600/r600_blit.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/r600_blit.c
7684808f9ce2da944be3ca9cc1ac4661d9b167fb 28-Oct-2011 Marek Olšák <maraeo@gmail.com> r600g: remove one pointless flush

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

There are no piglit regressions.
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
a19e6a8f2840be9a59e46c8d408658715ae47bf0 27-Oct-2011 Marek Olšák <maraeo@gmail.com> r600g: remove redundant variable r600_pipe_context::blit
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
7a3bbd3d5d551ede6c8cbd2b0ac8ef005ee9e043 21-Oct-2011 Marek Olšák <maraeo@gmail.com> r600g: cleanup r600_reset_blittable_to_compressed
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
95fd5e5aba2e21ab20cb971506a81c0049b5a694 10-Oct-2011 Dave Airlie <airlied@redhat.com> r600g: drop force int type workaround

now that we have integer texture types I can drop this workaround so that
copies of values is done properly (as floats would fail on some corner cases).

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
4e28e6f6c777841b9ffe7a7ad1e865e2595f70f9 26-Sep-2011 Dave Airlie <airlied@redhat.com> u_blitter: add integer clear support

We need add a new set of fragment shader variants, along with new vertex
elements for signed and unsigned clears.

The new fragment shader variants are due to the integers values requiring
CONSTANT interpolation. The new vertex element descriptions are for passing
the clear color as an unsigned or signed integer value.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
6dd284f7c8fac22f64c13fdf9909094f5ec59086 16-Sep-2011 Dave Airlie <airlied@redhat.com> gallium: move clear paths from rgba to a pointer to a color union (v2)

This moves the gallium interface for clears from using a pointer to 4 floats to a pointer to a union of float/unsigned/int values.

Notes:
1. the value is opaque.
2. only when the value is used should it be interpretered according to
the surface format it is going to be used with.
3. float clears on integer buffers and vice-versa are undefined.

v2: fixed up vega and graw, dropped hunks that shouldn't have been in
patch.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
840ad139aff401829552d0e3ba77f8abcb5862bd 04-Sep-2011 Marek Olšák <maraeo@gmail.com> r600g: always decompress all mipmaps and layers, slices, or faces of zbuffers

This fixes piglit/fbo-depth-array.

Reviewed-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
8fb7f1a8a4cbab5365491b4b41e50ff3f03306c8 27-Aug-2011 Kai Wasserbäch <kai@dev.carbon-project.org> r600g: Fix include style

As explained in the thread starting at [0], the internal include style
should be »#include "path/to/header.h"« for non-system includes.

[0]
<http://news.gmane.org/find-root.php?message_id=%3c4E5802BE.6020206%40vmware.com%3e>

Signed-off-by: Kai Wasserbäch <kai@dev.carbon-project.org>
Signed-off-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
68c54abb2cfd12a031829e78d721b2480d0c8cc4 19-Aug-2011 Marek Olšák <maraeo@gmail.com> r600g: fix depth-stencil on evergreen

Such that it actually works in apps which use both.

A separate buffer is allocated for stencil. The only exception is
the window-system-provided depth-stencil buffer, where depth and stencil
share the same buffer.

This fixes:
- fbo-depthstencil-GL_DEPTH24_STENCIL8-clear
- fbo-depthstencil-GL_DEPTH24_STENCIL8-drawpixels-FLOAT-and-USHORT
- fbo-depthstencil-GL_DEPTH24_STENCIL8-readpixels-24_8
- fbo-depthstencil-GL_DEPTH24_STENCIL8-readpixels-FLOAT-and-USHORT
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
233dd4953e3e6cf39f3c7a7cd898339a89d2ff86 10-Aug-2011 Marek Olšák <maraeo@gmail.com> u_blitter: rename util_blitter_copy_region -> util_blitter_copy_texture
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
fbe9d4261f94b8a22ae04dccb8201a6762b66d40 04-Jul-2011 Vadim Girlin <vadimgirlin@gmail.com> r600g: reduce flushes for queries
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
8623c68aec95e0883308051068b3496a85e8b9ea 19-Jun-2011 Marek Olšák <maraeo@gmail.com> r600g: fix warning: assignment discards qualifiers from pointer target type
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
a916d4279a2c8daac832f77b84aff66f33b590a3 17-Jun-2011 Vadim Girlin <vadimgirlin@gmail.com> r600g: fix source box in r600_resource_copy_region

Source box needs to be adjusted for blitting from compressed formats.

fixes https://bugs.freedesktop.org/show_bug.cgi?id=35434

Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
6f243ec25d88589747c7a595903e201b90a4d767 15-Jun-2011 Marek Olšák <maraeo@gmail.com> r600g: disable render condition for some blitter operations
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
2743851c1a73305dd83e42b99edc49906d9c0a51 07-Jun-2011 Dave Airlie <airlied@redhat.com> r600g: move depth texture flushing out of line.

this needs a piglit run.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
883d8a0b449b53d83cc5970d2ce50df536aef55f 21-Apr-2011 Marek Olšák <maraeo@gmail.com> gallium: add fallback for copying buffers to all drivers

Just to keep drivers working.

Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
c9bca01819ef0fa3c64a28e26bd63953cf7f1364 24-Feb-2011 Dave Airlie <airlied@redhat.com> r600g: bc 4/5 or rgtc textures need to be tiled as well.

Make the s3tc upload code more generic.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
231bf886dae9c7df0ae3e16acee904024a08824f 17-Feb-2011 Dave Airlie <airlied@redhat.com> r600g: get s3tc working on cards with crappy 64/128 bit types.

Some cards don't appear to work correctly with the UNORM type,
so switch to the integer type, however since gallium has no
integer types yet from what I can see we need to do a hack to
workaround it for the blitter.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
f53436d821a5173075b2a4a8db8cd23d9669f6e2 16-Feb-2011 Dave Airlie <airlied@redhat.com> r600g: fix typo in previous s3tc commit

pointed out by Marek on irc.
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
0863eaf91cbbfb39f9b91b0d1217090a18e10082 16-Feb-2011 Dave Airlie <airlied@redhat.com> r600g: fix s3tc-texsubimage

we need to translate the destination box as well.

fixes piglit's s3tc-texsubimage test.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
8e0437914bb786d0b05be8f95e4ff37bf5a19f44 11-Feb-2011 Dave Airlie <airlied@redhat.com> r600g: add support for s3tc formats.

On r600, s3tc formats require a 1D tiled texture format,
so we have to do uploads using a blit, via the 64-bit and 128-bit formats

Based on the r600c code we use a 64 and 128-bit type to do the
blits.

Still requires R600_ENABLE_S3TC until the kernel fixes are in,
this has only been tested on evergreen where the kernel doesn't
yet get in the way.
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
aa8a2224a3df111a1613f0baefebc00883e1b70b 07-Feb-2011 Marek Olšák <maraeo@gmail.com> r600g: use the new vertex buffer manager
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
812c314e5161d2b5f91c86ba45b79d4b34046bee 04-Feb-2011 Dave Airlie <airlied@redhat.com> r600g: avoid trying to flush the flushing texture.

Since these textures still have the depth bit set.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
cd6864c07976fad5f9008206d558dc6c8c599c11 04-Feb-2011 Dave Airlie <airlied@redhat.com> r600g: remove unused variables
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
3e9bc43fbafdd497d475eaffe0deec81b446d122 04-Feb-2011 Dave Airlie <airlied@redhat.com> r600g: add a flag to just create flushed texture without flushing.

This just adds a flag to create the texture without doing any
flushing to it. Flushing occurs in the draw function. This avoids
unnecessary flushes when we end up rebinding a CB/DB/texture due
to the blitter just restoring state.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
446bc12c1760fe5d402cdd519a7f0e42d89b9696 04-Feb-2011 Dave Airlie <airlied@redhat.com> r600g: also check CB bindings for textures to depth flush.

This checks the color buffer bindings to make sure there is something
to flush.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
4b49fcbb9a26680e9a4ef441668e0dd817529d47 03-Feb-2011 Dave Airlie <airlied@redhat.com> r600g: flush depth texture before a blit from it.

If we are going to blit from a depth texture we need to flush
it before we blit from it.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
aa31a5cbc7b52eb1d03c6eab414479249830eabf 03-Feb-2011 Dave Airlie <airlied@redhat.com> r600g: flush differences back to DB copy.
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
417cfa60b2fec89423be6ce51ab8b1f3063abb2a 01-Feb-2011 Dave Airlie <airlied@redhat.com> r600g: fix depth hw resource copies.

With the previous fixes we can now enabled hw depth copies

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
b13b7b86b2e1165b24a2df20cb67f9f3baa17b13 03-Feb-2011 Dave Airlie <airlied@redhat.com> r600g: rework dirty / depth texture tracking.

this adds a flag to keep track of whether the depth texture structure
is the flushed texture or not, so we can avoid doing flushes when
we do a hw rendering from one to the other.

it also renames flushed to dirty_db which tracks if the DB copy
has been dirtied by being bound to the hw.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
aee5f1e40ca27149a6226187e855125821d96971 01-Feb-2011 Dave Airlie <airlied@redhat.com> r600: only decompress depth when its tile type is wrong.

If the tile type for the buffer is 1 then its been bound to the
DB at some point, we need to decompress it, otherwise its only
been bound as texture/cb so don't do anything.

This fixes 5 piglit tests here on r600g.
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
38b54158b68479e1f97c8452ba0d67f50dce7582 30-Jan-2011 Henri Verbeet <hverbeet@gmail.com> r600g: Update the flushed depth texture after drawing to the corresponding texture.

I know Jerome will probably rewrite the way depth textures work sometime
soon. For the time being this should at least make common depth texture usage
for shadowing work properly though.
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
71f610e26ea7d71043b1a8ceeb8af7d11d75d6ab 30-Jan-2011 Dave Airlie <airlied@redhat.com> r600g: fixes a segfault in the piglit fbo-genmipmap-formats test.

should be no need to unset this ptr here and if we don't end up using the
blitter we've just broken the state.
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
70e656b4ebdd3cd2962ce66544ae9af349ecd59a 29-Jan-2011 Marek Olšák <maraeo@gmail.com> r600g: fix vertex format fallback

This fixes:
- piglit/draw-vertices
- piglit/draw-vertices-half-float
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
8fc6c5fb3684ba3f4a8810b8db09540de1187782 24-Dec-2010 Henri Verbeet <hverbeet@gmail.com> r600g: r600_blit_uncompress_depth() can't fail.
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
119f00659c03c48cfab0f2770dd6b6fb89af31e4 03-Dec-2010 Jerome Glisse <jglisse@redhat.com> r600g: indentation fix

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
4c7001462607e6e99e474d6271dd481d3f8f201c 02-Dec-2010 Roland Scheidegger <sroland@vmware.com> gallium: support for array textures and related changes

resources have a array_size parameter now.
get_tex_surface and tex_surface_destroy have been renamed to create_surface
and surface_destroy and moved to context, similar to sampler views (and
create_surface now uses a template just like create_sampler_view). Surfaces
now really should only be used for rendering. In particular they shouldn't be
used as some kind of 2d abstraction for sharing a texture. offset/layout fields
don't make sense any longer and have been removed, width/height should go too.
surfaces and sampler views now specify a layer range (for texture resources),
layer is either array slice, depth slice or cube face.
pipe_subresource is gone array slices (or cube faces) are now treated the same
as depth slices in transfers etc. (that is, they use the z coord of the
respective functions).

Squashed commit of the following:

commit a45bd509014743d21a532194d7b658a1aeb00cb7
Merge: 1aeca28 32e1e59
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Dec 2 04:32:06 2010 +0100

Merge remote branch 'origin/master' into gallium-array-textures

Conflicts:
src/gallium/drivers/i915/i915_resource_texture.c
src/gallium/drivers/i915/i915_state_emit.c
src/gallium/drivers/i915/i915_surface.c

commit 1aeca287a827f29206078fa1204715a477072c08
Merge: 912f042 6f7c8c3
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Dec 2 00:37:11 2010 +0100

Merge remote branch 'origin/master' into gallium-array-textures

Conflicts:
src/gallium/state_trackers/vega/api_filters.c
src/gallium/state_trackers/vega/api_images.c
src/gallium/state_trackers/vega/mask.c
src/gallium/state_trackers/vega/paint.c
src/gallium/state_trackers/vega/renderer.c
src/gallium/state_trackers/vega/st_inlines.h
src/gallium/state_trackers/vega/vg_context.c
src/gallium/state_trackers/vega/vg_manager.c

commit 912f042e1d439de17b36be9a740358c876fcd144
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Dec 1 03:01:55 2010 +0100

gallium: even more compile fixes after merge

commit 6fc95a58866d2a291def333608ba9c10c3f07e82
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Dec 1 00:22:26 2010 +0100

gallium: some fixes after merge

commit a8d5ffaeb5397ffaa12fb422e4e7efdf0494c3e2
Merge: f7a202f 2da02e7
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Nov 30 23:41:26 2010 +0100

Merge remote branch 'origin/master' into gallium-array-textures

Conflicts:
src/gallium/drivers/i915/i915_state_emit.c
src/gallium/state_trackers/vega/api_images.c
src/gallium/state_trackers/vega/vg_context.c

commit f7a202fde2aea2ec78ef58830f945a5e214e56ab
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Nov 24 19:19:32 2010 +0100

gallium: even more fixes/cleanups after merge

commit 6895a7f969ed7f9fa8ceb788810df8dbcf04c4c9
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Nov 24 03:07:36 2010 +0100

gallium: more compile fixes after merge

commit af0501a5103b9756bc4d79167bd81051ad6e8670
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Nov 23 19:24:45 2010 +0100

gallium: lots of compile fixes after merge

commit 0332003c2feb60f2a20e9a40368180c4ecd33e6b
Merge: 26c6346 b6b91fa
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Nov 23 17:02:26 2010 +0100

Merge remote branch 'origin/master' into gallium-array-textures

Conflicts:
src/gallium/auxiliary/gallivm/lp_bld_sample.c
src/gallium/auxiliary/util/u_blit.c
src/gallium/auxiliary/util/u_blitter.c
src/gallium/auxiliary/util/u_inlines.h
src/gallium/auxiliary/util/u_surface.c
src/gallium/auxiliary/util/u_surfaces.c
src/gallium/docs/source/context.rst
src/gallium/drivers/llvmpipe/lp_rast.c
src/gallium/drivers/nv50/nv50_state_validate.c
src/gallium/drivers/nvfx/nv04_surface_2d.c
src/gallium/drivers/nvfx/nv04_surface_2d.h
src/gallium/drivers/nvfx/nvfx_buffer.c
src/gallium/drivers/nvfx/nvfx_miptree.c
src/gallium/drivers/nvfx/nvfx_resource.c
src/gallium/drivers/nvfx/nvfx_resource.h
src/gallium/drivers/nvfx/nvfx_state_fb.c
src/gallium/drivers/nvfx/nvfx_surface.c
src/gallium/drivers/nvfx/nvfx_transfer.c
src/gallium/drivers/r300/r300_state_derived.c
src/gallium/drivers/r300/r300_texture.c
src/gallium/drivers/r600/r600_blit.c
src/gallium/drivers/r600/r600_buffer.c
src/gallium/drivers/r600/r600_context.h
src/gallium/drivers/r600/r600_screen.c
src/gallium/drivers/r600/r600_screen.h
src/gallium/drivers/r600/r600_state.c
src/gallium/drivers/r600/r600_texture.c
src/gallium/include/pipe/p_defines.h
src/gallium/state_trackers/egl/common/egl_g3d_api.c
src/gallium/state_trackers/glx/xlib/xm_st.c
src/gallium/targets/libgl-gdi/gdi_softpipe_winsys.c
src/gallium/targets/libgl-gdi/libgl_gdi.c
src/gallium/tests/graw/tri.c
src/mesa/state_tracker/st_cb_blit.c
src/mesa/state_tracker/st_cb_readpixels.c

commit 26c6346b385929fba94775f33838d0cceaaf1127
Author: Roland Scheidegger <sroland@vmware.com>
Date: Mon Aug 2 19:37:21 2010 +0200

fix more merge breakage

commit b30d87c6025eefe7f6979ffa8e369bbe755d5c1d
Merge: 9461bf3 1f1928d
Author: Roland Scheidegger <sroland@vmware.com>
Date: Mon Aug 2 19:15:38 2010 +0200

Merge remote branch 'origin/master' into gallium-array-textures

Conflicts:
src/gallium/drivers/llvmpipe/lp_rast.c
src/gallium/drivers/llvmpipe/lp_rast_priv.h
src/gallium/drivers/r300/r300_blit.c
src/gallium/drivers/r300/r300_screen_buffer.c
src/gallium/drivers/r300/r300_state_derived.c
src/gallium/drivers/r300/r300_texture.c
src/gallium/drivers/r300/r300_texture.h
src/gallium/drivers/r300/r300_transfer.c
src/gallium/drivers/r600/r600_screen.c
src/gallium/drivers/r600/r600_state.c
src/gallium/drivers/r600/r600_texture.c
src/gallium/drivers/r600/r600_texture.h
src/gallium/state_trackers/dri/common/dri1_helper.c
src/gallium/state_trackers/dri/sw/drisw.c
src/gallium/state_trackers/xorg/xorg_exa.c

commit 9461bf3cfb647d2301364ae29fc3084fff52862a
Merge: 17492d7 0eaccb3
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Jul 15 20:13:45 2010 +0200

Merge commit 'origin/master' into gallium-array-textures

Conflicts:
src/gallium/auxiliary/util/u_blitter.c
src/gallium/drivers/llvmpipe/lp_rast.c
src/gallium/drivers/llvmpipe/lp_surface.c
src/gallium/drivers/r300/r300_render.c
src/gallium/drivers/r300/r300_state.c
src/gallium/drivers/r300/r300_texture.c
src/gallium/drivers/r300/r300_transfer.c
src/gallium/tests/trivial/quad-tex.c

commit 17492d705e7b7f607b71db045c3bf344cb6842b3
Author: Roland Scheidegger <sroland@vmware.com>
Date: Fri Jun 18 10:58:08 2010 +0100

gallium: rename element_offset/width fields in views to first/last_element

This is much more consistent with the other fields used there
(first/last level, first/last layer).
Actually thinking about removing the ugly union/structs again and
rename first/last_layer to something even more generic which could also
be used for buffers (like first/last_member) without inducing headaches.

commit 1b717a289299f942de834dcccafbab91361e20ab
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Jun 17 14:46:09 2010 +0100

gallium: remove PIPE_SURFACE_LAYOUT_LINEAR definition

This was only used by the layout field of pipe_surface, but this
driver internal stuff is gone so there's no need for this driver independent
layout definition neither.

commit 10cb644b31b3ef47e6c7b55e514ad24bb891fac4
Merge: 5691db9 c85971d
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Jun 17 12:20:41 2010 +0100

Merge commit 'origin/master' into gallium-array-textures

Conflicts:
src/gallium/docs/source/glossary.rst
src/gallium/tests/graw/fs-test.c
src/gallium/tests/graw/gs-test.c

commit 5691db960ca3d525ce7d6c32d9c7a28f5e907f3b
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Jun 17 11:29:03 2010 +0100

st/wgl: fix interface changes bugs

commit 2303ec32143d363b46e59e4b7c91b0ebd34a16b2
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Jun 16 19:42:32 2010 +0100

gallium: adapt code to interface changes...

commit dcae4f586f0d0885b72674a355e5d56d47afe77d
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Jun 16 19:42:05 2010 +0100

gallium: separate depth0 and array_size in the resource itself.

These fields are still mutually exclusive (since no 3d array textures exist)
but it ultimately seemed to error-prone to adapt all code accept the new
meaning of depth0 (drivers stick that into hardware regs, calculate mipmap
sizes etc.). And it isn't really cleaner anyway.
So, array textures will have depth0 of 1, but instead use array_size,
3D textures will continue to use depth0 (and have array_size of 1). Cube
maps also will use array_size to indicate their 6 faces, but since all drivers
should just be fine by inferring this themselves from the fact it's a cube map
as they always used to nothing should break.

commit 621737a638d187d208712250fc19a91978fdea6b
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Jun 16 17:47:38 2010 +0100

gallium: adapt code to interface changes

There are still usages of pipe_surface where pipe_resource should be used,
which should eventually be fixed.

commit 2d17f5efe166b2c3d51957c76294165ab30b8ae2
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Jun 16 17:46:14 2010 +0100

gallium: more interface changes

In particular to enable usage of buffers in views, and ability to use a
different pipe_format in pipe_surface.
Get rid of layout and offset parameter in pipe_surface - the former was
not used in any (public) code anyway, and the latter should either be computed
on-demand or driver can use subclass of pipe_surface.
Also make create_surface() use a template to be more consistent with
other functions.

commit 71f885ee16aa5cf2742c44bfaf0dc5b8734b9901
Merge: 3232d11 8ad410d
Author: Roland Scheidegger <sroland@vmware.com>
Date: Mon Jun 14 14:19:51 2010 +0100

Merge commit 'origin/master' into gallium-array-textures

Conflicts:
src/gallium/auxiliary/util/u_box.h
src/gallium/drivers/nv50/nv50_surface.c
src/gallium/drivers/nvfx/nvfx_surface.c
src/gallium/drivers/r300/r300_blit.c
src/gallium/drivers/r300/r300_texture.c
src/gallium/drivers/r300/r300_transfer.c
src/gallium/drivers/r600/r600_blit.c
src/gallium/drivers/r600/r600_screen.h
src/gallium/include/pipe/p_state.h

commit 3232d11fe3ebf7686286013c357b404714853984
Author: Roland Scheidegger <sroland@vmware.com>
Date: Mon Jun 14 11:40:04 2010 +0100

mesa/st: adapt to interface changes

still need to fix pipe_surface sharing
(as that is now per-context).
Also broken is depth0 handling - half the code assumes
this is also used for array textures (and hence by extension
of that cube maps would have depth 6), half the code does not...

commit f433b7f7f552720e5eade0b4078db94590ee85e1
Author: Roland Scheidegger <sroland@vmware.com>
Date: Mon Jun 14 11:35:52 2010 +0100

gallium: fix a couple of bugs in interface chnage fixes

commit 818366b28ea18f514dc791646248ce6f08d9bbcf
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:42:11 2010 +0200

targets: adapt to interface changes

Yes even that needs adjustments...

commit 66c511ab1682c9918e0200902039247793acb41e
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:41:13 2010 +0200

tests: adapt to interface changes

Everything needs to be fixed :-(.

commit 6b494635d9dbdaa7605bc87b1ebf682b138c5808
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:39:50 2010 +0200

st: adapt non-rendering state trackers to interface changes

might not be quite right in all places, but they really don't want
to use pipe_surface.

commit 00c4289a35d86e4fe85919ec32aa9f5ffe69d16d
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:38:48 2010 +0200

winsys: adapt to interface changes

commit 39d858554dc9ed5dbc795626fec3ef9deae552a0
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:26:54 2010 +0200

st/python: adapt to interface changes

don't think that will work, sorry.

commit 6e9336bc49b32139cec4e683857d0958000e15e3
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:26:07 2010 +0200

st/vega: adapt to interface changes

commit e07f2ae9aaf8842757d5d50865f76f8276245e11
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:25:56 2010 +0200

st/xorg: adapt to interface changes

commit 05531c10a74a4358103e30d3b38a5eceb25c947f
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:24:53 2010 +0200

nv50: adapt to interface changes

commit 97704f388d7042121c6d496ba8c003afa3ea2bf3
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:24:45 2010 +0200

nvfx: adapt to interface changes

commit a8a9c93d703af6e8f5c12e1cea9ec665add1abe0
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:24:01 2010 +0200

i965g: adapt to interface changes

commit 0dde209589872d20cc34ed0b237e3ed7ae0e2de3
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:22:38 2010 +0200

i915g: adapt to interface changes

commit 5cac9beede69d12f5807ee1a247a4c864652799e
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:20:58 2010 +0200

svga: adapt to interface changes

resource_copy_region still looking fishy.
Was not very suited to unified zslice/face approach...

commit 08b5a6af4b963a3e4c75fc336bf6c0772dce5150
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:20:01 2010 +0200

rbug: adapt to interface changes

Not sure if that won't need changes elsewhere?

commit c9fd24b1f586bcef2e0a6e76b68e40fca3408964
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:19:31 2010 +0200

trace: adapt to interface changes

commit ed84e010afc5635a1a47390b32247a266f65b8d1
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:19:21 2010 +0200

failover: adapt to interface changes

commit a1d4b4a293da933276908e3393435ec4b43cf201
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:19:12 2010 +0200

identity: adapt to interface changes

commit a8dd73e2c56c7d95ffcf174408f38f4f35fd2f4c
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:18:55 2010 +0200

softpipe: adapt to interface changes

commit a886085893e461e8473978e8206ec2312b7077ff
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:18:44 2010 +0200

llvmpipe: adapt to interface changes

commit 70523f6d567d8b7cfda682157556370fd3c43460
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:18:14 2010 +0200

r600g: adapt to interface changes

commit 3f4bc72bd80994865eb9f6b8dfd11e2b97060d19
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:18:05 2010 +0200

r300g: adapt to interface changes

commit 5d353b55ee14db0ac0515b5a3cf9389430832c19
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:17:37 2010 +0200

cell: adapt to interface changes

not even compile tested

commit cf5d03601322c2dcb12d7a9c2f1745e2b2a35eb4
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:14:59 2010 +0200

util: adapt to interface changes

amazing how much code changes just due to some subtle interface changes?

commit dc98d713c6937c0e177fc2caf23020402cc7ea7b
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:12:40 2010 +0200

gallium: more interface fail, docs

this also changes flush_frontbuffer to use a pipe_resource instead of
a pipe_surface - pipe_surface is not meant to be (or at least no longer)
an abstraction for standalone 2d images which get passed around.
(This has also implications for the non-rendering state-trackers.)

commit 08436d27ddd59857c22827c609b692aa0c407b7b
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Jun 10 17:42:52 2010 +0200

gallium: fix array texture interface changes bugs, docs

commit 4a4d927609b62b4d7fb9dffa35158afe282f277b
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Jun 3 22:02:44 2010 +0200

gallium: interface changes for array textures and related cleanups

This patch introduces array textures to gallium (note they are not immediately
usable without the associated changes to the shader side).
Also, this abandons pipe_subresource in favor of using level and layer
parameters since the distinction between several faces (which was part of
pipe_subresource for cube textures) and several z slices (which were not part
of pipe_subresource but instead part of pipe_box where appropriate for 3d
textures) is gone at the resource level.
Textures, be it array, cube, or 3d, now use a "unified" set of parameters,
there is no distinction between array members, cube faces, or 3d zslices.
This is unlike d3d10, whose subresource index includes layer information for
array textures, but which considers all z slices of a 3d texture to be part
of the same subresource.
In contrast to d3d10, OpenGL though reuses old 2d and 3d function entry points
for 1d and 2d array textures, respectively, which also implies that for instance
it is possible to specify all layers of a 2d array texture at once (note that
this is not possible for cube maps, which use the 2d entry points, although
it is possible for cube map arrays, which aren't supported yet in gallium).
This should possibly make drivers a bit simpler, and also get rid of mutually
exclusive parameters in some functions (as z and face were exclusive), one
potential downside would be that 3d array textures could not easily be supported
without reverting this, but those are nowhere to be seen.

Also along with adjusting to new parameters, rename get_tex_surface /
tex_surface_destroy to create_surface / surface_destroy and move them from
screen to context, which reflects much better what those do (they are analogous
to create_sampler_view / sampler_view_destroy).

PIPE_CAP_ARRAY_TEXTURES is used to indicate if a driver supports all of this
functionality (that is, both sampling from array texture as well as use a range
of layers as a render target, with selecting the layer from the geometry shader).
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
7ffd4e976fd11b8c083c2927effd25a2f79ac841 17-Nov-2010 Jerome Glisse <jglisse@redhat.com> r600g: code cleanup (indent, trailing space, empty line ...)

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
c61b97d50425236f001dbc54f098318f921fe916 17-Oct-2010 Dave Airlie <airlied@redhat.com> r600g: attempt to cleanup depth blit

cleanup what I'm nearly sure is unnecessary work in the depth blit code.
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
88c1b32c62427c24ea276f20ac5ef260385a98d4 13-Oct-2010 Dave Airlie <airlied@redhat.com> r600g: use blitter for hw copy region

at the moment depth copies are failing (piglit depth-level-clamp)
so use the fallback for now until get some time to investigate.
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
c8d4108fbee679735a1cc3f405d848d01bfb23f6 12-Oct-2010 Dave Airlie <airlied@redhat.com> r600g: store samplers/views across blit when we need to modify them

also fixup framebuffer state copies to avoid bad state.
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
dbcd6526021c50770c3e5e04b04dc64c70298124 30-Sep-2010 Dave Airlie <airlied@redhat.com> r600g: clean up some code from move to new paths.

mainly remove 2 suffix from function names
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
6abd7771c6ab2c733b20835e211060dd18fd847d 29-Sep-2010 Jerome Glisse <jglisse@redhat.com> r600g: more cleanup

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

Lot of clean can now happen.

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
4c6344f569c5417b0ea804f6f8216a2b40321480 27-Sep-2010 Tilman Sauerbeck <tilman@code-monkey.de> r600g: Fixed two texture surface leaks in r600_blit_uncompress_depth().

Signed-off-by: Tilman Sauerbeck <tilman@code-monkey.de>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
4ca1a92b7fe44158a13910d01c76f41f6946165c 26-Sep-2010 Jerome Glisse <jglisse@redhat.com> r600g: move around variables to share depth uncompression code

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
80ac94af726e00a7b5e92d7f549caeb0b2d8b166 25-Sep-2010 Vinson Lee <vlee@vmware.com> r600g: Remove unnecessary header.
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
2f8453eea3b5ff8d2818517753d3990490f699b8 23-Sep-2010 Dave Airlie <airlied@redhat.com> r600g: use blitter to do db->cb flushing.

use the blitter + custom stage to avoid doing a whole lot of state
setup by hand. This makes life a lot easier for doing this on evergreen
it also keeps all the state setup in one place.

We setup a custom context state at the start with a flag to denote
its for the flush, when it gets generated we generate the correct state
for the flush and no longer have to do it all by hand.

this should also make adding texture *to* depth easier.
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
8078e58795052b8eb7c35fd73db06f26bec078e2 23-Sep-2010 Dave Airlie <airlied@redhat.com> r600g: fix depth readback on rv610 and other quirky variants.

at least zreaddraw works for me here now on my rv610
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
fb5ef05dc5e57b6454bd43b9a0eca3b6e9bf27c1 23-Sep-2010 Dave Airlie <airlied@redhat.com> r600g: use floats instead of hex for blit vbo

once I go past 0x3f80000, I can't translate hex to float in-brain anymore.
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
d18f3accb02646a48c1f1e1e276d5d9f1dc667b3 22-Sep-2010 Dave Airlie <airlied@redhat.com> r600g: make stencil readback work

need to write two components to get stencil components as well
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
41ef78c5af9a8b0ac80d9bd5375700a8bd0643f8 21-Sep-2010 Dave Airlie <airlied@redhat.com> r600g: cleanup some of the DB blit code

add cb/db flush states to the blit code.
add support for the rv6xx that need special treatment.
according to R6xx_7xx_3D.pdf

set r700 CB_SHADER_CONTROL reg in blit code
docs say dual export should be disabled for DB->CB
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
363dfb83f1ca7f1ab09eec30aeb89732c5ce3e02 20-Sep-2010 Jerome Glisse <jglisse@redhat.com> r600g: move chip class to radeon common structure

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

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
7c1fcc41be15b6d648f84c8c1870a3a00575a48f 16-Sep-2010 Dave Airlie <airlied@redhat.com> r600g: move constant buffer creation behind winsys abstraction.

this paves the way for moving to pb bufmgrs now.
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
f70f79f6f6027bdf2f7de09bb39e12a24420f338 16-Sep-2010 Dave Airlie <airlied@redhat.com> r600g: attempt to abstract kernel bos from pipe driver.

introduce an abstraction layer between kernel bos and the winsys BOs.

this is to allow plugging in pb manager with minimal disruption to pipe driver.
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
ec9d838aa56d2c4bc5649d7c26ac61abb6c4b9bb 16-Sep-2010 Dave Airlie <airlied@redhat.com> r600g: hide radeon_ctx inside winsys.

no need for this info to be exported to pipe driver.
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
2108caac25b375cfa6943fcc6a6386b9a8d4655e 10-Sep-2010 Tilman Sauerbeck <tilman@code-monkey.de> r600g: Fixed a bo leak in r600_blit_state_ps_shader().

We would leak the newly created bo if it cannot be mapped.

Signed-off-by: Tilman Sauerbeck <tilman@code-monkey.de>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
66e4cb1cd5a55402606a09417349d2be8b009e89 30-Aug-2010 Jerome Glisse <jglisse@redhat.com> r600g: avoid dynamic allocation of states

Make state statically allocated, this kills a bunch of code
and avoid intensive use of malloc/free. There is still a lot
of useless duplicate function wrapping that can be kill. This
doesn't improve yet performance, needs to avoid memcpy states
in radeon_ctx_set_draw and to avoid rebuilding vs_resources,
dsa, scissor, cb_cntl, ... states at each draw command.

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
15ce70252c5357081a61f3494261c7e343174301 01-Sep-2010 Jerome Glisse <jglisse@redhat.com> Revert "Revert "r600g: precompute some of the hw state""

This reverts commit 1fa7245c348cb7aced81f1672140f64cb6450e2f.

Conflicts:

src/gallium/drivers/r600/r600_state.c
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
1fa7245c348cb7aced81f1672140f64cb6450e2f 01-Sep-2010 Dave Airlie <airlied@redhat.com> Revert "r600g: precompute some of the hw state"

This reverts commit de0b76cab22caa9fc7260f80acb8f151ccced6c5, its pre-computes the texture state wrong,

you can't just use an array of levels, since you can have FBOs to depth texture slices inside a level as well
it would get really messy quickly. Probably need to split commits like this up into pieces for each piece
of state, so we can revert bits easier in case of regressions.

This also break 5 piglit tests, and valgrind starts to warn about invalid read/writes after this.
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
d7e2509692d3aa8afb8d2236a4f28b6ab502ec62 01-Sep-2010 Dave Airlie <airlied@redhat.com> r600g: fix typo causing segfault.

fixes warning that
r600_blit.c: In function ‘r600_resource_copy_region’:
r600_blit.c:136: warning: passing argument 1 of ‘util_resource_copy_region’ from incompatible pointer type

and also 7 more piglit tests.
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
de0b76cab22caa9fc7260f80acb8f151ccced6c5 30-Aug-2010 Jerome Glisse <jglisse@redhat.com> r600g: precompute some of the hw state

Idea is to build hw state at pipe state creation and
reuse them while keeping a non PM4 packet interface
btw winsys & pipe driver. This commit also force rebuild
of pm4 packet on each call to radeon_state_pm4 which
in turn slow down everythings, this will be addressed.

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
0bba7796a33d3c47295a9676dc82984da1615fe5 28-Aug-2010 Jerome Glisse <jglisse@redhat.com> r600g: fix depth buffer decompression after states rework

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
69c30f5d6d429be4f7e211867984dab1a33da79c 26-Aug-2010 Dave Airlie <airlied@redhat.com> r600g: fixup states generation in winsys.

The current states code had an unhealthy relationship between
that had to somehow magically align themselves, editing either
place meant renumbering all states after the one you were on,
and it was pretty unapproachable code.

This replaces the huge types structures with a simple type + sub
type struct, which is keyed on an stype enum in radeon.h. Each
stype can have a per-shader type subclassing (4 types supported,
PS/VS/GS/FS), and also has a number of states per-subtype. So you
have 256 constants per 4 shaders per one CONSTANT stype.

The interface from the driver is changed to pass in the tuple,
(stype, id, shader_type), and we look for this. If
radeon_state_shader ever shows up on profile, it could use a
hashtable based on stype/shader_type to speed things up.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
2184f3ec3059eaf8a9a2b04c995162543f000862 27-Aug-2010 Dave Airlie <airlied@redhat.com> Revert "r600g: simplify states"

This reverts commit bd25e23bf3740f59ce8859848c715daeb9e9821f.

Apart from introducing a lot of hex magic numbers and being highly impenetable code,
it causes lots of lockups on an average piglit run that always runs without lockups.

Always run piglit before/after doing big things like this.
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
bd25e23bf3740f59ce8859848c715daeb9e9821f 24-Aug-2010 Jerome Glisse <jglisse@redhat.com> r600g: simplify states

Directly build PM4 packet, avoid using malloc (no states are
bigger than 128 dwords), remove unecessary informations,
remove pm4 building in favor of prebuild pm4 packet.

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
bcf7f66a934ebd9c91da90d6e1f9b169c33c746c 23-Aug-2010 Jerome Glisse <jglisse@redhat.com> r600g: export one component per pixel + r7xx uncompression shader

We need to always at least export one component (wether it's depth
or color. Add valid r7xx shader program for depth decompression.

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
d843bbfd3f92d5afea665c3ff16bcca0628f2e7b 22-Aug-2010 Jerome Glisse <jglisse@redhat.com> r600g: fix DB decompression

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
ed99c28d12579bb8ee79eb9cfa55452785be7b6e 22-Aug-2010 Jerome Glisse <jglisse@redhat.com> r600g: depth buffer likely needs decompression when used as texture

Before using depth buffer as texture, it needs to be decompressed
(tile pattern of db are different from one used for colorbuffer
like texture)

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
36efb86c0570d86d8dfce87fd2416125e0e91b40 22-Aug-2010 Jerome Glisse <jglisse@redhat.com> r600g: partialy fix texturing from depth buffer + initial support for untiling

Partialy fix texturing from depth buffer, depth buffer is tiled
following different tile organisation that color buffer. This
properly set the tile type & array mode field of texture sampler
when sampling from db resource.

Add initial support to untiling buffer when transfering them,
it's kind of broken by corruption the vertex buffer of previous
draw.

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
63d010115c7972d854e0583f8f74e8d0c3407fcd 17-Aug-2010 Dave Airlie <airlied@redhat.com> r600g: add occlusion query support

Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
3e58007892cb2e89cb979ab172b7160adc84a44d 17-Aug-2010 Dave Airlie <airlied@redhat.com> r600g: add user clip plane support.

Apart from the fact that the radeon.h/r600_states.h editing is a nightmare, this
wasn't so bad.

passes piglit user-clip test now also trivial tests.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
8f6341d42131e6f60f269610d62b7f5b7b683052 03-Aug-2010 Jerome Glisse <jglisse@redhat.com> r600g: fix stencil

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
6f0f6c64596b7bbbfa96e8af6715565e37efa91e 29-Jul-2010 Jerome Glisse <jglisse@redhat.com> r600g: split pipe state creating/binding from hw state creation

Split hw vs pipe states creation handling as hw states group doesn't
match pipe state group exactly. Right now be dumb about that and
rebuild all hw states on each draw call. More optimization on that
side coming.

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
eee570a0fe4599dad7946ed56b5b8d039edeaa18 09-Jun-2010 Marek Olšák <maraeo@gmail.com> r600g: save vertex buffers in blitter
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
8819421a3b579111e39fbf0ef7fe0a7cb9d7ac6e 04-Jun-2010 Marek Olšák <maraeo@gmail.com> r600g: implement clear_{render_target, depth_stencil}, resource_copy_region

resource_copy_region uses a software fallback because it relies on texture
samplers which haven't been implemented yet.
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
7d0418d3dc5b44ce8171cc74359306ce22234b17 04-Jun-2010 Marek Olšák <maraeo@gmail.com> r600g: make blit functions static (private)
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
ffd0a2e215d83222f5e1e148b8e7cddeac6025d2 04-Jun-2010 Marek Olšák <maraeo@gmail.com> r600g: use cast wrappers
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
c674ce5e3a7023124c7d6936d3a65ec54cb37347 03-Jun-2010 Roland Scheidegger <sroland@vmware.com> r600g: adapt to interface changes

r600g should be able to handle separate depth stencil clears as well.
Also adapt surface_fill/copy stubs to new interface (not that it matters).
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
1202f17063dd568d406c04b62307efad909c5917 31-May-2010 Vinson Lee <vlee@vmware.com> r600g: Remove unnecessary headers.
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
1d57b6ebd186217a5c480245a36d169d357b8e67 29-May-2010 Marek Olšák <maraeo@gmail.com> r600g: make a local copy of viewport state
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
9e8a6f801d360f85cc7bb53b85f15129b07b26da 19-May-2010 Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> r600g: various fixes

- enabled flushing a buffer more than once
- enabled the blitter for r600_clear
- added some more colors to r600_is_format_supported (copied from r600_conv_pipe_format)
- r600_set_framebuffer_state now sets rctx->fb_state
- more states are saved before a blit (had to add some accounting for the viewport and the vertex elements state)
- fixed a few errors with reference counting
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c
72128962d640846472c1b0dc22cf4ac6ce875dc9 08-May-2010 Jerome Glisse <glisse@freedesktop.org> r600g: Initial import
/external/mesa3d/src/gallium/drivers/r600/r600_blit.c