Implement GPU backend detection for Blender compatibility

- Added functionality to detect GPU backends (HIP and NVIDIA) during runner registration, enhancing compatibility for Blender versions below 4.x.
- Introduced a new method, DetectAndStoreGPUBackends, to download the latest Blender and run a detection script, storing the results for future rendering decisions.
- Updated rendering logic to force CPU rendering when HIP is detected on systems with Blender < 4.x, ensuring stability and compatibility.
- Enhanced the Context structure to include flags for GPU detection status, improving error handling and rendering decisions based on GPU availability.
This commit is contained in:
2026-03-13 18:32:05 -05:00
parent bc39fd438b
commit 5303f01f7c
10 changed files with 294 additions and 24 deletions

View File

@@ -23,6 +23,7 @@ import (
"time"
authpkg "jiggablend/internal/auth"
"jiggablend/internal/runner/blender"
"jiggablend/pkg/executils"
"jiggablend/pkg/scripts"
"jiggablend/pkg/types"
@@ -2036,12 +2037,13 @@ func (s *Manager) runBlenderMetadataExtraction(blendFile, workDir, blenderVersio
}
}
// Execute Blender using executils
// Execute Blender using executils (set LD_LIBRARY_PATH for tarball installs)
runEnv := blender.TarballEnv(blenderBinary, os.Environ())
result, err := executils.RunCommand(
blenderBinary,
[]string{"-b", blendFileRel, "--python", "extract_metadata.py"},
workDir,
nil, // inherit environment
runEnv,
0, // no task ID for metadata extraction
nil, // no process tracker needed
)