summaryrefslogtreecommitdiff
path: root/src/mesa/pipe/softpipe/sp_surface.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/pipe/softpipe/sp_surface.c')
-rw-r--r--src/mesa/pipe/softpipe/sp_surface.c27
1 files changed, 18 insertions, 9 deletions
diff --git a/src/mesa/pipe/softpipe/sp_surface.c b/src/mesa/pipe/softpipe/sp_surface.c
index 40f045800f..057a311cd9 100644
--- a/src/mesa/pipe/softpipe/sp_surface.c
+++ b/src/mesa/pipe/softpipe/sp_surface.c
@@ -162,7 +162,7 @@ a1r5g5b5_get_tile(struct pipe_surface *ps,
/*** PIPE_FORMAT_U_Z16 ***/
/**
- * Return as floats in [0,1].
+ * Return each Z value as four floats in [0,1].
*/
static void
z16_get_tile(struct pipe_surface *ps,
@@ -182,10 +182,13 @@ z16_get_tile(struct pipe_surface *ps,
for (i = 0; i < h; i++) {
float *pRow = p;
for (j = 0; j < w; j++) {
- pRow[j] = src[j] * scale;
+ pRow[j * 4 + 0] =
+ pRow[j * 4 + 1] =
+ pRow[j * 4 + 2] =
+ pRow[j * 4 + 3] = src[j] * scale;
}
src += ps->region->pitch;
- p += w0;
+ p += 4 * w0;
}
}
@@ -391,7 +394,7 @@ a8_l8_get_tile(struct pipe_surface *ps,
/*** PIPE_FORMAT_U_Z32 ***/
/**
- * Return as floats in [0,1].
+ * Return each Z value as four floats in [0,1].
*/
static void
z32_get_tile(struct pipe_surface *ps,
@@ -411,10 +414,13 @@ z32_get_tile(struct pipe_surface *ps,
for (i = 0; i < h; i++) {
float *pRow = p;
for (j = 0; j < w; j++) {
- pRow[j] = src[j] * scale;
+ pRow[j * 4 + 0] =
+ pRow[j * 4 + 1] =
+ pRow[j * 4 + 2] =
+ pRow[j * 4 + 3] = src[j] * scale;
}
src += ps->region->pitch;
- p += w0;
+ p += 4 * w0;
}
}
@@ -422,7 +428,7 @@ z32_get_tile(struct pipe_surface *ps,
/*** PIPE_FORMAT_S8_Z24 ***/
/**
- * Return Z component as float in [0,1]. Stencil part ignored.
+ * Return Z component as four float in [0,1]. Stencil part ignored.
*/
static void
s8z24_get_tile(struct pipe_surface *ps,
@@ -442,10 +448,13 @@ s8z24_get_tile(struct pipe_surface *ps,
for (i = 0; i < h; i++) {
float *pRow = p;
for (j = 0; j < w; j++) {
- pRow[j] = (src[j] & 0xffffff) * scale;
+ pRow[j * 4 + 0] =
+ pRow[j * 4 + 1] =
+ pRow[j * 4 + 2] =
+ pRow[j * 4 + 3] = (src[j] & 0xffffff) * scale;
}
src += ps->region->pitch;
- p += w0;
+ p += 4 * w0;
}
}