struct pipe_screen base;
struct brw_chipset chipset;
struct brw_winsys_screen *sws;
+ boolean no_tiling;
};
-/**
- * Subclass of pipe_transfer
- */
-struct brw_transfer
-{
- struct pipe_transfer base;
- unsigned offset;
-};
-struct brw_buffer
-{
- struct pipe_buffer base;
- struct brw_winsys_buffer *bo;
- void *ptr;
- boolean is_user_buffer;
-};
-
-struct brw_texture
-{
- struct pipe_texture base;
-
- struct brw_winsys_buffer *bo;
- struct brw_surface_state ss;
-
- unsigned brw_target;
- unsigned pitch;
- unsigned tiling;
- unsigned cpp;
+union brw_surface_id {
+ struct {
+ unsigned face:3;
+ unsigned zslice:13;
+ unsigned level:16;
+ } bits;
+ unsigned value;
};
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;
};
+
+
/*
* Cast wrappers
*/
return (struct brw_screen *) pscreen;
}
-static INLINE struct brw_transfer *
-brw_transfer(struct pipe_transfer *transfer)
-{
- return (struct brw_transfer *)transfer;
-}
static INLINE struct brw_surface *
brw_surface(struct pipe_surface *surface)
return (struct brw_surface *)surface;
}
-static INLINE struct brw_buffer *
-brw_buffer(struct pipe_buffer *buffer)
-{
- return (struct brw_buffer *)buffer;
-}
-
-
-/* Pipe buffer helpers
- */
-static INLINE boolean
-brw_buffer_is_user_buffer( const struct pipe_buffer *buf )
-{
- return ((const struct brw_buffer *)buf)->is_user_buffer;
-}
-
-struct brw_winsys_buffer *
-brw_surface_bo( struct pipe_surface *surface );
-
unsigned
brw_surface_pitch( const struct pipe_surface *surface );
+void brw_screen_tex_surface_init( struct brw_screen *brw_screen );
+
#endif /* BRW_SCREEN_H */