-
Notifications
You must be signed in to change notification settings - Fork 295
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Refactor texture creation to avoid the need for a global lock #1527
Conversation
Mostly just broken so far.
But raster overlays don't work, and there appears to be an sRGB problem.
…al into shared-assets-kring
Implemented the change to properly report texture stats. However, this led me to the discovery that, while textures are correctly being deduplicated, and are only loaded once per URL per tileset, textures aren't getting cleaned up after the tileset unloads. I believe this is because the I believe what needs to happen is:
Does this sound right to you, @kring? |
Good eye @azrogers! I just opened a PR (CesiumGS/cesium-native#964) to address that. |
Update cesium-unreal to work with shared-assets-tweaks branch of cesium-native
This is a PR into #1521. Still to do:
Previously, creating textures in Cesium for Unreal was a two stage process:
LoadedTextureResult
and UnrealFTextureResource
. This was synchronous.UTexture2D
. This was also synchronous.Now it's a three step process:
FTextureResource
from anImageCesium
, which may or may not be shared among multiple models/tiles. This happens in a worker thread but completes asynchronously (a Future resolves when it is done) because only the first worker thread that needs a shared image will process it, while the others wait (via Future) for the first.FTextureResource
plus the glTF Texture/Sampler/Image/ImageCesium into a newFTextureResource
(pointing to the same RHI texture) and aLoadedTextureResult
. This part is synchronous.UTexture2D
. This part is also synchronous.