C#は電気羊の夢を見るか?(引っ越し中)

dtiブログが閉鎖とのことでhttp://tanocs.blog.fc2.com/へ引っ越します。

誰か教えてOTL

大ハマリしていたRadeon問題にまた新たな展開が。

自分の理解ではHLSLは完全な下位互換があるのだと思っていた。

だから一つのプログラム内のHLSLによって
バージョンががたがたなのは望ましくないものだと考えた私は
コンパイラの指定を全て3.0に書き換えたのだ。


これを
PixelShader = compile ps_2_0 PixelShader();
こんな感じ
PixelShader = compile ps_3_0 PixelShader();


たったこれだけで、Radeonで描画に失敗するようになる。
つまりXNAでは画面が紫色のままになる。

HLSL内部を詳細にステップ実行したわけではないが、
どうも描画済みレンダーターゲットのテクスチャを取得できず、
その後の処理に失敗してるっぽい。


ハード依存なので人によっては再現しないかもしれないが
公式のブルームサンプルでもシェーダーのバージョンを
全て3.0に変えたところ同様の問題が確認できた。

ちなみに2.0指定では問題なく動作する。


コンパイラが別物になるから、吐き出されるバイナリが変わるなんてのは
頭じゃ理解できるが、動作しなくなる仕組みが解らない・・

なんのなさコレ。
ダレか内部仕様に詳しい偉い人、教えて・・・OTL
このエントリーをはてなブックマークに追加
LINEで送る

コメント

初めまして

実際のHLSLを見ていないので何とも言えませんが、

>どうも描画済みレンダーターゲットのテクスチャを取得できず
とあるからには、sampler_state構文やテクスチャフェッチのためのtex2D()命令などで問題が起きていないか、まず疑ってみるのがよいと思います。外していたらすみません。

コメントありがとうございました。

コメントありがとうございました。

自分も同じことを想像して、あちこち設定の組み合わせを変えまくったのですが、どうやらコンパイラの制限やハード的な問題だったようです。

詳細な判明した結果を記事にしましたので、
よろしければこのコメントのURLを御覧ください。

msペイントのバージョンを下げる

windows7にあるペイントが使いにくいので、2007のmsペイントにバー所を下げたいのですが、できますか?できるとしたら、どうすればよいでしょうか?教えてください。よろしくお願いいたします。

ご質問の解答について

リンクの記事にて回答させて頂きましたので、内容をご確認ください。

コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://t01a.dtiblog.com/tb.php/130-db94c7c5

-

管理人の承認後に表示されます

« 土下座もの  | HOME |  事の顛末 »

PAGE TOP ▲

Appendix

■春条

■春条

生息地は愛知
車と甘い物が好きな31歳
特技は無限昼寝

MONOからSharpDXを使う
変態的な手法で、
.NET Frameworkを使わずに
ゲーム作りやってます。

Search

Calender

« | 2018-02 | »
S M T W T F S
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 - - -

Twitter

Recent Entries

DTIブログポータルへ
このブログを通報
Report Abuse

利用規約