1 #ifndef __NV30_RESOURCE_H__ 2 #define __NV30_RESOURCE_H__ 3 4 #include "nouveau/nouveau_buffer.h" 5 6 void nv30_resource_screen_init(struct pipe_screen *); 7 void nv30_resource_init(struct pipe_context *); 8 9 struct nv30_surface { 10 struct pipe_surface base; 11 uint32_t offset; 12 uint32_t pitch; 13 uint32_t width; 14 uint16_t height; 15 uint16_t depth; 16 }; 17 18 static INLINE struct nv30_surface * 19 nv30_surface(struct pipe_surface *ps) 20 { 21 return (struct nv30_surface *)ps; 22 } 23 24 struct nv30_miptree_level { 25 uint32_t offset; 26 uint32_t pitch; 27 uint32_t zslice_size; 28 }; 29 30 struct nv30_miptree { 31 struct nv04_resource base; 32 struct nv30_miptree_level level[13]; 33 uint32_t uniform_pitch; 34 uint32_t layer_size; 35 boolean swizzled; 36 unsigned ms_mode; 37 unsigned ms_x:1; 38 unsigned ms_y:1; 39 }; 40 41 static INLINE struct nv30_miptree * 42 nv30_miptree(struct pipe_resource *pt) 43 { 44 return (struct nv30_miptree *)pt; 45 } 46 47 struct pipe_resource * 48 nv30_miptree_create(struct pipe_screen *, const struct pipe_resource *); 49 50 struct pipe_resource * 51 nv30_miptree_from_handle(struct pipe_screen *, const struct pipe_resource *, 52 struct winsys_handle *); 53 54 struct pipe_surface * 55 nv30_miptree_surface_new(struct pipe_context *, struct pipe_resource *, 56 const struct pipe_surface *); 57 58 void 59 nv30_miptree_surface_del(struct pipe_context *, struct pipe_surface *); 60 61 void 62 nv30_resource_copy_region(struct pipe_context *pipe, 63 struct pipe_resource *dst, unsigned dst_level, 64 unsigned dstx, unsigned dsty, unsigned dstz, 65 struct pipe_resource *src, unsigned src_level, 66 const struct pipe_box *src_box); 67 68 void 69 nv30_resource_resolve(struct pipe_context *, const struct pipe_resolve_info *); 70 71 #endif 72