DirectX DirectX9 on Windows 7 でメモリの消費調査 今回は DirectX 9.0 を用いた場合ではどんな感じになるのかを調べてみました。環境は Windows 7 (x64) です。また DirectX 9.0 と表記していますが、実際のところは DirectX 9.0 EX のことを指すものとします。 Windows XP までの頃は VRAM の仮想化というものがなく、デバイスロスト発生のためのケアが必... 2015.01.17 DirectXOpenGLプログラミング
DirectX DirectX11の場合のシステムメモリとVRAM消費について 今までは OpenGL の場合を調査してきました。今回は DirectX11の場合を調べてみようと思います。ドライバが一緒ならきっと同じ傾向を示すんじゃないかなと予想して実験をスタートです。 実験 DirectX11のプログラムとして、100フレームごとに頂点バッファ 32MB を確保し、次フレーム以降はこのデータを使って描画するプログラムを作成しました。 ... 2015.01.13 DirectXプログラミング
OpenGL OpenGLでOut of memory とメモリの関係 (AMD) 今まで NVIDIA のもので調べていたので今回は同じプログラムを AMD Radeon 5450 を使ってデータ取得してみました。 Windows 7 x64 (2GB) AMD Radeon HD 5450 (1GB) ドライバは Catalyst Omega 14.12 プログラムは OpenGL を用いて 32MB 単位で頂点バッファを 300 フレ... 2015.01.12 OpenGL
OpenGL OpenGL @NVIDIAでのメモリ調査 NVIDIA Geforce で OpenGL を使った場合のシステムメモリの消費について調べてみましたが、サイズ可変でどのくらい消費量が変わるのか、というものでした。また API 実行の各タイミングで計測したのみで、時間経過を考慮していませんでした。 今回はサイズは固定し、 100 フレームに 1 回頂点バッファを確保して描画するという方法を試してみました... 2015.01.11 OpenGL
OpenGL OpenGLでOut of memory とメモリの関係 細かな単位で OpenGL の頂点バッファをたくさん確保していたらこんなエラーに出会いました。ちなみにプログラムの実行タイミング次第では OpenGL で OUT_OF_MEMORY のエラー状態がちゃんと返りました。エラー返す前に異常系に落ちたという感じでしょうか。 この症状が出るまでの様子を、使用システムメモリ、使用VRAM量、使用中の共有ビデオメモリ量... 2015.01.10 OpenGL
OpenGL OpenGL API とメモリの消費について NVIDIA特別編 どうにも NVIDIA のメモリ消費について、メモリ消費しすぎな感じがあったので追加調査してみることにしました。 32MB VBOの場合(前回の結果) 状態メモリ(MB)Dedicate(MB)共有メモリ(MB) 初期化終了後999.83613 元データ準備1031.73613 glBufferData実行後1114.76832 元データ破棄1082.768... 2015.01.09 OpenGLプログラミング
OpenGL OpenGL API とメモリの消費について AMD限定編 前回は NVIDIA, AMD と両者での差異を見るために同じコードで実験しました。今回は AMD ならではの OpenGL 拡張を用いてどう変化が起こるかを見てみたいと思います。 AMD_pinned_memory 拡張に AMD_pinned_memory というものがあります。これは GPU から物理メモリへのアクセスをさせるという拡張です。 こちらを... 2015.01.07 OpenGLプログラミング
OpenGL OpenGL API とメモリの消費について 使用中 VRAM の計測ができるようになったので、 OpenGL API を使ったときにどのようにメモリが使われていくのかを調べてみました。特に OpenGL の場合にはブラックボックス化された何かという印象が強く、暗黙に消費部分が多いのでは?と感じているためです。この記事エントリ読んでいる方も、そんな風に感じていたりするかもしれません。 環境 プログラム開... 2015.01.06 OpenGLプログラミング
プログラミング NVIDIA Cgランタイムについて またも今更な話題にはなるのですが、NVIDIAから出ているCg ToolkitのCgランタイムについてです。 NVIDIA製のグラフィックボード以外で使用することの保証はないだろう!と考え、他のプラットフォームではたまたま動いている、と考えていたのですが、どうやらそれは違うのかもと思う記事を見かけました。 以前のニュース記事なのですが、ここによると 「Com... 2013.08.07 プログラミング
OpenGL (OpenGLの)シェーダーバイナリ(GLSL Binary) そういえばOpenGL 4.xでシェーダーのコンパイル結果をバイナリとして取得、ロードできる機能が追加されたのですが、当時ドライバがまだ対応していなくて見送っていました。ようやくこれについて調べてみることが出来たので、ここに書いておこうと思います。 まず、DirectXではシェーダーをコンパイルすると各ベンダで共通なシェーダーアセンブリ状態になります。このア... 2012.12.20 OpenGLプログラミング