radeonsi: Disable asynchronous DMA except for PIPE_BUFFER

Using the asynchronous DMA engine for multi-dimensional operations seems
to cause random GPU lockups for various people. While the root cause for
this might need to be fixed in the kernel, let's disable it for now.

Before re-enabling this, please make sure you can hit all newly enabled
paths in your testing, preferably with both piglit and real world apps,
and get in touch with people on the bug reports below for stability
testing.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=85647
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=83500
Cc: "10.3 10.4" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Grigori Goronzy <greg@chown.ath.cx>
(cherry picked from commit ae4536b4f7)
This commit is contained in:
Michel Dänzer 2014-11-11 16:10:20 +09:00 committed by Emil Velikov
parent b8da681864
commit f02f0559c6

View file

@ -270,6 +270,21 @@ void si_dma_copy(struct pipe_context *ctx,
return;
}
/* XXX: Using the asynchronous DMA engine for multi-dimensional
* operations seems to cause random GPU lockups for various people.
* While the root cause for this might need to be fixed in the kernel,
* let's disable it for now.
*
* Before re-enabling this, please make sure you can hit all newly
* enabled paths in your testing, preferably with both piglit and real
* world apps, and get in touch with people on the bug reports below
* for stability testing.
*
* https://bugs.freedesktop.org/show_bug.cgi?id=85647
* https://bugs.freedesktop.org/show_bug.cgi?id=83500
*/
goto fallback;
if (src->format != dst->format || src_box->depth > 1 ||
rdst->dirty_level_mask != 0) {
goto fallback;