summaryrefslogtreecommitdiff
path: root/lib/igt_fb.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/igt_fb.c')
-rw-r--r--lib/igt_fb.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/igt_fb.c b/lib/igt_fb.c
index 6adf4222..f5c9a9f1 100644
--- a/lib/igt_fb.c
+++ b/lib/igt_fb.c
@@ -38,6 +38,7 @@
#include "igt_kms.h"
#include "igt_matrix.h"
#include "igt_vc4.h"
+#include "igt_amd.h"
#include "igt_x86.h"
#include "ioctl_wrappers.h"
#include "intel_batchbuffer.h"
@@ -763,7 +764,8 @@ static int create_bo_for_fb(struct igt_fb *fb)
* them, so we need to make sure to use a device BO then.
*/
if (fb->modifier || fb->size || fb->strides[0] ||
- (is_i915_device(fd) && igt_format_is_yuv(fb->drm_format)))
+ (is_i915_device(fd) && igt_format_is_yuv(fb->drm_format)) ||
+ (is_amdgpu_device(fd) && igt_format_is_yuv(fb->drm_format)))
device_bo = true;
/* Sets offets and stride if necessary. */
@@ -787,6 +789,8 @@ static int create_bo_for_fb(struct igt_fb *fb)
if (fb->modifier == DRM_FORMAT_MOD_BROADCOM_VC4_T_TILED)
igt_vc4_set_tiling(fd, fb->gem_handle,
fb->modifier);
+ } else if (is_amdgpu_device(fd)) {
+ fb->gem_handle = igt_amd_create_bo(fd, fb->size);
} else {
igt_assert(false);
}
@@ -1832,6 +1836,9 @@ static void *map_bo(int fd, struct igt_fb *fb)
else if (is_vc4_device(fd))
ptr = igt_vc4_mmap_bo(fd, fb->gem_handle, fb->size,
PROT_READ | PROT_WRITE);
+ else if (is_amdgpu_device(fd))
+ ptr = igt_amd_mmap_bo(fd, fb->gem_handle, fb->size,
+ PROT_READ | PROT_WRITE);
else
igt_assert(false);