diff options
author | Dave Airlie <airlied@redhat.com> | 2009-07-06 14:45:07 +1000 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2009-07-06 15:11:15 +1000 |
commit | d78d50591851d14543f0935d051a59ef29751bbc (patch) | |
tree | 973a85b4d6df847813a50e9dcb4f2fe94e689bc7 /src/radeon_exa.c | |
parent | e1200cb89218930d01330ba0114e013438655cce (diff) |
radeon: port to new space checking in libdrm interface
This uses a new libdrm interface which shares code with mesa.
It also fixes the bo to flush when full instead of never flushing.
It survives gtkperf -a here which the driver didn't before now
Diffstat (limited to 'src/radeon_exa.c')
-rw-r--r-- | src/radeon_exa.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/src/radeon_exa.c b/src/radeon_exa.c index ca4eda07..e7f1e9ca 100644 --- a/src/radeon_exa.c +++ b/src/radeon_exa.c @@ -120,13 +120,11 @@ static __inline__ uint32_t F_TO_DW(float val) return tmp.l; } -static inline void radeon_add_pixmap(struct radeon_cs_space_check *bos, int index, PixmapPtr pPix, int read_domains, int write_domain) +static inline void radeon_add_pixmap(struct radeon_cs *cs, PixmapPtr pPix, int read_domains, int write_domain) { struct radeon_exa_pixmap_priv *driver_priv = exaGetPixmapDriverPrivate(pPix); - bos[index].bo = driver_priv->bo; - bos[index].read_domains = read_domains; - bos[index].write_domain = write_domain; - bos[index].new_accounted = 0; + + radeon_cs_space_add_persistent_bo(cs, driver_priv->bo, read_domains, write_domain); } /* Assumes that depth 15 and 16 can be used as depth 16, which is okay since we @@ -344,7 +342,7 @@ static Bool RADEONPrepareAccess_CS(PixmapPtr pPix, int index) /* if we have more refs than just the BO then flush */ if (driver_priv->bo->cref > 1) - radeon_cs_flush_indirect(pScrn); + radeon_cs_flush_indirect(pScrn); radeon_bo_wait(driver_priv->bo); |