Home | History | Annotate | Download | only in nv30
      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