# Make a texture compatible with asynchronous texture loading

> Configure a texture or a mesh so Unity can load it in the background.

A texture is eligible for the asynchronous upload pipeline if the following conditions are met:

* The texture is not read/write enabled.
* The texture is not in the Resources folder.
* If the build target is Android, LZ4 compression is enabled in the [Build Profiles](/engine/6000.7/manual/building-and-publishing/build-settings/build-profiles.md) window.

Note that if you load a texture using `LoadImage(byte[] data)`, this forces Unity to use the synchronous upload pipeline, even if the above conditions are met.

A mesh is eligible for the asynchronous upload pipeline if the following conditions are met:

* The mesh is not read/write enabled.
* The mesh is not in the Resources folder.
* The mesh has no [BlendShapes](/engine/6000.7/script-reference/unityengine/mesh/blendshapecount.md).
* The mesh vertex/index data is not needed by a Particle System, a Terrain, or a Mesh Collider.
* The mesh has no [bone weights](/engine/6000.7/script-reference/unityengine/mesh/boneweights.md).
* The mesh [topology](/engine/6000.7/script-reference/unityengine/meshtopology.md) is not [quads](/engine/6000.7/script-reference/unityengine/meshtopology/quads.md).
* The [meshCompression](/engine/6000.7/script-reference/unityeditor/modelimporter/meshcompression.md) for the mesh asset is set to [Off](/engine/6000.7/script-reference/unityeditor/modelimportermeshcompression/off.md). If the build target is Android, LZ4 compression is enabled in the [Build Profiles](/engine/6000.7/manual/building-and-publishing/build-settings/build-profiles.md) window.

In all other circumstances, Unity loads textures and meshes synchronously.
