2021.02.23

Direct3D12のコマンドキューの記事を追加

Direct3D12のコマンドキューの記事を追加しておきました。

2021.02.16

DirectX SDK June 2010がダウンロードできなくなってどうしたらいいか

先日、下記のような記事でDirectX SDK June 2010やエンドユーザーランタイムがMicrosoftからダウンロードできなくなったことが書かれていました。

Where is the DirectX SDK (2021 Edition)?
https://walbourn.github.io/where-is-the-directx-sdk-2021-edition/

Microsoft announced last year that it was retiring all SHA-1 signed content from Microsoft Downloads in this blog post since the SHA-1 algorithm is no longer considered secure. The original timeline was stretched out a bit due to COVID-19, but as of January 2021 this content is no longer hosted by Microsoft servers.

In particular, this means the legacy DirectX SDK, the DirectX End-User Runtime, and the DirectX End-User Runtime Web Installer are no longer available for download from Microsoft.

要約するとSHA-1の脆弱性を抱えたインストーラの配布をやめるとのことですね。もっと前になくなるはずがCOVID-19の影響でここまで伸びてたみたいです。

DirectX SDK June 2010はもう11年前でありますが、学校教育の場では結構使われてると聞きます。ちょうど今のタイミングは就職活動で作品をいろいろと会社に送ったりしてるのかもしれないですが、上記のインストーラの配布終了で送った先で作品が動かないということがあるかもしれません。

ちょうど昨年PlayStation 5が出たばかりですが、多くの開発会社が前の世代でDirectX11や12に移行して、Windows 7のサポートが終わり、開発OSもWindows 10に移行してるところが大半かと思います。こうした環境では普段からDirectX SDK June 2010をインストールしていることがないので、送られてきたDirectX9のゲームを動かすための環境構築でひと手間かかります。

上記記事に書かれてますが、DirectX9の開発自体はVisual Studio 2017/2019ではWindows SDKに含まれていますのでまだ大丈夫です。d3d9.hやd3d9.libは入ってます。ただ、d3d9d.libはありません。もしもDebugビルドでd3d9d.libをリンクしているとd3d9d.dllがなくてやはり動かないバイナリになります。

上記記事のDeveloper Runtimesの項で書かれていますが、Windows 10ではDebugランタイムを動かすための開発者ランタイムの有効かのためにグラフィックスツールを入れますが、Windows 10のグラフィックスツールにはDirect3D9のデバッグランタイムは含まないようです。

それからもう1つ、Windows 10はD3DXのDLLがデフォルトで入っていないのでJune 2010でD3DXを使っているとD3DXのDLLがなくてやはり起動しないということも起きます。これも上記のインストーラの配布停止の影響で新たに入手が難しいです。D3DXに関してはDirect3D11で開発している人にも関係するかもしれません。

D3DXに関しては移行ガイドがあります。現在Direct3D9~Direct3D12どのバージョンでも開発するのに推奨なのはVisual StudioのWindows SDKに入ってるものやMicrosoftがGitHubで公開しているライブラリ群です。開発時間がある人はD3DXに関しては移行しておくことをお勧めします。

Living without D3DX
https://walbourn.github.io/living-without-d3dx/

そんなわけで、今の時期に配布終了とか大変なことになりそうな予感がしてますが、やはりもう10年を超えたので古すぎるものはやめましょう。

2021.02.03

C++20のmodule使ったDirect3D12デモ

C++20のmoduleは使ってみたいと思ってるけど、使ってみたDirect3D12デモが公開されていますね。

 

…ちょっと見てみます。

 

Clubhouseのアカウント

ようやく聴きたいイベントがあったのでアカウント登録しました。

そういやこうやってSNSが立ち上がって盛り上がってるというのも久々なので乗っておくタイミングですかね。

2021.01.14

次回記事の仕込み

新しいShader.jpの記事を仕込み中です。

前回の記事の続きですが、Compute Shaderの方をCompute Shader用のコマンドキューでの実行にお引越しですね。残念ながら依存関係の問題で、非同期実行ではないですけどね。あと、Nsight Graphicsでのキャプチャですが、描画が多いわけではないので残念ながらスカスカですけどね

Compute Command Queueの紫がDispatchでGraphics Command Queueの青がDrawのコマンドという感じなのはわかるかと思います。

Queues

2021.01.08

久々のShader.jpのサンプル付きの記事

久々のShader.jpのサンプル付きの記事を書きました。

いや~、技術記事ちょっと再開していきます。

«久々のDirect3D12記事の話