pass surface format in cell_command_framebuffer struct
authorBrian <brian.paul@tungstengraphics.com>
Thu, 3 Jan 2008 14:49:59 +0000 (07:49 -0700)
committerBrian <brian.paul@tungstengraphics.com>
Thu, 3 Jan 2008 14:49:59 +0000 (07:49 -0700)
src/mesa/pipe/cell/common.h
src/mesa/pipe/cell/spu/main.c
src/mesa/pipe/cell/spu/main.h
src/mesa/pipe/cell/spu/tri.c

index ee20bd150b7959f86045c67325237cc8ccd32096..983ccd07750e3c356a92e10c7c498a4f8c5ddaf4 100644 (file)
@@ -35,6 +35,7 @@
 
 #include "pipe/p_compiler.h"
 #include "pipe/p_util.h"
+#include "pipe/p_format.h"
 
 
 /** for sanity checking */
@@ -60,7 +61,7 @@ struct cell_command_framebuffer
 {
    void *start;
    int width, height;
-   unsigned format;
+   enum pipe_format format;
 } ALIGN16_ATTRIB;
 
 
index 94f13029ffa77e25ee678ac5922c43dda5904f2d..02b23866a5bf3048a1aa3759000201be607464d1 100644 (file)
@@ -285,10 +285,12 @@ main_loop(void)
          exitFlag = 1;
          break;
       case CELL_CMD_FRAMEBUFFER:
-         printf("SPU %u: FRAMEBUFFER: %d x %d at %p\n", init.id,
+         printf("SPU %u: FRAMEBUFFER: %d x %d at %p, format 0x%x\n", init.id,
                 cmd.fb.width,
                 cmd.fb.height,
-                cmd.fb.start);
+                cmd.fb.start,
+                cmd.fb.format);
+         fb.format = cmd.fb.format;
          fb.width = cmd.fb.width;
          fb.height = cmd.fb.height;
          fb.width_tiles = (fb.width + TILE_SIZE - 1) / TILE_SIZE;
index 47ce4be4b440ff09bd5c8e6b73d8fa85237fb11d..3240e01615b26fbc88a5dc3622efd894f209716d 100644 (file)
@@ -38,6 +38,7 @@ extern volatile struct cell_init_info init;
 
 struct framebuffer {
    void *start;                    /**< addr of surface in main memory */
+   enum pipe_format format;
    uint width, height;             /**< size in pixels */
    uint width_tiles, height_tiles; /**< width and height in tiles */
 };
index 4e198e638cbcf2fcdf887146e7f47bf127428b36..3707ebea458b3a524b82c1c5aeb1a0f69f295418 100644 (file)
@@ -234,8 +234,7 @@ pack_color(const float color[4])
    uint g = (uint) (color[1] * 255.0);
    uint b = (uint) (color[2] * 255.0);
    uint a = (uint) (color[3] * 255.0);
-   const enum pipe_format format = PIPE_FORMAT_A8R8G8B8_UNORM; /* XXX temp */
-   switch (format) {
+   switch (fb.format) {
    case PIPE_FORMAT_A8R8G8B8_UNORM:
       return (a << 24) | (r << 16) | (g << 8) | b;
    case PIPE_FORMAT_B8G8R8A8_UNORM: