diff options
author | Brian <brian.paul@tungstengraphics.com> | 2007-12-10 14:25:30 -0700 |
---|---|---|
committer | Brian <brian.paul@tungstengraphics.com> | 2007-12-10 14:25:30 -0700 |
commit | e53303ba3b69c2c82cefd58e90d06132c2af2bb7 (patch) | |
tree | 21e6cb8381c6d27ca910850f60387d2b1b72fb33 /src/mesa/pipe/cell/common.h | |
parent | e248f940506a678acc0cad1c925c0b11cca09672 (diff) |
Cell driver state-setter functions, basic tile get/put, glClear.
The state setting code was mostly just copied from the softpipe driver.
The SPUs can now get/put framebuffer tiles from/to main memory and clear
them to a given color. Lots of debug code in effect.
Tiled framebuffer is displayed in X window via the xmwinsys layer.
To enable Cell driver, export GALLIUM_CELL=1
Diffstat (limited to 'src/mesa/pipe/cell/common.h')
-rw-r--r-- | src/mesa/pipe/cell/common.h | 89 |
1 files changed, 85 insertions, 4 deletions
diff --git a/src/mesa/pipe/cell/common.h b/src/mesa/pipe/cell/common.h index c4bad4194a..da7de78803 100644 --- a/src/mesa/pipe/cell/common.h +++ b/src/mesa/pipe/cell/common.h @@ -1,13 +1,94 @@ +/************************************************************************** + * + * Copyright 2007 Tungsten Graphics, Inc., Cedar Park, Texas. + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sub license, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial portions + * of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. + * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR + * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + **************************************************************************/ + +/** + * Types and tokens which are common to the SPU and PPU code. + */ + #ifndef CELL_COMMON_H #define CELL_COMMON_H +#include "pipe/p_util.h" + + +#define ALIGN16 __attribute__( (aligned( 16 )) ) + +#define ASSERT_ALIGN16(ptr) \ + assert((((unsigned long) (ptr)) & 0xf) == 0); + + + +#define TILE_SIZE 32 + + +#define CELL_CMD_EXIT 1 +#define CELL_CMD_FRAMEBUFFER 2 +#define CELL_CMD_CLEAR_TILES 3 +#define CELL_CMD_INVERT_TILES 4 +#define CELL_CMD_FINISH 5 + -struct init_info +/** + * Tell SPUs about the framebuffer size, location + */ +struct cell_command_framebuffer { - int foo; - int bar; -}; + void *start; + int width, height; + unsigned format; +} ALIGN16; + + +/** + * Clear framebuffer tiles to given value/color. + */ +struct cell_command_clear_tiles +{ + uint value; +} ALIGN16; + + +/** XXX unions don't seem to work */ +struct cell_command +{ + struct cell_command_framebuffer fb; + struct cell_command_clear_tiles clear; +} ALIGN16; + + +struct cell_init_info +{ + unsigned id; + unsigned num_spus; + struct cell_command *cmd; +} ALIGN16; + + #endif /* CELL_COMMON_H */ |