summaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary/util/u_linear.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/auxiliary/util/u_linear.c')
-rw-r--r--src/gallium/auxiliary/util/u_linear.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/gallium/auxiliary/util/u_linear.c b/src/gallium/auxiliary/util/u_linear.c
index a76704ffc7f..e999cefe748 100644
--- a/src/gallium/auxiliary/util/u_linear.c
+++ b/src/gallium/auxiliary/util/u_linear.c
@@ -3,13 +3,13 @@
#include "u_linear.h"
void
-pipe_linear_to_tile(size_t src_stride, void *src_ptr,
+pipe_linear_to_tile(size_t src_stride, const void *src_ptr,
struct pipe_tile_info *t, void *dst_ptr)
{
int x, y, z;
char *ptr;
size_t bytes = t->cols * t->block.size;
-
+ char *dst_ptr2 = (char *) dst_ptr;
assert(pipe_linear_check_tile(t));
@@ -19,20 +19,21 @@ pipe_linear_to_tile(size_t src_stride, void *src_ptr,
/* this inner loop could be replace with SSE magic */
ptr = (char*)src_ptr + src_stride * t->rows * y + bytes * x;
for (z = 0; z < t->rows; z++) {
- memcpy(dst_ptr, ptr, bytes);
- dst_ptr += bytes;
+ memcpy(dst_ptr2, ptr, bytes);
+ dst_ptr2 += bytes;
ptr += src_stride;
}
}
}
}
-void pipe_linear_from_tile(struct pipe_tile_info *t, void *src_ptr,
+void pipe_linear_from_tile(struct pipe_tile_info *t, const void *src_ptr,
size_t dst_stride, void *dst_ptr)
{
int x, y, z;
char *ptr;
size_t bytes = t->cols * t->block.size;
+ const char *src_ptr2 = (const char *) src_ptr;
/* lets read lineary from the tiled buffer */
for (y = 0; y < t->tiles_y; y++) {
@@ -40,8 +41,8 @@ void pipe_linear_from_tile(struct pipe_tile_info *t, void *src_ptr,
/* this inner loop could be replace with SSE magic */
ptr = (char*)dst_ptr + dst_stride * t->rows * y + bytes * x;
for (z = 0; z < t->rows; z++) {
- memcpy(ptr, src_ptr, bytes);
- src_ptr += bytes;
+ memcpy(ptr, src_ptr2, bytes);
+ src_ptr2 += bytes;
ptr += dst_stride;
}
}
@@ -50,7 +51,7 @@ void pipe_linear_from_tile(struct pipe_tile_info *t, void *src_ptr,
void
pipe_linear_fill_info(struct pipe_tile_info *t,
- struct pipe_format_block *block,
+ const struct pipe_format_block *block,
unsigned tile_width, unsigned tile_height,
unsigned tiles_x, unsigned tiles_y)
{