diff options
author | Marek Olšák <[email protected]> | 2009-10-28 01:38:40 +0100 |
---|---|---|
committer | Corbin Simpson <[email protected]> | 2009-10-28 12:15:33 -0700 |
commit | c451011d99a33350d70766f902ad09a0b606f7c2 (patch) | |
tree | 834d7b2f8fda12737316970dd7489fff376c5820 /src/mesa/state_tracker/st_texture.c | |
parent | 7d56caabe45e91a67096804c7e341d04d01db7aa (diff) |
mesa/st: fix crash in st_texture_image_copy
Signed-off-by: Corbin Simpson <[email protected]>
Diffstat (limited to 'src/mesa/state_tracker/st_texture.c')
-rw-r--r-- | src/mesa/state_tracker/st_texture.c | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/src/mesa/state_tracker/st_texture.c b/src/mesa/state_tracker/st_texture.c index ba8d1e8cc16..3f30137747a 100644 --- a/src/mesa/state_tracker/st_texture.c +++ b/src/mesa/state_tracker/st_texture.c @@ -342,12 +342,21 @@ st_texture_image_copy(struct pipe_context *pipe, src_surface = screen->get_tex_surface(screen, src, face, srcLevel, i, PIPE_BUFFER_USAGE_GPU_READ); - pipe->surface_copy(pipe, - dst_surface, - 0, 0, /* destX, Y */ - src_surface, - 0, 0, /* srcX, Y */ - width, height); + if (pipe->surface_copy) { + pipe->surface_copy(pipe, + dst_surface, + 0, 0, /* destX, Y */ + src_surface, + 0, 0, /* srcX, Y */ + width, height); + } else { + util_surface_copy(pipe, FALSE, + dst_surface, + 0, 0, /* destX, Y */ + src_surface, + 0, 0, /* srcX, Y */ + width, height); + } pipe_surface_reference(&src_surface, NULL); pipe_surface_reference(&dst_surface, NULL); |