# Startup Time

#### <a class="anchor" id="bkmrk-"></a>Loading Data

<span style="color: rgb(230, 126, 35);">[Asset Tool](https://doc316en.candera.eu/books/asset-tool)</span> can be used to partition an asset for a startup scene in a faster flash memory.

An another option would be to load a small startup scene and use <span style="color: rgb(230, 126, 35);">[asynchronous asset loading](https://doc316en.candera.eu/books/candera/page/asynchronous-asset-loading)</span> to load next scene in background.

Loading a lot of data at startup is generally a bad idea. Distribute loading tasks over time.

Also avoid to copy the whole asset from NAND flash to RAM. A better solution would be to implement a paging and caching mechanism using a custom Asset Repository.

#### <a class="anchor" id="bkmrk--0"></a>Persist Pre-compiled Shaders

Use this feature by enabling CANDERA\_SHADER\_PROGRAM\_PERSIST\_INTERFACE\_ENABLED flag in the CMake project.

#### <a class="anchor" id="bkmrk--1"></a>Scope Masks

Upload data to VRAM using Scope Masks as presented in the <span style="color: rgb(230, 126, 35);">[documentation](https://doc316en.candera.eu/link/537#bkmrk-uploading-to-multipl)</span> and in the <span style="color: rgb(230, 126, 35);">[example](https://doc316en.candera.eu/link/537#bkmrk-uploading-to-multipl-0)</span>.

#### <a class="anchor" id="bkmrk--2"></a>Startup Animation

Here are some hints for the startup animation:

<div class="contents" id="bkmrk-avoid-large-images-u"><div class="textblock">- Avoid large images
- Use image compression
- Restrict the frame rate (e.g. 30 fps)
- Realize a flipbook startup animation with asynchronous image fetching

</div></div>