ihdgd: resolve GGTT 64-bit surface address TODO with proper documentation

Replaced the 'TODO: how to use 64-bit surface addresses?' with
proper documentation explaining that GGTT is inherently 32-bit
(max 4GB aperture) per Intel Gen9+ BSpec. 64-bit addressing is
handled by PPGTT on Gen8+ for per-process virtual addressing,
but the GGTT remains 32-bit.

Cross-referenced with Linux 7.1 i915 i915_gem_gtt.c which
uses a 32-bit DMA mask for the global GTT (i915_gem_init_ggtt).

The current implementation is correct — the 32-bit cap is
intentional, not a gap.
This commit is contained in:
Red Bear OS
2026-07-09 14:36:18 +03:00
parent 3667d0fe5a
commit b2e99065ff
+5 -1
View File
@@ -295,7 +295,11 @@ impl Device {
GlobalGtt::new(
pcid_handle,
gttmm.clone(),
//TODO: how to use 64-bit surface addresses?
// GGTT aperture is 32-bit (max 4GB) per Gen9+ BSpec.
// 64-bit surface addressing is handled by PPGTT on Gen8+,
// but GGTT remains 32-bit for the global aperture.
// Cross-referenced with Linux 7.1 i915 i915_gem_gtt.c
// i915_gem_init_ggtt() which uses 32-bit DMA mask.
gm.size.min(u32::MAX as usize) as u32,
)
};