Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

  1.  
  2. #ifndef __NVC0_RESOURCE_H__
  3. #define __NVC0_RESOURCE_H__
  4.  
  5. #include "nv50/nv50_resource.h"
  6.  
  7. #define NVC0_RESOURCE_FLAG_VIDEO (NOUVEAU_RESOURCE_FLAG_DRV_PRIV << 0)
  8.  
  9.  
  10. #define NVC0_TILE_SHIFT_X(m) ((((m) >> 0) & 0xf) + 6)
  11. #define NVC0_TILE_SHIFT_Y(m) ((((m) >> 4) & 0xf) + 3)
  12. #define NVC0_TILE_SHIFT_Z(m) ((((m) >> 8) & 0xf) + 0)
  13.  
  14. #define NVC0_TILE_SIZE_X(m) (64 << (((m) >> 0) & 0xf))
  15. #define NVC0_TILE_SIZE_Y(m) ( 8 << (((m) >> 4) & 0xf))
  16. #define NVC0_TILE_SIZE_Z(m) ( 1 << (((m) >> 8) & 0xf))
  17.  
  18. /* it's ok to mask only in the end because max value is 3 * 5 */
  19.  
  20. #define NVC0_TILE_SIZE_2D(m) ((64 * 8) << (((m) + ((m) >> 4)) & 0xf))
  21.  
  22. #define NVC0_TILE_SIZE(m) ((64 * 8) << (((m) + ((m) >> 4) + ((m) >> 8)) & 0xf))
  23.  
  24.  
  25. void
  26. nvc0_init_resource_functions(struct pipe_context *pcontext);
  27.  
  28. void
  29. nvc0_screen_init_resource_functions(struct pipe_screen *pscreen);
  30.  
  31. /* Internal functions:
  32.  */
  33. struct pipe_resource *
  34. nvc0_miptree_create(struct pipe_screen *pscreen,
  35.                     const struct pipe_resource *tmp);
  36.  
  37. const struct u_resource_vtbl nvc0_miptree_vtbl;
  38.  
  39. struct pipe_surface *
  40. nvc0_miptree_surface_new(struct pipe_context *,
  41.                          struct pipe_resource *,
  42.                          const struct pipe_surface *templ);
  43.  
  44. unsigned
  45. nvc0_mt_zslice_offset(const struct nv50_miptree *, unsigned l, unsigned z);
  46.  
  47. void *
  48. nvc0_miptree_transfer_map(struct pipe_context *pctx,
  49.                           struct pipe_resource *res,
  50.                           unsigned level,
  51.                           unsigned usage,
  52.                           const struct pipe_box *box,
  53.                           struct pipe_transfer **ptransfer);
  54. void
  55. nvc0_miptree_transfer_unmap(struct pipe_context *pcontext,
  56.                             struct pipe_transfer *ptx);
  57.  
  58. #endif
  59.