• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef __NV30_RESOURCE_H__
2 #define __NV30_RESOURCE_H__
3 
4 #include "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 *
nv30_surface(struct pipe_surface * ps)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    bool swizzled;
36    unsigned ms_mode;
37    unsigned ms_x:1;
38    unsigned ms_y:1;
39 };
40 
41 static inline struct nv30_miptree *
nv30_miptree(struct pipe_resource * pt)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 bool
62 nv30_miptree_get_handle(struct pipe_screen *pscreen,
63                         struct pipe_context *context,
64                         struct pipe_resource *pt,
65                         struct winsys_handle *handle,
66                         unsigned usage);
67 
68 void
69 nv30_miptree_destroy(struct pipe_screen *pscreen, struct pipe_resource *pt);
70 
71 void
72 nv30_resource_copy_region(struct pipe_context *pipe,
73                           struct pipe_resource *dst, unsigned dst_level,
74                           unsigned dstx, unsigned dsty, unsigned dstz,
75                           struct pipe_resource *src, unsigned src_level,
76                           const struct pipe_box *src_box);
77 
78 void
79 nv30_blit(struct pipe_context *pipe,
80           const struct pipe_blit_info *blit_info);
81 
82 void
83 nv30_flush_resource(struct pipe_context *pipe,
84                     struct pipe_resource *resource);
85 
86 void *
87 nv30_miptree_transfer_map(struct pipe_context *pipe, struct pipe_resource *pt,
88                           unsigned level, unsigned usage,
89                           const struct pipe_box *box,
90                           struct pipe_transfer **ptransfer);
91 
92 void
93 nv30_miptree_transfer_unmap(struct pipe_context *pipe,
94                             struct pipe_transfer *ptx);
95 
96 #endif
97