Skip to content

bpy: riscv64 build_environment stage (validation only, draft) - #3311

Draft
luhenry wants to merge 2 commits into
mainfrom
port/bpy
Draft

luhenry wants to merge 2 commits into
mainfrom
port/bpy

Conversation

@luhenry

@luhenry luhenry commented Oct 15, 2026 •

Copy link
Copy Markdown
Member

This is not a complete port. It stages only Blender's build_environment dependency stage (build_files/build_environment, what make deps / Windows' build_deps.cmd runs) behind a minimal build-bpy.yml job, to get this riscv64 CMake patch validated on the real ubuntu-24.04-riscv self-hosted runner for the first time. Earlier work only had configure-only dry runs against a faked cross-compile toolchain file, never an actual riscv64 build. The main Blender configure/compile/wheel stage (bpy_module.cmake onward) is not wired up, so this PR produces no wheel and should stay draft regardless of CI result.

Patch: 0001-build_environment-skip-LLVM-OSL-ISPC-OIDN-Embree-GPU.patch - Inappropriate [riscv64 unsupported by these deps]. Adds BLENDER_PLATFORM_RISCV64 (set like the adjacent BLENDER_PLATFORM_ARM) and uses it to skip LLVM/OSL/ISPC/OpenImageDenoise/Embree/level-zero plus the existing ARM-only GPU-vendor cluster (hiprt/dpcpp/igc/gmmlib/ocloc/...), both the include()s and their download_source() calls in cmake/download.cmake (24 of 117 calls dropped). USD/MaterialX/OpenVDB/Alembic/Draco keep building from source, same as every other non-ARM platform - build_environment is a structurally separate CMake project with no coupling to the main configure's WITH_USD/etc flags, so that later decision cannot shrink this stage further. Verified x86_64/aarch64 configure byte-identically with/without the patch; riscv64 drops exactly the 12 intended target families. Does not reproduce off riscv64.

Testing: none yet - this PR exists to let CI attempt the actual build for the first time.

License: not assessed - no wheel is produced by this stage.

Stages the riscv64 CMake patch for Blender's build_environment ("make
deps") dependency stage behind a minimal build-bpy.yml that runs just
that stage on the real riscv64 self-hosted runner, to get the first
real CI validation of the patch (prior work only had configure-only
dry runs against a cross-compile toolchain file, no actual riscv64
hardware). The main Blender configure/compile/wheel stage is
deliberately not wired up yet.
…ackage

The first CI run on ubuntu-24.04-riscv failed before cmake even configured:
dnf has no riscv64 build of patchelf (it ships only via EPEL, which the
manylinux_2_39_riscv64 image disables for riscv64) or yasm (no riscv64
package in any Rocky 10 repo, and no real PyPI wheel either). Both are
unconditionally required by upstream's check_software.cmake, with no
riscv64/arch gate like the deps the CMake patch itself skips.

Install patchelf from the riscv64 wheel this repo already publishes
(docs/packages/patchelf.yaml) and build yasm from its official release
tarball instead of via dnf.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant