STRUCT XE_HW_ENGINE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct xe_hw_engine(9) β€” like, the whole Kernel API Manual moment ✨

okay bestie, buckle up πŸŽ€ this is the page for struct xe_hw_engine, straight out of the Kernel API Manual, and it's literally the blueprint for a hardware engine. no cap, every field here matters, so let's go 🫢


🌸 NAME 🌸

struct xe_hw_engine β€” Hardware engine. that's it, that's the vibe πŸ’–


✨ SYNOPSIS ✨

struct xe_hw_engine {
    struct xe_gt *gt;
    const char *name;
    enum xe_engine_class class;
    u16 instance;
    u16 logical_instance;
    u16 irq_offset;
    u16 irq_page;
    u32 mmio_base;
    struct xe_reg_sr reg_sr;
    struct xe_reg_sr reg_whitelist;
    struct xe_reg_sr oa_whitelist;
    struct xe_reg_sr oa_sr;
    struct xe_reg_sr reg_lrc;
    enum xe_force_wake_domains domain;
    struct xe_bo *hwsp;
    struct xe_execlist_port *exl_port;
    struct xe_hw_fence_irq *fence_irq;
    void (*irq_handler)(struct xe_hw_engine *hwe, u16 intr_vec);
    enum xe_hw_engine_id engine_id;
    struct xe_hw_engine_class_intf *eclass;
    struct xe_oa_unit *oa_unit;
    struct xe_hw_engine_group *hw_engine_group;
 };

look at her. iconic struct, zero notes πŸ‘‘


πŸ¦‹ Members πŸ¦‹

  • gt β€” the GT structure this hw engine belongs to. like, who's her home base 🏠
  • name β€” name of this hw engine πŸ’«
  • class β€” class of this hw engine
  • instance β€” physical instance of this hw engine
  • logical_instance β€” logical instance of this hw engine.
⚠️ Note: for GuC usage, always use xe_hwe_guc_logical_instance. for GuC usage, we should no longer use the raw logical instance. read that twice bestie, it's giving important πŸ™ˆ
  • irq_offset β€” IRQ offset of this hw engine
  • irq_page β€” MEMIRQ page used by this HW engine
  • mmio_base β€” MMIO base address of this hw engine
  • reg_sr β€” table with registers to be restored on GT init/resume/reset πŸ”
  • reg_whitelist β€” table with registers to be whitelisted
  • oa_whitelist β€” oa registers to be whitelisted
  • oa_sr β€” oa nonpriv whitelist registers, changed on oa stream open/close
  • reg_lrc β€” LRC workaround registers
  • domain β€” force wake domain of this hw engine
  • hwsp β€” hardware status page buffer object
  • exl_port β€” execlists port
  • fence_irq β€” fence IRQ to run when a hw engine IRQ is received
  • irq_handler β€” IRQ handler to run when hw engine IRQ is received ⚑
  • engine_id β€” id for this hw engine
  • eclass β€” pointer to per hw engine class interface
  • oa_unit β€” oa unit for this hw engine
  • hw_engine_group β€” the group of hw engines this one belongs to πŸ«‚

πŸ‘‘ Description πŸ‘‘

contains all the hardware engine state for physical instances. that's the whole thought. main character energy fr fr πŸ’œ


🌈 SEE ALSO 🌈

  • Kernel file ./drivers/gpu/drm/xe/xe_hw_engine_types.h
  • struct xe_hw_engine_class_intf(9)
  • struct xe_hw_engine_snapshot(9)

go read those next, iykyk πŸ“šβœ¨


and that's the page, bestie πŸŽ€ it lives in ./drivers/gpu/drm/xe, dated October 2026, and it's literally titled struct xe_hw_engine(9). slay, go forth and engine πŸ§šπŸ’–πŸ”₯

πŸ“¦ where this page comes from