Mesa (master): radeonsi: use unsynchronized transfers for shader binary uploads
Samuel Pitoiset
hakzsam at kemper.freedesktop.org
Wed Apr 26 17:20:44 UTC 2017
Module: Mesa
Branch: master
Commit: ec301497b87e915924240173ac2854d835446cc6
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ec301497b87e915924240173ac2854d835446cc6
Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date: Wed Apr 26 00:36:12 2017 +0200
radeonsi: use unsynchronized transfers for shader binary uploads
Because the buffer is new, it can't be referenced by any CS.
This can save few CPU cycles by skipping the whole
PIPE_TRANSFER_UNSYNCHRONIZED if in amdgpu_bo_map().
Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
---
src/gallium/drivers/radeonsi/si_shader.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c
index 3c2c7f5c75..69634b12c3 100644
--- a/src/gallium/drivers/radeonsi/si_shader.c
+++ b/src/gallium/drivers/radeonsi/si_shader.c
@@ -6185,7 +6185,8 @@ int si_shader_binary_upload(struct si_screen *sscreen, struct si_shader *shader)
/* Upload. */
ptr = sscreen->b.ws->buffer_map(shader->bo->buf, NULL,
- PIPE_TRANSFER_READ_WRITE);
+ PIPE_TRANSFER_READ_WRITE |
+ PIPE_TRANSFER_UNSYNCHRONIZED);
if (prolog) {
util_memcpy_cpu_to_le32(ptr, prolog->code, prolog->code_size);
More information about the mesa-commit
mailing list