mirror of
https://gitlab.freedesktop.org/mesa/drm.git
synced 2026-01-04 01:40:21 +01:00
Add test to determine if ring ever empties
This commit is contained in:
parent
6b4dd1a7a4
commit
7adbd50d96
2 changed files with 30 additions and 8 deletions
|
|
@ -92,6 +92,8 @@ typedef struct drm_radeon_private {
|
|||
int requested_bufs;
|
||||
int last_frame_reads;
|
||||
int last_clear_reads;
|
||||
int clears;
|
||||
int texture_uploads;
|
||||
} stats;
|
||||
|
||||
int do_boxes;
|
||||
|
|
@ -163,10 +165,11 @@ extern int radeon_cp_flip( DRM_IOCTL_ARGS );
|
|||
|
||||
/* Flags for stats.boxes
|
||||
*/
|
||||
#define RADEON_BOX_DMA_IDLE 0x1
|
||||
#define RADEON_BOX_RING_FULL 0x2
|
||||
#define RADEON_BOX_FLIP 0x4
|
||||
#define RADEON_BOX_WAIT_IDLE 0x8
|
||||
#define RADEON_BOX_DMA_IDLE 0x1
|
||||
#define RADEON_BOX_RING_FULL 0x2
|
||||
#define RADEON_BOX_FLIP 0x4
|
||||
#define RADEON_BOX_WAIT_IDLE 0x8
|
||||
#define RADEON_BOX_TEXTURE_LOAD 0x10
|
||||
|
||||
|
||||
|
||||
|
|
@ -682,8 +685,16 @@ do { \
|
|||
} \
|
||||
} while (0)
|
||||
|
||||
|
||||
/* Perfbox functionality only.
|
||||
*/
|
||||
#define RING_SPACE_TEST_WITH_RETURN( dev_priv ) \
|
||||
do { \
|
||||
if (!(dev_priv->stats.boxes & RADEON_BOX_DMA_IDLE)) { \
|
||||
u32 head = GET_RING_HEAD(&dev_priv->ring); \
|
||||
if (head == dev_priv->ring.tail) \
|
||||
dev_priv->stats.boxes |= RADEON_BOX_DMA_IDLE; \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#define VB_AGE_TEST_WITH_RETURN( dev_priv ) \
|
||||
|
|
|
|||
|
|
@ -92,6 +92,8 @@ typedef struct drm_radeon_private {
|
|||
int requested_bufs;
|
||||
int last_frame_reads;
|
||||
int last_clear_reads;
|
||||
int clears;
|
||||
int texture_uploads;
|
||||
} stats;
|
||||
|
||||
int do_boxes;
|
||||
|
|
@ -163,10 +165,11 @@ extern int radeon_cp_flip( DRM_IOCTL_ARGS );
|
|||
|
||||
/* Flags for stats.boxes
|
||||
*/
|
||||
#define RADEON_BOX_DMA_IDLE 0x1
|
||||
#define RADEON_BOX_RING_FULL 0x2
|
||||
#define RADEON_BOX_FLIP 0x4
|
||||
#define RADEON_BOX_WAIT_IDLE 0x8
|
||||
#define RADEON_BOX_DMA_IDLE 0x1
|
||||
#define RADEON_BOX_RING_FULL 0x2
|
||||
#define RADEON_BOX_FLIP 0x4
|
||||
#define RADEON_BOX_WAIT_IDLE 0x8
|
||||
#define RADEON_BOX_TEXTURE_LOAD 0x10
|
||||
|
||||
|
||||
|
||||
|
|
@ -682,8 +685,16 @@ do { \
|
|||
} \
|
||||
} while (0)
|
||||
|
||||
|
||||
/* Perfbox functionality only.
|
||||
*/
|
||||
#define RING_SPACE_TEST_WITH_RETURN( dev_priv ) \
|
||||
do { \
|
||||
if (!(dev_priv->stats.boxes & RADEON_BOX_DMA_IDLE)) { \
|
||||
u32 head = GET_RING_HEAD(&dev_priv->ring); \
|
||||
if (head == dev_priv->ring.tail) \
|
||||
dev_priv->stats.boxes |= RADEON_BOX_DMA_IDLE; \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#define VB_AGE_TEST_WITH_RETURN( dev_priv ) \
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue