From 6f0c1f2b5f8f1895878fcbf0b8d1b1ebcb719d70 Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Fri, 18 Jul 2014 15:10:52 -0400 Subject: [PATCH] radeonsi: Use util_memcpy_cpu_to_le32() MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Reviewed-by: Marek Olšák --- src/gallium/drivers/radeonsi/si_descriptors.c | 4 +--- src/gallium/drivers/radeonsi/si_shader.c | 23 ++++++------------- 2 files changed, 8 insertions(+), 19 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_descriptors.c b/src/gallium/drivers/radeonsi/si_descriptors.c index 4751b8b8f4f..171de45845a 100644 --- a/src/gallium/drivers/radeonsi/si_descriptors.c +++ b/src/gallium/drivers/radeonsi/si_descriptors.c @@ -662,9 +662,7 @@ void si_upload_const_buffer(struct si_context *sctx, struct r600_resource **rbuf return; } - for (i = 0; i < size / 4; ++i) { - tmpPtr[i] = util_cpu_to_le32(((uint32_t *)ptr)[i]); - } + util_memcpy_cpu_to_le32(tmpPtr, ptr, size); u_upload_data(sctx->b.uploader, 0, size, tmpPtr, const_offset, (struct pipe_resource**)rbuffer); diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index 2a7577f334a..3fcd314b5c8 100644 --- a/src/gallium/drivers/radeonsi/si_shader.c +++ b/src/gallium/drivers/radeonsi/si_shader.c @@ -2553,7 +2553,7 @@ int si_compile_llvm(struct si_context *sctx, struct si_pipe_shader *shader, { unsigned r; /* llvm_compile result */ unsigned i; - uint32_t *ptr; + unsigned char *ptr; struct radeon_shader_binary binary; bool dump = r600_can_dump_shader(&sctx->screen->b, shader->selector ? shader->selector->tokens : NULL); @@ -2619,22 +2619,13 @@ int si_compile_llvm(struct si_context *sctx, struct si_pipe_shader *shader, return -ENOMEM; } - ptr = (uint32_t*)sctx->b.ws->buffer_map(shader->bo->cs_buf, sctx->b.rings.gfx.cs, PIPE_TRANSFER_WRITE); - if (SI_BIG_ENDIAN) { - for (i = 0; i < binary.code_size / 4; ++i) { - ptr[i] = util_cpu_to_le32((*(uint32_t*)(binary.code + i*4))); - } - ptr += (binary.code_size / 4); - for (i = 0; i < binary.rodata_size / 4; ++i) { - ptr[i] = util_cpu_to_le32((*(uint32_t*)(binary.rodata + i * 4))); - } - } else { - memcpy(ptr, binary.code, binary.code_size); - if (binary.rodata_size > 0) { - ptr += (binary.code_size / 4); - memcpy(ptr, binary.rodata, binary.rodata_size); - } + ptr = sctx->b.ws->buffer_map(shader->bo->cs_buf, sctx->b.rings.gfx.cs, PIPE_TRANSFER_WRITE); + util_memcpy_cpu_to_le32(ptr, binary.code, binary.code_size); + if (binary.rodata_size > 0) { + ptr += binary.code_size; + util_memcpy_cpu_to_le32(ptr, binary.rodata, binary.rodata_size); } + sctx->b.ws->buffer_unmap(shader->bo->cs_buf); free(binary.code); -- 2.30.2