プログラミング

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 の場合にはブラックボックス化された何かという印象が強く、暗黙に消費部分が多いのでは?と感じているためです。この記事エントリ読んでいる方も、そんな風に感じていたりするかもしれません。 環境 プログラム開...
プログラミング

NVAPI で使用中のVRAM量を取得する

以前も作っていた VRAM の使用量を量るソフトウェアがありましたが、今回は NVIDIA 限定で一番正確そうな取得方法を紹介します。 その方法は、 NVIDIA から公開されているライブラリである NVAPI を使用する方法です。この API セットの中に VRAM の情報を取得するものが含まれていました。取得するのも思いのほか簡単で、以下のように使用しま...
DirectX

GPUViewを使う前に

GPUViewを使ってみようと思い、Windows Performance Toolkit とかを入れてみたのですが、ログ収集のためのコマンドバッチ log.cmd を実行するとエラーが出ることが確認できました。ちなみにこの症状は WIndows7 64bit 上で確認しています。  そのエラーというのが、「4000 の使い方が誤っています。」というもので、...
プログラミング

CI20でOpenGL 2.1 使えないかも

MIPS Creator CI20 で OpenGL 2.1 のサポートとあるのですが、手元で試している限りではうまく動きません。各OpenGLの関数はポインタがとれているので動きそうなのですが、肝心のシェーダーのコンパイルで SIGSEGV が発生してしまいます。 そのときの様子が以下のようになります。 (gdb) bt #0 0x2b8f3034 in ...
プログラミング

MIPS Creator CI20 を SDカード起動にする

MIPS Creator CI20 には eMMC があり、ここからデフォルトでは Debian が起動するようになっています。しかしご存じの通り書き換え回数問題があるため、出来るだけ SDカードなど交換がきく外部ストレージからブートさせたいと思います。 今回、それがうまく出来たので手順を記事化しようと思いました。 必要なもの UbuntuなどのLinux環...
プログラミング

MIPS Creator CI20 用Mingw版クロスコンパイラ

先日のものでは Hello,World 程度のコンソールアプリでは問題なかったものの、他のライブラリをリンクした際に正常に処理できなかったので、早速クロスコンパイラ関連を作り直しました。 今回の物も完全とはいえないのですが、まだ使えるようになったと思うのでここに公開したいと思います。 使い方・注意点 適当な場所に展開して下さい。デバッガーとしての gdb が...
プログラミング

ようやくクロスコンパイラ出来た

ここ最近ひたすらクロスコンパイラの準備に励んでいた理由の1つに、Imagination Technologies の Creator CI20 が手元に届いたから、というのがありました。そしてようやくですが Linaro の環境を真似して、 Creator CI20 用の環境を準備してみました。うまく動かない部分もあるかもしれませんが、ひとまずは下記に示すよ...