Mesa (master): r600g: adapt to interface changes

Roland Scheidegger sroland at kemper.freedesktop.org
Thu Jun 3 08:47:36 PDT 2010


Module: Mesa
Branch: master
Commit: c674ce5e3a7023124c7d6936d3a65ec54cb37347
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c674ce5e3a7023124c7d6936d3a65ec54cb37347

Author: Roland Scheidegger <sroland at vmware.com>
Date:   Thu Jun  3 17:41:53 2010 +0200

r600g: adapt to interface changes

r600g should be able to handle separate depth stencil clears as well.
Also adapt surface_fill/copy stubs to new interface (not that it matters).

---

 src/gallium/drivers/r600/r600_blit.c   |   34 +++++++++++++++++++++----------
 src/gallium/drivers/r600/r600_screen.c |    2 +
 src/gallium/drivers/r600/r600_screen.h |   31 ++++++++++++++++++----------
 3 files changed, 45 insertions(+), 22 deletions(-)

diff --git a/src/gallium/drivers/r600/r600_blit.c b/src/gallium/drivers/r600/r600_blit.c
index 413c8ec..ffb2d37 100644
--- a/src/gallium/drivers/r600/r600_blit.c
+++ b/src/gallium/drivers/r600/r600_blit.c
@@ -64,19 +64,31 @@ void r600_clear(struct pipe_context *ctx, unsigned buffers,
 				stencil);
 }
 
-void r600_surface_copy(struct pipe_context *ctx,
-			struct pipe_surface *dst,
-			unsigned dstx, unsigned dsty,
-			struct pipe_surface *src,
-			unsigned srcx, unsigned srcy,
-			unsigned width, unsigned height)
+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 r600_surface_fill(struct pipe_context *ctx,
-			struct pipe_surface *dst,
-			unsigned dstx, unsigned dsty,
-			unsigned width, unsigned height,
-			unsigned value)
+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)
 {
 }
diff --git a/src/gallium/drivers/r600/r600_screen.c b/src/gallium/drivers/r600/r600_screen.c
index 7d39184..1d83383 100644
--- a/src/gallium/drivers/r600/r600_screen.c
+++ b/src/gallium/drivers/r600/r600_screen.c
@@ -91,6 +91,8 @@ static int r600_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
 	case PIPE_CAP_INDEP_BLEND_FUNC:
 		/* FIXME allow this */
 		return 0;
+	case PIPE_CAP_DEPTHSTENCIL_CLEAR_SEPARATE:
+		return 1;
 	case PIPE_CAP_TGSI_FS_COORD_ORIGIN_UPPER_LEFT:
 	case PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_HALF_INTEGER:
 		return 1;
diff --git a/src/gallium/drivers/r600/r600_screen.h b/src/gallium/drivers/r600/r600_screen.h
index 4748021..d424af3 100644
--- a/src/gallium/drivers/r600/r600_screen.h
+++ b/src/gallium/drivers/r600/r600_screen.h
@@ -87,17 +87,26 @@ void r600_clear(struct pipe_context *ctx,
 		const float *rgba,
 		double depth,
 		unsigned stencil);
-void r600_surface_copy(struct pipe_context *ctx,
-			struct pipe_surface *dst,
-			unsigned dstx, unsigned dsty,
-			struct pipe_surface *src,
-			unsigned srcx, unsigned srcy,
-			unsigned width, unsigned height);
-void r600_surface_fill(struct pipe_context *ctx,
-			struct pipe_surface *dst,
-			unsigned dstx, unsigned dsty,
-			unsigned width, unsigned height,
-			unsigned value);
+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);



More information about the mesa-commit mailing list