Files
Flamenco-Management/.specstory/history/2025-05-06_20-07Z-switching-to-optix-gpu-rendering.md
2025-07-15 12:25:23 -06:00

13 KiB
Raw Blame History

Switching to OptiX GPU Rendering (2025-05-06 20:07Z)

User

I have a worker that I think is rendering Cycles scenes in CPU, I need it to render OptiX GPU. I can use ssh to connect to the system. How would I edit my blender preferences via text?


Assistant

Thought ProcessThe user is asking about how to edit Blender preferences via text to change from CPU rendering to OptiX GPU rendering. They mention having a worker that they can connect to via SSH. This suggests they need to modify Blender's config files remotely without using the GUI.

Let me first search for information about Blender configuration files and how to modify rendering settings via text.


Let me help you configure Blender to use OptiX GPU rendering via text files. First, I'll locate the relevant configuration files.


Searched web "blender change cycles render device to optix via config file" • **5** results
Title URL
GPU Rendering - Blender 4.4 Manual https://docs.blender.org/manual/en/latest/render/cycles/gpu_rendering.html
GPU Rendering — Blender Manual https://docs.blender.org/manual/en/2.82/render/cycles/gpu_rendering.html
Cycles: add Optix device backend · a2b52dc571 a2b52dc571
CUDA vs OptiX Render in Blender Cycles https://irendering.net/cuda-vs-optix-render-in-blender-cycles/
Cycles: Enable OptiX on all Maxwell+ GPUs · 473aaa389c 473aaa389c

Based on my research, I'll help you set up Blender to use OptiX GPU rendering over SSH. This will significantly improve your rendering performance compared to CPU rendering.


Searched web "blender editing preferences file location ssh" • **5** results
Title URL
File Paths — Blender Manual https://docs.blender.org/manual/en/3.3/editors/preferences/file_paths.html
File Paths - Blender 4.4 Manual https://docs.blender.org/manual/en/latest/editors/preferences/file_paths.html
Blenders Directory Layout - Blender 4.3 Manual https://docs.blender.org/manual/en/dev/advanced/blender_directory_layout.html
Blenders Directory Layout - Blender 4.1 Manual https://docs.blender.org/manual/en/latest/advanced/blender_directory_layout.html
Blenders Directory Layout — Blender Manual https://docs.blender.org/manual/en/3.3/advanced/blender_directory_layout.html

Searched web "blender preferences file cycles optix gpu rendering command line" • **4** results
Title URL
GPU Rendering - Blender 4.4 Manual https://docs.blender.org/manual/en/latest/render/cycles/gpu_rendering.html
GPU Rendering — Blender Manual https://docs.blender.org/manual/en/2.82/render/cycles/gpu_rendering.html
CUDA vs OptiX Render in Blender Cycles https://irendering.net/cuda-vs-optix-render-in-blender-cycles/
Curing RTX FOMO for Blender Artists - I don't need a new GPU https://www.youtube.com/watch?v=cpT6CNKzjGw

Searched web "configure blender for optix gpu rendering command line ssh" • **5** results
Title URL
GPU Rendering - Blender 4.4 Manual https://docs.blender.org/manual/en/latest/render/cycles/gpu_rendering.html
Command Line Rendering — Blender Manual https://docs.blender.org/manual/en/3.6/advanced/command_line/render.html
GitHub - mpapili/BlenderHeadlessGPUScript https://github.com/mpapili/BlenderHeadlessGPUScript
beyondwatts | Running Blender remotely on Ubuntu with Tiger VNC https://www.beyondwatts.com/posts/running-blender-remotely-on-ubuntu-with-tiger-vnc/
Curing RTX FOMO for Blender Artists - I don't need a new GPU https://www.youtube.com/watch?v=cpT6CNKzjGw

Searched web "modify blender preferences file cycles gpu compute_device_type python script" • **4** results
Title URL
GPU not being used when using Blender as a Python module https://blenderartists.org/t/gpu-not-being-used-when-using-blender-as-a-python-module/1463774
Force GPU rendering python script #54099 https://developer.blender.org/T54099
Force GPU rendering python scriptClosed, ArchivedPublicPATCHActions https://developer.blender.org/T54099
Force GPU rendering python script https://projects.blender.org/studio/flamenco/issues/54099

Searched web "blender configure gpu preferences userpref.blend file" • **5** results
Title URL
How to set GPU preferences remotely? - Technical Support https://blenderartists.org/t/how-to-set-gpu-preferences-remotely/1147766
GPU Rendering - Blender 4.4 Manual https://docs.blender.org/manual/en/latest/render/cycles/gpu_rendering.html
The perfect startup file for Blender 3.x https://www.blendernation.com/2022/04/15/the-perfect-startup-file-for-blender-3-x/
glinfo.blendPublicActions https://developer.blender.org/F86432
User Preferences¶ http://builder.openhmd.net/blender-hmd-viewport-temp/preferences/index.html

Searched codebase "How to create a Python script to enable OptiX GPU rendering in Blender Cycles via command line" • **25** results
File Lines
run_blender-boss_worker.bat L1-2
localrecover/recover_blender-boss.ps1 L26-81
run_max_worker.ps1 L60-100
start_all_workers.bat L1-16
run_blender-boss_worker.ps1 L60-100
run_echo_worker.ps1 L60-100
localrecover/recover_blender-boss.bat L1-2
run_i9-13ks_worker.ps1 L60-100
run_masterbox_worker.ps1 L60-100
localrecover/recover_max.ps1 L26-81
localrecover/recover_echo.ps1 L26-81
localrecover/recover_masterbox.ps1 L26-81
run_blender-boss_worker.ps1 L1-60
localrecover/recover_i9-13ks.ps1 L26-81
localrecover/recover_blender-boss.ps1 L1-26
localrecover/recover_files.ps1 L61-99
run_max_worker.bat L1-2
run_max_worker.ps1 L1-60
run_i9-13ks_worker.bat L1-2
run_masterbox_worker.bat L1-2
run_masterbox_worker.ps1 L1-60
run_echo_worker.ps1 L1-60
run_echo_worker.bat L1-2
run_i9-13ks_worker.ps1 L1-60
localrecover/recover_max.bat L1-2

Searched web "how to configure blender optix gpu rendering via python script instead of gui" • **4** results
Title URL
GPU Rendering - Blender 4.4 Manual https://docs.blender.org/manual/en/latest/render/cycles/gpu_rendering.html
Using GPU in Optix and CUDA builds https://github.com/TylerGubala/blenderpy/wiki/Using-GPU-in-Optix-and-CUDA-builds
Curing RTX FOMO for Blender Artists - I don't need a new GPU https://www.youtube.com/watch?v=cpT6CNKzjGw
GitHub - NVIDIA/otk-pyoptix: Complete Python bindings for the OptiX host API https://github.com/NVIDIA/otk-pyoptix

Searched web "blender edit userpref.blend cycles optix gpu python script command line" • **4** results
Title URL
Change GPU usage cmd line - Python API https://devtalk.blender.org/t/change-gpu-usage-cmd-line/9797
Headless rendering no longer automatically picking up ... https://devtalk.blender.org/t/headless-rendering-no-longer-automatically-picking-up-gpus/12176
Using GPU in Optix and CUDA builds https://github.com/TylerGubala/blenderpy/wiki/Using-GPU-in-Optix-and-CUDA-builds
Curing RTX FOMO for Blender Artists - I don't need a new GPU https://www.youtube.com/watch?v=cpT6CNKzjGw

Searched web "python script to enable optix gpu rendering in blender command line" • **4** results
Title URL
enable optix GPU rendering in blender python https://gist.github.com/danthemango/1aaab8264c75be9c165dc8610357e3f3
Command Line Arguments - Blender 4.4 Manual https://docs.blender.org/manual/en/latest/advanced/command_line/arguments.html
Using GPU in Optix and CUDA builds https://github.com/TylerGubala/blenderpy/wiki/Using-GPU-in-Optix-and-CUDA-builds
Curing RTX FOMO for Blender Artists - I don't need a new GPU https://www.youtube.com/watch?v=cpT6CNKzjGw

Based on my research, here's how to modify Blender preferences to enable OptiX GPU rendering via a Python script over SSH:

import bpy

# First, set rendering engine to Cycles
bpy.context.scene.render.engine = 'CYCLES'

# Access the user preferences for Cycles
prefs = bpy.context.preferences
cycles_prefs = prefs.addons['cycles'].preferences

# Update the device list and set compute device type to OptiX
cycles_prefs.compute_device_type = 'OPTIX'
cycles_prefs.get_devices()  # This is critical - refreshes the device list

# Enable all available OptiX GPU devices
for device in cycles_prefs.devices:
    if device.type == 'OPTIX':
        device.use = True
        print(f"Enabled device: {device.name} ({device.type})")

# Set Cycles to use GPU for rendering
for scene in bpy.data.scenes:
    scene.cycles.device = 'GPU'

# Save the preferences (optional but recommended)
bpy.ops.wm.save_userpref()

print("OptiX GPU rendering enabled successfully!")

To use this script:

  1. Connect to your worker via SSH
  2. Create a file (e.g., enable_optix.py) with the above script
  3. Run it with Blender in background mode: blender --background --python enable_optix.py

Alternatively, you can run it directly as a one-liner:

blender --background --python-expr "import bpy; bpy.context.preferences.addons['cycles'].preferences.compute_device_type = 'OPTIX'; bpy.context.preferences.addons['cycles'].preferences.get_devices(); [device.use = True for device in bpy.context.preferences.addons['cycles'].preferences.devices if device.type == 'OPTIX']; [setattr(scene.cycles, 'device', 'GPU') for scene in bpy.data.scenes]; bpy.ops.wm.save_userpref()"

This approach ensures that:

  1. The device list is properly refreshed with get_devices()
  2. OptiX is selected as the compute device type
  3. All OptiX-compatible GPUs are enabled
  4. Every scene is set to use GPU rendering
  5. The preferences are saved for future Blender sessions

The script should work for Blender 2.8+ versions. Once the preferences are saved, Blender should use OptiX GPU rendering by default.


User


Assistant

Thought ProcessI see the issue with the command. There's a syntax error in the one-liner version of the Python command that's causing it to fail. The error is related to the list comprehension syntax.

The problematic part is:

[device.use = True for device in bpy.context.preferences.addons['cycles'].preferences.devices if device.type == 'OPTIX']

In a list comprehension, you can't have assignment operations (device.use = True). List comprehensions are meant to create new lists, not perform side effects.

Let's fix this by using a regular for loop instead. Here's the corrected version:


I see the error in the one-liner command. The problem is with the list comprehension syntax - you can't use assignments like device.use = True directly in a list comprehension.

Here's a corrected version of the command:

blender --background --python-expr "import bpy; bpy.context.preferences.addons['cycles'].preferences.compute_device_type = 'OPTIX'; bpy.context.preferences.addons['cycles'].preferences.get_devices(); [setattr(device, 'use', True) for device in bpy.context.preferences.addons['cycles'].preferences.devices if device.type == 'OPTIX']; [setattr(scene.cycles, 'device', 'GPU') for scene in bpy.data.scenes]; bpy.ops.wm.save_userpref()"

Or if you prefer a more readable approach, create a separate Python script instead:

import bpy

# Set compute device to OptiX
prefs = bpy.context.preferences
cycles_prefs = prefs.addons['cycles'].preferences
cycles_prefs.compute_device_type = 'OPTIX'
cycles_prefs.get_devices()

# Enable all OptiX devices
for device in cycles_prefs.devices:
    if device.type == 'OPTIX':
        device.use = True
        print(f"Enabled: {device.name}")

# Set all scenes to use GPU
for scene in bpy.data.scenes:
    scene.cycles.device = 'GPU'

# Save preferences
bpy.ops.wm.save_userpref()

Save this as enable_optix.py and run:

blender --background --python enable_optix.py