[Mesa-dev] [PATCH] radeonsi: simplify constant buffer upload for big endian
Marek Olšák
maraeo at gmail.com
Sat Aug 9 14:54:51 PDT 2014
From: Marek Olšák <marek.olsak at amd.com>
Point util_memcpy_cpu_to_le32 to a buffer storage directly.
---
src/gallium/drivers/radeonsi/si_descriptors.c | 15 +++------------
1 file changed, 3 insertions(+), 12 deletions(-)
diff --git a/src/gallium/drivers/radeonsi/si_descriptors.c b/src/gallium/drivers/radeonsi/si_descriptors.c
index 81ad14b..bfd2b76 100644
--- a/src/gallium/drivers/radeonsi/si_descriptors.c
+++ b/src/gallium/drivers/radeonsi/si_descriptors.c
@@ -649,20 +649,11 @@ void si_upload_const_buffer(struct si_context *sctx, struct r600_resource **rbuf
const uint8_t *ptr, unsigned size, uint32_t *const_offset)
{
if (SI_BIG_ENDIAN) {
- uint32_t *tmpPtr;
- unsigned i;
-
- if (!(tmpPtr = malloc(size))) {
- R600_ERR("Failed to allocate BE swap buffer.\n");
- return;
- }
+ void *tmpPtr;
+ u_upload_alloc(sctx->b.uploader, 0, size, const_offset,
+ (struct pipe_resource**)rbuffer, &tmpPtr);
util_memcpy_cpu_to_le32(tmpPtr, ptr, size);
-
- u_upload_data(sctx->b.uploader, 0, size, tmpPtr, const_offset,
- (struct pipe_resource**)rbuffer);
-
- free(tmpPtr);
} else {
u_upload_data(sctx->b.uploader, 0, size, ptr, const_offset,
(struct pipe_resource**)rbuffer);
--
1.9.1
More information about the mesa-dev
mailing list