diff options
author | Dave Airlie <airlied@redhat.com> | 2009-11-30 15:32:12 +1000 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2009-12-01 13:40:45 +1000 |
commit | 88a50a30df11a06263209340a42251851f8e2334 (patch) | |
tree | 7a8ee4323f5f9ed91ff96e73986343315e0232e0 /src/radeon.h | |
parent | b2597deea3a3953ff50d54ff37e3c043eac409f4 (diff) |
r600: fix multi-operation in single batch support.
This ports the mesa DMA buffer handling with the 3 lists,
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'src/radeon.h')
-rw-r--r-- | src/radeon.h | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/src/radeon.h b/src/radeon.h index 5eec147a..1b8ae3cd 100644 --- a/src/radeon.h +++ b/src/radeon.h @@ -100,6 +100,7 @@ #include "picturestr.h" #endif +#include "simple_list.h" #include "atipcirename.h" #ifndef MAX @@ -652,6 +653,14 @@ struct radeon_dri { }; #endif +#define DMA_BO_FREE_TIME 1000 + +struct radeon_dma_bo { + struct radeon_dma_bo *next, *prev; + struct radeon_bo *bo; + int expire_counter; +}; + struct radeon_accel_state { /* common accel data */ int fifo_slots; /* Free slots in the FIFO (64 max) */ @@ -708,11 +717,17 @@ struct radeon_accel_state { int vb_total; void *vb_ptr; uint32_t vb_size; - struct radeon_bo *vb_bo[2]; - int vb_bo_index; - uint32_t vb_start_op; + uint32_t vb_op_vert_size; + int32_t vb_start_op; /* where to discard IB from if we cancel operation */ uint32_t ib_reset_op; + struct radeon_bo *vb_bo; +#ifdef XF86DRM_MODE + struct radeon_dma_bo bo_free; + struct radeon_dma_bo bo_wait; + struct radeon_dma_bo bo_reserved; + Bool use_vbos; +#endif // shader storage ExaOffscreenArea *shaders; |