1b2bcb6826ff8855e96117c9523821336a3be88a |
|
10-Mar-2017 |
Julien Isorce <julien.isorce@gmail.com> |
winsys/radeon: check null return from radeon_cs_create_fence in cs_flush Follow-up of patch: "radeon_cs_create_fence: check null return from radeon_winsys_bo_create" radeon_drm_cs_flush radeon_cs_create_fence radeon_winsys_bo_create Signed-off-by: Julien Isorce <jisorce@oblong.com> Signed-off-by: Marek Olšák <marek.olsak@amd.com> (cherry picked from commit d08c0930af8aaef5bdf80df618bb906e0b349830) [Emil Velikov: resolve trivial conflicts] Nominated-by: Emil Velikov <emil.velikov@collabora.com> Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Conflicts: src/gallium/winsys/radeon/drm/radeon_drm_cs.c
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
99468c236f09211fcc4716efd400c039079c9a40 |
|
10-Mar-2017 |
Julien Isorce <julien.isorce@gmail.com> |
winsys/radeon: check null in radeon_cs_create_fence Fixes the following segmentation fault: radeon_drm_cs_add_buffer (bo=0x0) at radeon_drm_cs.c -> if (!bo->handle) (gdb) bt 0 radeon_drm_cs_add_buffer (bo=0x0) at radeon_drm_cs.c 1 0x00007fffe73575de in radeon_cs_create_fence radeon_drm_cs.c 2 0x00007fffe7358c48 in radeon_drm_cs_flush radeon_drm_cs.c Signed-off-by: Julien Isorce <jisorce@oblong.com> Signed-off-by: Marek Olšák <marek.olsak@amd.com> (cherry picked from commit d09edb01468ca385b6a8ffe29ac434dc42a78d07) Nominated-by: Emil Velikov <emil.velikov@collabora.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
2b621c47aa515add6452a788c0c27067fc60be20 |
|
27-Dec-2016 |
Marek Olšák <marek.olsak@amd.com> |
gallium/radeon: add new HUD query num-SDMA-IBs Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
6b8a371e00b715b630418ced2ee867e7b2f36b11 |
|
27-Dec-2016 |
Marek Olšák <marek.olsak@amd.com> |
gallium/radeon: rename the num-ctx-flushes query to num-GFX-IBs Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
a1e391e39df2b1d8169e773a30153167ab8e13e8 |
|
12-Sep-2016 |
Nicolai Hähnle <nicolai.haehnle@amd.com> |
winsys/radeon: add fine-grained fences for slab buffers Note the logic for adding fences is somewhat different than for amdgpu, because radeon has no scheduler and we therefore have no guarantee about the order in which submissions from multiple threads are processed. (Ironically, this is only an issue when "multi-threaded submission" is disabled, because "multi-threaded submission" actually means that all submissions happen from a single thread that happens to be separate from the application's threads. If we only supported "multi-threaded submission", the fence handling could be simplified by adding the fences in that thread where everything is serialized.) Reviewed-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
0edebde9a48ab609c636050208505885da363593 |
|
12-Sep-2016 |
Nicolai Hähnle <nicolai.haehnle@amd.com> |
winsys/radeon: add slab buffer list Introducing radeon_bo::hash will reduce collisions between "real" buffers and buffers from slabs. Reviewed-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
cbb9c2f170e364054c644e013277ff95a6ad2f0a |
|
09-Sep-2016 |
Nicolai Hähnle <nicolai.haehnle@amd.com> |
winsys/radeon: separate adding a buffer from updating its reloc data Reviewed-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
6d89a4067627fdf568c6c4e3d9a201fd45d5352b |
|
09-Sep-2016 |
Nicolai Hähnle <nicolai.haehnle@amd.com> |
gallium/radeon: add RADEON_FLAG_HANDLE When passed to winsys->buffer_create, this flag will indicate that we require a buffer that maps 1:1 with a kernel buffer handle. This is currently set for all textures, since textures can potentially be exported to other processes. This is not a huge loss, since the main purpose of this patch series is to deal with applications that allocate many small buffers. A hypothetical application with tons of tiny textures might still benefit from not setting this flag, but that's not a use case I'm worried about just now. Reviewed-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
b8703e363c7f949c7257c4ab1ab12c4663702dad |
|
09-Sep-2016 |
Nicolai Hähnle <nicolai.haehnle@amd.com> |
winsys/radeon: rename nrelocs, crelocs to max_relocs, num_relocs Reviewed-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
d66bbfbeded04cb728a2d8e4356c8e2b5e67ace1 |
|
09-Sep-2016 |
Nicolai Hähnle <nicolai.haehnle@amd.com> |
winsys/radeon: don't pre-allocate the relocations array It's really not necessary. Switch to an exponential resizing strategy. Reviewed-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
81da78bfc34bf0c55a72c496b6069c7a4da0ce20 |
|
09-Sep-2016 |
Marek Olšák <marek.olsak@amd.com> |
winsys/radeon: replace OUT_CS with radeon_emit Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
d0646cc7455df1678a129fa29d142f20f5252759 |
|
02-Aug-2016 |
Marek Olšák <marek.olsak@amd.com> |
winsys/radeon: implement cs_get_next_fence Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
c5ff0d3e65d499dcb466c151ed48cdf67e43cdbb |
|
29-Jul-2016 |
Marek Olšák <marek.olsak@amd.com> |
gallium/radeon: move radeon_winsys::cs_memory_below_limit to drivers Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
076db67217741aa820feadccc66067516d4cf4ca |
|
29-Jul-2016 |
Marek Olšák <marek.olsak@amd.com> |
gallium/radeon: inline radeon_winsys::query_memory_usage Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
9646ae77992f895b481984c9f8861cc64501a4eb |
|
29-Jul-2016 |
Marek Olšák <marek.olsak@amd.com> |
gallium/radeon/winsyses: expose per-IB used_vram and used_gart to drivers The following patches will use this. Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
1c8f17599efe76239bc1cffef5db42e67cf4c900 |
|
29-Jul-2016 |
Marek Olšák <marek.olsak@amd.com> |
gallium/radeon/winsyses: print CS submission error number Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
1a1cc67edd4c1ae08b739adaf78e014b828908de |
|
15-Jul-2016 |
Marek Olšák <marek.olsak@amd.com> |
gallium/radeon: remove RADEON_FLUSH_KEEP_TILING_FLAGS flag always set Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
44bbfedbd9983c61f6a461cbfe2e0dc74eda6d37 |
|
13-Jul-2016 |
Rob Clark <robdclark@gmail.com> |
gallium/u_queue: add optional cleanup callback Adds a second optional cleanup callback, called after the fence is signaled. This is needed if, for example, the queue has the last reference to the object that embeds the util_queue_fence. In this case we cannot drop the ref in the main callback, since that would result in the fence being destroyed before it is signaled. Signed-off-by: Rob Clark <robdclark@gmail.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com> Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
a7d84f7731b2095ed5dc4f741213fef60a55dcd3 |
|
13-Jul-2016 |
Marek Olšák <marek.olsak@amd.com> |
gallium/radeon: add a return value to cs_flush Required by our UVD code. Reviewed-by: Christian König <christian.koenig@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
ed3912d0daae717d70af9c595f1c36d817d9ceec |
|
08-Jul-2016 |
Marek Olšák <marek.olsak@amd.com> |
radeonsi: just save buffer sizes instead of buffers while recording IBs whole buffer objects are not needed Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
1c5a10497ab93495710989fe6c7dd1e776c51b05 |
|
21-Jun-2016 |
Marek Olšák <marek.olsak@amd.com> |
gallium/radeon/winsyses: boolean -> bool, TRUE -> true, FALSE -> false Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Vedran Miletić <vedran@miletic.net> Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
cbb5adb90893a7c03f96f72f0665766a4007affd |
|
11-Jun-2016 |
Marek Olšák <marek.olsak@amd.com> |
gallium/u_queue: allow the execute function to differ per job so that independent types of jobs can use the same queue. Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
404d0d50d8aaf60597668e65a2d7c96cdea53aea |
|
11-Jun-2016 |
Marek Olšák <marek.olsak@amd.com> |
gallium/u_queue: add an option to have multiple worker threads independent jobs don't have to be stuck on only one thread v2: use CALLOC & FREE Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
d794072b3e1f27b96aaf2c476fcd5dcc5fd9d445 |
|
11-Jun-2016 |
Marek Olšák <marek.olsak@amd.com> |
winsys/radeon: use the common job queue for multithreaded command submission v2 v2: fixup after renaming to util_queue_fence Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
89ba076de4c8cfa171365700e6a3b017d5e3eeff |
|
07-May-2016 |
Nicolai Hähnle <nicolai.haehnle@amd.com> |
radeon/winsys: introduce radeon_winsys_cs_chunk We will chain multiple chunks together and will keep pointers to the older chunks to support IB dumping. Reviewed-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
46ad3561be0b820333a515941bfb220591402573 |
|
06-May-2016 |
Nicolai Hähnle <nicolai.haehnle@amd.com> |
radeon/winsys: add cs_check_space Reviewed-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
47b390fe45e5e6f982c60b58985892438959cd8e |
|
17-May-2016 |
Jan Vesely <jano.vesely@gmail.com> |
Treewide: Remove Elements() macro Signed-off-by: Jan Vesely <jano.vesely@gmail.com> Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
60946c0d60610b03bc297df17ec7a3cca1e5f6e8 |
|
30-Apr-2016 |
Marek Olšák <marek.olsak@amd.com> |
gallium/radeon: add a heuristic for better (S)DMA performance Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
77af6bcc26a7be938e05b784da2abf8740466618 |
|
28-Apr-2016 |
Marek Olšák <marek.olsak@amd.com> |
winsys/radeon: count buffer size only once Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
562c4a17b7e4fb56c7db679233b4a48f8b80b0f2 |
|
23-Apr-2016 |
Nicolai Hähnle <nicolai.haehnle@amd.com> |
winsys/radeon: remove use_reusable_pool parameter from buffer_create All callers set this parameter to true. Reviewed-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
f4b77c764a2469b20cfe49ec3ea3cca8e49dea92 |
|
08-Aug-2015 |
Marek Olšák <marek.olsak@amd.com> |
gallium/radeon: move ring_type into winsyses Not used by drivers. Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
8140154ae92c6bd022e409790bb069966a857aed |
|
11-Mar-2016 |
Marek Olšák <marek.olsak@amd.com> |
gallium/radeon: remove old CS tracing Cons: - it was only integrated in r600g - it doesn't work with GPUVM - it records buffer contents at the end of IBs instead of at the beginning, so the replay isn't exact - it lacks an IB parser and user-friendliness A better solution is apitrace in combination with gallium/ddebug, which has a complete IB parser and can pinpoint hanging CP packets. Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.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/winsys/radeon/drm/radeon_drm_cs.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/winsys/radeon/drm/radeon_drm_cs.c
|
eb55610c89af669f442418f32df6df60fc412867 |
|
27-Sep-2015 |
Marek Olšák <marek.olsak@amd.com> |
winsys/radeon: implement cs_get_buffer_list This is more complicated, because tracking priority_usage needed changing the relocs_bo type. Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
93641f43416b8b8be8944e9d1473369bfda7f302 |
|
27-Sep-2015 |
Marek Olšák <marek.olsak@amd.com> |
gallium/radeon: stop using "reloc" in a few places Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.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/winsys/radeon/drm/radeon_drm_cs.c
|
8a9ab86ca6d510763bfe8532071c5fcfd977e3c4 |
|
30-Aug-2015 |
Marek Olšák <marek.olsak@amd.com> |
winsys/radeon: add a flag telling how gfx IBs should be padded This is always false on amdgpu (set by calloc). Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Acked-by: Christian König <christian.koenig@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
e321596e9f66207cc679b4ddbee13d4c8cdb896f |
|
22-Aug-2015 |
Marek Olšák <marek.olsak@amd.com> |
winsys/radeon: handle non-zero finite timeout when waiting for buffers Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
a83c36b5c0c64c717ced76db89bab900006648aa |
|
23-Aug-2015 |
Marek Olšák <marek.olsak@amd.com> |
Revert "radeon/winsys: increase the IB size for VM" This reverts commit 567394112d904096abff1d994ab952f475dfb444. It regressed performance. It looks like smaller IBs are better, because the GPU goes idle quicker and there is less waiting for buffers and fences. Cc: 11.0 <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
2eb067db0febcd71b4182153155e3e43f215624c |
|
16-Apr-2015 |
Marek Olšák <marek.olsak@amd.com> |
winsys/amdgpu: add a new winsys for the new kernel driver v2: - lots of changes according to Emil Velikov's comments - implemented radeon_winsys::read_registers v3: - a lot of new work, many of them adapt to libdrm interface changes Squashed patches: winsys/amdgpu: implement radeon_winsys context support winsys/amdgpu: add reference counting for contexts winsys/amdgpu: add userptr support winsys/amdgpu: allocate IBs like normal buffers winsys/amdgpu: add IBs to the buffer list, adapt to interface changes winsys/amdgpu: don't use KMS handles as reloc hash keys winsys/amdgpu: sync buffer accesses to different rings winsys/amdgpu: use dependencies instead of waiting for last fence v2 gallium/radeon: unify buffer_wait and buffer_is_busy in the winsys interface (amdgpu part) winsys/amdgpu: track fences per ring and be thread-safe winsys/amdgpu: simplify waiting on a variable in amdgpu_fence_wait gallium/radeon: allow the winsys to choose the IB size (amdgpu part) winsys/amdgpu: switch to new amdgpu_cs_query_fence_status interface winsys/amdgpu: handle fence and dependencies merge winsys/amdgpu follow libdrm change to move user fence into UMD winsys/amdgpu: use amdgpu_bo_va_op for va map/unmap v2 winsys/amdgpu: use the new tiling flags winsys/amdgpu: switch to new GTT_USWC definition winsys/amdgpu: expose amdgpu_cs_query_reset_state to drivers winsys/amdgpu: fix valgrind warnings winsys/amdgpu: don't use VRAM with APUs that don't have much of it winsys/amdgpu: require LLVM 3.6.1 for VI because of bug fixes there winsys/amdgpu: remove amdgpu_winsys::num_cpus winsys/amdgpu: align BO size to page size winsys/amdgpu: reduce BO cache timeout winsys/amdgpu: remove useless flushing and waiting in amdgpu_bo_set_tiling winsys/amdgpu: use amdgpu_device_handle as a unique device ID instead of fd winsys/amdgpu: use safer access to amdgpu_fence_wait::signalled winsys/amdgpu: allow maximum IB size of 4 MB winsys/amdgpu: add ip_instance into amdgpu_fence gallium/radeon: add RING_COMPUTE instead of RADEON_FLUSH_COMPUTE winsys/amdgpu: set the ring type at CS initilization winsys/amdgpu: query the GART page size from the kernel winsys/amdgpu: correctly wait for shared buffers to become idle winsys/amdgpu: set the amdgpu_cs_fence structure only once at fence creation winsys/amdgpu: add a specific error message for cs_submit -> -ENOMEM winsys/amdgpu: check num_active_ioctls before calling amdgpu_bo_wait_for_idle winsys/amdgpu: clear user fence BO after allocating it winsys/amdgpu: fix user fences winsys/amdgpu: make amdgpu_winsys_create public winsys/amdgpu: remove thread offloading winsys/amdgpu: flatten the amdgpu_cs_context structure and simplify more v4: require libdrm 2.4.63
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
6dea2456ca82d2c62afbd90327d265c5e78fca9c |
|
15-Jul-2015 |
Marek Olšák <marek.olsak@amd.com> |
winsys/radeon: add a specific error message for cs_submit -> -ENOMEM Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
42d9f6323a523d786fc3797587fdf63048becceb |
|
30-Apr-2015 |
Marek Olšák <marek.olsak@amd.com> |
winsys/radeon: add an interface for contexts Same idea as in libdrm_amdgpu. A command stream can only be created for a specific context and it's always submitted to that context. This will mainly be used by amdgpu and it's required by the GPU reset status query too. (radeon only has a basic version of the query and thus doesn't need this) Reviewed-by: Christian König <christian.koenig@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
592ce6e2d1b2c804a95cb00c06e7bbb9d83f554b |
|
06-Aug-2015 |
Marek Olšák <marek.olsak@amd.com> |
gallium/radeon: unify buffer_wait and buffer_is_busy in the winsys interface The timeout parameter covers both cases. Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
c2a5d1dcb14acbd2db4a674453a8622d4b9a572a |
|
02-Aug-2015 |
Marek Olšák <marek.olsak@amd.com> |
winsys/radeon: loosen up the requirements for how much memory IBs can use Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
567394112d904096abff1d994ab952f475dfb444 |
|
31-Jul-2015 |
Marek Olšák <marek.olsak@amd.com> |
radeon/winsys: increase the IB size for VM Luckily, there is a kernel query, so use the size from that. It currently returns 256KB. It can be increased in the kernel. Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
d587742650c262dea8007474b9956fd65472f8b2 |
|
27-Jun-2015 |
Marek Olšák <marek.olsak@amd.com> |
gallium/radeon: allow the winsys to choose the IB size Picked from the amdgpu branch. Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
a2a1a5805fd617e7f3cc8be44dd79b50da07ebb9 |
|
21-Jul-2015 |
Ilia Mirkin <imirkin@alum.mit.edu> |
gallium: replace INLINE with inline Generated by running: git grep -l INLINE src/gallium/ | xargs sed -i 's/\bINLINE\b/inline/g' git grep -l INLINE src/mesa/state_tracker/ | xargs sed -i 's/\bINLINE\b/inline/g' git checkout src/gallium/state_trackers/clover/Doxyfile and manual edits to src/gallium/include/pipe/p_compiler.h src/gallium/README.portability to remove mentions of the inline define. Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Acked-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
64c379a3a8e397bf949705efecfc745ec4d7a843 |
|
13-Aug-2014 |
Andreas Boll <andreas.boll.dev@gmail.com> |
winsys/radeon: fix hawaii accel_working2 comment accel_working2 returns 3 if the new firmware is used. The comment wasn't updated in v3 of commit: 36771dc winsys/radeon: fix nop packet padding for hawaii Signed-off-by: Andreas Boll <andreas.boll.dev@gmail.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
36771dc60fc3934b326eeff4aa6d3a4d438222eb |
|
04-Aug-2014 |
Andreas Boll <andreas.boll.dev@gmail.com> |
winsys/radeon: fix nop packet padding for hawaii The initial firmware for hawaii does not support type3 nop packet. Detect the new hawaii firmware with query RADEON_INFO_ACCEL_WORKING2. If the returned value is 3, then the new firmware is used. This patch uses type2 for the old firmware and type3 for the new firmware. It fixes the cases when the old firmware is used and the user wants to manually enable acceleration. The two possible scenarios are: - the kernel has no support for the new firmware. - the kernel has support for the new firmware but only the old firmware is available. Additionaly this patch disables GPU acceleration on hawaii if the kernel returns a value < 2. In this case the kernel hasn't the required fixes for proper acceleration. v2: - Fix indentation - Use private struct radeon_drm_winsys instead of public struct radeon_info - Rename r600_accel_working2 to accel_working2 v3: - Use type2 nop packet for returned value < 3 v4: - Fail to initialize winsys for returned value < 2 Cc: mesa-stable@lists.freedesktop.org Cc: Alex Deucher <alexander.deucher@amd.com> Cc: Jérôme Glisse <jglisse@redhat.com> Cc: Marek Olšák <marek.olsak@amd.com> Cc: Michel Dänzer <michel.daenzer@amd.com> Signed-off-by: Andreas Boll <andreas.boll.dev@gmail.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
cce58147eb1450a26c03756af37da52d180580c4 |
|
24-Jul-2014 |
Jerome Glisse <jglisse@redhat.com> |
winsys/radeon: fix indentation Can we please keep it clean and avoid ending up in messy situation like ddx. Signed-off-by: Jérôme Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
07c65b85eada8dd34019763b6e82ed4257a9b4a6 |
|
19-Jun-2014 |
Michel Dänzer <michel.daenzer@amd.com> |
r600g/radeonsi: Use write-combined CPU mappings of some BOs in GTT Reviewed-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
8b966bcaf23b3f6267b4e7ff4f47e7638dff32a9 |
|
14-Apr-2014 |
Marek Olšák <marek.olsak@amd.com> |
winsys/radeon: remove is_handle_added array Use index -1 if a buffer is not added. Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
b0fca0a37859bb9ba51d2a1ec2f3c442d8780fe3 |
|
14-Apr-2014 |
Marek Olšák <marek.olsak@amd.com> |
winsys/radeon: remove local variable reloc from radeon_get_reloc Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
3384a41aa9fae6f36205360ac846b1e2ea615cfd |
|
14-Apr-2014 |
Marek Olšák <marek.olsak@amd.com> |
winsys/radeon: remove parameter reloc from radeon_get_reloc Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.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/winsys/radeon/drm/radeon_drm_cs.c
|
dd72c327e967e0df7d5c59d6cde1a431e09e488e |
|
11-Apr-2014 |
Marek Olšák <marek.olsak@amd.com> |
winsys/radeon: fold cs_set_flush_callback into cs_create Reviewed-by: Christian König <christian.koenig@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
b2238b3452b0bcf3c1216c20c9918f9f0664b464 |
|
11-Apr-2014 |
Marek Olšák <marek.olsak@amd.com> |
winsys/radeon: remove cs_write_reloc, add simpler cs_get_reloc The only difference is that it doesn't write to the CS and only returns the index. Reviewed-by: Christian König <christian.koenig@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
927213f33d0379c34033048d24592715d3f7ef96 |
|
11-Apr-2014 |
Marek Olšák <marek.olsak@amd.com> |
winsys/radeon: consolidate hash table lookup I should have done this long ago. Reviewed-by: Christian König <christian.koenig@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
34564c875357a5d0a1f103f29949eafc2f8e1b35 |
|
04-Apr-2014 |
Marek Olšák <marek.olsak@amd.com> |
winsys/radeon: remove definitions already present in radeon_drm.h Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
fb5cf3490ebbc173211b6c04c869e3fb9f4dbecc |
|
12-Feb-2014 |
Marek Olšák <marek.olsak@amd.com> |
r600g,radeonsi: add a bunch of useful queries for the HUD
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
e914d0052f4f195681b1a610b41c148bf351e336 |
|
16-Mar-2014 |
Marek Olšák <marek.olsak@amd.com> |
winsys/radeon: only add duplicate relocations for DMA if VM isn't supported Also rewrite the comment for it to be readable and reorder the code. Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
3edb3b86b26627e03f31945ebc1f98e5394dec1f |
|
20-Feb-2014 |
Marek Olšák <marek.olsak@amd.com> |
r300g,uvd,vce: set priorities for relocations This updates all occurences of cs_add_reloc.
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
db1a7f78c2653f0cb385af363ed1c770cb1c55c9 |
|
20-Feb-2014 |
Marek Olšák <marek.olsak@amd.com> |
winsys/radeon: add interface for setting a priority number for each relocation The cs_add_reloc change is commented out not to break compilation. The highest priority of all cs_add_reloc calls is send to the kernel.
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
c1a06da4653b7bb8c0418bfbfa6cf46cc1aad2e8 |
|
08-Mar-2014 |
Marek Olšák <marek.olsak@amd.com> |
Revert "winsys/radeon: if there's VRAM-only usage, keep it" This reverts commit 67aef6dafa29fed008ea6065c425a6a92a651be9. It caused GPU hangs. The question is why. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=75900
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
67aef6dafa29fed008ea6065c425a6a92a651be9 |
|
09-Feb-2014 |
Marek Olšák <marek.olsak@amd.com> |
winsys/radeon: if there's VRAM-only usage, keep it
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
cbdd052577e798e0cd7b39eb75cfebee406f8410 |
|
08-Jul-2013 |
Christian König <christian.koenig@amd.com> |
radeon/winsys: add VCE support v4 v2: add fw version query v3: add README.VCE v4: avoid error msg when kernel doesn't support it Signed-off-by: Christian König <christian.koenig@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
900ac63ee88a16b7fb7f0ca2b03a40259b8ebd84 |
|
18-Dec-2013 |
Niels Ole Salscheider <niels_ole@salscheider-online.de> |
winsys/radeon: remove superfluous distinction of cases Signed-off-by: Niels Ole Salscheider <niels_ole@salscheider-online.de> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
5e438194757fb7e013ea039dfddd75ae469d8164 |
|
30-Oct-2013 |
Marek Olšák <marek.olsak@amd.com> |
winsys/radeon: use type-3 NOPs for CS padding on CIK The type-2 NOPs are said to be unstable. It doesn't make a difference here.
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
6067a30838535c838262a9229b400afe4d92c184 |
|
08-Oct-2013 |
Marek Olšák <marek.olsak@amd.com> |
winsys/radeon: add the implementation of fences from r300g
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
8bc7673ef874faa95d43c255c7fc631c2d2160c0 |
|
07-Oct-2013 |
Christian König <christian.koenig@amd.com> |
radeon/winsys: fix handling in radeon_drm_cs_flush v2 Calling radeon_drm_cs_flush from multiple threads might cause deadlocks, fix this by immediately signaling the semaphore after waiting for it. This is a candidate for the stable branch(es). Partially fixes: https://bugs.freedesktop.org/show_bug.cgi?id=70123 v2: some fixes on commit message Signed-off-by: Christian König <christian.koenig@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
f9f14201c18fcb4ba73605e20f015c00e70c1cdd |
|
22-Sep-2013 |
Christian König <christian.koenig@amd.com> |
radeon/uvd: move alignment to winsys Similar to GFX and DMA. Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
0653c66ef40ac553f91b29bbda7f59f7ce6948fa |
|
21-Sep-2013 |
Christian König <christian.koenig@amd.com> |
winsys/radeon: remove cs_queue_empty Waiting for an empty queue is nonsense and can lead to deadlocks if we have multiple waiters or another thread that continuously sends down new commands. Just post the cs to the queue and immediately wait for it to finish. This is a candidate for the stable branch. Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
a81beee37e0dd7b75422448420e8e8b0b4b76c1e |
|
06-Sep-2013 |
Alex Deucher <alexander.deucher@amd.com> |
radeon/winsys: pad IBs to a multiple of 8 DWs This aligns the gfx, compute, and dma IBs to 8 DW boundries. This aligns the the IB to the fetch size of the CP for optimal performance. Additionally, r6xx hardware requires at least 4 DW alignment to avoid a hw bug. This also aligns the DMA IBs to 8 DW which is required for the DMA engine. This alignment is already handled in the gallium driver, but that patch can be removed now that it's done in the winsys. Reviewed-by: Marek Olšák <marek.olsak@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> CC: "9.2" <mesa-stable@lists.freedesktop.org> CC: "9.1" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.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/winsys/radeon/drm/radeon_drm_cs.c
|
f91e4d2c9d714bb7d667956cd93f216c18a434f4 |
|
08-Apr-2013 |
Christian König <christian.koenig@amd.com> |
radeon/winsys: add uvd ring support to winsys v3 Separated from UVD patch for clarity. v2: sync with next tree for 3.10 v3: as pointed out by Andreas Bool check for drm minor >= 32 http://cgit.freedesktop.org/~agd5f/linux/log/?h=drm-next-3.10-wip Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Andreas Boll <andreas.boll.dev@gmail.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
b8998f976ee11e5bdffa78cd78278deeed2789c1 |
|
27-Mar-2013 |
Jerome Glisse <jglisse@redhat.com> |
winsys/radeon: add command stream replay dump for faulty lockup v3 Build time option, set RADEON_CS_DUMP_ON_LOCKUP to 1 in radeon_drm_cs.h to enable it. When enabled after each cs submission the code will try to detect lockup by waiting on one of the buffer of the cs to become idle, after a timeout it will consider that the cs triggered a lockup and will write a radeon_lockup.c file in current directory that have all information for replaying the cs. To build this file : gcc -O0 -g radeon_lockup.c -ldrm -o radeon_lockup -I/usr/include/libdrm v2: Add radeon_ctx.h file to mesa git tree v3: Slightly improve dumped file for easier editing, only dump first faulty cs Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
5e0c956cb219e54dfc22e64ac3f00e22619c763f |
|
29-Jan-2013 |
Jerome Glisse <jglisse@redhat.com> |
r600g: add cs memory usage accounting and limit it v3 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 Signed-off-by: Jerome Glisse <jglisse@redhat.com> Reviewed-by: Marek Olšák <maraeo@gmail.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
6c064fd7492ea835f873112bc3189bb1920aad32 |
|
07-Jan-2013 |
Jerome Glisse <jglisse@redhat.com> |
radeon/winsys: add dma ring support to winsys v3 Add ring support, you can create a cs for each ring. DMA ring is bit special regarding relocation as you must emit as much relocation as there is use of the buffer. v2: - Improved comment on relocation changes - Use a single thread to queue cs submittion this simplify driver code while not impacting performances. Rational for this is that you have to wait for all previous submission to have completed so there was never a case while we could have 2 different thread submitting a command stream at the same time. This code just consolidate submission into one single thread per winsys. v3: - Do not use semaphore for empty queue signaling, instead use cond var. This is because it's tricky to maintain an even number of call to semaphore wait and semaphore signal (the number of cs in the stack would for instance make that number vary). Signed-off-by: Jerome Glisse <jglisse@redhat.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
12aeb47b6af4b3100da26b3ab72ef93886479219 |
|
21-Dec-2012 |
Marek Olšák <maraeo@gmail.com> |
gallium/radeon: send the END_OF_FRAME flag to the DRM
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
9b0b4cf05840fd8dcc4973524166024f948a97ec |
|
21-Dec-2012 |
Marek Olšák <maraeo@gmail.com> |
winsys/radeon: the env var RADEON_NOOP can be used to skip CS ioctls
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
9aa8bac98b823e8783bc3a06a6e5b23fbf8d87fb |
|
19-Sep-2012 |
Vadim Girlin <vadimgirlin@gmail.com> |
winsys/radeon: fix relocs caching Don't cache pointers to elements of reallocatable array. In some circumstances it caused false cache hits resulting in incorrect command stream and gpu lockup. Note: This is a candidate for the stable branches. Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com> Reviewed-by: Marek Olšák <maraeo@gmail.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
2b7a972e3f36bfcdc6fbe2b59d7ffdcde49c9405 |
|
04-Sep-2012 |
Matt Turner <mattst88@gmail.com> |
Don't cast the return value of malloc/realloc This patch has been generated by the following Coccinelle semantic patch: // Don't cast the return value of malloc/realloc. // // Casting the return value of malloc/realloc only stands to hide // errors. @@ type T; expression E1, E2; @@ - (T) ( _mesa_align_calloc(E1, E2) | _mesa_align_malloc(E1, E2) | calloc(E1, E2) | malloc(E1) | realloc(E1, E2) )
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
a7f4d3b740d4c85b0dc2b006c30c2bc4a3ed8597 |
|
04-Aug-2012 |
Marek Olšák <maraeo@gmail.com> |
winsys/radeon: print error if CS is overflowed and don't submit the CS to the kernel.
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.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/winsys/radeon/drm/radeon_drm_cs.c
|
6bb0151f1fd87b4e15f177c7122fc28fea29497e |
|
22-May-2012 |
Maarten Lankhorst <m.b.lankhorst@gmail.com> |
winsys/radeon: Remove unnecessary pipe_thread_destroy in radeon_drm_cs_destroy Fixes crash bug introduced with 210ddf0819b5 fd.o #49198 pthread_detach after a pthread_join is unneeded. Signed-off-by: Maarten Lankhorst <m.b.lankhorst@gmail.com> Signed-off-by: Marek Olšák <maraeo@gmail.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
29e55bc5f1b6d7375b6a86e24ca4ae58e399011e |
|
26-Feb-2012 |
Marek Olšák <maraeo@gmail.com> |
winsys/radeon: add usage parameter to cs_is_buffer_referenced Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
bb1f0cf3508630a9a93512c79badf8c493c46743 |
|
02-Dec-2011 |
Jerome Glisse <jglisse@redhat.com> |
r600g: add support for virtual address space on cayman v11 Virtual address space put the userspace in charge of their GPU address space. It's up to userspace to bind bo into the virtual address space. Command stream can them be executed using the IB_VM chunck. This patch add support for this configuration. It doesn't remove the 64K ib size limit thought this limit can be extanded up to 1M for IB_VM chunk. v2: fix rendering v3: fix rendering when using index buffer v4: make vm conditional on kernel support add basic va management v5: catch the case when we already have va for a bo v6: agd5f: update on top of ioctl changes v7: agd5f: further ioctl updates v8: indentation cleanup + fix non cayman v9: rebase against lastest mesa + improvement from Marek & Michel v10: fix cut/paste bug v11: don't rely on updated radeon_drm.h Signed-off-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
93f4e3cb6c1ca303ee1f5c2a2491a8eff33f2633 |
|
24-Dec-2011 |
Marek Olšák <maraeo@gmail.com> |
winsys/radeon: move managing GEM domains back to drivers This partially reverts commit 363ff844753c46ac9c13866627e096b091ea81f8. It caused severe performance drops in Nexuiz. Reported by Phoronix. Tested by me on r300g and by IRC people on r600g.
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
41b75dc92c921c078e64962f47b3d51b1e4f7b5a |
|
25-Oct-2011 |
Marek Olšák <maraeo@gmail.com> |
winsys/radeon: add flush option not to rewrite tiling flags in registers Not used yet.
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
363ff844753c46ac9c13866627e096b091ea81f8 |
|
27-Sep-2011 |
Marek Olšák <maraeo@gmail.com> |
winsys/radeon: move GEM domains out of the drivers into winsys The drivers don't need to care about the domains. All they need to set are the bind and usage flags. This simplifies the winsys too. This also fixes on r600g: - fbo-depth-GL_DEPTH_COMPONENT32F-copypixels - fbo-depth-GL_DEPTH_COMPONENT16-copypixels - fbo-depth-GL_DEPTH_COMPONENT24-copypixels - fbo-depth-GL_DEPTH_COMPONENT32-copypixels - fbo-depth-GL_DEPTH24_STENCIL8-copypixels I can't explain it. Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
a3cd2c6c9b3724dbc3aa565dab98968c46bde963 |
|
27-Sep-2011 |
Marek Olšák <maraeo@gmail.com> |
winsys/radeon: remove redundant member radeon_bo::size It's part of pb_buffer already.
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
798ebc91ebe383a702faf597ffbf2033dc467f50 |
|
27-Sep-2011 |
Marek Olšák <maraeo@gmail.com> |
winsys/radeon: simplify updating GEM domains for relocations
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
210ddf0819b5acf87a614214b6d4b02193aafa4a |
|
27-Aug-2011 |
Maarten Lankhorst <m.b.lankhorst@gmail.com> |
winsys/radeon: Create async thread only once I noticed that a thread was created for every time async flush was called, so I moved it and used some semaphores to synch. Signed-off-by: Maarten Lankhorst <m.b.lankhorst@gmail.com> Reviewed-by: Marek Olšák <maraeo@gmail.com> Signed-off-by: Christian König <deathsimple@vodafone.de>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
296b8990956fcbd7ce47902d7c108a5973db9397 |
|
07-Aug-2011 |
Marek Olšák <maraeo@gmail.com> |
winsys/radeon: remove broken bo-is-busy-for-write guessing Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
e2e1dc9e66ff348caa97b7b35e558d75c6cc6899 |
|
04-Aug-2011 |
Marek Olšák <maraeo@gmail.com> |
r600g: set the flush callback in radeon_winsys I have also renamed the winsys function. Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
03b25ad8ffd72f1f88b6c80a2ebfe3cf6e8a6390 |
|
04-Aug-2011 |
Marek Olšák <maraeo@gmail.com> |
winsys/radeon: consolidate the add_reloc function Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
e6fb62594fca714883af9bba9795be8838c16900 |
|
04-Aug-2011 |
Marek Olšák <maraeo@gmail.com> |
r600g: emit CS using radeon_winsys Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
638d75185e66727faaba5dc2df1b6e14c7c0c075 |
|
03-Aug-2011 |
Marek Olšák <maraeo@gmail.com> |
r600g: let radeon_winsys maintain the list of relocations Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
5b005ecc2b624a0ffb577ab760abacf069694f8d |
|
03-Aug-2011 |
Marek Olšák <maraeo@gmail.com> |
winsys/radeon: do the CS cleanup in the CS ioctl thread
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
64ab39b035f755510a644643b96451431bbe5f27 |
|
03-Aug-2011 |
Marek Olšák <maraeo@gmail.com> |
winsys/radeon: fix space checking We should remove the relocations which caused a validation failure from the list, so that the kernel receives only the validated ones. NOTE: This is a candidate for the 7.11 branch.
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
28a336dc38c478b809544e7404c4d1fddd873333 |
|
22-Jul-2011 |
Marek Olšák <maraeo@gmail.com> |
winsys/radeon: simplify how value queries work This drops the get_value query and adds a function query_info, which returns all the values in one nice structure.
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
d35aeff4bb0b03450b2c3c08bd7f84db5bf43283 |
|
18-Apr-2011 |
Marek Olšák <maraeo@gmail.com> |
r300g/winsys: rename r300->radeon and do a little cleanup Renaming a few files, types, and functions. Also make the winsys independent of r300g.
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
aac4bae98651c928ce298aecf158b0aa1a7fabce |
|
08-Apr-2011 |
Marek Olšák <maraeo@gmail.com> |
r300g: fix crash when adding a new relocation No idea why it's so hard to reproduce. Broken with: c35572352e3e92683988ee8d151b47f4190d62f9 Thanks to Toni Spets for assistance.
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
9d5de0fcb6ced7a4da85a09ad25dcbc2b21bfdf9 |
|
07-Apr-2011 |
Marek Olšák <maraeo@gmail.com> |
r300g: add 'radeon: ' prefix to error messages in winsys
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
6caac3ecb8bc32d92c35fdb1f0a67541ffa8af29 |
|
03-Apr-2011 |
Marek Olšák <maraeo@gmail.com> |
r300g: do not wait for a busy BO if neither GPU nor CPU is changing it Improves frame rate in apps with at least one user vertex buffer and a hw index buffer.
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
c35572352e3e92683988ee8d151b47f4190d62f9 |
|
03-Apr-2011 |
Marek Olšák <maraeo@gmail.com> |
r300g: remove the redundant reference counter in radeon_bo We already have pb_buffer::reference::count.
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
5650a719f0c69c00954e47bd7a7b3e9433cb551d |
|
08-Mar-2011 |
Marek Olšák <maraeo@gmail.com> |
r300g: decide whether a flush should be asynchronous when calling it Thread offloading is not sometimes desirable, e.g. when mapping a buffer.
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
f6dbcb92bf4a3597c7b3da890ffafc84951f25df |
|
02-Mar-2011 |
Marek Olšák <maraeo@gmail.com> |
r300g: do not use ioctl thread offloading on single-core machines
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
e9e5380f22c230ea1276208baa40c3fe6482b296 |
|
19-Feb-2011 |
Marek Olšák <maraeo@gmail.com> |
r300g: fix invalid dereference in winsys radeon_bo_unref may destroy the buffer, so call it after p_atomic_dec, not before.
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
fa3f1348e49feeac511dbe5b22bbddc47f56ba81 |
|
16-Feb-2011 |
Marek Olšák <maraeo@gmail.com> |
r300g: fix a race between CS and SET_TILING ioctls
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
b9e2cde6006b557a3a23a82384899f4d5a5ac7b8 |
|
15-Feb-2011 |
Marek Olšák <maraeo@gmail.com> |
r300g: offload the CS ioctl to another thread This is a multi-threading optimization which hides the kernel overhead behind a thread. It improves performance in CPU-limited apps by 2-15%. Of course you must have at least 2 cores for it to make any difference. It can be disabled with: export RADEON_THREAD=0
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
df54b53b7d12a3bca5867b6649cb308feb36f0da |
|
11-Feb-2011 |
Marek Olšák <maraeo@gmail.com> |
r300g: improve function radeon_bo_is_referenced_by_cs This should prevent calling into radeon_get_reloc when there's only one context.
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
6ccab620a0e7364ab6c0d902b3ddf58ee988f7fa |
|
23-Dec-2010 |
Marek Olšák <maraeo@gmail.com> |
r300g: import the last bits of libdrm and cleanup the whole thing Based on Dave's branch. The majority of this commit is a cleanup, mainly renaming things. There wasn't much code to import, just ioctl calls. Also done: - implemented unsynchronized bo_map (important optimization!) - radeon_bo_is_referenced_by_cs is no longer a refcount hack - dropped the libdrm_radeon dependency I'm surprised that this has resulted in less code in the end.
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|
1f0348c4a2ba4f8ca812a2daccf3b01c3f984ef1 |
|
04-Dec-2010 |
Marek Olšák <maraeo@gmail.com> |
r300g: rework command submission and resource space checking The motivation behind this rework is to get some speed by reducing CPU overhead. The performance increase depends on many factors, but it's measurable (I think it's about 10% increase in Torcs). This commit replaces libdrm's radeon_cs_gem with our own implemention. It's optimized specifically for r300g, but r600g could use it as well. Reloc writes and space checking are faster and simpler than their counterparts in libdrm (the time complexity of all the functions is O(1) in nearly all scenarios, thanks to hashing). (libdrm's radeon_bo_gem is still being used in the driver.) It works like this: cs_add_reloc(cs, buf, read_domain, write_domain) adds a new relocation and also adds the size of 'buf' to the used_gart and used_vram winsys variables based on the domains, which are simply or'd for the accounting purposes. The adding is skipped if the reloc is already present in the list, but it accounts any newly-referenced domains. cs_validate is then called, which just checks: used_vram/gart < vram/gart_size * 0.8 The 0.8 number allows for some memory fragmentation. If the validation fails, the pipe driver flushes CS and tries do the validation again, i.e. it validates only that one operation. If it fails again, it drops the operation on the floor and prints some nasty message to stderr. cs_write_reloc(cs, buf) just writes a reloc that has been added using cs_add_reloc. The read_domain and write_domain parameters have been removed, because we already specify them in cs_add_reloc. The space checking has been tested by putting small values in vram/gart_size variables.
/external/mesa3d/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
|