struct pipe_screen base;
struct brw_chipset chipset;
struct brw_winsys_screen *sws;
+ boolean no_tiling;
};
/**
struct brw_buffer
{
struct pipe_buffer base;
+
+ /* One of either bo or user_buffer will be non-null, depending on
+ * whether this is a hardware or user buffer.
+ */
struct brw_winsys_buffer *bo;
+ void *user_buffer;
+
+ /* Mapped pointer??
+ */
void *ptr;
- boolean is_user_buffer;
};
-#define BRW_TILING_NONE 0
-#define BRW_TILING_Y 1
-#define BRW_TILING_X 2
union brw_surface_id {
struct {
struct brw_surface
{
struct pipe_surface base;
+
union brw_surface_id id;
+ unsigned cpp;
+ unsigned pitch;
+ unsigned draw_offset;
+ unsigned tiling;
+
struct brw_surface_state ss;
struct brw_winsys_buffer *bo;
struct brw_surface *next, *prev;
static INLINE boolean
brw_buffer_is_user_buffer( const struct pipe_buffer *buf )
{
- return ((const struct brw_buffer *)buf)->is_user_buffer;
+ return ((const struct brw_buffer *)buf)->user_buffer != NULL;
}
-struct brw_winsys_buffer *
-brw_surface_bo( struct pipe_surface *surface );
-
unsigned
brw_surface_pitch( const struct pipe_surface *surface );
void brw_screen_tex_init( struct brw_screen *brw_screen );
void brw_screen_tex_surface_init( struct brw_screen *brw_screen );
+void brw_screen_buffer_init(struct brw_screen *brw_screen);
+
+
+boolean brw_is_texture_referenced_by_bo( struct brw_screen *brw_screen,
+ struct pipe_texture *texture,
+ unsigned face,
+ unsigned level,
+ struct brw_winsys_buffer *bo );
+
+boolean brw_is_buffer_referenced_by_bo( struct brw_screen *brw_screen,
+ struct pipe_buffer *buffer,
+ struct brw_winsys_buffer *bo );
+
#endif /* BRW_SCREEN_H */