Cubism SDK for Native 5.0 beta3のDX11版でメモリリークする

【Cubism SDKのバージョン】Cubism SDK for Native 5.0 beta3
【OS名・バージョン】Windows11
【開発使用ツール】Visual Studio 2022
【不具合の状況】
・SDK4-r-6.1から5.0beta3に差し替えたところメモリリークが検出される

CubismRenderer_D3D11.cppのCubismClippingContext_D3D11クラスのコンストラクタで基底クラスで初期化済みの変数を再度初期化してるのが原因ではないでしょうか?

CubismClippingContext_D3D11::CubismClippingContext_D3D11(CubismClippingManager<CubismClippingContext_D3D11, CubismOffscreenSurface_D3D11>* manager, CubismModel& model, const csmInt32* clippingDrawableIndices, csmInt32 clipCount)
    : CubismClippingContext(clippingDrawableIndices, clipCount)
{
    _isUsing = false;

    _owner = manager;

    // クリップしている(=マスク用の)Drawableのインデックスリスト
    _clippingIdList = clippingDrawableIndices;

    // マスクの数
    _clippingIdCount = clipCount;

    _layoutChannelNo = 0;

// ここで既に初期化している変数を確保している
//    _allClippedDrawRect = CSM_NEW csmRectF();
//    _layoutBounds = CSM_NEW csmRectF();
//    _clippedDrawableIndexList = CSM_NEW csmVector<csmInt32>();
}
「いいね!」 1

@wanwanswan

いつも弊社製品をご愛顧のほど誠にありがとうございます。
Live2D スタッフのTakでございます。

製品のご利用にご不便をおかけし誠に申し訳ありません。

表題の件につきまして、修正の方針等確認いたしますので、しばらくお待ちいただけると幸いでございます。

よろしくお願いいたします。

@wanwanswan

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

本件弊社開発にて確認をおこないました。
本現象は @wanwanswan 様がご提示の通り、基底クラスの CubismClippingContext でメモリ確保している変数を派生先クラスで再度メモリ確保していることでメモリリークが発生しておりました。
修正についてもご提示の内容で問題なく、派生先の CubismClippingContext_D3D11 コンストラクタでは _allClippedDrawRect 等をメモリ確保しないことでメモリリークしないことを確認いたしました。
修正は次回のアップデート以降で改善されます。

なお本現象はDirectX11のみ発生しており、Cubism SDK for Native R1 beta3の他レンダラでは発生しないことを確認しております。

大変お手数ではございますが、修正までは手元の環境にて派生先の CubismClippingContext_D3D11 コンストラクタでは _allClippedDrawRect 等をメモリ確保しないようにお願いいたします。
ご迷惑をおかけいたします。

上記ご確認のほど何卒よろしくお願いいたします。

ご確認ありがとうございました。
次の更新まで上記の修正方法で使用いたします。

「いいね!」 1