Home | History | Annotate | Download | only in radeon
      1 #ifdef HAVE_CONFIG_H
      2 #include <config.h>
      3 #endif
      4 #include "libdrm_macros.h"
      5 #include <stdio.h>
      6 #include "radeon_cs.h"
      7 #include "radeon_cs_int.h"
      8 
      9 struct radeon_cs *
     10 radeon_cs_create(struct radeon_cs_manager *csm, uint32_t ndw)
     11 {
     12     struct radeon_cs_int *csi = csm->funcs->cs_create(csm, ndw);
     13     return (struct radeon_cs *)csi;
     14 }
     15 
     16 int
     17 radeon_cs_write_reloc(struct radeon_cs *cs, struct radeon_bo *bo,
     18                       uint32_t read_domain, uint32_t write_domain,
     19                       uint32_t flags)
     20 {
     21     struct radeon_cs_int *csi = (struct radeon_cs_int *)cs;
     22 
     23     return csi->csm->funcs->cs_write_reloc(csi,
     24                                            bo,
     25                                            read_domain,
     26                                            write_domain,
     27                                            flags);
     28 }
     29 
     30 int
     31 radeon_cs_begin(struct radeon_cs *cs, uint32_t ndw,
     32                 const char *file, const char *func, int line)
     33 {
     34     struct radeon_cs_int *csi = (struct radeon_cs_int *)cs;
     35     return csi->csm->funcs->cs_begin(csi, ndw, file, func, line);
     36 }
     37 
     38 int
     39 radeon_cs_end(struct radeon_cs *cs,
     40               const char *file, const char *func, int line)
     41 {
     42     struct radeon_cs_int *csi = (struct radeon_cs_int *)cs;
     43     return csi->csm->funcs->cs_end(csi, file, func, line);
     44 }
     45 
     46 int radeon_cs_emit(struct radeon_cs *cs)
     47 {
     48     struct radeon_cs_int *csi = (struct radeon_cs_int *)cs;
     49     return csi->csm->funcs->cs_emit(csi);
     50 }
     51 
     52 int radeon_cs_destroy(struct radeon_cs *cs)
     53 {
     54     struct radeon_cs_int *csi = (struct radeon_cs_int *)cs;
     55     return csi->csm->funcs->cs_destroy(csi);
     56 }
     57 
     58 int radeon_cs_erase(struct radeon_cs *cs)
     59 {
     60     struct radeon_cs_int *csi = (struct radeon_cs_int *)cs;
     61     return csi->csm->funcs->cs_erase(csi);
     62 }
     63 
     64 int radeon_cs_need_flush(struct radeon_cs *cs)
     65 {
     66     struct radeon_cs_int *csi = (struct radeon_cs_int *)cs;
     67     return csi->csm->funcs->cs_need_flush(csi);
     68 }
     69 
     70 void radeon_cs_print(struct radeon_cs *cs, FILE *file)
     71 {
     72     struct radeon_cs_int *csi = (struct radeon_cs_int *)cs;
     73     csi->csm->funcs->cs_print(csi, file);
     74 }
     75 
     76 void
     77 radeon_cs_set_limit(struct radeon_cs *cs, uint32_t domain, uint32_t limit)
     78 {
     79     struct radeon_cs_int *csi = (struct radeon_cs_int *)cs;
     80     if (domain == RADEON_GEM_DOMAIN_VRAM)
     81         csi->csm->vram_limit = limit;
     82     else
     83         csi->csm->gart_limit = limit;
     84 }
     85 
     86 void radeon_cs_space_set_flush(struct radeon_cs *cs,
     87                                           void (*fn)(void *), void *data)
     88 {
     89     struct radeon_cs_int *csi = (struct radeon_cs_int *)cs;
     90     csi->space_flush_fn = fn;
     91     csi->space_flush_data = data;
     92 }
     93 
     94 uint32_t radeon_cs_get_id(struct radeon_cs *cs)
     95 {
     96     struct radeon_cs_int *csi = (struct radeon_cs_int *)cs;
     97     return csi->id;
     98 }
     99