STRUCT DRM_IVPU_BO_CREATE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

Hiii bestie! πŸ’– This is struct drm_ivpu_bo_create(9) from the Kernel API Manual β€” the page that’s literally all about creating a BO backed by SHMEM. Let’s get into it ✨

πŸŽ€ NAME πŸŽ€

struct drm_ivpu_bo_create β€” Create BO backed by SHMEM 🫢

✨ SYNOPSIS ✨

       struct drm_ivpu_bo_create {
           __u64 size;
           __u32 flags;
           __u32 handle;
           __u64 vpu_addr;
        };

πŸ’… Members πŸ’…

  • size β€” The size in bytes of the allocated memory πŸ“
  • flags β€” Supported flags:
    • DRM_IVPU_BO_HIGH_MEM β€” Allocate VPU address from >4GB range. Buffer object with vpu address >4GB can be always accessed by the VPU DMA engine, but some HW generation may not be able to access this memory from then firmware running on the VPU management processor 😭 Suitable for input, output and some scratch buffers.
    • DRM_IVPU_BO_MAPPABLE β€” Buffer object can be mapped using mmap πŸ—ΊοΈ
    • DRM_IVPU_BO_CACHED β€” Allocated BO will be cached on host side (WB) and snooped on the VPU side. This is the default caching mode ✨
    • DRM_IVPU_BO_UNCACHED β€” Not supported. Use DRM_IVPU_BO_WC instead πŸ’€
    • DRM_IVPU_BO_WC β€” Allocated BO will use write combining buffer for writes but reads will be uncached 🧚
  • handle β€” Returned GEM object handle πŸŽ€
  • vpu_addr β€” Returned VPU virtual address 🌸

🌈 Description 🌈

The whole vibe: create GEM buffer object allocated in SHMEM memory. Periodt. πŸ’…

πŸ¦‹ SEE ALSO πŸ¦‹


This page’s source/version is ./include/uapi/drm, dated October 2026 β€” mwah, bestie πŸ’‹

πŸ“¦ where this page comes from