[Mesa-dev] [PATCH 2/2] softpipe: honor predication for clear_render_target and clear_depth_stencil
Jose Fonseca
jfonseca at vmware.com
Wed Jun 26 06:56:14 PDT 2013
Looks good to me.
Jose
----- Original Message -----
> From: Roland Scheidegger <sroland at vmware.com>
>
> trivial, copied from llvmpipe
> ---
> src/gallium/drivers/softpipe/sp_surface.c | 42
> +++++++++++++++++++++++++++--
> 1 file changed, 40 insertions(+), 2 deletions(-)
>
> diff --git a/src/gallium/drivers/softpipe/sp_surface.c
> b/src/gallium/drivers/softpipe/sp_surface.c
> index 52c85be..9e1523f 100644
> --- a/src/gallium/drivers/softpipe/sp_surface.c
> +++ b/src/gallium/drivers/softpipe/sp_surface.c
> @@ -29,6 +29,7 @@
> #include "util/u_surface.h"
> #include "sp_context.h"
> #include "sp_surface.h"
> +#include "sp_query.h"
>
> static void sp_blit(struct pipe_context *pipe,
> const struct pipe_blit_info *info)
> @@ -82,11 +83,48 @@ static void sp_blit(struct pipe_context *pipe,
> util_blitter_blit(sp->blitter, info);
> }
>
> +static void
> +softpipe_clear_render_target(struct pipe_context *pipe,
> + struct pipe_surface *dst,
> + const union pipe_color_union *color,
> + unsigned dstx, unsigned dsty,
> + unsigned width, unsigned height)
> +{
> + struct softpipe_context *softpipe = softpipe_context(pipe);
> +
> + if (!softpipe_check_render_cond(softpipe))
> + return;
> +
> + util_clear_render_target(pipe, dst, color,
> + dstx, dsty, width, height);
> +}
> +
> +
> +static void
> +softpipe_clear_depth_stencil(struct pipe_context *pipe,
> + struct pipe_surface *dst,
> + unsigned clear_flags,
> + double depth,
> + unsigned stencil,
> + unsigned dstx, unsigned dsty,
> + unsigned width, unsigned height)
> +{
> + struct softpipe_context *softpipe = softpipe_context(pipe);
> +
> + if (!softpipe_check_render_cond(softpipe))
> + return;
> +
> + util_clear_depth_stencil(pipe, dst, clear_flags,
> + depth, stencil,
> + dstx, dsty, width, height);
> +}
> +
> +
> void
> sp_init_surface_functions(struct softpipe_context *sp)
> {
> sp->pipe.resource_copy_region = util_resource_copy_region;
> - sp->pipe.clear_render_target = util_clear_render_target;
> - sp->pipe.clear_depth_stencil = util_clear_depth_stencil;
> + sp->pipe.clear_render_target = softpipe_clear_render_target;
> + sp->pipe.clear_depth_stencil = softpipe_clear_depth_stencil;
> sp->pipe.blit = sp_blit;
> }
> --
> 1.7.9.5
>
More information about the mesa-dev
mailing list