summaryrefslogtreecommitdiff
path: root/src/radeon.h
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2009-11-30 15:32:12 +1000
committerDave Airlie <airlied@redhat.com>2009-12-01 13:40:45 +1000
commit88a50a30df11a06263209340a42251851f8e2334 (patch)
tree7a8ee4323f5f9ed91ff96e73986343315e0232e0 /src/radeon.h
parentb2597deea3a3953ff50d54ff37e3c043eac409f4 (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.h21
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;