From 2a309dc2b4e78c9e49d5b679cae5cf802b772469 Mon Sep 17 00:00:00 2001 From: Marek Olšák Date: Thu, 13 Sep 2012 00:12:22 +0200 Subject: gallium: implement blit in driver wrappers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Tested-by: Michel Dänzer Reviewed-by: Brian Paul --- src/gallium/drivers/galahad/glhd_context.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'src/gallium/drivers/galahad/glhd_context.c') diff --git a/src/gallium/drivers/galahad/glhd_context.c b/src/gallium/drivers/galahad/glhd_context.c index 601081b0dc1..e20986fca6e 100644 --- a/src/gallium/drivers/galahad/glhd_context.c +++ b/src/gallium/drivers/galahad/glhd_context.c @@ -721,6 +721,31 @@ galahad_context_resource_copy_region(struct pipe_context *_pipe, src_box); } +static void +galahad_context_blit(struct pipe_context *_pipe, + const struct pipe_blit_info *info) +{ + struct galahad_context *glhd_pipe = galahad_context(_pipe); + struct pipe_context *pipe = glhd_pipe->pipe; + + 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) + 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)) + glhd_error("Invalid format conversion: %s <- %s\n", + util_format_name(info->dst.format), + util_format_name(info->src.format)); + + pipe->blit(pipe, info); +} + static void galahad_context_clear(struct pipe_context *_pipe, unsigned buffers, @@ -1054,6 +1079,7 @@ galahad_context_create(struct pipe_screen *_screen, struct pipe_context *pipe) //GLHD_PIPE_INIT(stream_output_target_destroy); //GLHD_PIPE_INIT(set_stream_output_targets); GLHD_PIPE_INIT(resource_copy_region); + GLHD_PIPE_INIT(blit); //GLHD_PIPE_INIT(resource_resolve); GLHD_PIPE_INIT(clear); GLHD_PIPE_INIT(clear_render_target); -- cgit v1.2.3