radeon-gallium: Unbreak non-RADEON_SOFTPIPE.
authorCorbin Simpson <MostAwesomeDude@gmail.com>
Tue, 10 Mar 2009 09:08:59 +0000 (02:08 -0700)
committerCorbin Simpson <MostAwesomeDude@gmail.com>
Tue, 10 Mar 2009 09:08:59 +0000 (02:08 -0700)
Hehe, sleep may be necessary now.

src/gallium/winsys/drm/radeon/core/radeon_buffer.c
src/gallium/winsys/drm/radeon/core/radeon_buffer.h
src/gallium/winsys/drm/radeon/core/radeon_drm.c
src/gallium/winsys/drm/radeon/core/radeon_r300.c
src/gallium/winsys/drm/radeon/core/radeon_r300.h

index 483cbc13dc7ed35a8a8105c1b1cd49bdc8ec83cc..9dca510c815aef5ae2528a54aef94a309dd201b2 100644 (file)
@@ -154,7 +154,7 @@ static void radeon_flush_frontbuffer(struct pipe_winsys *pipe_winsys,
     /* TODO: call dri2CopyRegion */
 }
 
-struct pipe_winsys* radeon_pipe_winsys(int fd)
+struct radeon_winsys* radeon_pipe_winsys(int fd)
 {
     struct radeon_winsys* radeon_ws;
     struct radeon_bo_manager* bom;
index dc56ab90cff6fccdd316e6ef715e283ac905aa2d..40ad0fc8d19490e1a407b784fe5d0cd1b489f883 100644 (file)
@@ -58,7 +58,7 @@ struct radeon_winsys {
     struct radeon_bo_manager* bom;
 };
 
-struct pipe_winsys *radeon_pipe_winsys(int fb);
+struct radeon_winsys* radeon_pipe_winsys(int fb);
 struct pipe_surface *radeon_surface_from_handle(struct radeon_context *radeon_context,
                                              uint32_t handle,
                                              enum pipe_format format,
index 9387932a53bb786266e73c6356fbf66a762db8ae..3446654e287cf79c9eef486a70d7063b0fea4281 100644 (file)
 /* Create a pipe_screen. */
 struct pipe_screen* radeon_create_screen(int drmFB, int pciID)
 {
-    struct pipe_winsys* winsys = radeon_pipe_winsys(drmFB);
+    struct radeon_winsys* winsys = radeon_pipe_winsys(drmFB);
 
     if (getenv("RADEON_SOFTPIPE")) {
-        return softpipe_create_screen(winsys);
+        return softpipe_create_screen((struct pipe_winsys*)winsys);
     } else {
         struct r300_winsys* r300 = radeon_create_r300_winsys(drmFB, winsys);
         FREE(winsys);
index 9a42db51bdf4cdbf1b70d0ba5d419df944c6666e..c7b6813014fcd25e0820d10d07fea6ba5bfaddf8 100644 (file)
@@ -75,7 +75,8 @@ static void do_ioctls(struct r300_winsys* winsys, int fd)
 
 }
 
-struct r300_winsys* radeon_create_r300_winsys(int fd, struct pipe_winsys* old_winsys)
+struct r300_winsys*
+radeon_create_r300_winsys(int fd, struct radeon_winsys* old_winsys)
 {
     struct r300_winsys* winsys = CALLOC_STRUCT(r300_winsys);
 
@@ -92,7 +93,7 @@ struct r300_winsys* radeon_create_r300_winsys(int fd, struct pipe_winsys* old_wi
     winsys->end_cs = radeon_cs_end;
     winsys->flush_cs = radeon_r300_flush_cs;
 
-    winsys->base = *old_winsys;
+    memcpy(winsys, old_winsys, sizeof(struct radeon_winsys));
 
     return winsys;
 }
index 432b7b18331c2fab53538344b61d2b08c9d03e1f..5c373cd0848594bbfda16133bbb0a33e8491a74d 100644 (file)
@@ -31,4 +31,5 @@
 
 #include "radeon_buffer.h"
 
-struct r300_winsys* radeon_create_r300_winsys(int fd, struct pipe_winsys* old_winsys);
+struct r300_winsys*
+radeon_create_r300_winsys(int fd, struct radeon_winsys* old_winsys);