History log of /external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
78222e63630280b96488de0d51d1b2578e26f814 30-Jan-2013 Jerome Glisse <jglisse@redhat.com> r600g: add cs memory usage accounting and limit it v3 (backport for mesa 9.0)

We are now seing cs that can go over the vram+gtt size to avoid
failing flush early cs that goes over 70% (gtt+vram) usage. 70%
is use to allow some fragmentation.

The idea is to compute a gross estimate of memory requirement of
each draw call. After each draw call, memory will be precisely
accounted. So the uncertainty is only on the current draw call.
In practice this gave very good estimate (+/- 10% of the target
memory limit).

v2: Remove left over from testing version, remove useless NULL
checking. Improve commit message.
v3: Add comment to code on memory accounting precision

This version is a backport for mesa 9.0

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Reviewed-by: Marek Olšák <maraeo@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
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_pipe.h
78354011f99c4103345f8f32e10b0b4b884ebdaf 26-Aug-2012 Marek Olšák <maraeo@gmail.com> r600g: implement color resolve for r600

The blend state is different and the resolve single-sample buffer must have
FMASK and CMASK enabled. I decided to have one CMASK and one FMASK
per context instead of per resource.

There are new FMASK and CMASK allocation helpers and a new buffer_create
helper for that.
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
187d7fb2fec7da889f25366696faaac4c2e8f9c4 24-Aug-2012 Marek Olšák <maraeo@gmail.com> r600g: implement draw_rectangle callback

The color resolve on r6xx needs PT_RECTLIST. Using conventional primitive
types (triangles and quads) produces an ugly line between two diagonally
opposite corners. I guess a rectangular point sprite would work too.
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
8698a3b85dd89c5d2fa473e7942b7dc8d25f3c8f 02-Aug-2012 Marek Olšák <maraeo@gmail.com> r600g: implement MSAA for r700

Reviewed-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
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_pipe.h
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_pipe.h
8d1a9a984f33d8e45f932a9f47cdd57da617a919 21-Aug-2012 Vadim Girlin <vadimgirlin@gmail.com> r600g: fix lockups with dual_src_blend v2

Disable blending when dual_src_blend is enabled and number of color exports
in the current fragment shader is less than 2.

Fixes lockups with ext_framebuffer_multisample-
alpha-to-coverage-dual-src-blend piglit test.

Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
59361d76a5b0b6b77d6e6bc976e02df2e8df9ec3 20-Aug-2012 archibald <archibald@ethernull.org> r600g: Move common compute/3D register init to its own function

Signed-off-by: Tom Stellard <thomas.stellard@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
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_pipe.h
d663a557fd27d7c238248e19f22f2e6b05f03030 10-Aug-2012 Brian Paul <brianp@vmware.com> r600: update sampler, sampler_view code for the future

For when we have pipe->set_sampler_states(pipe, shader, start, num, samplers),
etc.

Reviewed-by: Marek Olšák <maraeo@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
0f86915c5322b096b7154b6c84e21288074b775d 09-Aug-2012 Marek Olšák <maraeo@gmail.com> r600g: implement MSAA color resolve
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
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_pipe.h
a01791add08fbcb5386e0e9209ba21ed58fbdc42 22-Jul-2012 Marek Olšák <maraeo@gmail.com> r600g: implement set_sample_mask
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
26cb887ea213be2445e0fd64364d9264ed4fbfd2 04-Aug-2012 Marek Olšák <maraeo@gmail.com> r600g: implement alpha-to-one
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
2df399c34bb39122a45bdd5b430b48346542e1cb 01-Aug-2012 Jerome Glisse <jglisse@redhat.com> r600g: atomize sampler state v2

Use atom for sampler state. Does not provide new functionality
or fix any bug. Just a step toward full atom base r600g.

v2: Split seamless on r6xx/r7xx into it's own atom. Make sure it's
emited after sampler and with a pipeline flush before otherwise
it does not take effect.

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
cb922b63eba1d75706354614bc5de4d39dbe9ad3 02-Aug-2012 Marek Olšák <maraeo@gmail.com> r600g: precompute color buffer state in pipe_surface and reuse it
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
581f7e3101980a4e1068bb75c2eca60bb2071229 29-Jul-2012 Marek Olšák <maraeo@gmail.com> r600g: drop the old texture allocation code

Made obsolete by the libdrm surface allocator.
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
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_pipe.h
d3b013049126fb44d65a0a67001b04acbe778613 24-Jul-2012 Tom Stellard <thomas.stellard@amd.com> r600g: Atomize compute shader state

Reviewed-by: Marek Olšák <maraeo@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
54973910676951050092c096046b213f6a6944b5 24-Jul-2012 Tom Stellard <thomas.stellard@amd.com> r600g: Add helper functions for emitting compute SET_CONTEXT packets

Reviewed-by: Marek Olšák <maraeo@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
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_pipe.h
de4fd087cbccd47e703f750968b79525ddbe4554 18-Jul-2012 Marek Olšák <maraeo@gmail.com> r600g: always derive alphatest state from the first colorbuffer
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
bc2f5fc01e678ecd19f921e5bc7bd55c131dde66 18-Jul-2012 Marek Olšák <maraeo@gmail.com> r600g: atomize alphatest state
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
c26fadf195876271e559f844c1fc88effa6a60c1 15-Jul-2012 Marek Olšák <maraeo@gmail.com> r600g: remove unused code after conversion of sampler views
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
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_pipe.h
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_pipe.h
ba48f47ebf7f017db0507b92a3ca83e404dc586c 14-Jul-2012 Marek Olšák <maraeo@gmail.com> r600g: consolidate code for setting sampler views and fix bugs in the process

Issues fixed:

- set_vs_sampler_views for evergreen is now properly implemented.

- Added the missing inval_texture_cache call for evergreen.

- have_depth_texture was sometimes incorrectly set to false on evergreen even
if there were depth textures in other shader stages. To fix this, set it
to true once and never set it to false again. It's stupid, but it matches
the r600 code. The proper fix is left to another patch.

- Optimizaton: The sampler views which aren't changed aren't updated.
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
d1ca16b2738644d17c10e736ca36981f69f5fa87 14-Jul-2012 Marek Olšák <maraeo@gmail.com> r600g: remove unused flag have_depth_fb

This is a leftover from:

commit fe1fd675565231b49d3ac53d0b4bec39d8bc6781
Author: Marek Olšák <maraeo@gmail.com>
Date: Sun Jul 8 03:10:37 2012 +0200

r600g: don't flush depth textures set as colorbuffers
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
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_pipe.h
15ca9d159e50815b0bfe60df8873f48c32a59ca5 14-Jul-2012 Marek Olšák <maraeo@gmail.com> r600g: don't check the R600_GLSL130 env var

GLSL 1.3 has been enabled by default for quite a while.
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
c2f444c54db82a53f63fa7a103770ee5eedc3559 12-Jul-2012 Tom Stellard <tstellar@gmail.com> r600g: Emit vertex buffers using the same method as constant buffers

Signed-off-by: Marek Olšák <maraeo@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
9b76ee70b2ceebb52cc5edc574df9593cbac03b3 12-Jul-2012 Tom Stellard <tstellar@gmail.com> r600g: Unify 3D and compute vertex buffer emission

Signed-off-by: Marek Olšák <maraeo@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
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_pipe.h
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_pipe.h
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_pipe.h
4fe74412cfdba9af6ce878aebbb0c367f19cbb4b 07-Jul-2012 Marek Olšák <maraeo@gmail.com> r600g: move CB_SHADER_MASK setup into cb_misc_state

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
a1a1ff5ec09acda0c4849c9e41a37ae82a80f000 07-Jul-2012 Marek Olšák <maraeo@gmail.com> r600g: move MULTIWRITE setup into cb_misc_state for r6xx-r7xx

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

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

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

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
c0f7fe7b79afa9b95b1af56dce9eb881575b1cde 11-Jul-2012 Tom Stellard <thomas.stellard@amd.com> r600g/compute: Disable growing the memory pool

The code for growing the memory pool (which is used for storing all of
the global buffers) wasn't working. There seem to be two separate issues
with the memory pool code. The first was the way it was growing the pool.
When the memory pool needed more space, it would:

1. Copy the data from the memory pool's backing texture to system memory.
2. Delete the memory pool's texture
3. Create a bigger backing texture for the memory pool.
4. Copy the data from system memory into the bigger texture.

The copy operations didn't seem to be working, and I suspect that since
they were using fragment shaders to do the copy, that there might have
been a problem with the mixing of compute and 3D state.

The other issue is that the size of 1D textures is limited, and I was
having trouble getting 2D textures to work.

I think these problems will be easier to solve once more code is shared
between 3D and compute, which is why I decided to disable it for now
rather than continue searching for a fix.
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
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_pipe.h
da9c8a73ec6fcb0e92204a739c1a7c43f145efef 27-Jun-2012 Tom Stellard <thomas.stellard@amd.com> r600g/compute: Use evergreen_cb() for binding RATs
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
5016fe2d47a08ce2cd7c597e67862086e7d63b64 25-Jun-2012 Tom Stellard <thomas.stellard@amd.com> r600g: Add start_compute_cs atom to struct r600_context

The start_compute_cs atom initializes some config and context registers
to the values needed for running compute shaders. When a compute shader
is dispatched, this atom is emitted after the start_cs_cmd atom, which
initializes registers that are common to both 3D and compute.

Reviewed-by: Marek Olšák <maraeo@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
38be0966c7e58fb3017c222cf416ae2bdc0bee3d 25-Jun-2012 Tom Stellard <thomas.stellard@amd.com> r600g: Add pkt_flag member to struct r600_command_buffer

Some packets require the shader type bit (bit 1) to be set when
used for compute shaders. The pkt_flag will be initialized to
RADEON_CP_PACKET3_COMPUTE_MODE for any struct r600_command_buffer used
for dispatching compute shaders and it will be or'd against the result of
the PKT3 macro when adding a new packet to a struct r600_command buffer.

Reviewed-by: Marek Olšák <maraeo@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
b75f1d973c7b626dba567b792be5a3539855a705 26-Jun-2012 Jerome Glisse <jglisse@redhat.com> r600g: enable DUAL_EXPORT mode when possible on r6xx/r7xx

DUAL_EXPORT can be enabled on r6xx/r7xx when all CBs use 16-bit export
and there is no depth/stencil export.

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
470d00c0e270c6079232d0d5ab10bf3219768faf 26-Jun-2012 Vadim Girlin <vadimgirlin@gmail.com> r600g: enable DUAL_EXPORT mode when possible

It seems DUAL_EXPORT on evergreen may be enabled when all CBs use 16-bit export
mode (EXPORT_4C_16BPC), also there should be at least one CB, and the PS
shouldn't export depth/stencil.

Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
0c47d9dcab80923c61b3f5375128e9b511b842fb 26-Jun-2012 Vadim Girlin <vadimgirlin@gmail.com> r600g: avoid unnecessary shader exports v2

In some cases TGSI shader has more color outputs than the number of CBs,
so it seems we need to limit the number of color exports. This requires
different shader variants depending on the nr_cbufs, but on the other hand
we are doing less exports, which are very costly.

v2: fix various piglit regressions

Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
4acf71f01ea1edb253cd38cc059d4af1a2a40bf4 11-Jun-2012 Vadim Girlin <vadimgirlin@gmail.com> r600g: cache shader variants instead of rebuilding v3

Shader variants are stored in the list, the key for lookup is based on the
states that require different hw shaders - currently it's rctx->two_side (all
gpus) and rctx->nr_cbufs (evergreen/cayman, when writes_all property is set).

v2:
- use simple list instead of keymap as suggested by Marek on irc
- call r600_adjust_gprs from r600_bind_vs_shader for r6xx/r7xx
(r600_shader_select isn't used for vertex shaders currently)

v3:
- fix call to r600_adjust_gprs - do it after updating current shader

Improves performance for some apps, e.g. FlightGear -
see https://bugs.freedesktop.org/show_bug.cgi?id=50360

Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
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_pipe.h
6e7756db14c362ede6fdc97454267a32b8eab1d4 17-Jun-2012 Marek Olšák <maraeo@gmail.com> r600g: enable streamout by default on r7xx and DRM 2.17.0

Now that it's in Linus's tree.

Has anyone had a chance to test streamout on Cayman recently?
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
6a829a1b724ca0d960decee217d260b4de8a5463 30-Nov-2011 Adam Rak <adam.rak@streamnovation.com> r600g: compute support for evergreen

Tom Stellard:
- Updated for gallium interface changes
- Fixed a few bugs:
+ Set the loop counter
+ Calculate the correct number of pipes
- Added hooks into the LLVM compiler
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
05ea705c7c6212d16fcc9bcf04619ffd4311bb03 11-May-2012 Marek Olšák <maraeo@gmail.com> r600g: remove slab allocator for pipe_resource (used mainly for user buffers)
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
b496136af84e396e7890082817b563dc53ac36fc 12-May-2012 Marek Olšák <maraeo@gmail.com> gallium: remove user_buffer_create from the interface

Nothing uses it now.
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
31a25dac98ea20ba853128f98987c6358d8e0598 27-Apr-2012 Dave Airlie <airlied@redhat.com> r600g: setup COLOR1 for possible dual-src in the framebuffer bind

As pointed out by Marek, if we have only one cb, we may as well add this
single register write here rather than adding it in the draw loop.

Reviewed-by: Marek Olšák <maraeo@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
bb4c5d72d7c7cb1d9e7016e2c07c36875f30011a 11-May-2012 Marek Olšák <maraeo@gmail.com> Merge branch 'gallium-userbuf'

Conflicts:
src/gallium/docs/source/screen.rst
src/gallium/drivers/nv50/nv50_state.c
src/gallium/include/pipe/p_defines.h
src/mesa/state_tracker/st_draw.c
4a26454e979251db25bab68685835fa32c099429 22-Apr-2012 Dave Airlie <airlied@redhat.com> r600g: bypass alpha for integer types (v2)

This moves the alpha test control to derived state and disables alpha
testing for integer fbs.

fbo-blending test in piglit gets further when we do this (not a pass
but less fail).

v2: drop the fb_sx_alpha_test_control

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
507337864fa80caf9f26602324d2c28dd0a75d61 24-Apr-2012 Marek Olšák <maraeo@gmail.com> gallium: change set_constant_buffer to be UBO-friendly
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
23b948057ad33cf0b27e5c88a8e9ff7dbfa0573c 01-Apr-2012 Marek Olšák <maraeo@gmail.com> r600g: move updating vertex buffer state into set_vertex_buffers
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
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_pipe.h
428855eea3e99d94474df6df0cb8dfc4a8819702 11-Apr-2012 Marek Olšák <maraeo@gmail.com> r600g: don't share u_upload_mgr with u_vbuf, create its own
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
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_pipe.h
2d03d4f4a365d7af5f4dac20700009152eba1682 31-Mar-2012 Marek Olšák <maraeo@gmail.com> u_vbuf: override set_vertex_buffers
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
31714ea4d5a20285f398286fe45b53d0609926dd 31-Mar-2012 Marek Olšák <maraeo@gmail.com> u_vbuf: override set_index_buffer

This makes u_vbuf_mgr call the driver instead of the other way around.
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
e382a0c14251a3000090ee75765f8d88d1b20409 09-Apr-2012 Vadim Girlin <vadimgirlin@gmail.com> r600g: store glsl_feature_level in the r600_screen

Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
Reviewed-by: Michel Dänzer <michel@daenzer.net>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
d1cc87c0b64c2221b079015a6c3b593af83f0758 24-Mar-2012 Dave Airlie <airlied@redhat.com> r600g: initial r600 dual src blending support

survives piglit with no regressions on rv610/evergreen

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
34e53adc51ade8d53d74b6ae35bec90f1a6b9b29 02-Apr-2012 Marek Olšák <maraeo@gmail.com> r600g: inline r600_upload_index_buffer
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
a633d82ce352a69fd54a2b0e262a91f27f478119 02-Apr-2012 Marek Olšák <maraeo@gmail.com> r600g: remove dead code after the rework

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

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

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
c76462b45f1e3a0aa2ee7971191e30e8a5f52015 30-Mar-2012 Marek Olšák <maraeo@gmail.com> r600g: rework state emission of vertex buffers

This reduces a little of CPU overhead.
The idea is to translate pipe vertex buffers directly into the CS
and not using any intermediate representations.

Framerate in Torcs:
before: 32.2
after: 34.6

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
5c03d1fa0fbe130153a2e4c937f684c680ca20b2 30-Mar-2012 Marek Olšák <maraeo@gmail.com> r600g: kill off the fallback for crazy src_offset values

st/mesa doesn't allow src_offset to be greater than stride and the maximum
stride r600 supports is 2047.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
bc95152f1d3bf0dbf79d81e6b9956fd60198e3df 31-Mar-2012 Marek Olšák <maraeo@gmail.com> r600g: determine in advance if hw has vertex cache
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
669d8766ff3403938794eb80d7769347b6e52174 31-Mar-2012 Marek Olšák <maraeo@gmail.com> r600g: optimize r600_resource_va

Avoid calling get_radeon_bo and inline it.
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
80e4d18f84748f903cea07b9bba2d519cfa4163a 08-Mar-2012 Marek Olšák <maraeo@gmail.com> Revert "r600g: rework rasterizer discard for evergreen"

I will use SX_MISC instead.

This reverts commit 734792e83fdc526623d8fe0a60479648c936bd53.

Conflicts:

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

so that we don't have to include r600_hw_context_priv.h outside of
the *hw_context* files.
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
f71f5edf78572ae87b9efb897df49efab1a53558 24-Feb-2012 Marek Olšák <maraeo@gmail.com> r600g: if pixel shader is NULL, bind a dummy one

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

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

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

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
aacd653834264b70a2537aff7914762b39f0683f 26-Feb-2012 Marek Olšák <maraeo@gmail.com> r600g: rework scissor for r600-r700

We must use VPORT_SCISSOR, because that's the only one we can use for multiple
scissor rectangles in ARB_viewport_array.

R700 can use the VPORT_SCISSOR_ENABLE bit, but R600 doesn't have that and must
emit a 8192x8192 rectangle if scissor is disabled.

This commit also cleanups magic numbers in create_rs_state.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
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_pipe.h
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_pipe.h
b85fc0ac7e9795b773edad22e20eb3270f4909bd 24-Feb-2012 Marek Olšák <maraeo@gmail.com> r600g: move initialization of use_surface flag into screen_create

Also change the type to bool and give it a less ambiguous name.
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
5d2de9232d3bee91a6df49d1558fa00995a235c5 08-Feb-2012 Marek Olšák <maraeo@gmail.com> r600g: move invariant register updates into start_cs for evergreen and cayman
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
fbebd431ec4e2e461a0cbcd5f3a04a000b8f6bbf 03-Feb-2012 Marek Olšák <maraeo@gmail.com> r600g: move invariant register updates into start_cs for r6xx-r7xx
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
e2809849ecac69615ece294a55ee355afaac33d3 02-Feb-2012 Marek Olšák <maraeo@gmail.com> r600g: add a depth misc state which depends on occlusion queries

This is a state which is derived from other states and is actually the first
state which doesn't correspond to any gallium state.

There are two state flags:
bool occlusion_query_enabled
bool flush_depthstencil_enabled

Additional flags can be added later if needed, e.g. bool hiz_enabled.
The emit function will have to figure out the register values by itself.

It basically just emits the registers when the state changes.
This commit also adds a few helper functions for writing registers directly
into a command stream.
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
182fd4c54476ced92b61412b0cac5be32e257b53 02-Feb-2012 Marek Olšák <maraeo@gmail.com> r600g: move all invariant state from draw_vbo into start_cs
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
f126253040654d52db134063a69ebaf0c417d410 31-Jan-2012 Marek Olšák <maraeo@gmail.com> r600g: turn init_config into a command buffer for starting a CS

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

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

v2: emit context_control in cayman's start_cs too
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
b0b81218132b6952de987dca21b9750d8d51b7f0 16-Feb-2012 Marek Olšák <maraeo@gmail.com> r600g: remove the workaround for quads and provoking vertex
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
73191026b4198a3dce86dac015f973616f76363a 02-Feb-2012 Marek Olšák <maraeo@gmail.com> r600g: remove redundant r600_context::vs_so_stride_in_dw
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
8cd03b933cf868ff867e2db4a0937005a02fd0e4 14-Feb-2012 Simon Farnsworth <simon.farnsworth@onelan.co.uk> r600g: Use a fake reloc to sleep for fences

r300g is able to sleep until a fence completes rather than busywait because
it creates a special buffer object and relocation that stays busy until the
CS containing the fence is finished.

Copy the idea into r600g, and use it to sleep if the user asked for an
infinite wait, falling back to busywaiting if the user provided a timeout.

Note: this is a candidate for the stable branches.

Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
014198ec8860d8a0abfd6aa0ddd8db9d26febdbb 14-Feb-2012 Marek Olšák <maraeo@gmail.com> r600g: consolidate set_blend_color code
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
5cc9aa0e02f222fd6a8f16f65d8c7f5eda06f893 14-Feb-2012 Marek Olšák <maraeo@gmail.com> r600g: consolidate more translate functions
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
9a20130e5f703e9e9279965183993b95907c7d6b 14-Feb-2012 Marek Olšák <maraeo@gmail.com> r600g: consolidate some translate functions
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
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_pipe.h
38bf2763482b4f1b6d95cd51aecec75601d8b90f 31-Jan-2012 Marek Olšák <maraeo@gmail.com> r600g: remove unused variable num_dest_buffers
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
74027a9ba250f07a77ee40e105c50c27e4fc3bc0 30-Jan-2012 Marek Olšák <maraeo@gmail.com> r600g: remove dead code for tracking relocations
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
0813e58a3e41faf6f2072d034dfdc6198a3a1fee 30-Jan-2012 Marek Olšák <maraeo@gmail.com> r600g: rework cache flushing

This also significantly improves the RV670 flush by using the CB1 flush
*always* and also DEST_BASE_0_ENA, which appears to magically fix some tests.
I am not entirely sure, but it's possible that RV670 flushing is fixed
completely.

v2: fix cayman by flushing texture cache instead of vertex cache

Thanks to Dave Airlie for testing Cayman.
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
2fe521fa419ee153afb6295289dc5e95d3229858 30-Jan-2012 Marek Olšák <maraeo@gmail.com> r600g: add a new simple API for state emission
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
621e0db71c5ddcb379171064a4f720c9cf01e888 30-Jan-2012 Marek Olšák <maraeo@gmail.com> r600g: remove redundant pm4 and pm4_cdwords in r600_context

These only mirrored radeon_winsys_cs.
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
302862defa61b2cee1ae24159aca306f090ca854 29-Jan-2012 Marek Olšák <maraeo@gmail.com> r600g: remove the now-useless internal flush callback
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
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_pipe.h
78293b99b23268e6698f1267aaf40647c17d95a5 29-Jan-2012 Marek Olšák <maraeo@gmail.com> r600g: remove u8,u16,u32,u64 types
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
85db52025189c88437f82369716ffe88429dc08b 29-Jan-2012 Marek Olšák <maraeo@gmail.com> r600g: don't use r600_context_reg on r6xx-r7xx

Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
b1b969f670c50a15110fd41527ccbc7e885e1cdd 29-Jan-2012 Marek Olšák <maraeo@gmail.com> r600g: don't use r600_context_reg on evergreen

Just getting rid of things which use the register mask.

Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
a494301f7fd4c93df67396d296a3edc6acfa44c3 29-Jan-2012 Marek Olšák <maraeo@gmail.com> r600g: don't use register mask for PA_CL_CLIP_CNTL

Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
97acf2ca59defd3bcba946cdb014ee7b440f9186 29-Jan-2012 Marek Olšák <maraeo@gmail.com> r600g: don't use register mask for PA_CL_VS_OUT_CNTL

Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
a652cc40b9641d0b51e0a8533924a50073a50aae 29-Jan-2012 Marek Olšák <maraeo@gmail.com> r600g: don't use register mask for PA_SU_SC_MODE_CNTL

It's always emitted in draw_vbo.

Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
2000086fcd5174f121f61dd6df5948c67101e148 29-Jan-2012 Marek Olšák <maraeo@gmail.com> r600g: don't add PA_SC_LINE_STIPPLE to rasterizer_state

It's always emitted in draw_vbo.

Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
84b4b2a8aacf6655d3f2a9f03dec3913a00aabdb 29-Jan-2012 Marek Olšák <maraeo@gmail.com> r600g: don't use register mask for CB_COLOR_CONTROL on r6xx-r7xx

Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
a2361946e782b57f0c63587841ca41c0ea707070 28-Jan-2012 Marek Olšák <maraeo@gmail.com> r600g: rework and consolidate stencilref state setting

Stop using the register mask.

Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
5345e3ea86a3e942ccef083019a76b38b05f3f14 28-Jan-2012 Marek Olšák <maraeo@gmail.com> r600g: don't use register mask for SQ_GPR_RESOURCE_MGMT_1

Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
f183cc9ce3ad1d043bdf8b38fd519e8f437714fc 27-Jan-2012 Marek Olšák <maraeo@gmail.com> r600g: set minimum point size to 1.0 for non-sprite non-aa points
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
1a9d2b764295f561aa9c24f504bd8cf3f95e7f54 24-Jan-2012 Vadim Girlin <vadimgirlin@gmail.com> r600g: fix linear and flat interpolation

Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
c2b800cf38b299c1ab1c53dc0e4ea00c7acef853 23-Jan-2012 Marek Olšák <maraeo@gmail.com> r600g: nuke the fallback for vertex and fragment color clamping
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
54e8dcaad65cbe3603730414fd8d76ac53f89a86 20-Jan-2012 Vadim Girlin <vadimgirlin@gmail.com> r600g: implement clip vertex v2

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

Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
91d47296967ebfaf685f3870998ea0a1450ecf55 15-Jan-2012 Vadim Girlin <vadimgirlin@gmail.com> r600g: implement clip distances

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
725a820b926575265e6790601a0defd9c30947dc 06-Jan-2012 Vadim Girlin <vadimgirlin@gmail.com> r600g: implement two-sided lighting (v3)

v2: select the colors in the pixel shader

v3: fix rs state creation for pre-evergreen

Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
2449695e822421fdcaf1c66dffc12d7d705ea69d 17-Dec-2011 Marek Olšák <maraeo@gmail.com> gallium: improve the pipe_stream_output_info struct (v2)

There are 3 changes:

1) stride is specified for each buffer, not just one, so that drivers don't
have to derive it from the outputs

2) new per-output property dst_offset, which specifies the offset
into the buffer in dwords where the output should be stored,
so that drivers don't have to compute the offsets manually;
this will also be useful for gl_SkipComponents
from ARB_transform_feedback3

3) register_mask is removed, instead, there is start_component
and num_components; register_mask with non-consecutive 1s
doesn't make much sense (some hardware cannot do packing of components)

Christoph Bumiller: fixed nvc0.

v2: resolve merge conflicts in Draw and clean it up
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
bb1f0cf3508630a9a93512c79badf8c493c46743 02-Dec-2011 Jerome Glisse <jglisse@redhat.com> r600g: add support for virtual address space on cayman v11

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

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

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

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
7dd2d29a560a53d42d15f9ac06ba2ee7cd312ed9 30-Dec-2011 Michel Dänzer <michel.daenzer@amd.com> r600g: Manage fences per screen rather than per context.

A fence is a screen object and can outlive the context it was created from.
The previous code would access freed memory in that case, resulting in
various problems.

Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=44151
https://bugs.freedesktop.org/show_bug.cgi?id=44007

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

NOTE: This is a candidate for the 7.11 branch.

Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Mathias Fröhlich <Mathias.Froehlich@web.de>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
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_pipe.h
fba685a0995e76f86af5920163297e5c3b32fb4b 22-Nov-2011 Marek Olšák <maraeo@gmail.com> u_vbuf_mgr: rename to u_vbuf
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
c95bd12bec0834715894ee42e89e26c31a4ffac4 20-Nov-2011 Marek Olšák <maraeo@gmail.com> r600g: use u_vbuf_mgr to set/get the index buffer
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
e532c710c60f0895e32af6562ac2855aa7d5eb63 04-Nov-2011 Vadim Girlin <vadimgirlin@gmail.com> r600g: move SPI setup to PS setup

SPI semantic indices for PS/VS are now static, so we don't
need to update spi config for every shaders combination. We can move
the functionality of r600_spi_update to r600(evergreen)_pipe_shader_ps.

Flatshade state is now controlled by the global FLAT_SHADE_ENA flag
instead of updating FLAT_SHADE for all inputs.

Sprite coord still requires the update of spi setup when
sprite_coord_enable is first changed from zero (enabled), and then
only when it's changed to other non-zero value (enabled for other input).
Change to zero (disabling) and back to the same value is handled via
global SPRITE_COORD_ENA.

New field "sprite_coord_enable" added to "struct r600_pipe_shader"
to track current state for the pixel shader. It's checked in the
r600_update_derived_state.

Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
9212637f34c6600daaf162f95ca49e3c42abbc40 04-Nov-2011 Alex Deucher <alexander.deucher@amd.com> Revert "r600g: move SPI setup to PS setup"

This reverts commit 9804cf3118ae7249098af2a9c78b36f4fb576ee4.

This breaks r6xx.
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
9804cf3118ae7249098af2a9c78b36f4fb576ee4 04-Nov-2011 Vadim Girlin <vadimgirlin@gmail.com> r600g: move SPI setup to PS setup

SPI semantic indices for PS/VS are now static, so we don't
need to update spi config for every shaders combination. We can move
the functionality of r600_spi_update to r600(evergreen)_pipe_shader_ps.

Flatshade state is now controlled by the global FLAT_SHADE_ENA flag
instead of updating FLAT_SHADE for all inputs.

Sprite coord still requires the update of spi setup when
sprite_coord_enable is first changed from zero (enabled), and then
only when it's changed to other non-zero value (enabled for other input).
Change to zero (disabling) and back to the same value is handled via
global SPRITE_COORD_ENA.

New field "sprite_coord_enable" added to "struct r600_pipe_shader"
to track current state for the pixel shader. It's checked in the
r600_update_derived_state.

Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
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_pipe.h
344039d81d3cc079dd73b3b703ff613c344904e0 26-Oct-2011 Marek Olšák <maraeo@gmail.com> r600g: cleanup draw_vbo and add comments
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
90ce3cdde9fb2dd507b4e21c5456a3371f5996bc 17-Sep-2011 Marek Olšák <maraeo@gmail.com> r600g: remove struct radeon (or what's left of it)

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
518557d74abd4ce035dae079ff6eb1b08cc639d0 17-Sep-2011 Marek Olšák <maraeo@gmail.com> r600g: move family and chip_class from struct radeon to r600_screen

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
6101b6d442b06a347c001fe85848d636ab7df260 11-Sep-2011 Marek Olšák <maraeo@gmail.com> r600g: merge r600_bo with r600_resource

I have moved 'last_flush' and 'binding' from r600_bo to winsys/radeon.
The other members are now part of r600_resource.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
28fb79891101c23c75982726c81112caa96f9275 25-Sep-2011 Marek Olšák <maraeo@gmail.com> u_vbuf_mgr: s/u_vbuf_mgr_/u_vbuf_
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
f97acf40155a5d63a70ac6875df8128cb91d2369 11-Sep-2011 Marek Olšák <maraeo@gmail.com> r600g: remove unused function r600_buffer_from_handle
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
3603d157889544230f1787bbdc4915ccd7461c59 11-Sep-2011 Marek Olšák <maraeo@gmail.com> r600g: compute tiling info in the pipe, not in the winsys

The winsys doesn't need it.
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
c4519c3aec37f5cb3db8fe7e8ead13ae04e792b5 02-Sep-2011 Marek Olšák <maraeo@gmail.com> r600g: fix texture array filtering

This fixes piglit/fbo-generatemipmap-array.

It looks like SQ_TEX_SAMPLER_WORD0_0.TEX_ARRAY_OVERRIDE should be set
for array textures in order to disable filtering between slices,
which adds a dependency between sampler views and sampler states.

This patch reworks sampler state updates such that they are postponed until
draw time. TEX_ARRAY_OVERRIDE is updated according to bound sampler views.

This also consolidates setting the texture state between vertex and
pixel shaders.
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
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_pipe.h
47dcfb8dab517e2c92af2f4813b0f5ad200b8b07 07-Aug-2011 Marek Olšák <maraeo@gmail.com> r600g: set read/write usage flags for each relocation

This takes advantage of the new GEM_WAIT ioctl when mapping buffers.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
c79e9f0ed59d561849a0a4fbaafe87d5064d3e8c 04-Aug-2011 Marek Olšák <maraeo@gmail.com> r600g: enable thread offloading

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
2ce783d8ddec1b1fcadc0798af0ebb045bba1cc4 02-Aug-2011 Marek Olšák <maraeo@gmail.com> r600g: put radeon_winsys in screen::winsys, don't include drm_driver in the pipe

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
ce12f826927cf2d3ac3fd70d893abfb07adc23db 22-Jul-2011 Marek Olšák <maraeo@gmail.com> r600g: first step into winsys/radeon

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
b3b946b0ab88c1d7edeab183d8ad5125ba223392 09-Jul-2011 Henri Verbeet <hverbeet@gmail.com> r600g: Store the chip class in r600_pipe_context.

Signed-off-by: Henri Verbeet <hverbeet@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
949896b82f19f72333e7f6c132bd55e023f0170f 09-Jul-2011 Henri Verbeet <hverbeet@gmail.com> r600g: Fix the type of the family field in r600_pipe_context.

Signed-off-by: Henri Verbeet <hverbeet@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
18cdb9c8abfb5d9f009fcb36ab788f48792207e4 05-Jul-2011 Henri Verbeet <hverbeet@gmail.com> r600g: Use the actual Evergreen functions to query format support on Evergreen.

Signed-off-by: Henri Verbeet <hverbeet@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
feec48114b261f43c8dc94c06cfccea3b6ef1689 25-Jun-2011 Alex Deucher <alexdeucher@gmail.com> r600g: eg+ support for FS_COLOR0_WRITES_ALL_CBUFS

Evergreen+ don't support multi-writes so we need to emulate
it in the shader. Fixes the following piglit tests:
fbo-drawbuffers-fragcolor
ati_draw_buffers-arbfp-no-option

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
eafd331cf3b024001abd3f64861f41cd33a9acb2 24-Jun-2011 Vadim Girlin <vadimgirlin@gmail.com> r600g: implement fragment and vertex color clamp

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

Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
d81126b714cd4de0ab036bb22bf4103f5fcec015 24-Jun-2011 Vadim Girlin <vadimgirlin@gmail.com> r600g: optimize spi update

Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
badf0335ef70223204fbae3e8fdef718cdb3ad19 19-Jun-2011 Marek Olšák <maraeo@gmail.com> r600g: implement seamless_cube_map on r600-r700

st/mesa guarantees that all bound sampler states have the same value
in seamless_cube_map.
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
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_pipe.h
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_pipe.h
04554c7d3a3b28e8103e50ed54f1ac57c6c11017 08-Jun-2011 Dave Airlie <airlied@redhat.com> r600g: adjust vs/ps gprs on r600/r700 cards when needed.

Ideally we'd have a compiler and register spilling and all that
but this is good enough for now to avoid the gpu hang in piglit,

glsl-vs-vec4-indexing-temp-dst-in-nested-loop-combined

on r600/r700 cards.

based on r600c patch
Andre Maasikas <amaasikas@gmail.com>
r600c: bump sq gpr resources if a shader needs more than default

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
5f2deba9f3f3f9230a9fdd2848e20c1e23e98b8f 08-Jun-2011 Brian Paul <brianp@vmware.com> gallium: s/bool/boolean/
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
cf0f02e501eb2eb8edcf2c4f6db826b0cdd31c9b 03-Jun-2011 Dave Airlie <airlied@redhat.com> r600g: move resource setting to its own structures.

resource setting could be a fair bit more lightweight,
this patch just separates the resource structs from the standard
reg tracking structs in the driver, later patches will improve
the winsys.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
b0dc2d0c3b964c2670554a91b4ee79360fd5934a 02-Jun-2011 Dave Airlie <airlied@redhat.com> r600g: add spi state and move spi/vgt to modify register

This modifies the VGT state and move the SPI setup to its own discrete state.

It then just sets the SPI state up and the VGT state up once and modifies
them thereafter.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
573758fd094431c8b3220786cea28dfdb4cfad1c 02-Jun-2011 Dave Airlie <airlied@redhat.com> r600g: decrease CPU time on set buffer resources

This splits the initialisation and the setting of values in the resource
buffers. We only should end up initialising once and updateing with new values
when needed.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
7f6672f6a737bc1c47e36c9567bd6d908855ce4d 02-Jun-2011 Dave Airlie <airlied@redhat.com> r600g: prepare for passing ctx into _r600_pipe_state_add_reg

This moves the functions down the file, and also adds a ctx parameter.

This is precursor patch just moving stuff around and getting it ready.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
9eb86f89a9d6471a92519064547a3937a6f89762 02-Jun-2011 Dave Airlie <airlied@redhat.com> r600g: optimise state setting in r600_draw_vbo.

This drop the r600_draw_vbo CPU usage on a run of nexuiz from 1.40% to 0.72%
in sysprof for me on my Fusion APU.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
b9e8ea6a2717422ea71887beda093fe1dfbd1200 09-May-2011 Jerome Glisse <jglisse@redhat.com> r600g: anisotropic filtering support for evergreen hw

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
f60235e73a5260f92630ce472e06d8c5c00414fb 05-May-2011 Henri Verbeet <hverbeet@gmail.com> r600g: Match alpha ref precision to color format precision.

This fixes piglit fbo-alphatest-formats on Evergreen.

Signed-off-by: Henri Verbeet <hverbeet@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
d7577ae3a6d6e174ab36d244f6bd4dedd63c3d1d 25-Apr-2011 Henri Verbeet <hverbeet@gmail.com> r600g: Cleanup the big endian support a bit.

In particular, make sure the code is at least compiled on little endian
systems.

Signed-off-by: Henri Verbeet <hverbeet@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
d737857ed2ff4313fd6046dcd80018c6308a53c5 25-Apr-2011 Dave Airlie <airlied@redhat.com> r600g: drop r600_helper.c no point in it

move the one function into state common

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
0a9cec3475fb14be8aa5fa66557d338556cd8ed5 24-Apr-2011 Dave Airlie <airlied@redhat.com> r600g: fix glean clipflat test.

the provoking vertex doesn't apply to quad/strip/polygon.

This fixes clipFlat on r600g.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
6067a2a67f9a7aab2aee051469bea8af03747a95 20-Apr-2011 Fredrik Höglund <fredrik@kde.org> r600g: don't flush the dest caches on every draw

Keep track of when the caches are dirty, and only flush them when
the framebuffer state is set and when the context is flushed.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
d04ab396a54d29948363c3353efa5aaa888076a3 29-Mar-2011 Fredrik Höglund <fredrik@kde.org> r600g: implement texture barrier
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
948e1eb8e9c166ad5b74abc630d0760768ce78c9 29-Mar-2011 Fredrik Höglund <fredrik@kde.org> r600g: implement the pipe_screen fence functions

v2: Allocate the fences from a single shared buffer object.
v3: Allocate the r600_fence structs in blocks of 16.
Spin a few times before calling sched_yield in r600_fence_finish().
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
a2ef38368b638caba26418a68c157d52b6bcf797 14-Mar-2011 Henri Verbeet <hverbeet@gmail.com> r600g: Move fetch shader register setup to r600_state.c / evergreen_state.c.

Signed-off-by: Henri Verbeet <hverbeet@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
f262ba26f045699f0aa871b6be966714e9dd6740 14-Mar-2011 Henri Verbeet <hverbeet@gmail.com> r600g: Move r600_pipe_shader_ps() to r600_state.c.

Signed-off-by: Henri Verbeet <hverbeet@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
c0ca43e507dce11bd4a78bc08a8e92997cd385bf 14-Mar-2011 Henri Verbeet <hverbeet@gmail.com> r600g: Move r600_pipe_shader_vs() to r600_state.c.

The idea behind this is that anything touching registers should be in
r600_state.c or evergreen_state.c. This is also consistent with
evergreen_pipe_shader_vs().

Signed-off-by: Henri Verbeet <hverbeet@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
eac50295fccb983281423e825e57ab4a2a5bbbfb 07-Mar-2011 Henri Verbeet <hverbeet@gmail.com> r600g: Constant buffers can contain up to 4096 constants.
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
929be6eb95c33d5885a89b36dbc82db64c1344fe 01-Mar-2011 Dave Airlie <airlied@redhat.com> r600g: start using drm minor version to enable things.

If the drm minor version is > 9 (i.e. whats in drm-next),
we enable s3tc + texture tiling by default now.

this changes R600_FORCE_TILING to R600_TILING which can
be set to false to disable tiling on working drm.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
f0b202ec73855bd9e1b29909c8ac90393043cb8b 08-Feb-2011 Marek Olšák <maraeo@gmail.com> r600g: slab-allocate buffer and transfer structures
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
467023e8080489abeff53e18ac83560eaf851827 08-Feb-2011 Marek Olšák <maraeo@gmail.com> r600g: use the same upload buffer for vertices, indices, and constants

This should reduce memory consumption.
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
077c448d184799e0d9ec962013ec784c6a5c1807 07-Feb-2011 Henri Verbeet <hverbeet@gmail.com> r600g: Add support for relative addressing on constant buffers.

Relative addressing of constant buffers can't work properly through the
kcache, since you can only address within the currently locked kcache window.
Instead, this patch binds the constant buffer as a shader resource, and then
explicitly fetches the constant using a vertex fetch with fetch type
VTX_FETCH_NO_INDEX_OFFSET from the shader. There's probably still some room
for improvement, doing the fetch right before the instruction that needs the
value may not be quite optimal for example.
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
5c59eebfae55240a2308c02b0a6ad971c9b83304 07-Feb-2011 Henri Verbeet <hverbeet@gmail.com> r600g: Generalize the pipe_add_vertex_attrib() functions.

This allows them to be used for VS or PS buffer resources as well.
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
b9fd1a1e4b2121225195056ea1b679d62c399ddb 07-Feb-2011 Henri Verbeet <hverbeet@gmail.com> r600g: Remove vs_resource and ps_resource from the pipe context.

These are practically unused, only the vs_resource array is being abused for
fetch shader resources.
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
aa8a2224a3df111a1613f0baefebc00883e1b70b 07-Feb-2011 Marek Olšák <maraeo@gmail.com> r600g: use the new vertex buffer manager
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
a6a710cbe7425819e1cd5ad5f2085311c092f2e7 03-Feb-2011 Henri Verbeet <hverbeet@gmail.com> r600g: Make some more things static.
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
aa31a5cbc7b52eb1d03c6eab414479249830eabf 03-Feb-2011 Dave Airlie <airlied@redhat.com> r600g: flush differences back to DB copy.
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
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_pipe.h
73a40d1383071fe25599509d218f4c40d049988d 29-Jan-2011 Marek Olšák <maraeo@gmail.com> r600g: rework vertex format fallback

1) Only translate the [min_index, max_index] range.
2) Upload translated vertices via the uploader.
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
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_pipe.h
8c631cfeae29b5236928f759e222aa35e6e4984c 28-Jan-2011 Marek Olšák <maraeo@gmail.com> r600g: rework vertex buffer uploads

Only upload the [min_index, max_index] range instead of [0, userbuf_size].
This an important optimization.

Framerate in Lightsmark:
Before: 22 fps
After: 75 fps

The same optimization is already in r300g.
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
15730a8207374936e354d945730070cb29c9547c 29-Jan-2011 Marek Olšák <maraeo@gmail.com> r600g: consolidate set_constant_buffer functions
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
73fb2b7c9074c8878e8ff617ad6d6a21b93b66f2 29-Jan-2011 Marek Olšák <maraeo@gmail.com> r600g: consolidate vertex_buffer_update functions
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
2d7738eb2bee41656953d1173926f546c6711bad 28-Jan-2011 Marek Olšák <maraeo@gmail.com> r600g: consolidate draw_vbo functions (v2)

Added a conditional to spi_update per Dave's comment.
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
5cefe1eddd4854490aebdf4f138ffb07aa59073c 28-Jan-2011 Marek Olšák <maraeo@gmail.com> r600g: make r600_drawl inherit pipe_draw_info
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
02f8f134643f631364ca621fe0b6d6b72449e00c 28-Jan-2011 Marek Olšák <maraeo@gmail.com> r600g: add back u_upload_mgr integration

I can't see a performance difference with this code, which means all
the driver-specific code removed in this commit was unnecessary.

Now we use u_upload_mgr in a slightly different way than we did before it got
dropped. I am not restoring the original code "as is" due to latest
u_upload_mgr changes that r300g performance benefits from.

This also fixes:
- piglit/fp-kil
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
9e964baaf34fedec385a750b97fd6684fc52584a 18-Jan-2011 Henri Verbeet <hverbeet@gmail.com> r600g: Kill trailing whitespace.
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
6d9ca78ef7bf831b9b63f4bda68623cbae627508 07-Jan-2011 Dave Airlie <airlied@redhat.com> r600g: allow constant buffers to be user buffers.

This provides an upload facility for the constant buffers since Marek's
constants in user buffers changes.

gears at least work on my evergreen now.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
8fc6c5fb3684ba3f4a8810b8db09540de1187782 24-Dec-2010 Henri Verbeet <hverbeet@gmail.com> r600g: r600_blit_uncompress_depth() can't fail.
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
ca8b4ca4788545a3f85efd7904f1a07b95f00c86 22-Dec-2010 Henri Verbeet <hverbeet@gmail.com> r600g: Remove the unused "pframebuffer" field from r600_pipe_context.
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
121079bd679ea0729834cca79ab3c424e006feed 09-Dec-2010 Jerome Glisse <jglisse@redhat.com> r600g: indentation cleanup

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
7055068eeae7f64166cca513282829d5a3e9b9d3 08-Dec-2010 Jerome Glisse <jglisse@redhat.com> r600g: specialized upload manager

Allow important performance increase by doing hw specific implementation
of the upload manager helper. Drop the range flushing that is not hit with
this code (and wasn't with previous neither). Performance improvement are
mostly visible on slow CPU.

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
69251fc4cd5f71be403e08398bc43d19052a640d 07-Dec-2010 Jerome Glisse <jglisse@redhat.com> r600g: remove dead code

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
fa86fc564aea4e40c89f6fc889e6a5bf817634b3 04-Dec-2010 Jerome Glisse <jglisse@redhat.com> r600g: build fetch shader from vertex elements

Vertex elements change are less frequent than draw call, those to
avoid rebuilding fetch shader to often build the fetch shader along
vertex elements. This also allow to move vertex buffer setup out
of draw path and make update to it less frequent.

Shader update can still be improved to only update SPI regs (based
on some rasterizer state like flat shading or point sprite ...).

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
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_pipe.h
0b841b0349d7aca218eac4e9d9b7b1406ad71944 03-Dec-2010 Jerome Glisse <jglisse@redhat.com> r600g: update polygon offset only when rasterizer or zbuffer change

Aim is to build as little state as possible in draw functions.

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
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_pipe.h
f609b2ab0342d77a8beca9efb5fbc5b66ff98295 18-Nov-2010 Jerome Glisse <jglisse@redhat.com> r600g: add fetch shader capabilities

Use fetch shader instead of having fetch instruction in the vertex
shader. Allow to restrict shader update to a smaller part when
vertex buffer input layout changes.

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
a20c2347a0bb9e0e1591b070ee5d0cac81168114 24-Oct-2010 Dave Airlie <airlied@redhat.com> r600g: drop more common state handling code
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
ccb9be105602edaaff196046e324c8cb4a12fe0a 23-Oct-2010 Tilman Sauerbeck <tilman@code-monkey.de> r600g: Added r600_pipe_shader_destroy().

Not yet complete.

Signed-off-by: Tilman Sauerbeck <tilman@code-monkey.de>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
9612b482e2c8e994709bcaab79185224b4d76670 23-Oct-2010 Dave Airlie <airlied@redhat.com> r600g: merge more of the common r600/evergreen state handling
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
9f9d24c89a2286f952b123c703e8268d2f1aa719 23-Oct-2010 Tilman Sauerbeck <tilman@code-monkey.de> r600g: Fixed r600_vertex_element leak.

Signed-off-by: Tilman Sauerbeck <tilman@code-monkey.de>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
f39e6c9c816b603a4ed8fd8cda8569b7e13c1f68 21-Oct-2010 Dave Airlie <airlied@redhat.com> r600g: start splitting out common code from eg/r600.

no point duplicating code that doesn't touch hw, also make it easier
to spot mistakes
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
e68c83a5a01a8a659857310cfcc785c7e028d3f0 21-Oct-2010 Dave Airlie <airlied@redhat.com> r600g: initial translate state support
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
a1b7333c07797faea29f50fd49b6c5e877beca0a 17-Oct-2010 Dave Airlie <airlied@redhat.com> r600g: do proper tracking of views/samplers.

we need to do pretty much what r300g does in for this, this fixes some
issues seen while working on tiling.
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
7b3fa038830663de9bceded1b0dd2d64b8cf39c4 08-Oct-2010 Dave Airlie <airlied@redhat.com> r600g: get tiling info from kernel
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
26dacce2c0b33a2a6aff77e6094c06e385e1a541 14-Oct-2010 Dave Airlie <airlied@redhat.com> r600g: drop unused context members
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
560427667006f01ad9146fa07185924d4f3a08d6 13-Oct-2010 Dave Airlie <airlied@redhat.com> r600g: the vs/ps const arrays weren't actually being used.

completely removed them.
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
d59498b78041b8a7a046ac2c892e7a1896f59ca2 13-Oct-2010 Dave Airlie <airlied@redhat.com> r600g: reduce size of context structure.

this thing will be in the cache a lot, so having massive big struct
arrays inside it won't be helping anyone.
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
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_pipe.h
294c9fce1b924beddf198a3cce738b88eabb5537 04-Oct-2010 Jerome Glisse <jglisse@redhat.com> r600g: rename radeon_ws_bo to r600_bo

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
084c29baedf2702200b310d6e63a5d0f95aaac37 01-Oct-2010 Dave Airlie <airlied@redhat.com> r600g: fix evergreen depth flushing.

although evergreen can apparantly sample direct from 24-bit,
just make it work with the current method for now.
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
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_pipe.h
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_pipe.h
1235becaa1cf7e29f580900592563c3329d326de 29-Sep-2010 Jerome Glisse <jglisse@redhat.com> r600g: cleanup

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
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_pipe.h
723a655ed3f3092f6fa74a903fb774a3cec93b79 28-Sep-2010 Jerome Glisse <jglisse@redhat.com> r600g: avoid rebuilding the vertex shader if no change to input format

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
5e07483ed9783cd34e3d3dca74f9f1d002f1ce9d 27-Sep-2010 Jerome Glisse <jglisse@redhat.com> r600g: fix routing btw vertex & pixel shader

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
d2f24c4d75579acf27cf6d1b0620afa302a1b78f 26-Sep-2010 Jerome Glisse <jglisse@redhat.com> r600g: use depth decompression in new path

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
58c243905b0cfcbf1b0299a0f7f0ea90755e36cc 25-Sep-2010 Jerome Glisse <jglisse@redhat.com> r600g: fix vertex resource & polygon offset

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
6613605d79bc84043e74c7eefe8025c2c7c4978b 24-Sep-2010 Jerome Glisse <jglisse@redhat.com> r600g: bring over fix from old path to new path

Up to 2010-09-19:
r600g: fix tiling support for ddx supplied buffers
9b146eae2521d8e5f6d3cbefa4f6f7737666313a

user buffer seems to be broken... new to fix that.

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h
b360c050b60a578ce6c75cbc872dd54999b3f6c5 22-Sep-2010 Jerome Glisse <jglisse@redhat.com> r600g: initial evergreen support in new path

This doesn't work yet.

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/r600_pipe.h