Panel | ||||||
---|---|---|---|---|---|---|
| ||||||
This page is a work in progress ! |
Motivation
Blender is quite possibly the most popular 3D modelling appplication available, definitely the most popular free one. Enabling it would give considerably better performance on ARM64 platforms for Windows.
Status
WIP - “lite” working with some patches. “Release” needs dependencies enabling first.
Dependencies
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
To run it, you need latest version of Adreno GPU driver: https://mermaid.live/edit#pako:eNptVd1v2yAQ_1ciHvaUVPlq1uVhD2mmKlK1RM02TVv2gG3skIJBgB07Vf_3cYAdu60f4DiO-_zd-QXFIiFoiQaZwvI4eHw65AP7rRjJE6IGo9HXwXaz2f7dSpJvOM7IZvtv8GmAGeERjS0VCaEN7EoYRi1hLxQhlmA0IlJUtSXTlEuSOcKcZ7BbEVNLEMu4tOsRq8JuNBZ5CTvH5uh1nOzLkSlUJODMSm43Yb3BLBCxYEJREU4nbwhIXUQJLcOhTCKvT-ZwL81REZxoIIuMVhy0yVobRd39rjZHkVtiv360qz5imw6IV-dJSlmIz9A0tdTP_dquZxJBJBfLh02b5OogwwkGA8IoHJPAr9RIJ8_2sN2DjUTGEhQwUhI2uhAFIbV5X5NcUE0Ca_cALyImdByUkUoFKoNQTAROlAV7xrkvKZTR19PKfPv91M9yiORtvlehuik3Pqw2L98LvuuVtpP8H6tV8PP-V79IwZXgAXgT0uVc8bcNtuDWm_P8ACxgWwOe12KsCezh0V8Et4DNMCdvwJHBWgoVUQCAORKhsBMp4FzKyq7VdDGHraRJLBS5VhYLHmw0IAYrLf6jC5XTLtTgmX8AUAfZGuugwsHeOfleuottECGVxKZTtQ5aa8zZyKLn-vDURh9z3Stx30DoEZBMqCKxqTwkM0bObkvPTQVdhxhSeXRdVUBnuQwENDYTofHzis72WYi2qb9nNj0G3Ixphl1oWlJVjowQTLdvXSQha-zCcb_rvFihE-9V8MY3xNWa69agoz9imkpcU9Z2lR0Gvdq4tg5KwgiJFfEiTa_3g-z0PVyccup6_qRF3tYPxkEzeD_IZ8pcDSx2XSN2x1fozbzgsva6_FABbbLTSu-mCghs9rv7boe3TdYMHAfCZrq3tfRld0m4zN2AxFLWH5WkAQLINsH4zKAh4kRxTBP7K3oB6QOyXcnJAS0tmWD1fECH_NXK4cKIfZ3HaGlUQYaokAk2ZE2x_YFxtEwx05Yrcf5HiN4ZLV9QhZaL-eRmPv48nS5uF9PbIarRcjS-GdtvMpsuvszv5uP5bDKdzGZ3r0N0cUomr_8Bx4o6bg
Todo
Get “lite” building OOB, by making sure patches are pushed, and get “Release” version built.
Known Limitations
Currently building/launching is problematic, and requires manually copying DLLs at various points when the build process errors out. There are also many assumptions within blender’s codebase that “Windows == x64”, which needs to be worked out.
Compiling
Status
Nightlies available from blender via https://builder.blender.org/download/daily/
Dependencies
All are enabled except OpenPGL, and DPCPP.
A full list can be seen here: https://projects.blender.org/blender/blender/src/branch/main/build_files/build_environment/cmake/versions.cmake
Todo
Enable OpenPGL and investigate clang-cl builds.
Known Limitations
Only 8cx Gen3 and above devices work.
Compiling notes
This must be done on a WoA machine - cross-compiling is not yet supported.
Currently the following native libraries/programs are required to be present in the vc15_win64 folder (all buildable via vcpkg bar python, which uses the native installer, and a copy-paste from that directory):
freetype (
freetype.lib
must be copied, with new file namefreetype2ST.lib
)zstd (
zstd.lib
must be copied and renamed tozstd_static.lib
)zlib (
zlib.lib
must be copied and renamed tolibz_st.lib
)pthreads
libpng (folder renamed to “png” +
libpng16.lib
must be copied and renamed tolibpng.lib
)libjpeg-turbo (folder renamed to “jpeg” +
jpeg.lib
must be copied and renamed tolibjpeg.lib
)brotli (uses arm64-windows-static target)
libepoxy (folder renamed to “epoxy”)
python
Running
Download ZIP file below, and run blender exe as normal. May require native python (tested with 3.11rc2) being installed and on the path.
...
Compiling blender
As blender now has pre-builts available for Windows ARM64, the standard blender build instructions can be followed for a normal build of blender (note, only VS2022 works for ARM64): https://developer.blender.org/docs/handbook/building_blender/windows/
Compiling via build script (outdated)
Note |
---|
You shouldn’t need these instructions unless you intend on building the deps yourself - it is likely they may not work. Please speak to Anthony Roberts if you have queries about this section. |
There is a build script written, which takes care of many of the interim steps required to build and run the semi-release version of Blender, available here: https://gitlab.com/Linaro/windowsonarm/packages/blender/-/tree/master/
It should work on the main fork of blender, but mileage may very, as main is a fast-moving target within blender.
To use:
Set up arm64 wenv: https://gitlab.com/Linaro/windowsonarm/wenv/
Clone repo
Execute
./recipe.sh origin/main out_dir
from a wenv bash terminal - ie, not a vcvarsall/plain CMD instance!Wait for build to complete
Contributing changes
If you wish to contribute changes to Blender, you may do so by making a merge request for your changes to blender’s main repo here: https://projects.blender.org/blender/blender
Any changes or issues relating to Windows ARM64 will be directed to Anthony Roberts by the blender triaging team - if you have bigger changes to discuss, please reach out to Anthony directly at anthony.roberts@linaro.org.
If you have any questions, queries, or concerns, contact Anthony Roberts
Running
Download a daily build from the blender build bots from here: https://builder.blender.org/download/daily/