The major difference I can spot is that the node from @woei uses D3DX11CreateTextureFromFile function (D3DX11.h) - Win32 apps to do the actual dds load, while in Stride this is done by these lines stride/sources/engine/Stride/Graphics/DDSHelper.cs at 9219cbbb9de7a238060d97cf1cfbbf759120aa23 · stride3d/stride · GitHub
As you can see the original function has been deprecated by Microsoft and is also no longer available in the SharpDX bindings (the DX11 pack uses the SlimDX bindings where this function still exists). So doing a quick comparison by moving over to that function doesn’t seem to be straight forward. We’d need to pipe the COM pointers from Stride → SharpDX → SlimDX, call the function and then all the way back.
In any case, I think I tackled the disposal topic mentioned earlier. So memory should be stable even if going over the hardware limits. Here’s the updated patch:
TextureLoader.vl (71.2 KB)