History log of /external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
29144d0f34d9325a3549e4ed0feecc0577c70358 24-Oct-2016 Marek Olšák <marek.olsak@amd.com> gallium/radeon: stop using PIPE_BIND_CUSTOM

it has no effect whatsoever

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
c3f716fe6749c65c7a75e48b57d0bdccb93526ef 17-Aug-2016 Marek Olšák <marek.olsak@amd.com> gallium/radeon: merge USER_SHADER and INTERNAL_SHADER priority flags

there's no reason to separate these

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
1ffe77e7bb2486ea74cda077ed2a9622b758395c 16-Jul-2016 Marek Olšák <marek.olsak@amd.com> gallium: split transfer_inline_write into buffer and texture callbacks

to reduce the call indirections with u_resource_vtbl.

The worst call tree you could get was:
- u_transfer_inline_write_vtbl
- u_default_transfer_inline_write
- u_transfer_map_vtbl
- driver_transfer_map
- u_transfer_unmap_vtbl
- driver_transfer_unmap

That's 6 indirect calls. Some drivers only had 5. The goal is to have
1 indirect call for drivers that care. The resource type can be determined
statically at most call sites.

The new interface is:
pipe_context::buffer_subdata(ctx, resource, usage, offset, size, data)
pipe_context::texture_subdata(ctx, resource, level, usage, box, data,
stride, layer_stride)

v2: fix whitespace, correct ilo's behavior

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Acked-by: Roland Scheidegger <sroland@vmware.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
489bb5473b96a22ae445107297b66bc38b4701f7 26-Jun-2016 Jan Vesely <jan.vesely@rutgers.edu> r600,compute: Reserve vtx 3 for kernel arguments

Using vtx 0 does not work for dynamic offsets.

v2: add explanatory comment

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
a446c40e0a7a2659e0eb89f8d1ede90d502e2589 30-Jun-2016 Marek Olšák <marek.olsak@amd.com> gallium/radeon: remove unused code - radeon_llvm_util.*

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
9827fc3f038f551dccc64e3addfaf87e724408f9 03-Jul-2016 Francesco Ansanelli <francians@gmail.com> r600: fix duplicate 'const' declaration

Signed-off-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
0558564200466878f1a86e7a192d085b551079c4 07-May-2016 Nicolai Hähnle <nicolai.haehnle@amd.com> gallium/radeon: add radeon_emitted to check for non-trivial IBs

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
77959ce07b75f83bff2aae30e4e78aa3c50ab70f 09-May-2015 Jan Vesely <jan.vesely@rutgers.edu> r600,compute: create vtx buffer for text + rodata

Reserve buffer id 2

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
828d84c8e2a85a771adf80b3b7f47d1e24f4840a 06-Apr-2016 Dave Airlie <airlied@redhat.com> r600: use radeon_emit in a few more places in evergreen_compute

This is just a cleanup of the code.

Acked-by: Tom Stellard <thomas.stellard@amd.com>
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
0c40b6f96c705d1e67b5d58ff90774cd0be524a7 06-Apr-2016 Dave Airlie <airlied@redhat.com> r600: make compute global buffer functions static.

This moves things around so that the global buffer handling
functions in evergreen_compute.c are static.

Acked-by: Tom Stellard <thomas.stellard@amd.com>
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
a5d247dda0d0dfcae5c1e2b730cb7e53e5315676 06-Apr-2016 Dave Airlie <airlied@redhat.com> r600: make two compute functions static.

These aren't used outside evergreen_compute.c

Acked-by: Tom Stellard <thomas.stellard@amd.com>
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
41558efa87d610515f88d2c562c785f976f4f641 06-Apr-2016 Dave Airlie <airlied@redhat.com> r600: using pipe_grid_info more in evergreen_compute.

No reason to pull the pieces apart here, also make
one of the functions static as it's unused outside this.

Acked-by: Tom Stellard <thomas.stellard@amd.com>
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
a6e17d7d698bb19b28e4120c1587605545723c1e 06-Apr-2016 Dave Airlie <airlied@redhat.com> r600: in evergreen_compute use ctx consistently instead of ctx_

Acked-by: Tom Stellard <thomas.stellard@amd.com>
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
aeb2be3a2f1839b91532b178b997b20ddb69eb13 06-Apr-2016 Dave Airlie <airlied@redhat.com> r600: use rctx consistently in evergreen_compute.c

Another step towards cleaning this up.

Acked-by: Tom Stellard <thomas.stellard@amd.com>
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
0560c82ff6366edd1ffb52508839586e018457c6 06-Apr-2016 Dave Airlie <airlied@redhat.com> r600: cleanup whitespace in evergreen_compute.c

This aligns the code with the style of the rest of the driver.

Makes editing it a lot less painful.

Acked-by: Tom Stellard <thomas.stellard@amd.com>
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
20a09897a6c757a93cfb385ede7a7eb5e79cc18f 11-Mar-2016 Marek Olšák <marek.olsak@amd.com> r600g: remove TGSI->LLVM translation

It was useful for testing and as a prototype for radeonsi bringup,
but it's not used anymore and doesn't support OpenGL 3.3 even.

v2: try to fix OpenCL build

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Tested-by: Jan Vesely <jan.vesely@rutgers.edu>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
c54f38494cb58f13a9a6cc6d0e2d75a7603ba105 23-Feb-2016 Marek Olšák <marek.olsak@amd.com> r600g: remove support for DRM < 2.12.0
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
bfd695e1d2975e5dd5363c2e7fcc3084a28457aa 12-Jan-2016 Samuel Pitoiset <samuel.pitoiset@gmail.com> gallium: add a new interface for pipe_context::launch_grid()

This introduces pipe_grid_info which contains all information to
describe a launch_grid call. This will be used to implement indirect
compute in the same fashion as indirect draw.

Changes from v2:
- correctly initialize pipe_grid_info for nv50/nvc0

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
100796c15c3a1467d03abc424e6f1494da02f376 10-Feb-2016 Marek Olšák <marek.olsak@amd.com> gallium/radeon: drop support for LLVM 3.5

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>

v2: adjust the comment in the amdgpu winsys
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
e377037bef521a985dc801371f195ada327ec304 05-Feb-2016 Jan Vesely <jan.vesely@rutgers.edu> r600, compute: Do not overwrite pipe_resource.screen

found by inspection.

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
1e864d73799cfbcb29c4f22722b908bc39643347 30-Jan-2016 Marek Olšák <marek.olsak@amd.com> gallium/radeon: rename & reorder members of radeon_info

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
efc4142acd0e5e43b9896440c1c8191d41ff273a 21-Jan-2016 Jan Vesely <jan.vesely@rutgers.edu> r600,compute: Plug few memory leaks

v2: drop inline keyword
drop radeon_llvm_dispose_kernel_module wrapper

v3: move definitions to .c file
use in radeonsi

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
e1dcd333e4e0757f3fd2b010bc14b36340b70c39 21-Jan-2016 Jan Vesely <jan.vesely@rutgers.edu> r600: Typos and whitespace fixes

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
255ccd1e99e2eb8ad9ae001e3796afc344ca15c8 30-Dec-2015 Nicolai Hähnle <nicolai.haehnle@amd.com> gallium/radeon: pass pipe_debug_callback into radeon_llvm_compile (v2)

This will allow us to send shader debug info via the context's debug callback.

Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com> (v1)
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.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/evergreen_compute.c
09d25a9b37eeb34b3475fe486b82e12e904bcb28 30-Nov-2015 Dave Airlie <airlied@redhat.com> r600/eg: workaround bug with tess shader and dynamic GPRs.

When using tessellation on eg/ni chipsets, we must disable
dynamic GPRs to workaround a hw bug where the GPU hangs
when too many things get queued.

This implements something like the r600 code to emit
the transition between static and dynamic GPRs, and to
statically allocate GPRs when tessellation is enabled.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.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/evergreen_compute.c
c2e701c7cac73808b82a101e05d5e10a541bf55c 23-Nov-2015 Dave Airlie <airlied@redhat.com> r600: add missing register to initial state

We really should initialise HS/LS_2 and SQ_LDS_ALLOC exists
on all evergreen not just cayman, so we should initialise
it as well.

Reviewed-by: Glenn Kennard <glenn.kennard@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
6cc8f6c6a72b1aab7bb506deb220e04ae50d8c2b 07-Nov-2015 Marek Olšák <marek.olsak@amd.com> gallium/radeon: inline the r600_rings structure

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

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

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

this name should be easy to understand without other knowledge

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
d2e63ac042ce4b0ff7d4645fc9bc8d2d73967b7e 30-Aug-2015 Marek Olšák <marek.olsak@amd.com> gallium/radeon: rename write_*_reg functions

e.g. radeon_set_context_reg is nicer and looks consistent next to
radeon_emit().

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
78493c33183bf2a4b8be0e58963162ef2e3aa54a 07-Jul-2015 Zoltan Gilian <zoltan.gilian@gmail.com> r600,compute: setup compute sampler states and views

v2: Add compute mode flag to sampler state setup (Marek).
Drop branches which avoid reference counting (Marek).
Simplify unset branch condition (Marek).

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.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/evergreen_compute.c
7dd1f45bc41c4a936b0ff84400840524bb9f8871 11-Jul-2015 Marek Olšák <marek.olsak@amd.com> radeonsi: store shader disassemblies in memory for future users

This will be used by the new ddebug pipe. I'm including it now to avoid
conflicts with other patches.
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
7a30668ad665f3315106e1a959c6186dea79a24a 28-Apr-2015 Jason Ekstrand <jason.ekstrand@intel.com> util: Move gallium's linked list to util

The linked list in gallium is pretty much the kernel list and we would like
to have a C-based linked list for all of mesa. Let's not duplicate and
just steal the gallium one.

Acked-by: Connor Abbott <cwabbott0@gmail.com>
Reviewed-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
b9e41b587fb15458c9b0c21b10d421d882083e27 31-Oct-2014 Tom Stellard <thomas.stellard@amd.com> r600g: Fix build with opencl and radeonsi disabled
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
fa07f4b68a20e54e1766876203b11a8b90ff120f 26-Sep-2014 Tom Stellard <thomas.stellard@amd.com> r600g/compute: Enable PIPE_SHADER_IR_NATIVE for compute shaders v2

v2:
- Drop dependency on LLVM >= 3.5.1
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
bf7a60f41d897be4d9804ba7c46633e38501ffe7 20-Aug-2014 Tom Stellard <thomas.stellard@amd.com> r600g/compute: Don't initialize vertex_buffer_state masks to 0x2

cs_vertex_buffer_state.enabled_mask and
cs_vertex_buffer_state.dirty_mask are both updated when
r600_set_constant_buffer() is called, so we don't need to manually
update these values.

This fixes a crash with OpenCL programs that have a kernel with no
arguments.

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

CC: "10.2" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
a9f0b08bacc9422bf98ce14d97b6c60a1b80df04 20-Aug-2014 Tom Stellard <thomas.stellard@amd.com> r600g/compute: Use the first parameter in evergreen_set_global_binding()
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
b5f877ef7ecdcd2c4033d26bd08381d16a116d0d 09-Aug-2014 Marek Olšák <marek.olsak@amd.com> r600g/compute: fix compile warnings

Trivial.
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
f6c392a2705322a01ff75d5bdc2c8f7df42b484b 06-Aug-2014 Marek Olšák <marek.olsak@amd.com> r600g: use gpu_address from r600_resource

Reviewed-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
0bc1fa22d8408fbc16bd5edd3b9d796e5c4e7296 25-Jul-2014 Jan Vesely <jan.vesely@rutgers.edu> r600g/compute: Fix singed/unsigned comparison compiler warnings.

The iteration variables go from 0 anyway.

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
fb237ba746b494f74c6584666f1184c4453700e1 23-Jul-2014 Tom Stellard <thomas.stellard@amd.com> Revert "r600g/compute: Fix warnings"

This reverts commit 467f1585e28adba0e94ef593de131bc327f098bb.

This breaks the build on some systems.
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
467f1585e28adba0e94ef593de131bc327f098bb 23-Jul-2014 Tom Stellard <thomas.stellard@amd.com> r600g/compute: Fix warnings
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
c997007f66d402aea5a76da5b260b49a91c0fce1 19-Jun-2014 Bruno Jiménez <brunojimen@gmail.com> r600g/compute: Defer the creation of the temporary resource

For the first use of a buffer, we will only need the temporary
resource in the case that a user wants to write/map to this buffer.

But in the cases where the user creates a buffer to act as an
output of a kernel, then we were creating an unneeded resource,
because it will contain garbage, and would be copied to the pool,
and destroyed when promoting.

This patch avoids the creation and copies of resources in
this case.

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
fec2a08eae67806d47a435eca8395eb250ccddb4 19-Jun-2014 Jan Vesely <jan.vesely@rutgers.edu> r600g/compute: Handle failures in compute_memory_pool_finalize

Reviewed-by: Bruno Jiménez <brunojimen@gmail.com>
Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
257d697fb92c617161a2a90607c4cde6f7b9034a 18-Jun-2014 Bruno Jiménez <brunojimen@gmail.com> r600g/compute: Map only against intermediate buffers

With this we can assure that mapped buffers will never change
its position when relocating the pool.

This patch should finally solve the mapping bug.

v2: Use the new is_item_in_pool util function,
as suggested by Tom Stellard

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
e3dfe3f7b2323428d68851341f541944a89d1783 18-Jun-2014 Bruno Jiménez <brunojimen@gmail.com> r600g/compute: Add statuses to the compute_memory_items

These statuses will help track whether the items are mapped
or if they should be promoted to or demoted from the pool

v2: Use the new is_item_in_pool util function,
as suggested by Tom Stellard

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
0038402753b6a5c2a56f66ae0ffe25a9eb1d1b63 18-Jun-2014 Bruno Jiménez <brunojimen@gmail.com> r600g/compute: Add an intermediate resource for OpenCL buffers

This patch changes completely the way buffers are added to the
compute_memory_pool. Before this, whenever we were going to
map a buffer or write to or read from it, it would get placed
into the pool. Now, every unallocated buffer has its own
r600_resource until it is allocated in the pool.

NOTE: This patch also increase the GPU memory usage at the moment
of putting every buffer in it's place. More or less, the memory
usage is ~2x(sum of every buffer size)

v2: Cleanup

v3: Use temporary variables to avoid so many castings in functions,
as suggested by Tom Stellard

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
112c1b14ed8bb76f8c125db659b8e6b0cd2fc5e6 19-May-2014 Bruno Jiménez <brunojimen@gmail.com> r600g/compute: Use %u as the unsigned format

This fixes an issue when running cl-program-bitcoin-phatk
piglit test where some of the inputs have negative values

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
70cf6639c331342619e65c46db925d115bf51920 12-Apr-2014 Marek Olšák <marek.olsak@amd.com> gallium/radeon: create and return a fence in the flush function

All flush functions get a fence parameter. cs_create_fence is removed.

Reviewed-by: Christian König <christian.koenig@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
bee2b96b02161cf75cfe17f7d30d14f2b838423f 20-Feb-2014 Marek Olšák <marek.olsak@amd.com> r600g,radeonsi: set priorities for relocations
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
6b4e03216a75ed20fb3fa0eb963a6cd5617469d7 09-Feb-2014 Marek Olšák <marek.olsak@amd.com> r600g: remove r600_resource.h

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
945d87f95877e198fb2203f47a4ebbccae883978 13-Feb-2014 Tom Stellard <thomas.stellard@amd.com> clover: Pass buffer offsets to the driver in set_global_binding() v3

The offsets will be stored in the handles parameter. This makes
it possible to use sub-buffers.

v2:
- Style fixes
- Add support for constant sub-buffers
- Store handles in device byte order

v3:
- Use endian helpers

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
d51dbe048afd2131eb3675e9cd868ce73325a61d 24-Jan-2014 Tom Stellard <thomas.stellard@amd.com> r600g/compute: Emit DEALLOC_STATE on cayman after dispatching a compute shader.

This is necessary to prevent the next SURFACE_SYNC packet from
hanging the GPU.

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

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>

CC: "9.2" "10.0" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
0bd858d7ff4a16228164e3157aca846edeb6c228 08-Nov-2013 Aaron Watry <awatry@gmail.com> r600/compute: Use the correct FREE macro when deleting compute state

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>

CC: "10.0" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
e19717d075bd26c16e12564ed578ff519a5ce57a 12-Dec-2013 Aaron Watry <awatry@gmail.com> r600/compute: Free compiled kernels when deleting compute state

v2: Remove unnecessary null pointer check

CC: "10.0" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
8c9a9205d96b5ac0718218bfa952a5b4b6ad939c 12-Dec-2013 Aaron Watry <awatry@gmail.com> radeon/compute: Stop leaking LLVMContexts in radeon_llvm_parse_bitcode

Previously we were creating a new LLVMContext every time that we called
radeon_llvm_parse_bitcode, which caused us to leak the context every time
that we compiled a CL program.

Sadly, we can't dispose of the LLVMContext at the point that it was being
created because evergreen_launch_grid (and possibly the SI equivalent) was
assuming that the context used to compile the kernels was still available.

Now, we'll create a new LLVMContext when creating EG/SI compute state, store
it there, and pass it to all of the places that need it.

The LLVM Context gets destroyed when we delete the EG/SI compute state.

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>

CC: "10.0" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
8252847b7b283ed7f7c514ce44246a2926a0add2 19-Dec-2013 Aaron Watry <awatry@gmail.com> r600g: Fix spelling error

Trivial change, testing commit access
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
7a30cd7085b6879d3858f5c1a6945fbe30c818a6 20-Nov-2013 Tom Stellard <thomas.stellard@amd.com> r600g/compute: Add a work-around for flushing issues on Cayman

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>

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

CC: "10.0" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
da7daade92a4fb54c5cbb74ec6c2fba0ed895ff8 05-Nov-2013 Fabio Pedretti <fabio.ped@libero.it> r600/compute: silence unused var warning

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
a3ed98f7aa85636579a5696bf036ec13e5c9104a 08-Oct-2013 Brian Paul <brianp@vmware.com> gallium: new, unified pipe_context::set_sampler_views() function

The new function replaces four old functions: set_fragment/vertex/
geometry/compute_sampler_views().

Note: at this time, it's expected that the 'start' parameter will
always be zero.

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Tested-by: Emil Velikov <emil.l.velikov@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
13ac38b4ef94d3ab32d509e89a1131ce1ce67437 18-Sep-2013 Tom Stellard <thomas.stellard@amd.com> r600g/compute Improve debugging output
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
27c054edf0ae92c8c498830e7c7510fa94f5dcfd 12-Sep-2013 Brian Paul <brianp@vmware.com> radeon: don't use old bind_vertex/fragment_sampler_states() hooks
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
868791f0baa0b51f4255c839448d3ca87ab1aa35 29-Sep-2013 Laurent Carlier <lordheavym@gmail.com> r600g: Fix build failure introduced with r600_texture.c consolidation

It seems that case with opencl enabled was forgotten

Signed-off-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
f0435ebb07d01a77ca0d98967a002898811a5206 27-Aug-2013 Tom Stellard <thomas.stellard@amd.com> r600g/compute: Don't flush the cs in pipe_context::launch_grid()

This is the state tracker's responsibility.

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

This streamout state code will be used by radeonsi.

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

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

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

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

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

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Tested-by: Tom Stellard <thomas.stellard@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
4f8048bb5a8558ae4313b12ffd70b593cc629fe8 22-Jul-2013 Jonathan Charest <jcharest+mesa-dev@gmail.com> r600g/compute: Added missing address space checking of kernel parameters

To have non-static buffers in local memory, it is necessary to pass them
as arguments to the kernel.

For r600, the correct lds size must be set to the SQ_LDS_ALLOC register.
The correct size is the clover size plus the size reported by the
compiler.

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

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

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
b1693194eee7e99ef8abb6c8319834bd93879400 24-Jun-2013 Marek Olšák <maraeo@gmail.com> r600g/compute: disable unused colorbuffer slots

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Tested-by: Tom Stellard <thomas.stellard@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
47e35eff9dec8666efd70ffd08e4b03f83215026 28-Jun-2013 Tom Stellard <thomas.stellard@amd.com> r600g: Fix build

Broken since 2840bec56f79347b95dec5458b20d4a46d1aa445 when opencl is
disabled.
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
2840bec56f79347b95dec5458b20d4a46d1aa445 12-Jun-2013 Tom Stellard <thomas.stellard@amd.com> r600g/compute: Accept LDS size from the LLVM backend

And allocate the correct amount before dispatching the kernel.

Tested-by: Aaron Watry <awatry@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
2639fca1f017907af7ce446fba60b520aa376abc 12-Jun-2013 Tom Stellard <thomas.stellard@amd.com> r600g/compute: Move compute_shader_create() function into evergreen_compute.c

Tested-by: Aaron Watry <awatry@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
b1797c3a3867ab60419bb9ec13dd9cb842edcbe3 14-May-2013 Tom Stellard <thomas.stellard@amd.com> r600g/compute: Use common transfer_{map,unmap} functions for global resources

Reviewed-by: Marek Olšák <maraeo@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
65d67bcc4b23ca5b1fe1bd961fffb7ecf50864b9 14-May-2013 Tom Stellard <thomas.stellard@amd.com> r600g/compute: Use common transfer_{map,unmap} functions for kernel inputs

Reviewed-by: Marek Olšák <maraeo@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
5752be0cb78c2a2e30b88eaf8addc173ae483e9e 26-Apr-2013 Tom Stellard <thomas.stellard@amd.com> r600g/compute: Fix build error in debug code

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
abb96fdea70546f974ba59cbd00bc54afee9cfdb 24-Apr-2013 Jerome Glisse <jglisse@redhat.com> winsys/radeon: consolidate tracing into winsys v2

This move the tracing timeout and printing into winsys and add
an debug environement variable for it (R600_DEBUG=trace_cs).

Lot of file touched because of winsys API changes.

v2: Do not write lockup file if ib uniq id does not match last one

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Reviewed-by: Marek Olšák <maraeo@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
53fbae7eace466d8fe22173c01518fbde7102d6c 22-Apr-2013 Tom Stellard <thomas.stellard@amd.com> r600g/compute: Removed unused and untested code

There was a lot of code in evergreen_compute_internal.c that was not
being used at all and most of it was duplicating code from other parts
of the driver.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
f986087d5ce7b0dee3287263acae856ea70e0777 22-Apr-2013 Tom Stellard <thomas.stellard@amd.com> r600g/compute: Use a constant buffer to store kernel parameters v2

v2:
- Fix usage of set_constant_buffer()
- Fix typo in comment

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Marek Olšák <maraeo@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
83a00a1de8b2acb9d500fcdfa9031dc709f6d7d1 22-Apr-2013 Tom Stellard <thomas.stellard@amd.com> r600g/compute: Don't use radeon_winsys::buffer_wait() after dispatching a kernel

The state tracker should be responsible for waiting for the kernel to
finish.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
09e47f7a25a4e9daa06692819e8fdfdb412c7a46 22-Apr-2013 Tom Stellard <thomas.stellard@amd.com> r600g/compute: Fix input buffer size calculation

Buffer size should be in bytes not dwords.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
97bfcddde0a0e827cb868b38c7da8d8692da6cce 07-Mar-2013 Tom Stellard <thomas.stellard@amd.com> r600g/llvm: Move llvm wrapper functions into the radeon directory
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
2c339f801516d4f6201e8bd4cd0fe0033f36046a 03-Mar-2013 Marek Olšák <maraeo@gmail.com> r600g: remove r600.h, move the stuff elsewhere (mostly to r600_pipe.h)

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

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

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

Reviewed-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
4bf0ebdd4fc8dbcab9333ff8805af35a91e6848b 01-Mar-2013 Marek Olšák <maraeo@gmail.com> r600g: use a single env var R600_DEBUG, disable bytecode dumping

Only the disassembler is used to dump shaders. Here's a few examples
how to use R600_DEBUG.

Log compute info:
R600_DEBUG=compute

Dump all shaders:
R600_DEBUG=fs,vs,gs,ps,cs

Dump pixel shaders only:
R600_DEBUG=ps

Disable Hyper-Z:
R600_DEBUG=nohyperz

Disable the LLVM backend:
R600_DEBUG=nollvm

Or use any combination of the above, or print all options:
R600_DEBUG=help

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.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/evergreen_compute.c
72916698b056d0559263e84372bb45cd83a1c2c2 28-Jan-2013 Jerome Glisse <jglisse@redhat.com> r600g: fix segfault with old kernel

Old kernel do not have dma support, patch pushed were missing some
of the check needed to not use dma.

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

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

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

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.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/evergreen_compute.c
a58bf9d8f9c683b98aee4759533c997557b2c848 22-Dec-2012 Marek Olšák <maraeo@gmail.com> r600g: rename GPU_FLUSH -> INVAL_READ_CACHES

because that's what it does.
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
24b1206ab2dcd506aaac3ef656aebc8bc20cd27a 01-Nov-2012 Jerome Glisse <jglisse@redhat.com> r600g: rework flusing and synchronization pattern v7

This bring r600g allmost inline with closed source driver when
it comes to flushing and synchronization pattern.

v2-v4: history lost somewhere in outer space
v5: Fix compute size of flushing, use define for flags, update
worst case cs size requirement for flush, treat rs780 and
newer as r7xx when it comes to streamout.
v6: Fix num dw computation for framebuffer state, remove dead
code, use define instead of hardcoded value.
v7: Remove dead code

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
6d7d821e3df7dde45fbd7ae2988eee8e94baa14f 13-Dec-2012 Maxence Le Dore <maxence.ledore@gmail.com> r600g/radeonsi: Silence warnings

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
bd274eb8f4bcc6aeb561d60ffac89dbe8e504d9f 23-Oct-2012 Alex Deucher <alexander.deucher@amd.com> r600g: split cayman common state out into a shared function

And use it for compute. This should improve compute support
on cayman.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Marek Olšák <maraeo@gmail.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
480e1463057c70ca1b197cbba5a9b1c153d8b052 23-Oct-2012 Alex Deucher <alexander.deucher@amd.com> r600g/compute: always CONTEXT_CONTROL packet at start of CS

It's required. The CP uses this to properly allocate new
contexts. Also do a CS partial flush since we are updating
CONFIG regs which are single state.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Marek Olšák <maraeo@gmail.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
e5a9bf55231aa14f6ae831a5c47d7176cb6c230b 17-Oct-2012 Marek Olšák <maraeo@gmail.com> gallium: remove unused data pointer from pipe_transfer

Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
b1e7bd769081a5ebe87b6a5caba4265b0b5bfe0c 16-Oct-2012 Tom Stellard <thomas.stellard@amd.com> r600g: Fix segfault in r600_compute_global_transfer_map()

This segfault was caused by commit
369e46888904c6d379b8b477d9242cff1608e30e, however it is my fault for not
testing the patch while it was on the list.
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
369e46888904c6d379b8b477d9242cff1608e30e 08-Oct-2012 Marek Olšák <maraeo@gmail.com> gallium: unify transfer functions

"get_transfer + transfer_map" becomes "transfer_map".
"transfer_unmap + transfer_destroy" becomes "transfer_unmap".

transfer_map must create and return the transfer object and transfer_unmap
must destroy it.

transfer_map is successful if the returned buffer pointer is not NULL.
If transfer_map fails, the pointer to the transfer object remains unchanged
(i.e. doesn't have to be NULL).

Acked-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.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/evergreen_compute.c
d8ea64697bbdbc1c7987db00a55954e4cf094ad5 05-Oct-2012 Marek Olšák <maraeo@gmail.com> r600g: remove the "atom" variable from r600_command_buffer

r600_command_buffer is not an atom.

The "atoms" have evolved into state slots (or groups of state slots) where
you can bind states. There is a fixed amount of atoms (state slots)
in the context.

The command buffers are nothing like that. They represent states, not state
slots.

We could probably give r600_atom a better name someday.

Reviewed-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
45288cd2b6dc37c80cc18b777e58d11e65f61d7c 09-Oct-2012 Tom Stellard <thomas.stellard@amd.com> r600g: Fix build with --enable-opencl
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
d0349c91c85c929de0502c4aeddae5b0ee3a1b7b 09-Oct-2012 Marek Olšák <maraeo@gmail.com> r600g: remove unused variables to fix compile warnings
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
b57eba365496307c35373f5c303996731b994f25 13-Sep-2012 Tom Stellard <thomas.stellard@amd.com> r600g: Handle multiple kernels in the same program v2

v2:
- Use pc parameter of launch_grid
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
defe8f0da263c95935dd14d106141d0a22d24aba 24-Sep-2012 Tom Stellard <thomas.stellard@amd.com> r600g: Set RADEON_FLUSH_KEEP_TILING_FLAGS when emitting compute cs
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
c8b06dccff9cb89e20378664f3cbc202876a180f 18-Sep-2012 Marek Olšák <maraeo@gmail.com> r600g: atomize framebuffer state

Tested on RS880, Evergreen and Cayman.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
69b387fbdc42883fb2e9c27942f97e62ca06be4d 01-Aug-2012 Tom Stellard <thomas.stellard@amd.com> r600g: Invalidate texture cache when creating vertex buffers for compute v2

Compute shaders fetch data from vertex buffers via the texture cache, so
we need to make sure the texture cache is flushed.

v2:
- Fix rebase mistake
- Fix spelling in comment

Reviewed-by: Marek Olšák <maraeo@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
69d814885bbb274d3223f44c421293e7591f51c0 13-Sep-2012 Tom Stellard <thomas.stellard@amd.com> r600g: Add some comments and debug printfs to compute code

Reviewed-by: Marek Olšák <maraeo@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
fd2e34d557c07fba5a6e344e915f73dcfb66d0b4 09-Sep-2012 Marek Olšák <maraeo@gmail.com> r600g: simplify flushing

Based on the patch called "simplify and fix flushing and synchronization"
by Jerome Glisse.

Rebased, removed unneded code, simplified more and cleaned up.

Also, SH_ACTION_ENA is not set when changing shaders (hw doesn't seem
to need it). It's only used to flush constant buffers.

Reviewed-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
5ceb87286f2e1b5b8527ba18a844abf450903175 05-Sep-2012 Jerome Glisse <jglisse@redhat.com> r600g: order atom emission v3

To avoid GPU lockup registers must be emited in a specific order
(no kidding ...). This patch rework atom emission so order in which
atom are emited in respect to each other is always the same. We
don't have any informations on what is the correct order so order
will need to be infered from fglrx command stream.

v2: add comment warning that atom order should not be taken lightly
v3: rebase on top of alphatest atom fix

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
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/evergreen_compute.c
fdd8df20e4a730f80bf4c331012d832bffd7072e 24-Jul-2012 Tom Stellard <thomas.stellard@amd.com> r600g: Emit dispatch state for compute directly to the cs

We no longer rely on an evergreen_compute_resource for emitting dispatch
state.

Reviewed-by: Marek Olšák <maraeo@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
dc0b8a46289d0e6b10c542df0856d51a0aabf9b0 24-Jul-2012 Tom Stellard <thomas.stellard@amd.com> r600g: Initialize VGT_PRIMITIVE_TYPE in the start_cs_cmd atom

The value of this register will always be DI_PT_POINTLIST for compute
shaders.

Reviewed-by: Marek Olšák <maraeo@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
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/evergreen_compute.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/evergreen_compute.c
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/evergreen_compute.c
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/evergreen_compute.c
0ea76916e63f8fc556f5e8f5a46c196d317cd5ad 07-Jul-2012 Marek Olšák <maraeo@gmail.com> r600g: move CB_TARGET_MASK setup into new cb_misc_state

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

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

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
d36499aa62f42192356fd9e34009905ae0e9e6c8 11-Jul-2012 Tom Stellard <thomas.stellard@amd.com> r600g/compute: Add more debugging output
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
da9c8a73ec6fcb0e92204a739c1a7c43f145efef 27-Jun-2012 Tom Stellard <thomas.stellard@amd.com> r600g/compute: Use evergreen_cb() for binding RATs
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
25145de03e980a182b656efce75c33a6129def06 26-Jun-2012 Tom Stellard <thomas.stellard@amd.com> r600g/compute: Move LOOP_CONST initialization to start_compute_cs atom
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
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/evergreen_compute.c
7d0c17fe74ec0a264fb0441e6774f6708e940614 25-Jun-2012 Tom Stellard <thomas.stellard@amd.com> r600g: Only emit start_cs_cmd atom once for compute command streams
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
ff2b417245e8e62b546e27771e36460acc666a8e 07-Jun-2012 Tom Stellard <thomas.stellard@amd.com> r600g: Unify SURFACE_SYNC packet emission for 3D and compute

Drop the compute specific evergreen_set_buffer_sync() function and
instead use the r600_surface_sync_command atom for emitting SURFACE_SYNC
packets.
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
ff08f1ec6fa50cdcebfa825505fd93dd1edd1832 07-Jun-2012 Tom Stellard <thomas.stellard@amd.com> r600g: Enable reusing of compute state
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
92af184690995d3b16731518f7becfaac3538edb 21-May-2012 Christian König <deathsimple@vodafone.de> winsys/radeon: enable IB submission to compute rings v2

This allows to submit things to the compute only
rings on cayman+

v2: rebased on current master and actually make use
of the new flag in evergreen_compute.c

Signed-off-by: Christian König <deathsimple@vodafone.de>
Reviewed-by: Marek Olšák <maraeo@gmail.com>
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
0c4b19ac63efa41242c515824301e6161aceeea5 05-Jun-2012 Tom Stellard <thomas.stellard@amd.com> r600g: Compute support for Cayman
/external/mesa3d/src/gallium/drivers/r600/evergreen_compute.c
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/evergreen_compute.c