r600g: adapt to interface changes
authorRoland Scheidegger <sroland@vmware.com>
Thu, 3 Jun 2010 15:41:53 +0000 (17:41 +0200)
committerRoland Scheidegger <sroland@vmware.com>
Thu, 3 Jun 2010 15:46:47 +0000 (17:46 +0200)
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
src/gallium/drivers/r600/r600_screen.c
src/gallium/drivers/r600/r600_screen.h

index 413c8ec403dcdcf2a31bcbf700f7d5dd7aea04ea..ffb2d372630bc477a40295f168c990c473030b70 100644 (file)
@@ -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)
 {
 }
index 7d39184d901cd0c5d9d3dc75edac1332fdb57a9c..1d83383fd95d79a17d3f6704804e65cb91afb533 100644 (file)
@@ -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;
index 4748021d0797e767b02aa35b370db98799879fe6..d424af304f9957dcc5bb943f68485e098413a64f 100644 (file)
@@ -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);