Re: [Mesa-dev] [PATCH] radeonsi: simplify constant buffer upload for big endian

2014-08-10 Thread Marek Olšák
No, there isn't. That's a very good point.

Marek

On Sun, Aug 10, 2014 at 5:10 AM, Michel Dänzer mic...@daenzer.net wrote:
 On 10.08.2014 06:54, Marek Olšák wrote:
 From: Marek Olšák marek.ol...@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);


 Since util_memcpy_cpu_to_le32() is memcpy() on little endian, is there
 any point keeping the separate (non-)SI_BIG_ENDIAN paths here? Either way,

 Reviewed-by: Michel Dänzer michel.daen...@amd.com


 --
 Earthling Michel Dänzer|  http://www.amd.com
 Libre software enthusiast  |Mesa and X developer
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] [PATCH] radeonsi: simplify constant buffer upload for big endian

2014-08-09 Thread Marek Olšák
From: Marek Olšák marek.ol...@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

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH] radeonsi: simplify constant buffer upload for big endian

2014-08-09 Thread Michel Dänzer
On 10.08.2014 06:54, Marek Olšák wrote:
 From: Marek Olšák marek.ol...@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);
 

Since util_memcpy_cpu_to_le32() is memcpy() on little endian, is there
any point keeping the separate (non-)SI_BIG_ENDIAN paths here? Either way,

Reviewed-by: Michel Dänzer michel.daen...@amd.com


-- 
Earthling Michel Dänzer|  http://www.amd.com
Libre software enthusiast  |Mesa and X developer
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev