radeon_cs.c revision e6188e58
1baaff307Smrg#ifdef HAVE_CONFIG_H 2baaff307Smrg#include <config.h> 3baaff307Smrg#endif 4e6188e58Smrg#include "libdrm_macros.h" 522944501Smrg#include <stdio.h> 622944501Smrg#include "radeon_cs.h" 722944501Smrg#include "radeon_cs_int.h" 822944501Smrg 9e6188e58Smrgstruct radeon_cs * 10baaff307Smrgradeon_cs_create(struct radeon_cs_manager *csm, uint32_t ndw) 1122944501Smrg{ 1222944501Smrg struct radeon_cs_int *csi = csm->funcs->cs_create(csm, ndw); 1322944501Smrg return (struct radeon_cs *)csi; 1422944501Smrg} 1522944501Smrg 16e6188e58Smrgint 17baaff307Smrgradeon_cs_write_reloc(struct radeon_cs *cs, struct radeon_bo *bo, 18baaff307Smrg uint32_t read_domain, uint32_t write_domain, 19baaff307Smrg uint32_t flags) 2022944501Smrg{ 2122944501Smrg struct radeon_cs_int *csi = (struct radeon_cs_int *)cs; 2222944501Smrg 2322944501Smrg return csi->csm->funcs->cs_write_reloc(csi, 2422944501Smrg bo, 2522944501Smrg read_domain, 2622944501Smrg write_domain, 2722944501Smrg flags); 2822944501Smrg} 2922944501Smrg 30e6188e58Smrgint 31baaff307Smrgradeon_cs_begin(struct radeon_cs *cs, uint32_t ndw, 32baaff307Smrg const char *file, const char *func, int line) 3322944501Smrg{ 3422944501Smrg struct radeon_cs_int *csi = (struct radeon_cs_int *)cs; 3522944501Smrg return csi->csm->funcs->cs_begin(csi, ndw, file, func, line); 3622944501Smrg} 3722944501Smrg 38e6188e58Smrgint 39baaff307Smrgradeon_cs_end(struct radeon_cs *cs, 40baaff307Smrg const char *file, const char *func, int line) 4122944501Smrg{ 4222944501Smrg struct radeon_cs_int *csi = (struct radeon_cs_int *)cs; 4322944501Smrg return csi->csm->funcs->cs_end(csi, file, func, line); 4422944501Smrg} 4522944501Smrg 46e6188e58Smrgint radeon_cs_emit(struct radeon_cs *cs) 4722944501Smrg{ 4822944501Smrg struct radeon_cs_int *csi = (struct radeon_cs_int *)cs; 4922944501Smrg return csi->csm->funcs->cs_emit(csi); 5022944501Smrg} 5122944501Smrg 52e6188e58Smrgint radeon_cs_destroy(struct radeon_cs *cs) 5322944501Smrg{ 5422944501Smrg struct radeon_cs_int *csi = (struct radeon_cs_int *)cs; 5522944501Smrg return csi->csm->funcs->cs_destroy(csi); 5622944501Smrg} 5722944501Smrg 58e6188e58Smrgint radeon_cs_erase(struct radeon_cs *cs) 5922944501Smrg{ 6022944501Smrg struct radeon_cs_int *csi = (struct radeon_cs_int *)cs; 6122944501Smrg return csi->csm->funcs->cs_erase(csi); 6222944501Smrg} 6322944501Smrg 64e6188e58Smrgint radeon_cs_need_flush(struct radeon_cs *cs) 6522944501Smrg{ 6622944501Smrg struct radeon_cs_int *csi = (struct radeon_cs_int *)cs; 6722944501Smrg return csi->csm->funcs->cs_need_flush(csi); 6822944501Smrg} 6922944501Smrg 70e6188e58Smrgvoid radeon_cs_print(struct radeon_cs *cs, FILE *file) 7122944501Smrg{ 7222944501Smrg struct radeon_cs_int *csi = (struct radeon_cs_int *)cs; 7322944501Smrg csi->csm->funcs->cs_print(csi, file); 7422944501Smrg} 7522944501Smrg 76e6188e58Smrgvoid 77baaff307Smrgradeon_cs_set_limit(struct radeon_cs *cs, uint32_t domain, uint32_t limit) 7822944501Smrg{ 7922944501Smrg struct radeon_cs_int *csi = (struct radeon_cs_int *)cs; 8022944501Smrg if (domain == RADEON_GEM_DOMAIN_VRAM) 8122944501Smrg csi->csm->vram_limit = limit; 8222944501Smrg else 8322944501Smrg csi->csm->gart_limit = limit; 8422944501Smrg} 8522944501Smrg 86e6188e58Smrgvoid radeon_cs_space_set_flush(struct radeon_cs *cs, 87baaff307Smrg void (*fn)(void *), void *data) 8822944501Smrg{ 8922944501Smrg struct radeon_cs_int *csi = (struct radeon_cs_int *)cs; 9022944501Smrg csi->space_flush_fn = fn; 9122944501Smrg csi->space_flush_data = data; 9222944501Smrg} 9322944501Smrg 94e6188e58Smrguint32_t radeon_cs_get_id(struct radeon_cs *cs) 9522944501Smrg{ 9622944501Smrg struct radeon_cs_int *csi = (struct radeon_cs_int *)cs; 9722944501Smrg return csi->id; 9822944501Smrg} 99