無知とは…

DirectX のテクスチャサイズは 2 の n 乗で正方形なんですね…常識ですかそうですか。_| ̄|○

CreateTexture() が縦横サイズそれぞれ別の値が設定できるような API になってるのは将来の拡張を見越してるから、と思えばまあ我慢できるとして、
サイズが 2 の n 乗でなかったり正方形でなくても作成自体はエラーもなくできてしまい、
自前で描画したシステムメモリ上のテクスチャからの転送も問題なくできてしまい、
UV が 0.0f〜1.0f の範囲は正しく描画されてしまい、
広い平面に繰り返し模様で描画したいといくら D3DTADDRESS_WRAP を指定しても端で切られた状態で表示されてしまうという現象で初めて問題が出る、
というのはいかがなものか RADEON9600SE よ…。
不慣れなせいもあるでしょうが、表示がおかしい時の原因追及が難しいですね…。

後から色々調べてみたら 、どうやらD3DPTEXTURECAPS_NONPOW2CONDITIONAL のことらしいです。

条件付きで 2 の累乗でないディメンジョンでの 2D テクスチャの使用をサポートする。この能力を公開するデバイスは、次の要件がすべて満たされる場合にこのようなテクスチャを使える。

  • テクスチャ ステージのテクスチャ アドレシング モードが、D3DTADDRESS_CLAMP に設定されている。
  • テクスチャ ステージのテクスチャ ラッピングが無効になっている (D3DRENDERSTATETYPE n を 0 に設定)。
  • ミップマッピングが使用されていない (拡大フィルタのみを使用)。
  • テクスチャ フォーマットが DXT1-5 であってはならない。

…もっとも G450MMS なら最初から表示がおかしくなってた訳ですが…(<最初にターゲットマシンで試さなあかんやろー)