Intel の Radhakrishna Sripada 氏より、Linux Kernel における Intel GPU/GFX ドライバー i915
に Meteor Lake-M/P のサポートを追加する最初のパッチが投稿されている。
- [Intel-gfx] [PATCH 0/2] i915: Introduce Meteorlake
- [Intel-gfx] [PATCH 1/2] drm/i915/mtl: Add MeteorLake platform info
- [Intel-gfx] [PATCH 2/2] drm/i915/mtl: Add MeteorLake PCI IDs
Meteor Lake-M/P の各 IP バージョンは、GraphicsIP は ver12.70
、DisplayIP は ver14 (Xe_LPD+)
、MediaIP は ver13 (Xe_LPM+)
とされている。
ただ GraphicsIP については、あくまでもドライバー内で区別するためのバージョンであり、実際のバージョンはハードウェアの GMD_ID
レジスタから読み取れる。
また、intel/gmmlib などでは、PRODUCT_FAMILY
や GFXCORE_FAMILY
としては IGFX_DG2 = 1270
(ver12.7) を割り当てているが、Intel GFX ドライバーでは DG2/Alchemist の GraphicsIP は ver12.55 とされており、それぞれバージョン番号は近いが意味する所は異なっている。1
Xe_LPD+ の新機能に関するパッチはまだ投稿されていない。Xe_LPD+ では Xe_LPD (ver13) でサポートする機能に加えて has_cdclk_crawl
のフラグが有効化されているが、これは Alder Lake-P でもサポートされている。
同様に Xe_LPD (ver13) IP を採用する DG2/Alchemist では has_cdclk_crawl
が有効化されておらず、Xe_LPD (ver13) においては分離していた部分だった。2
platform_engine_mask
に CCS0
のビットがセットされていることから、Meteor Lake-M/P では Compute Engine (Compute Command Streamer) を 1基搭載、有効化される。
Xe_HP SDV, DG2/Alchemist, Ponte Vecchio では 4基搭載されているため、それよりも小さい規模となる。
公開されているドキュメントでは Tiger Lake でも CCS 1基を搭載しているとされているが、i915 ドライバーでは何らかの理由で有効化されていないものと思われる。
Rocket Lake, Alder Lake-N/M/P/S でも同様のため、iGPU では Meteor Lake-M/P で CCS がようやく有効化されることとなる。
Intel OSS OpenGL/Vulkan ドライバーが “Compute Engine” に対応 | Coelacanth’s Dream
+#define XE_LPDP_FEATURES \ + XE_LPD_FEATURES, \ + .display.ver = 14, \ + .display.has_cdclk_crawl = 1 + +__maybe_unused +static const struct intel_device_info mtl_info = { + XE_HP_FEATURES, + XE_LPDP_FEATURES, + /* + * Real graphics IP version will be obtained from hardware GMD_ID + * register. Value provided here is just for sanity checking. + */ + .graphics.ver = 12, + .graphics.rel = 70, + .media.ver = 13, + .memory_regions = REGION_SMEM | REGION_STOLEN_LMEM, + PLATFORM(INTEL_METEORLAKE), + .platform_engine_mask = BIT(RCS0) | BIT(BCS0) | BIT(CCS0), + .require_force_probe = 1, + .has_flat_ccs = 0, + .has_snoop = 1, + .display.has_modular_fia = 1, +}; +
Alder Lake-M/P では GPU部は IPバージョン、規模ともに同じであったため、ドライバーではまとめて管理していたが、Meteor Lake-M/P では DeviceID、SUBPLATFORM
で分けて管理されるようになる。
SUBPLATFORM
はプラットフォームの判定やハードウェア側のバグに対する回避策 (ワークアラウンド) の設定の際にも使われている。
Meteor Lake ではタイルアーキテクチャを採用すると発表されているが、-M と -P でアーキテクチャは同じだが、パッケージの違いから規模が異なる GPUタイルを採用することが考えられる。
+/* MTL */ +#define INTEL_MTL_M_IDS(info) \ + INTEL_VGA_DEVICE(0x7D40, info), \ + INTEL_VGA_DEVICE(0x7D43, info), \ + INTEL_VGA_DEVICE(0x7DC0, info) + +#define INTEL_MTL_P_IDS(info) \ + INTEL_VGA_DEVICE(0x7D45, info), \ + INTEL_VGA_DEVICE(0x7D47, info), \ + INTEL_VGA_DEVICE(0x7D55, info), \ + INTEL_VGA_DEVICE(0x7D60, info), \ + INTEL_VGA_DEVICE(0x7DC5, info), \ + INTEL_VGA_DEVICE(0x7DD5, info), \ + INTEL_VGA_DEVICE(0x7DE0, info) + +#define INTEL_MTL_IDS(info) \ + INTEL_MTL_M_IDS(info), \ + INTEL_MTL_P_IDS(info) +
Intel GPU ({ver}.{release_ver}) | Graphics IP ver | Display IP ver | Media IP ver |
---|---|---|---|
Tiger Lake, Rocket Lake? | 12 | 12 | 12 |
DG1 | 12.1 | 12 | 12 |
Alder Lake-S | 12 | 12 | 12.2 |
Alder Lake-P | 12 | 13 (XE_LPD) | 12.2 |
Xe-HP | 12.5 | - | 12.5 |
Xe-HPG | 12.55 | 13 (XE_LPD) | 12.55 |
Xe-HPC | 12.6 | - | 12.6 |
Meteor Lake | 12.7 | 14 (XE_LPD+) | 13 (XE_LPM+) |