2017-03-15 3 views
1

MTLTextureを内部で処理することは可能ですかosx_ReadWriteTextureTier2金属テクスチャのインプレース処理

2つのテクスチャ引数を同じテクスチャに設定できるようです。これはサポートされている動作ですか?

具体的には、書き込み後にテクスチャキャッシングが更新されても構いません。私は、3Dテクスチャをインプレイス(およびまばらに)修正したいだけです。 2つのテクスチャを持つことは禁物です。また、テクスチャ全体をコピーするのは計算コストがかかります。特に小さな部分のみを更新する場合は特にそうです。

答えて

2

機能の可用性にかかわらず、関数シグネチャに2つの別々のテクスチャ引数(1つの読み取りと1つの書き込み)を宣言し、両方に同じテクスチャを設定することはできません。

osx_GPUFamily1_v2をサポートしているMacでは、テクスチャの読み書きをサポートしています(access::read_writeでテクスチャを宣言してください)。

"Tier 1"(明示的な定数を持たない)とosx_ReadWriteTextureTier2の区別は、後者が読み書きテクスチャ用の追加のピクセルフォーマットをサポートしていることです。

ターゲットMacで必要なテクスチャ読み書きの種類がサポートされていないと判断した場合(OS X 10.11に展開する必要があるため、またはマシンの層に互換性のないピクセル形式を使用しているため3Dテクスチャから読み込み、2Dテクスチャに書き込んだり、結果を3Dテクスチャの対応する領域に戻したりすることができます。それはより多くの作業ですが、メモリの2倍以下のものを使用します。

+1

ドキュメントにリンクできますか?私は見たとき何も見なかった。ありがとう! – Taylor

+0

[このページ](https://developer.apple.com/library/content/documentation/Miscellaneous/Conceptual/MetalProgrammingGuide/WhatsNewiniOS10tvOS10andOSX1012/WhatsNewiniOS10tvOS10andOSX1012.html#//apple_ref/)の機能リソースの読み取り/書き込みセクションの注釈です。 doc/uid/TP40014221-CH14-SW1) – warrenm

関連する問題