diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/gallium/drivers/r600/r600_blit.c | 58 | ||||
| -rw-r--r-- | src/gallium/drivers/r600/r600_context.c | 2 | ||||
| -rw-r--r-- | src/gallium/drivers/r600/r600_context.h | 1 | ||||
| -rw-r--r-- | src/gallium/drivers/r600/r600_screen.h | 27 | 
4 files changed, 34 insertions, 54 deletions
diff --git a/src/gallium/drivers/r600/r600_blit.c b/src/gallium/drivers/r600/r600_blit.c index 52a2921d47..974ceef15f 100644 --- a/src/gallium/drivers/r600/r600_blit.c +++ b/src/gallium/drivers/r600/r600_blit.c @@ -31,10 +31,8 @@  #include "r600_screen.h"  #include "r600_context.h" -static void r600_blitter_save_states(struct pipe_context *ctx) +static void r600_blitter_save_states(struct r600_context *rctx)  { -	struct r600_context *rctx = r600_context(ctx); -  	util_blitter_save_blend(rctx->blitter,  					rctx->draw->state[R600_BLEND]);  	util_blitter_save_depth_stencil_alpha(rctx->blitter, @@ -52,43 +50,51 @@ static void r600_blitter_save_states(struct pipe_context *ctx)  					&rctx->viewport);  } -void r600_clear(struct pipe_context *ctx, unsigned buffers, -		const float *rgba, double depth, unsigned stencil) +static void r600_clear(struct pipe_context *ctx, unsigned buffers, +		       const float *rgba, double depth, unsigned stencil)  {  	struct r600_context *rctx = r600_context(ctx);  	struct pipe_framebuffer_state *fb = &rctx->fb_state; -	r600_blitter_save_states(ctx); +	r600_blitter_save_states(rctx);  	util_blitter_clear(rctx->blitter, fb->width, fb->height,  				fb->nr_cbufs, buffers, rgba, depth,  				stencil);  } -void r600_clear_render_target(struct pipe_context *pipe, -			      struct pipe_surface *dst, -			      const float *rgba, -			      unsigned dstx, unsigned dsty, -			      unsigned width, unsigned height) +static void r600_clear_render_target(struct pipe_context *pipe, +				     struct pipe_surface *dst, +				     const float *rgba, +				     unsigned dstx, unsigned dsty, +				     unsigned width, unsigned height) +{ +} + +static void r600_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)  {  } -void r300_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) +static void r600_resource_copy_region(struct pipe_context *pipe, +				      struct pipe_resource *dst, +				      struct pipe_subresource subdst, +				      unsigned dstx, unsigned dsty, unsigned dstz, +				      struct pipe_resource *src, +				      struct pipe_subresource subsrc, +				      unsigned srcx, unsigned srcy, unsigned srcz, +				      unsigned width, unsigned height)  {  } -void r600_resource_copy_region(struct pipe_context *pipe, -			       struct pipe_resource *dst, -			       struct pipe_subresource subdst, -			       unsigned dstx, unsigned dsty, unsigned dstz, -			       struct pipe_resource *src, -			       struct pipe_subresource subsrc, -			       unsigned srcx, unsigned srcy, unsigned srcz, -			       unsigned width, unsigned height) +void r600_init_blit_functions(struct r600_context *rctx)  { +	rctx->context.clear = r600_clear; +	rctx->context.clear_render_target = r600_clear_render_target; +	rctx->context.clear_depth_stencil = r600_clear_depth_stencil; +	rctx->context.resource_copy_region = r600_resource_copy_region;  } diff --git a/src/gallium/drivers/r600/r600_context.c b/src/gallium/drivers/r600/r600_context.c index 22fffc4f47..0a7efe3bfb 100644 --- a/src/gallium/drivers/r600/r600_context.c +++ b/src/gallium/drivers/r600/r600_context.c @@ -73,7 +73,6 @@ struct pipe_context *r600_create_context(struct pipe_screen *screen, void *priv)  	rctx->context.screen = screen;  	rctx->context.priv = priv;  	rctx->context.destroy = r600_destroy_context; -	rctx->context.clear = r600_clear;  	rctx->context.draw_arrays = r600_draw_arrays;  	rctx->context.draw_elements = r600_draw_elements;  	rctx->context.draw_range_elements = r600_draw_range_elements; @@ -83,6 +82,7 @@ struct pipe_context *r600_create_context(struct pipe_screen *screen, void *priv)  	rctx->screen = rscreen;  	rctx->rw = rscreen->rw; +	r600_init_blit_functions(rctx);  	r600_init_query_functions(rctx);  	r600_init_state_functions(rctx);  	r600_init_context_resource_functions(rctx); diff --git a/src/gallium/drivers/r600/r600_context.h b/src/gallium/drivers/r600/r600_context.h index 464209f4f4..f27ff58ed4 100644 --- a/src/gallium/drivers/r600/r600_context.h +++ b/src/gallium/drivers/r600/r600_context.h @@ -85,6 +85,7 @@ void r600_draw_range_elements(struct pipe_context *ctx,  		unsigned max_index, unsigned mode,  		unsigned start, unsigned count); +void r600_init_blit_functions(struct r600_context *rctx);  void r600_init_state_functions(struct r600_context *rctx);  void r600_init_query_functions(struct r600_context* rctx);  struct pipe_context *r600_create_context(struct pipe_screen *screen, void *priv); diff --git a/src/gallium/drivers/r600/r600_screen.h b/src/gallium/drivers/r600/r600_screen.h index 49f6f50ee6..0a0286d96b 100644 --- a/src/gallium/drivers/r600/r600_screen.h +++ b/src/gallium/drivers/r600/r600_screen.h @@ -84,33 +84,6 @@ void r600_texture_transfer_unmap(struct pipe_context *ctx,  				 struct pipe_transfer* transfer); -/* Blit functions. */ -void r600_clear(struct pipe_context *ctx, -		unsigned buffers, -		const float *rgba, -		double depth, -		unsigned stencil); -void r600_clear_render_target(struct pipe_context *pipe, -			      struct pipe_surface *dst, -			      const float *rgba, -			      unsigned dstx, unsigned dsty, -			      unsigned width, unsigned height); -void r300_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); -void r600_resource_copy_region(struct pipe_context *pipe, -			       struct pipe_resource *dst, -			       struct pipe_subresource subdst, -			       unsigned dstx, unsigned dsty, unsigned dstz, -			       struct pipe_resource *src, -			       struct pipe_subresource subsrc, -			       unsigned srcx, unsigned srcy, unsigned srcz, -			       unsigned width, unsigned height); -  /* helpers */  int r600_conv_pipe_format(unsigned pformat, unsigned *format);  int r600_conv_pipe_prim(unsigned pprim, unsigned *prim);  | 
