DXR165の備忘録

自分用の備忘録です。

Intel Processor Graphics 調査メモ  

最終更新日 2018/05/23

Sorry. This article is now writing!

Intel Processor Graphics の調査メモです。
最近のIntel CPUにはもれなくグラフィック機能がついています。世の中に出回っているグラフィックでは一番が数が多いのではないでしょうか?
また、グラフィックはPCのデバイスの中で、一番身近で目にするもので、しかも、その性能の良し悪しがわかりやすいデバイスではないでしょうか。
今回はそのPCグラフィックデバイスの内、身近に数多くあるIntel Processor Graphicsを調査してみます。


調査対象はGPUの世代が7.5世代(Haswell)以降のIntel IGDとします。




Intel グラフィックス製品の歴史についてはこちら


Terminology
IGD -> Internal Graphics Device or Integrated Graphics Device.









そもそもグラフィック・ビデオ機能とは?







まずは下記サイトで基礎を学びます。しかし、最近のPC雑誌ではこのような基礎的な技術を解説する記事が非常に少なくなったような気がする。

コンピュータの基礎の基礎 出典:日経パソコン 2002年2月4日号,2002年2月18日号,2002年3月4日号
http://itpro.nikkeibp.co.jp/article/lecture/20070419/268970/

Part1 メモリー空間とは何か 
Part2 RAMの物理的な内部構造は 
Part3 ハードディスクの基本構造 
Part4 ハードディスク性能を決める要素とは 
Part5 グラフィックスチップとメモリー 
Part6 グラフィックスチップの描画機能 



初期では、グラフィックス機能は「メモリ(フレームバッファ)をデータで埋める」のが主な仕事。
出典
PC Watch 骨まで理解するPCアーキテクチャ(GPU編) 第1回
~固定機能からシェーダへの移り変わり 2014/4/4 大原 雄介
http://pc.watch.impress.co.jp/docs/column/1month-kouza/642769.html




フレームバッファ (Frame Buffer)
 画面に表示するための文字やイメージを記録しておくためのメモリ。ビデオバッファ、あるいはビデオメモリ、ビデオRAM(VRAM)とも。ただし、ビデオメモリやVRAMといった場合、フレームバッファを含む(一般的なビデオカードではフレームバッファが大半を占める)ビデオ回路用のメモリ全体を指すのに対し、フレームバッファは、純粋な画面表示領域のことをいう。

 フレームバッファは、通常はメインメモリの一部として割り付けられており、直接、あるいはグラフィックス回路の描画機能等を使って、ここに画面イメージが書き込まれる。書き込まれたイメージは、DAC(Digital to Analog Converter)によって、ディスプレイのタイミングに合せたビデオ信号に変換され画面に表示される。

 グラフィックスモードにおけるフレームバッファの持ち方には、大きく分けると「プレーナ(Planar)方式」と「パックドピクセル(Packed Pixel)方式」とがある。

プレーナ方式は、VGA(Video Graphics Array)の16色モード等で用いられているタイプで、複数のプレーン(Plane~面)を使って1枚のフレームバッファを構成している。
 例えばVGAの場合には、「赤/緑/青/輝度」の要素に対応する、640bit×480bit相当のプレーンが4枚用意されており、これら各プレーンのビットが組みになって(すなわち4bitで)画面上の1ピクセルの情報を表している(*1)。ちなみにVGAの場合には、各プレーンは同一アドレス上にマッピングされているが、98シリーズのように、別のアドレスに置かれる場合もある。

 一方の「パックドピクセル(Packed Pixel)方式」は、VGAの256色モードをはじめとする、Windowsの一般的な高解像度モードで用いられている方式で、1つのフレームバッファは、ひとつのメモリ上にフラットに割り付けられる(言い替えれば1フレーム1プレーン)。例えば256色の場合には、1ピクセルは8bit――すなわち1バイトなの で、1ピクセルに対応したバイト列が、メモリ上にシーケンシャルに並ぶことになる。現行のビデオカードでは、1ピクセルは、8、16、24、32bitのいずれかの値をとり、8bitの場合は、色情報そのものではなく256種類の色情報がセットされたカラーパレット(カラールックアップテーブル)を指すポインタが、16bit以上ではそのままRGBのカラー情報がここに書き込まれる(*2)。


(*1) VGAでは、プレーンの要素が実際の色を表わすのではなく色情報がセットされたカラーパレットを指すポインタになっている。
(*2) 32bitは、メモリを4バイト単位に扱うだけで、ピクセル情報はこのうちの24bit分だけが使用される。ベンダーによっては、この隙間のない24bitのモードのことを特別に「パックドピクセル」と呼ぶことがある。

■鈴木直美の「PC Watch先週のキーワード」 ■
第20回:2月23日~2月27日
https://pc.watch.impress.co.jp/docs/article/980303/key20.htm#FrameBuffer





GPUが単に2Dグラフィック出力を行なうデバイスだった時代では、GPUは出力専用デバイスだったので、CPU側は単に描画コマンドをGPU側に投げるだけで良く、CPUが受け取るのは最終的に描画コマンドの完了通知だけであった。
出典
PC Watch 骨まで理解するPCアーキテクチャ(GPU編) 第4回
~GPGPU性能引き上げのカギとなるCPUとGPUの連携 2014/4/25 大原 雄介
http://pc.watch.impress.co.jp/docs/column/1month-kouza/646073.html


コンピュータのグラフィック機能の歴史についてまとめてあります。↓
ぐうたら感謝の日  / グラフィック機能の歴史
http://www.geocities.co.jp/SiliconValley-Cupertino/6138/computer/graphic/more/history.html





ということで、グラフィックの根本的な機能としては
「メモリにフレームバッファがあって、そこにデータを書き込めば、後はそのチップがそのデータを信号に変換して、ディスプレイに文字や画像なり、また、長方形や円が指定したカラーで表示される」
ことのようです。ここを押さえれば、わかったような気になります。

このディスプレイに表示の部分では
解像度
リフレッシュレート
の要素がある。これはビデオカードの性能で決まります。また、これに対応したディスプレイ装置も必要になります。


フレームバッファの実装
その実装にはフルバッファ方式とタイリング(Tiling)方式がある。










Processor Graphics 概要



Intel Processor Graphics製品系列(Sandy Bridge later and Desktop Product only)

Gen6 -> Sandy Bridge 2011
CPUコアとグラフィックスコア,ノースブリッジ機能がシングルダイに統合

ASCII 見えてきたSandy Bridgeの詳細 4つの特徴を解説
2010年 塩田紳二
http://ascii.jp/elem/000/000/555/555215/


Sandy BridgeのGPUコア「HD Graphics 3000&2000」には,どこまで期待していいのか
http://www.4gamer.net/games/098/G009883/20110112028/


インテル,Sandy Bridgeのアーキテクチャを日本語で詳しく解説 米田 聡
http://www.4gamer.net/games/098/G009883/20100928067/

ASCII / 詳細解説 これがSandy Bridgeのアーキテクチャーだ 2011年 大原雄介
高速化された内蔵GPU Intel HD Graphics 2000/3000
http://ascii.jp/elem/000/000/579/579517/index-5.html
→初のProcessor Graphics のが概要が解説されている。

一番愛好しているのが言うまでもなくインテルで、Sandy Bridge以降のすべてのCPUで、CPUコア同士の接続にこのRing Busを使っている
ロードマップでわかる!当世プロセッサー事情 ― 第449回
いまさら聞けないIT用語集 データ転送経路のRing Bus
2018年03月12日 12時00分更新 大原雄介
http://ascii.jp/elem/000/001/645/1645785/index-2.html


Gen7 -> Ivy Bridge 2012

Gen7.5 -> Haswell 2013 

Gen8 -> Broadwell 2015 

Gen9 -> Skylake 2015 

PC Watch半導体/周辺機器CPUIntel
後藤弘茂のWeekly海外ニュース 2015/11/5
GPUコンピューティング機能を強化したSkylakeのGPU
http://pc.watch.impress.co.jp/docs/column/kaigai/729060.html

Intel HD Graphics
https://ja.wikipedia.org/wiki/Intel_HD_Graphics









Intel Processor Graphics ハードウエア概要

Intel Processor Graphics Updated December 17, 2015
Developer Documents for Intel Processor Graphics
https://software.intel.com/en-us/articles/intel-graphics-developers-guides
--> IGD世代別にハードウエア概要が解説されている。







INTEL® OPEN SOURCE HD GRAPHICS AND INTEL IRIS™ PLUS GRAPHICS PROGRAMMER'S REFERENCE MANUAL (PRM) FOR THE 2016 - 2017 INTEL CORE™ PROCESSORS, CELERON™ PROCESSORS, AND PENTIUM™ PROCESSORS BASED ON THE "KABY LAKE" PLATFORM

Volume 3: GPU Overview
Volume 5: Memory Views
Volume 11: Blitter
Volume 12: Display

https://01.org/linuxgraphics/hardware-specification-prms/2016-intelr-processors-based-kaby-lake-platform


linux用の技術ドキュメントです。この中から2Dに関係するものを抜粋します。
まずは概観から見てみましょう!





Volume 3: GPU Overview
グラフィックス処理ユニットは、メモリマップされたIOレジスタの直接インタフェースを介してCPUによって制御され、CPUがメモリに配置したコマンドを構文解析することによって間接的に制御される。ディスプレイインターフェイスとBlitter(ブロックイメージ転送ツール)は主に直接CPUレジスタアドレスによって制御され、3Dおよびメディアパイプラインとパラレルビデオコーデックエンジン(VCE)は主にメモリ内の命令リストによって制御されます。


Block Diagram of the GPU

                       CPU Register Interface                
                               ↓↑                          ↓↑  
                               ↓↑              Blitter (block image transferrer
                               ↓↑                          ↓↑  
Display Device <-- Display/Overlay   <--  Memory Interface 


 

Volume 5: Memory Views
Graphics Memory Address Spaces 

GMADR
Processor Graphics translation window の開始アドレス。サイズはMSACで決まる。
プロセッサおよび他のピア(DMI)デバイスは、このアドレス空間を使用して、メインメモリにあるグラフィックスデータを読み書きします。このアドレスは内部的にGM_Addressに変換されます。

GTTADR
Global GTT Table Apertureの開始アドレス。
グローバルGTTの場合、この範囲はグラフィックスデバイスの設定領域のメモリBARとして定義されます。これは、ページテーブルエントリ値PTEを書き込むためにソフトウェアが必要とされるエイリアスです。 ソフトウェアは、グローバルグラフィックス変換テーブルGTTからPTE値を読み取ることができる。

GSM
これは、GFXドライバの使用に固有のページ変換用のグローバルGTTエントリを格納するために、物理メモリから取り出した8 MB(最大)の領域です。GTTMMADRを介してCPUパスからアクセスできますが、GPU / DEは同じ領域に直接アクセスできます。

DSM
メインメモリにiGFX用に確保した領域でOSからは見えない。GMADRを経由して、CPUより、また、GPU/DEから直接アクセスできます。

補足
          8MB   ->  Global GTT Table Aperture
GTTADR  --------------------------
          6MB   -> Reserved 
          -----------------
          2MB   -> MMIO
GTTMMADR ------------------------------------------------------

Multi Size Aperture Control (MSAC)
APSZ4: This field is used in conjunction with other APSZ* fields to determine the size
of Aperture (GMADR) and affects certain bits of GMADR register. The description below
is for all APSZ* fields 4:0 -

00000 = 128MB => GMADR.B[26:4] is hardwired to 0
00001 = 256MB => GMADR.B[27] = 0, R0
00010 = illegal (hardware will treat this as 00011)
00011 = 512MB => GMADR.B[28:27] = 0, R0
0100—00110 = illegal (hardware will treat this as 00111)
00111: 1024MB => GMADR.B[29:27] = 0, RO
000-01110 = illegal (hardware will treat this as 01111)
01111= 2048MB => GMADR.B[30:27] = 0, R0
10000-11110 = illegal (hardware will treat this as 11111)
11111 = 4096MB => GMADR.B[31:27] = 0, RO

Main Memory 
統合グラフィックスデバイスは、グラフィック機能用に4KBの物理メイン(システム)メモリを使用することができます。 このメインメモリのいくつかは、初期化中(例えば、VGAバッファ用)にシステムメモリの上から「盗まれる」可能性がある。 しかし、ほとんどのグラフィックスオペランドは、アプリケーション要求を満たすために動的に割り当てられます。 この目的のために、グラフィックスドライバは、ロックダウンされた(すなわち、非スワップ可能な)物理システムメモリページ(通常、キャッシュ可能な非ページプールから)を頻繁に割り当てる必要がある。 大きなサーフェスをバックするために必要なロックされたページは、通常は連続していません。 したがって、不連続な物理ページに裏打ちされた「論理的に連続した」サーフェスをサポートする手段が必要です。 前のセクションで説明したグラフィックス変換テーブル(GTT)は、その手段を提供します。


Volume 11: Blitter
 
これは、2Dグラフィック機能ですね!


Volume 12: Display

North Display Engine Registers 
北の方がメイン機能を司っているようです。メモリのフレームバッファの情報をディスプレイに表示するために電気信号に変換します。

South Display Engine Registers
The South Display Engine supports Hot Plug Detection, GPIO, GMBUS, Panel Power Sequencing, and Backlight Modulation.


BitBlt(Bit Block Transfer)



 当初のアクセラレーター機能はごく単純で、直線や長方形、だ円の描画、囲まれた領域の塗りつぶし、BitBlt程度の機能しかなかった。BitBltとはBit Block Transferの略で、グラフィックスメモリー(以下VRAM)中のある領域を別の場所にコピー/移動する機能だ。そして、拡大、縮小、変形やAND/OR/NOTなど、論理演算を実行する機能などが次第に追加されていった。


PC技術興亡史
Windows時代に入り、グラフィックスアクセラレーター登場
グラフィックス編 第5回
大原 雄介=フリーランス テクニカルライター 2015/04/01
日経テクノロジーオンライン
http://tech.nikkeibp.co.jp/dm/article/FEATURE/20150106/397330/


Intel Processor Graphics コア数


Intel HD Graphicsではコアのことを「EU」と呼ぶ


Kaby Lake (Gen 9 iCPU)
HD Graphics 610 12コア(EU) GT1

PC de GAME
- BTOとゲーミングPCのお話
CPU内蔵GPU
http://pcdegame.zashiki.com/igpu.html



Intel Processor Graphics のBIOSビデオ機能についてはこちら






Graphics メモリ






Intel グラフィイクッスはPCIデバイス側にメモリを実装せず、CPUが使うメインメモリよりその領域を拝借して使用している。そのため、その実装がややこしい模様です。

Intel Processor Graphics
ー>専用メモリを持たず、システムメモリの一部をビデオメモリとして利用。このシステムメモリの一部は一般的にUMA(Unified Memory Architecture)と呼ばれ、BIOSもしくはビデオドライバによってシステムメモリの一部がビデオメモリ専用として確保。

出典
PC Watch / Windows Vistaの仕組みを学ぶ【共有ビデオメモリ編】
(2007年6月14日) [Reported by wakasugi@impress.co.jp]
http://pc.watch.impress.co.jp/docs/2007/0615/vistamech2.htm
Windows Vistaでは、WDDM「Windows Display Driver Model」という名の新しいディスプレイドライバモデルが採用された。これにより、GPUの共有ビデオメモリの取り扱い方法が大きく変更された。


フレームバッファはIGDの場合はメインメモリに置かれる。Intel用語ではフェンス(Fence )と呼ぶようです。そのフレームバッファを含めIGD専用メモリ領域としてUMA方式でメインメモリにその領域を確保する。その専用領域の大きさやアドレスはBIOSで設定される。





OSが立ち上がるまでは

DSM と GSMでVRAMをメインメモリに確保する。UMA(Unified Memory Architecture)

OS起動後
Intel Processor GraphicsはGARTロジックを実装しているので、Windows 10 (WDDM)では上記のDSMに加えPCIe GARTも使用可能になる。

PCIe GARTとは
定義上、AGPはグラフィックスアドレス再配置テーブル(GART)を備えたチップセットを必要とし、非線形システムメモリの線図をグラフィックスデバイスに提供します。しかしながら、PCIeは、メモリリニアライゼーションハードウェアがチップセットではなく、グラフィックス装置自体に存在することを要求する。したがって、AGPスタイルの別個のGARTミニポートドライバではなく、PCIeでのメモリリニアライゼーションのドライバサポートがビデオドライバに存在する必要があります。

Windows XPドライバモデル(XPDM)ドライバで非ローカルビデオメモリを使用するグラフィックハードウェアベンダは、メモリリニアライゼーションハードウェアと対応するソフトウェアの両方を実装する必要があります。

  WDDMと互換性のあるすべてのPCIeグラフィックスアダプタは、ハードウェアとソフトウェアのメモリリニアライゼーションをサポートする必要があります。

IGDまたは外部PCIeグラフィックスカードのグラフィックスメモリが不足している場合に、追加のグラフィックメモリ空間として使用される連続したアドレス空間として使用されます。
グラフィックスアパーチャを提供するために割り当てられたシステムメモリのメモリ管理は、従来のAGPアパーチャと同様にグラフィックス変換テーブルを使用します。
グラフィックアパーチャのメモリ管理を行うのはOSの責任です。具体的にはグラフィックデバイスドライバになります。

出典
InfoSec Institute / System Address Map Initialization in x86/x64 Architecture
Part 2: PCI Express-Based Systems by Darmawan Salihun on JANUARY 9, 2014
http://resources.infosecinstitute.com/system-address-map-initialization-x86x64-architecture-part-2-pci-express-based-systems/

Microsoft PCI Express FAQ for Graphics
https://docs.microsoft.com/ja-jp/windows-hardware/drivers/pci/pci-express-faq-for-graphics



Intel 7th Core Processor
/Host Bridge/DRAM Registers
GMCH Graphics Control Register (GGC)
Base Data of Stolen Memory (BDSM)
Base of GTT stolen Memory (BGSM)
/Processor Graphics Registers
Graphics Translation Table, Memory Mapped Range Address (GTTMMADR)*
Graphics Memory Range Address (GMADR)*
I/O Base Address (IOBAR)*→I/O portアドレスです。
Base Data of Stolen Memory (BDSM)
Multi Size Aperture Control (MSAC)
*は標準PCI BAR


When running in Processor Graphics mode, processor initiated TileX/TileY/linear reads/
writes to GMADR range are supported. Write accesses to GMADR linear regions are
supported from both DMI and PEG. GMADR write accesses to TileX and TiIeY regions
(defined using fence registers) are not supported from the DMI or the PEG port.
GMADR read accesses are not supported from either DMI or PEG.



出典
7th Generation Intel® Processor
Families for S Platforms and Intel®
CoreTM X-Series Processor Family
Datasheet, Volume 2 of 2
May 2017



実機でIntel Processor Graphicsメモリ検証はこちら






 デバイスドライバ





Windows デバイスドライバ

まずは、Windows Vista で登場したWDDMから見てみましょう。


WDDM(The Windows Display Driver Model)


Windows Vistaでは,これまでカーネルモードでのみ動作していたデバイスドライバが,「カーネルモードドライバ」(Kernel Mode Driver)と「ユーザーモードドライバ」(User Mode Driver)に分けられた。

Windows Vista上で,それこそWebブラウザなど,GDIベースのアプリケーションを実行したとしよう。そのとき,GDIベースの描画は,メインメモリの中に作られた仮想的な画面「オフスクリーンバッファ」(Off Screen Buffer)に対して行われる。そして,オフスクリーンバッファに描画された内容を,DirectXを利用して,デスクトップの3D画面「グラフィックスサーフェス」(Graphics Surface)に重ね合わせるという手法が採られているのだ。
このマネージメントを行っているのが「DWM」(Desktop Window Manager)だ。DWMは,GDIとの互換性を提供しつつ,オフスクリーンバッファにアプリケーションソフトの描画を行い,その内容をDirectXのサーフェスに重ねて表示させるという仕事をしている。
Windows Vista(のAeroデスクトップ)では一般のアプリケーションの画面描画方法が大きく変わった。GDI互換は維持されているものの,従来は一般的にGDIから画面に直接描画されていたのに対し,「GDI→DWM→DirectX」という流れで画面が描画されているのだ。

Windows Vistaでは,一般のアプリケーションがDWMを通じてDirectXを利用する。そしてもちろん,ゲームからもDirectXを利用しなければならないわけで,従来のDirectXのように複数のアプリケーションからの同時利用が難しい仕様では困ってしまう。
 したがって,WDDMでは複数のアプリケーションから3Dアクセラレーションなどの機能が利用できるよう,DirectXに大幅な変更が加えられている。
出典
4Gamer.net / Vistaを買うのはまだ早い グラフィックス編 米田 聡 
http://www.4gamer.net/specials/tooearlytogetvista/001/tooearlytogetvista_001.shtml
Windowsのグラフィイクッス周りの基本的な事柄がよくわかる。


WDDM
Windows Display Driver Model (WDDM) Design Guide
https://docs.microsoft.com/ja-jp/windows-hardware/drivers/display/windows-vista-display-driver-model-design-guide

Graphics Memory Reporting through WDDM January 9, 2006
http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/graphicsmemory.doc



DirectX 10/SM4.0はWindows Vista専用。厳密なバージョンコントロールで亜流バージョンはなし

DirectXによって提供されてきたグラフィックサブシステムのDirect3Dは、複数のアプリケーションから同時利用されることを想定していなかった。Windows Vistaでは、そのGUIがDirect3D 9(Ex)によって実現されており、これとは別にDirect3D 10も実装されている。同時に複数の3Dアプリケーションを動作させたり、GPGPU用途への対応までを視野に入れると、古いシングルタスク前提の設計では都合が悪かったのだ。そこでWindows Vistaという大きな変革に乗じてリリースされるDirectX 10/SM4.0では、マルチスレッドに対応し、さらに動作安定度も向上させた新しいGPUドライバソフトウェアのアーキテクチャを採用した。それが「WDDM : Windows (Vista) Display Driver Model」だ。

WDDMではドライバソフトウェアがユーザーモードとカーネルモードに分かれ、アプリケーションからの不当なドライバ制御などでシステムクラッシュが起こりにくい設計としている。また、GPUのハードウェア的なマルチスレッド対応度に応じてWDDM 1.0/2.0/2.1というバージョン分けがなされ、WDDM 1.0はDirectX 9世代以前の旧設計のGPUをWDDM実装したもの、そしてあらかじめDirectX 10をターゲットにして開発されたGPUはWDDM 2.0以降の実装で提供される。1.0と2.0/2.1の違いは実質的にはマルチスレッドの対応レベルの違いを表しており、1.0はノンプリエンプティブ(*1)なマルチスレッドに対応し、2.0/2.1はプリエンプティブなマルチスレッド(*2)に対応する。2.0と2.1の違いは主にマルチスレッド粒度の違いにあり、2.1の方がより細かいターゲット単位でスレッド切り替えが行える。

Windows Vistaのグラフィックサブシステム

                         Application
                                ↓
User-Mode DriverDirect3D
                                ↓
      DXGKrnl(GPU scheduler Video Memory Manager)
                                ↓
                  Kernel-Mode Driver
                                ↓
                 Graphics Hardware 


GPUとシェーダ技術の基礎知識(6)
2008/02/29 13:30:00 トライゼット西川善司
https://news.mynavi.jp/article/graphics-6/



ビデオメモリの容量表示
注意!!
Windows 10 ドライバにおいては、Intel IGDのアダプタプロパティで表示される「専用ビデオメモリ」の容量は一部のゲームアプリケーションがVRAMなしと判断しないように、決め打ちで128MBに設定されているそうです。あーややこしい!


出典
Intel Support Home  Intel Graphics Drivers 
Frequently Asked Questions for Intel Graphics Memory on Windows 10
https://www.intel.com/content/www/us/en/support/graphics-drivers/000020962.html

抜粋始まり
How much graphics memory does my computer have?
Display adapter properties
Note The reported Shared System Memory is not an ongoing reservation of system memory. It's simply the limit of how much system memory the OS will allow graphics to use at a given time, on the given platform.

Note By default, the Intel graphics driver will report 128 MB of fictitious Dedicated Video Memory for compatibility with applications that don’t correctly comprehend a fully unified memory architecture. See Dedicated Memory Reporting for more information.
抜粋終わり


ビデオメモリ表示ツール
GpuMemTest
http://www.programming4beginners.com/gpumemtest




Linux Graphics ドライバ


Linux Graphics関連情報はこちらが参考になります。

Martin Peres Publication Archive 2012 NOV 25
A deeper look into GPUs and the Linux Graphics Stack
Slides
https://publications.mupuf.org/files/toulibre2012_deeper_look.pdf

そのによりますと、

The GPU needs the host for:
Setting the screen mode/resolution (mode setting);
Configuring the engines and communication busses;
Handling power management;
Thermal management (fan, react to overheating/power);
      Change the GPU’s frequencies/voltage to save power;
Processing data:
      Allocate processing contexts (GPU VM + context ID);
      Upload textures or scientific data;
      Send commands to be executed in a context.


Overview of the components of a graphics stack
A GPU with its screen;
One or several input devices (mouse, keyboard);
A windowing system (such as the X-Server and Wayland);
Accelerated-rendering protocols (such as OpenGL);
Graphical applications (such as Firefox or a 3D game).

Components of the Linux Graphics stack
Direct Rendering Manager (DRM) : exports GPU primitives;
X-Server/Wayland : provide a windowing system;
Mesa : provides advanced acceleration APIs;

だそうです。




Intel Processor Graphicsのデバイスドライバ関連情報源として以下、ドキュメントがありますが、解読するにはかなり難易度が高いです。

Intel Open Source 01.ORG
Home / Intel Graphics for Linux / Intel Graphics for Linux - Documentation
Hardware Specification - PRMs (PROGRAMMER'S REFERENCE MANUAL)
https://01.org/linuxgraphics/documentation
--> IGD世代別のドライバ関連情報が記載されている。

Intel Open Source Graphics Programmer Reference Manual (PRM)
https://github.com/Igalia/intel-osrc-gfx-prm


Linux DRM(Direct Rendering Manager) driver


2016年12月12日 Linux 4.9が正式公開,2200万行を超える史上最大のビッグリリースに
2016年12月12日
階戸アキラ

Linus Torvaldsは12月11日(米国時間)⁠,Linuxカーネルの最新版である「Linux 4.9」を正式公開した。「⁠これまででもっとも大きなリリースだと確信している」とLinusが明言しているとおり,総コード行数は約2234万行,5万6000を超えるファイルで構成されており,過去最大サイズのカーネルとなっている。

Intel DRMに関してもいくつかのフィックスが実施されており,Skylakeサポートの改善や,DMA-BUF(DMAバッファ)におけるインプリシットフェンシングのフルサポートなどが含まれている。また4.9からIntel Integrated Sensor Hub(ISH)もサポートされた。

http://gihyo.jp/admin/clip/01/linux_dt/201612/12









ディスプレイインターフェイス Display Interface



映像データインターフェイス基礎

ホーム > EIZOライブラリー > 掲載記事 > 第2回 DisplayPortからD-Subまで――液晶ディスプレイの「映像入力インタフェース」を網羅する
http://www.eizo.co.jp/eizolibrary/other/itmedia02_02/



Processor GraphicsからはDigital Display Interface (DDI)で出力され、CPU外のマザーボード上の実装で、HDMI、DisplayPort、D-Subなどに変換される。








Intel Processor Graphics(Kaby Lake) 4K-60p対応

HDMI
マザーボードにコンバータチップを載せて、4K-60pを実現しているようです。

DisplayPort
ネイティブに対応しているようです。しかし、まだ、ケーブルのお値段がお高いでしょうか?


出典
マルチディスプレイのまとめスタイル修正
http://multidisplay2.blogspot.jp/2013/01/intel-igpu.html











参考文献 URL




GPUを支える技術
――超並列ハードウェアの快進撃[技術基礎]
著者 Hisa Ando 
技術評論社 (2017/6/30)








FreeBSD graphics support for Intel
https://www.slideshare.net/YuichiroNaito/intel-graphics


マルチディスプレイのまとめ
http://multidisplay2.blogspot.jp/2013/01/intel-igpu.html
--> 映像出力インターフェイスに詳しい

Mapping Virtual Addresses to a Memory Segment
https://docs.microsoft.com/ja-jp/windows-hardware/drivers/display/mapping-virtual-addresses-to-a-memory-segment


Drupalサイト構築&動画作成
メモリーエラー
https://phoenixknight.jp/blog/%E3%83%A1%E3%83%A2%E3%83%AA%E3%83%BC%E3%82%A8%E3%83%A9%E3%83%BC




関連記事

category: PC-HW

tb: 0   cm: 0

コメント

コメントの投稿

Secret

トラックバック

トラックバックURL
→http://dxr165.blog.fc2.com/tb.php/386-227afa0d
この記事にトラックバックする(FC2ブログユーザー)

プロフィール

最新コメント

カウンター(2012/3/10以降)