diff options
author | Alex Deucher <alexdeucher@gmail.com> | 2010-09-09 11:33:36 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2010-10-05 21:46:30 -0400 |
commit | d7ccd8fc11700502b5a104b7bad595b492a3aa1b (patch) | |
tree | df2a228494a959470d3efd5a7c8cde9e642aca21 /drivers/gpu/drm/radeon/radeon.h | |
parent | 75fa0b08e50cb72715b58321e8259c47adfe4c6f (diff) |
drm/radeon/kms: add drm blit support for evergreen
This patch implements blit support for bo moves using
the 3D engine. It uses the same method as r6xx/r7xx:
- store the base state in an IB
- emit variable state and vertex buffers to do the blit
This allows the hw to move bos using the 3D engine and allows
full use of vram beyond the pci aperture size.
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon.h')
-rw-r--r-- | drivers/gpu/drm/radeon/radeon.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h index 8e5cb2c4fa7e..2edd52ece226 100644 --- a/drivers/gpu/drm/radeon/radeon.h +++ b/drivers/gpu/drm/radeon/radeon.h | |||
@@ -1130,6 +1130,12 @@ void r600_blit_done_copy(struct radeon_device *rdev, struct radeon_fence *fence) | |||
1130 | void r600_kms_blit_copy(struct radeon_device *rdev, | 1130 | void r600_kms_blit_copy(struct radeon_device *rdev, |
1131 | u64 src_gpu_addr, u64 dst_gpu_addr, | 1131 | u64 src_gpu_addr, u64 dst_gpu_addr, |
1132 | int size_bytes); | 1132 | int size_bytes); |
1133 | /* evergreen blit */ | ||
1134 | int evergreen_blit_prepare_copy(struct radeon_device *rdev, int size_bytes); | ||
1135 | void evergreen_blit_done_copy(struct radeon_device *rdev, struct radeon_fence *fence); | ||
1136 | void evergreen_kms_blit_copy(struct radeon_device *rdev, | ||
1137 | u64 src_gpu_addr, u64 dst_gpu_addr, | ||
1138 | int size_bytes); | ||
1133 | 1139 | ||
1134 | static inline uint32_t r100_mm_rreg(struct radeon_device *rdev, uint32_t reg) | 1140 | static inline uint32_t r100_mm_rreg(struct radeon_device *rdev, uint32_t reg) |
1135 | { | 1141 | { |
@@ -1471,6 +1477,8 @@ extern void r700_cp_stop(struct radeon_device *rdev); | |||
1471 | extern void r700_cp_fini(struct radeon_device *rdev); | 1477 | extern void r700_cp_fini(struct radeon_device *rdev); |
1472 | extern void evergreen_disable_interrupt_state(struct radeon_device *rdev); | 1478 | extern void evergreen_disable_interrupt_state(struct radeon_device *rdev); |
1473 | extern int evergreen_irq_set(struct radeon_device *rdev); | 1479 | extern int evergreen_irq_set(struct radeon_device *rdev); |
1480 | extern int evergreen_blit_init(struct radeon_device *rdev); | ||
1481 | extern void evergreen_blit_fini(struct radeon_device *rdev); | ||
1474 | 1482 | ||
1475 | /* radeon_acpi.c */ | 1483 | /* radeon_acpi.c */ |
1476 | #if defined(CONFIG_ACPI) | 1484 | #if defined(CONFIG_ACPI) |