Skip to content

Commit 74081d2

Browse files
authored
[BugFix] Add fix for mac devices not being recognized as being capable of rendering (#1137)
1 parent 1bf4d7a commit 74081d2

File tree

3 files changed

+16
-7
lines changed

3 files changed

+16
-7
lines changed

mani_skill/envs/sapien_env.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import torch
1515
from gymnasium.vector.utils import batch_space
1616

17+
import mani_skill.render.utils as render_utils
1718
from mani_skill import logger
1819
from mani_skill.agents import REGISTERED_AGENTS
1920
from mani_skill.agents.base_agent import BaseAgent
@@ -1154,7 +1155,7 @@ def _setup_scene(self):
11541155
scene_idx // scene_grid_length - scene_grid_length // 2,
11551156
)
11561157
systems = [physx_system]
1157-
if self._render_device.can_render():
1158+
if render_utils.can_render(self._render_device):
11581159
systems.append(sapien.render.RenderSystem(self._render_device))
11591160
scene = sapien.Scene(
11601161
systems=systems
@@ -1171,7 +1172,7 @@ def _setup_scene(self):
11711172
else:
11721173
physx_system = physx.PhysxCpuSystem()
11731174
systems = [physx_system]
1174-
if self._render_device.can_render():
1175+
if render_utils.can_render(self._render_device):
11751176
systems.append(sapien.render.RenderSystem(self._render_device))
11761177
sub_scenes = [
11771178
sapien.Scene(systems)

mani_skill/envs/scene.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import platform
21
from dataclasses import dataclass
32
from functools import cached_property
43
from typing import Any, Dict, List, Optional, Tuple, Union
@@ -10,6 +9,7 @@
109
import torch
1110
from sapien.render import RenderCameraComponent
1211

12+
import mani_skill.render.utils as render_utils
1313
from mani_skill.envs.utils.system.backend import BackendInfo
1414
from mani_skill.render import SAPIEN_RENDER_SYSTEM
1515
from mani_skill.sensors.base_sensor import BaseSensor
@@ -118,10 +118,7 @@ def __init__(
118118

119119
def can_render(self):
120120
"""Whether or not this Scene object permits rendering, depending on the rendering device selected"""
121-
# NOTE (stao): currently sapien can't tell if the render device can render or not for MacOS
122-
if platform.system() == "Darwin":
123-
return True
124-
return self.backend.render_device.can_render()
121+
return render_utils.can_render(self.backend.render_device)
125122

126123
# -------------------------------------------------------------------------- #
127124
# Functions from sapien.Scene

mani_skill/render/utils.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import platform
2+
3+
import sapien
4+
5+
6+
def can_render(device: sapien.Device) -> bool:
7+
"""Whether or not this device can render, depending on the rendering device selected"""
8+
# NOTE (stao): currently sapien can't tell if the render device can render or not for MacOS
9+
if platform.system() == "Darwin":
10+
return True
11+
return device.can_render()

0 commit comments

Comments
 (0)