summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/galahad/glhd_context.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/drivers/galahad/glhd_context.c')
-rw-r--r--src/gallium/drivers/galahad/glhd_context.c26
1 files changed, 15 insertions, 11 deletions
diff --git a/src/gallium/drivers/galahad/glhd_context.c b/src/gallium/drivers/galahad/glhd_context.c
index 92ca4a63da9..3400a4d213a 100644
--- a/src/gallium/drivers/galahad/glhd_context.c
+++ b/src/gallium/drivers/galahad/glhd_context.c
@@ -723,27 +723,31 @@ galahad_context_resource_copy_region(struct pipe_context *_pipe,
static void
galahad_context_blit(struct pipe_context *_pipe,
- const struct pipe_blit_info *info)
+ const struct pipe_blit_info *_info)
{
struct galahad_context *glhd_pipe = galahad_context(_pipe);
struct pipe_context *pipe = glhd_pipe->pipe;
+ struct pipe_blit_info info = *_info;
- if (info->dst.box.width < 0 ||
- info->dst.box.height < 0)
+ info.dst.resource = galahad_resource_unwrap(info.dst.resource);
+ info.src.resource = galahad_resource_unwrap(info.src.resource);
+
+ if (info.dst.box.width < 0 ||
+ info.dst.box.height < 0)
glhd_error("Destination dimensions are negative");
- if (info->filter != PIPE_TEX_FILTER_NEAREST &&
- info->src.resource->target != PIPE_TEXTURE_3D &&
- info->dst.box.depth != info->src.box.depth)
+ if (info.filter != PIPE_TEX_FILTER_NEAREST &&
+ info.src.resource->target != PIPE_TEXTURE_3D &&
+ info.dst.box.depth != info.src.box.depth)
glhd_error("Filtering in z-direction on non-3D texture");
- if (util_format_is_depth_or_stencil(info->dst.format) !=
- util_format_is_depth_or_stencil(info->src.format))
+ if (util_format_is_depth_or_stencil(info.dst.format) !=
+ util_format_is_depth_or_stencil(info.src.format))
glhd_error("Invalid format conversion: %s <- %s\n",
- util_format_name(info->dst.format),
- util_format_name(info->src.format));
+ util_format_name(info.dst.format),
+ util_format_name(info.src.format));
- pipe->blit(pipe, info);
+ pipe->blit(pipe, &info);
}
static void