Geforce vs Radeon

DirectX

DirectX9 on Windows 7 でメモリの消費調査

今回は DirectX 9.0 を用いた場合ではどんな感じになるのかを調べてみました。環境は Windows 7 (x64) です。また DirectX 9.0 と表記していますが、実際のところは DirectX 9.0 EX のことを指すものとします。 Windows XP までの頃は VRAM の仮想化というものがなく、デバイスロスト発生のためのケアが必...
DirectX

DirectX11の場合のシステムメモリとVRAM消費について

今までは OpenGL の場合を調査してきました。今回は DirectX11の場合を調べてみようと思います。ドライバが一緒ならきっと同じ傾向を示すんじゃないかなと予想して実験をスタートです。 実験 DirectX11のプログラムとして、100フレームごとに頂点バッファ 32MB を確保し、次フレーム以降はこのデータを使って描画するプログラムを作成しました。 ...
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 フレ...
OpenGL

OpenGL @NVIDIAでのメモリ調査

NVIDIA Geforce で OpenGL を使った場合のシステムメモリの消費について調べてみましたが、サイズ可変でどのくらい消費量が変わるのか、というものでした。また API 実行の各タイミングで計測したのみで、時間経過を考慮していませんでした。 今回はサイズは固定し、 100 フレームに 1 回頂点バッファを確保して描画するという方法を試してみました...
OpenGL

OpenGLでOut of memory とメモリの関係

細かな単位で OpenGL の頂点バッファをたくさん確保していたらこんなエラーに出会いました。ちなみにプログラムの実行タイミング次第では OpenGL で OUT_OF_MEMORY のエラー状態がちゃんと返りました。エラー返す前に異常系に落ちたという感じでしょうか。 この症状が出るまでの様子を、使用システムメモリ、使用VRAM量、使用中の共有ビデオメモリ量...
OpenGL

OpenGL API とメモリの消費について NVIDIA特別編

どうにも NVIDIA のメモリ消費について、メモリ消費しすぎな感じがあったので追加調査してみることにしました。 32MB VBOの場合(前回の結果) 状態メモリ(MB)Dedicate(MB)共有メモリ(MB) 初期化終了後999.83613 元データ準備1031.73613 glBufferData実行後1114.76832 元データ破棄1082.768...
OpenGL

OpenGL API とメモリの消費について AMD限定編

前回は NVIDIA, AMD と両者での差異を見るために同じコードで実験しました。今回は AMD ならではの OpenGL 拡張を用いてどう変化が起こるかを見てみたいと思います。 AMD_pinned_memory 拡張に AMD_pinned_memory というものがあります。これは GPU から物理メモリへのアクセスをさせるという拡張です。 こちらを...
OpenGL

OpenGL API とメモリの消費について

使用中 VRAM の計測ができるようになったので、 OpenGL API を使ったときにどのようにメモリが使われていくのかを調べてみました。特に OpenGL の場合にはブラックボックス化された何かという印象が強く、暗黙に消費部分が多いのでは?と感じているためです。この記事エントリ読んでいる方も、そんな風に感じていたりするかもしれません。 環境 プログラム開...
プログラミング

NVIDIA Cgランタイムについて

またも今更な話題にはなるのですが、NVIDIAから出ているCg ToolkitのCgランタイムについてです。 NVIDIA製のグラフィックボード以外で使用することの保証はないだろう!と考え、他のプラットフォームではたまたま動いている、と考えていたのですが、どうやらそれは違うのかもと思う記事を見かけました。 以前のニュース記事なのですが、ここによると 「Com...
OpenGL

(OpenGLの)シェーダーバイナリ(GLSL Binary)

そういえばOpenGL 4.xでシェーダーのコンパイル結果をバイナリとして取得、ロードできる機能が追加されたのですが、当時ドライバがまだ対応していなくて見送っていました。ようやくこれについて調べてみることが出来たので、ここに書いておこうと思います。 まず、DirectXではシェーダーをコンパイルすると各ベンダで共通なシェーダーアセンブリ状態になります。このア...