summaryrefslogtreecommitdiff
path: root/src/gallium/winsys/xlib/xlib_softpipe.c
diff options
context:
space:
mode:
authorMichel Dänzer <daenzer@vmware.com>2009-02-12 19:42:22 +0100
committerMichel Dänzer <daenzer@vmware.com>2009-02-12 19:42:22 +0100
commit9ab677a84b564a00e2e1e6874dbc2c0295b3402d (patch)
treeffface0115654e4855355d1ec4da075132731003 /src/gallium/winsys/xlib/xlib_softpipe.c
parent479d929530ce40a39d9310576b97cb46fab214de (diff)
gallium/winsys/xlib: Fix stride calculations.
Diffstat (limited to 'src/gallium/winsys/xlib/xlib_softpipe.c')
-rw-r--r--src/gallium/winsys/xlib/xlib_softpipe.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/gallium/winsys/xlib/xlib_softpipe.c b/src/gallium/winsys/xlib/xlib_softpipe.c
index 52fd7455a5..846b48b4ff 100644
--- a/src/gallium/winsys/xlib/xlib_softpipe.c
+++ b/src/gallium/winsys/xlib/xlib_softpipe.c
@@ -230,8 +230,8 @@ xlib_softpipe_display_surface(struct xmesa_buffer *b,
struct pipe_surface *surf)
{
XImage *ximage;
- struct xm_buffer *xm_buf = xm_buffer(
- softpipe_texture(surf->texture)->buffer);
+ struct softpipe_texture *spt = softpipe_texture(surf->texture);
+ struct xm_buffer *xm_buf = xm_buffer(spt->buffer);
static boolean no_swap = 0;
static boolean firsttime = 1;
@@ -246,8 +246,8 @@ xlib_softpipe_display_surface(struct xmesa_buffer *b,
if (XSHM_ENABLED(xm_buf) && (xm_buf->tempImage == NULL)) {
assert(surf->texture->block.width == 1);
assert(surf->texture->block.height == 1);
- alloc_shm_ximage(xm_buf, b, surf->texture->nblocksx[surf->level],
- surf->height);
+ alloc_shm_ximage(xm_buf, b, spt->stride[surf->level] /
+ surf->texture->block.size, surf->height);
}
ximage = (XSHM_ENABLED(xm_buf)) ? xm_buf->tempImage : b->tempImage;
@@ -265,7 +265,7 @@ xlib_softpipe_display_surface(struct xmesa_buffer *b,
/* update XImage's fields */
ximage->width = surf->width;
ximage->height = surf->height;
- ximage->bytes_per_line = surf->texture->nblocksx[surf->level];
+ ximage->bytes_per_line = spt->stride[surf->level];
XPutImage(b->xm_visual->display, b->drawable, b->gc,
ximage, 0, 0, 0, 0, surf->width, surf->height);