#include "pipe/p_screen.h"
#include "brw_reg.h"
+#include "brw_structs.h"
struct brw_winsys_screen;
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;
+
+union brw_surface_id {
+ struct {
+ unsigned face:3;
+ unsigned zslice:13;
+ unsigned level:16;
+ } bits;
+ unsigned value;
};
-struct brw_buffer
+
+struct brw_surface
{
- struct pipe_buffer base;
+ 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;
- void *ptr;
- boolean is_user_buffer;
+ struct brw_surface *next, *prev;
};
-struct brw_texture
-{
- struct pipe_texture base;
-
- ubyte shader_swizzle;
-};
/*
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_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 )
+static INLINE struct brw_surface *
+brw_surface(struct pipe_surface *surface)
{
- return ((const struct brw_buffer *)buf)->is_user_buffer;
+ return (struct brw_surface *)surface;
}
-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 */