Skip to content

Commit 114e644

Browse files
committed
Only blit depth if necessary for Rasterizer.
1 parent 921564c commit 114e644

File tree

4 files changed

+9
-17
lines changed

4 files changed

+9
-17
lines changed

genesis/ext/pyrender/renderer.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1043,7 +1043,8 @@ def _read_main_framebuffer(self, scene, flags):
10431043
glBindFramebuffer(GL_READ_FRAMEBUFFER, self._main_fb_ms)
10441044
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, self._main_fb)
10451045
glBlitFramebuffer(0, 0, width, height, 0, 0, width, height, GL_COLOR_BUFFER_BIT, GL_LINEAR)
1046-
glBlitFramebuffer(0, 0, width, height, 0, 0, width, height, GL_DEPTH_BUFFER_BIT, GL_NEAREST)
1046+
if flags & RenderFlags.RET_DEPTH:
1047+
glBlitFramebuffer(0, 0, width, height, 0, 0, width, height, GL_DEPTH_BUFFER_BIT, GL_NEAREST)
10471048
glBindFramebuffer(GL_READ_FRAMEBUFFER, self._main_fb)
10481049

10491050
# Read depth if requested

genesis/utils/misc.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import sys
1212
from dataclasses import field
1313
from itertools import combinations
14-
from typing import Any, Callable, NoReturn, Optional, Type, Sequence
14+
from typing import Any, NoReturn, Optional, Type, Sequence
1515

1616
import cpuinfo
1717
import gstaichi as ti

tests/test_render.py

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@
66
import time
77

88
import numpy as np
9-
import OpenGL.error
10-
import pyglet
119
import pytest
1210
import torch
1311

@@ -17,6 +15,7 @@
1715
from genesis.utils import set_random_seed
1816
from genesis.utils.image_exporter import FrameImageExporter, as_grayscale_image
1917
from genesis.utils.misc import tensor_to_array
18+
from genesis.vis.keybindings import Key
2019

2120
from .conftest import IS_INTERACTIVE_VIEWER_AVAILABLE
2221
from .utils import assert_allclose, assert_array_equal, get_hf_dataset, rgb_array_to_png_bytes
@@ -1204,7 +1203,7 @@ def on_key_press(self, symbol: int, modifiers: int):
12041203
assert pyrender_viewer.is_active
12051204

12061205
# Try saving the current frame
1207-
pyrender_viewer.dispatch_event("on_key_press", pyglet.window.key.S, 0)
1206+
pyrender_viewer.dispatch_event("on_key_press", Key.S, 0)
12081207

12091208
# Waiting for request completion
12101209
if pyrender_viewer.run_in_thread:
@@ -1219,7 +1218,9 @@ def on_key_press(self, symbol: int, modifiers: int):
12191218
pyrender_viewer.dispatch_pending_events()
12201219
pyrender_viewer.dispatch_events()
12211220

1222-
# Skip the rest of the test if necessary
1221+
# Skip the rest of the test if necessary.
1222+
# Similarly, 'glBlitFramebuffer(..., GL_DEPTH_BUFFER_BIT, GL_NEAREST)' involved in offscreen rendering of depth map
1223+
# with interactive viewer enabled takes ages on old CPU-based Mesa rendering driver (~15000s).
12231224
if sys.platform == "linux":
12241225
glinfo = pyrender_viewer.context.get_info()
12251226
renderer = glinfo.get_renderer()
@@ -1646,16 +1647,5 @@ def test_rasterizer_camera_sensor_with_viewer(renderer):
16461647

16471648
scene.step()
16481649

1649-
if sys.platform == "linux":
1650-
glinfo = pyrender_viewer.context.get_info()
1651-
renderer = glinfo.get_renderer()
1652-
if "llvmpipe" in renderer:
1653-
llvm_version = re.search(r"LLVM\s+([\d.]+)", renderer).group(1)
1654-
if llvm_version < "20":
1655-
pytest.skip(
1656-
"OpenGL function 'glBlitFramebuffer' involved in offscreen rendering with the interactive viewer "
1657-
"takes ages on old CPU-based Mesa rendering driver. Skipping..."
1658-
)
1659-
16601650
data = camera_sensor.read()
16611651
assert data.rgb.float().std() > 1.0, "RGB std too low, image may be blank"

tests/test_viewer.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ def test_interactive_viewer_disable_viewer_defaults():
3737
# Test with keyboard shortcuts DISABLED
3838
scene = gs.Scene(
3939
viewer_options=gs.options.ViewerOptions(
40+
run_in_thread=(sys.platform == "linux"),
4041
disable_help_text=True,
4142
disable_default_keybinds=True,
4243
),

0 commit comments

Comments
 (0)