[Horde][UBA] Shaderコンパイルの分散はできていない

特になし

Steps to Reproduce
お世話になっております。

御社のP4にある下記のStreamからWorkspaceを作って、UE5.6.*各機能を検証しております。

//UE5/Release-5.6/

問題点は、Shaderコンパイルの分散はできていないようなことが発生しています。その対策を聞かせて頂けたらと思います。

<<<全体像>>>

Horde ServerとHorde Agentそれぞれセットアップしたところ、

Editorなどのリビルドで、下記のエラーが出ることがありましたので、

「Process 2564 VCTIP.EXE not active」

UDNなどの投稿を見て、

[Content removed]

​​

下記のところからのすべてのファイルのもの(10月末の時点)を取得して、使っております。

//UE5/Main/Engine/Binaries/Win64/UnrealBuildAccelerator/x64/

その後、問題なくC++の分散ビルドを確認できています。下記は利用している Windows PC の構成です。

・PC_S Horde Server

・PC_A Horde Agent

・PC_I Horde Agentでありながら、ゲームやパッケージビルドをお願いする側

分散の確認方法は下記になります。

・PC_I で、「RunUAT BuildCookRun」で、ゲームパッケージを作る

・分散しているかどうかを確認

・UBA Visualizer上で、PC_A がジョブを実行しているかどうか

・Horde Serverへウェブでアクセスし、PC_A がComputeかBusyになっているかどう

・上記の二つの方法で、いずれも、C++の分散はできて、Shaderコンパイルの分散はできていません。

また、ビルドログでは下記が出ました。

“Using UBA Controller for shader compilation”

<<<環境や設定>>>

環境や設定について下記になります。

・Visual Studio 17.14.14

・AncientGame

・BuildConfiguration.xmlの設定は、下記の投稿通り

[Content removed]

・BaseEngine.ini と UserEngine.ini

基本は下記の投稿通りです。

[Content removed]

具体的にはファイルBaseEngine.iniに追加したのは下記になります。

[Uba.Provider.Horde.TestEpicUE56]

ServerUrl=“http://PC_S:13340”

Pool=WinUE5

Enabled=True

Cluster=default

UbaPool=WinUE5

UbaEnabled=True

UbaCluster=default

以上です、よろしくお願いいたします。

お世話にあんっております。

BuildConfiguration.xmlの中WinPoolとHordeのdashboardでもは.iniと全く同じ名前になっているかどうか確認できますか?

<WindowsPool>WinUE5</WindowsPool> (dashboardではWinUE5になっているはずです)

のようにしないとダメです。

あとはAgentでAntivirus系のせいで止められている可能性があるため、こちらの設定も確認していただけますか?

お手数ですが、よろしくお願いします。

お返事をありがとうございます!

BuildConfiguration.xml の設定は下記になります。

また、C++の分散はできています。Shaderコンパイルがダメなのです。

<BuildConfiguration>

<bAllowUBAExecutor>true</bAllowUBAExecutor>

<bAllowSNDBS>false</bAllowSNDBS>

</BuildConfiguration>

<Horde>

   \<Server\>http://P\_S:13340\</Server\> 

<WindowsPool>Win-UE5</WindowsPool>

</Horde>

<UnrealBuildAccelerator>

<!-- Since 5.6: good for debug-->

<bForceBuildAllRemote>true</bForceBuildAllRemote>

<!-- Since 5.6: -->

<bDisableRemote>false</bDisableRemote>

<Providers>Uba.Provider.Horde.TestEpicUE56</Providers>

<!-- Since 5.5: -->

<bLaunchVisualizer>true</bLaunchVisualizer>

</UnrealBuildAccelerator>

</Configuration>

以上です、引き続き、よろしくお願いいたします。

お世話になっております。

返事、ありがとうございます。

xmlでは<WindowsPool>Win-UE5</WindowsPool>になっていますが、

iniの方はUbaPool=WinUE5になっているので、名前を合わせることで変わるかどうか確認できますか?

お手数ですが、よろしくお願いします。

お世話になっております。

よかったです!!!

Providerフィールドは、Unreal Build Automationで使用されるHordeを定義するものです。

デフォルト設定を使用する場合や、特定のプロバイダーの使用を避けたい場合は、このフィールドを削除しても問題ありませんが、UBAは同じネットワークバックエンドにビルドをオフロードしなくなる可能性があるため、残した方がいいと思います。

お手数ですが、よろしくお願いします。

お世話になっております。

Horde・UBAについて大事な追加質問があります。

1.互換性について

UE5.7のHordeサーバーと、UE5.7のAgent側にインストールする “Unreal Horde Agent” を、UE5.6 ベースのゲーム開発(分散ビルド)に使っても良いでしょうか?

2.エンジン内のubaのバイナリについて

UE5/Mainから取ってきた最新(UE5.7 より新しいかもしれない)のUbaAgent を、UE5.6, UE5.7ベースのゲーム開発(分散ビルド)に使っても良いでしょうか?

また、このUbaAgent のバイナリと、↑の「1」にあるインストーラーでインストールする互換性もあれば、教えて頂くと嬉しく思います。

上記の「UbaAgent」についての補足で。

具体的には、下記のバイナリ一式を持ってきて、UE5.6で検証しております。

//UE5/Main/Engine/Binaries/Win64/UnrealBuildAccelerator/x64/

お手数ですが、よろしくお願いします。

連続の返事ですが、一つ書き忘れていました。​

> あとはAgentでAntivirus系のせいで止められている可能性があるため、こちらの設定も確認していただけますか?

Admin権限でないと、​Antivirusを止められないのですが、ITの方と相談します。

また、C++の分散はできていますが、Shaderコンパイルがダメです。

実際、Agent PCのTask Managerで、「Clang++.exe」が動いていることを確認できます。

お世話になっております。

お返事をありがとうございます。

おかげさまで、うまく行きました!

助かりました。

また、別の質問ですが、

「Provider」という設定は↑のように設定したままで大丈夫でしょうか?

設定しなくても良いならば、設定を消したいのですが・・・

なぜかというと、実は、よくProviderの意味がわからなくて、検索しても出ておりません。

ご説明いただきありがとうございます!承知しました。

「この“provider”機能は、フォーラムの投稿ではなく、今後は公式ドキュメントで整備・公開していただけると助かります。

お世話になっております。

アンチアルエンジンとHorde/UBAの開発はそこまで関係がないため、基本的に使ってもいいですが、Hordeの機能やバグフィックスがまだたくさん入るため、エンジンと同時に更新することがおすすめです。

また、IDEとの相性などもあるため、環境の安定を確認したうえに本プロに入れることが推奨になります。

お手数ですが、よろしくお願いします。

お世話になっております。

ご返事いただき、ありがとうございます!

承知しました。Horde ServerとAgentを最新にしつつ、ジョブを投げる開発者のWorkstation側でのUE5のバージョンを気にせず、同じHorde環境を共有するように検証していきます。

以上です、いろいろとどうもありがとうございました!

今後ともよろしくお願いいたします。