STRUCT DRM_IVPU_PARAM(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct drm_ivpu_param(9) β€” the kernel API manual, but make it make sense

okay bestie, so this is a page from the Kernel API Manual about struct drm_ivpu_param, and honestly? it's giving "small struct, big responsibilities." let's get into it πŸŽ€


✨ NAME ✨

struct drm_ivpu_param β€” Get/Set VPU parameters. that's it, that's the whole vibe. you use this thing to get (and set) parameters on the VPU. πŸ¦‹


🌸 SYNOPSIS 🌸

here's the struct, exactly as it lives, no cap:

struct drm_ivpu_param {
    __u32 param;
    __u32 index;
    __u64 value;
 };

three fields. tiny. iconic. πŸ‘‘


πŸ’– Members πŸ’–

the param field 🧚

okay so param is where you say which parameter you want, and the supported ones are a whole little list. every single one, coming right up:

  • DRM_IVPU_PARAM_DEVICE_ID β€” the PCI Device ID of the VPU device. read-only, so look but don't touch πŸ’…
  • DRM_IVPU_PARAM_DEVICE_REVISION β€” the VPU device revision. also read-only.
  • DRM_IVPU_PARAM_PLATFORM_TYPE β€” returns DRM_IVPU_PLATFORM_TYPE_SILICON when you're on real hardware, or the device-specific platform type when you're executing on a simulator or emulator. read-only, bestie, it's just reporting the tea πŸ«–
  • DRM_IVPU_PARAM_CORE_CLOCK_RATE β€” the maximum frequency of the NPU data processing unit clock. read-only ⏰
  • DRM_IVPU_PARAM_NUM_CONTEXTS β€” the maximum number of simultaneously existing contexts. read-only.
  • DRM_IVPU_PARAM_CONTEXT_BASE_ADDRESS β€” the lowest VPU virtual address available in the current context. read-only.
  • DRM_IVPU_PARAM_CONTEXT_ID β€” the current context ID, which is always greater than 0. read-only, and lowkey the main character of context identifiers ✨
  • DRM_IVPU_PARAM_FW_API_VERSION β€” the Firmware API version array. read-only.
  • DRM_IVPU_PARAM_ENGINE_HEARTBEAT β€” a heartbeat value from an engine, read-only. and this is the fun one: the Engine ID (i.e. DRM_IVPU_ENGINE_COMPUTE) is given via index. πŸ‘€
  • DRM_IVPU_PARAM_UNIQUE_INFERENCE_ID β€” the device-unique inference ID. read-only. it's literally one of a kind, iykyk πŸ’œ
  • DRM_IVPU_PARAM_TILE_CONFIG β€” the VPU tile configuration. read-only. (yes there are two spaces in the original, we respect the formatting πŸŽ€)
  • DRM_IVPU_PARAM_SKU β€” the VPU SKU ID. read-only.
  • DRM_IVPU_PARAM_CAPABILITIES β€” the supported capabilities. read-only. the whole point of the vibe check πŸ”₯
  • DRM_IVPU_PARAM_PREEMPT_BUFFER_SIZE β€” the size of the preemption buffer. read-only.

the index field 🌈

index β€” the index for params that have multiple instances. so when a param isn't a one-off, this is how you say which one you mean. simple as that πŸ¦‹

the value field ⭐

value β€” the param value. the payload. the actual data. the whole reason we're here πŸ’–


πŸŽ€ SEE ALSO πŸŽ€

go read these next, bestie, they're all in the family:


okay that's the whole page, you ate that πŸ’… this came out of ./include/uapi/drm, it's dated October 2026, and it's page struct drm_ivpu_param(9) of the Kernel API Manual β€” slay, go forth and read your parameters responsibly 🫢✨

πŸ“¦ where this page comes from