Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. #ifndef SNA_REG_H
  2. #define SNA_REG_H
  3.  
  4. /* Flush */
  5. #define MI_FLUSH                        (0x04<<23)
  6. #define MI_FLUSH_DW                     (0x26<<23)
  7.  
  8. #define MI_WRITE_DIRTY_STATE            (1<<4)
  9. #define MI_END_SCENE                    (1<<3)
  10. #define MI_GLOBAL_SNAPSHOT_COUNT_RESET  (1<<3)
  11. #define MI_INHIBIT_RENDER_CACHE_FLUSH   (1<<2)
  12. #define MI_STATE_INSTRUCTION_CACHE_FLUSH (1<<1)
  13. #define MI_INVALIDATE_MAP_CACHE         (1<<0)
  14. /* broadwater flush bits */
  15. #define BRW_MI_GLOBAL_SNAPSHOT_RESET   (1 << 3)
  16.  
  17. #define MI_BATCH_BUFFER_END     (0xA << 23)
  18.  
  19. /* Noop */
  20. #define MI_NOOP                         0x00
  21. #define MI_NOOP_WRITE_ID                (1<<22)
  22. #define MI_NOOP_ID_MASK                 (1<<22 - 1)
  23.  
  24. /* Wait for Events */
  25. #define MI_WAIT_FOR_EVENT                       (0x03<<23)
  26. #define MI_WAIT_FOR_PIPEB_SVBLANK               (1<<18)
  27. #define MI_WAIT_FOR_PIPEA_SVBLANK               (1<<17)
  28. #define MI_WAIT_FOR_OVERLAY_FLIP                (1<<16)
  29. #define MI_WAIT_FOR_PIPEB_VBLANK                (1<<7)
  30. #define MI_WAIT_FOR_PIPEB_SCAN_LINE_WINDOW      (1<<5)
  31. #define MI_WAIT_FOR_PIPEA_VBLANK                (1<<3)
  32. #define MI_WAIT_FOR_PIPEA_SCAN_LINE_WINDOW      (1<<1)
  33.  
  34. /* Set the scan line for MI_WAIT_FOR_PIPE?_SCAN_LINE_WINDOW */
  35. #define MI_LOAD_SCAN_LINES_INCL                 (0x12<<23)
  36. #define MI_LOAD_SCAN_LINES_DISPLAY_PIPEA        (0)
  37. #define MI_LOAD_SCAN_LINES_DISPLAY_PIPEB        (0x1<<20)
  38.  
  39. /* BLT commands */
  40. #define BLT_WRITE_ALPHA         (1<<21)
  41. #define BLT_WRITE_RGB           (1<<20)
  42. #define BLT_SRC_TILED           (1<<15)
  43. #define BLT_DST_TILED           (1<<11)
  44.  
  45. #define COLOR_BLT_CMD                   ((2<<29)|(0x40<<22)|(0x3))
  46. #define XY_COLOR_BLT                    ((2<<29)|(0x50<<22)|(0x4))
  47. #define XY_SETUP_BLT                    ((2<<29)|(1<<22)|6)
  48. #define XY_SETUP_MONO_PATTERN_SL_BLT    ((2<<29)|(0x11<<22)|7)
  49. #define XY_SETUP_CLIP                   ((2<<29)|(3<<22)|1)
  50. #define XY_SCANLINE_BLT                 ((2<<29)|(0x25<<22)|1)
  51. #define XY_TEXT_IMMEDIATE_BLT           ((2<<29)|(0x31<<22)|(1<<16))
  52. #define XY_SRC_COPY_BLT_CMD             ((2<<29)|(0x53<<22)|6)
  53. #define SRC_COPY_BLT_CMD                ((2<<29)|(0x43<<22)|0x4)
  54. #define XY_PAT_BLT_IMMEDIATE            ((2<<29)|(0x72<<22))
  55. #define XY_MONO_PAT                     ((0x2<<29)|(0x52<<22)|0x7)
  56. #define XY_MONO_SRC_COPY                ((0x2<<29)|(0x54<<22)|(0x6))
  57. #define XY_MONO_SRC_COPY_IMM            ((0x2<<29)|(0x71<<22))
  58. #define XY_FULL_MONO_PATTERN_BLT        ((0x2<<29)|(0x57<<22)|0xa)
  59. #define XY_FULL_MONO_PATTERN_MONO_SRC_BLT       ((0x2<<29)|(0x58<<22)|0xa)
  60.  
  61. /* FLUSH commands */
  62. #define BRW_3D(Pipeline,Opcode,Subopcode) \
  63.         ((3 << 29) | \
  64.          ((Pipeline) << 27) | \
  65.          ((Opcode) << 24) | \
  66.          ((Subopcode) << 16))
  67. #define PIPE_CONTROL            BRW_3D(3, 2, 0)
  68. #define PIPE_CONTROL_NOWRITE       (0 << 14)
  69. #define PIPE_CONTROL_WRITE_QWORD   (1 << 14)
  70. #define PIPE_CONTROL_WRITE_DEPTH   (2 << 14)
  71. #define PIPE_CONTROL_WRITE_TIME    (3 << 14)
  72. #define PIPE_CONTROL_DEPTH_STALL   (1 << 13)
  73. #define PIPE_CONTROL_WC_FLUSH      (1 << 12)
  74. #define PIPE_CONTROL_IS_FLUSH      (1 << 11)
  75. #define PIPE_CONTROL_TC_FLUSH      (1 << 10)
  76. #define PIPE_CONTROL_NOTIFY_ENABLE (1 << 8)
  77. #define PIPE_CONTROL_GLOBAL_GTT    (1 << 2)
  78. #define PIPE_CONTROL_LOCAL_PGTT    (0 << 2)
  79. #define PIPE_CONTROL_DEPTH_CACHE_FLUSH  (1 << 0)
  80.  
  81. #endif
  82.