Skip to content

refactor(graphics)!: remove legacy OpenGL visualization stack#412

Merged
plexoos merged 6 commits into
mainfrom
remove-gl
Jul 14, 2026
Merged

refactor(graphics)!: remove legacy OpenGL visualization stack#412
plexoos merged 6 commits into
mainfrom
remove-gl

Conversation

@plexoos

@plexoos plexoos commented Jul 10, 2026

Copy link
Copy Markdown
Member

Summary

Remove Simphony’s legacy OpenGL visualization stack, including SGLFW, CUDA–OpenGL interoperability, GLSL shaders, and
interactive OptiX display.

Changes

  • Remove the SGLFW window, input, rendering, and shader infrastructure.
  • Remove CUDA–OpenGL PBO interoperability and OpenGL display helpers.
  • Remove the vendored GLEQ event implementation.
  • Remove CSGOptiXRenderInteractiveTest and obsolete SGLFW tests.
  • Remove GLEW and GLFW from:
    • CMake package discovery
    • SysRap’s public link interface
    • Installed package dependencies
    • Docker development packages
  • Remove obsolete OpenGL vertex-attribute metadata.
  • Update documentation and comments referencing deleted visualization paths.

Retained capabilities

  • GLM camera, frame, and projection calculations
  • Headless OptiX rendering and NumPy snapshots
  • Geant4 Qt/OpenGL visualization
  • Plotly and PyVista analysis support
  • Core simulation and GPU photon propagation

Breaking changes

Installed SGLFW, OpenGL display, and CUDA–OpenGL interoperability headers are removed.

The CSGOptiXRenderInteractiveTest target and transitive GLEW/GLFW dependencies are no longer available.

plexoos added 3 commits July 10, 2026 12:09
Remove the header-only SGLFW renderer, CUDA-OpenGL PBO interoperability,
OpenGL display helpers, vendored GLEQ event handling, and the interactive
CSGOptiX render test.

Drop GLEW and GLFW from SysRap discovery, public link interfaces, installed
package dependencies, and the container toolchain. Remove obsolete GL
attribute metadata and update comments and documentation that referred to
the deleted visualization paths.

Retain GLM camera/projection math, headless OptiX rendering and snapshots,
Geant4 Qt/OpenGL visualization, and Python Plotly/PyVista analysis support.

Validation:
- clean CMake configure with BUILD_TESTING=ON
- full project build
- focused SysRap and CSGOptiX regression tests
- staged install/export audit
- downstream async_gpu_launch consumer build
- repository GL dependency scan

BREAKING CHANGE: Installed SGLFW, OpenGL display, and CUDA-OpenGL
interoperability headers are removed. The CSGOptiXRenderInteractiveTest
target and GLEW/GLFW transitive dependencies are no longer available.
@plexoos plexoos self-assigned this Jul 10, 2026
@plexoos plexoos added the legacy label Jul 14, 2026
@plexoos
plexoos marked this pull request as ready for review July 14, 2026 16:47
Copilot AI review requested due to automatic review settings July 14, 2026 16:47

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR removes Simphony’s legacy OpenGL visualization stack (SGLFW + GLSL shader pipeline + CUDA–OpenGL interop display path) and cleans up build/package dependencies and documentation so the remaining rendering path is headless OptiX plus retained GLM camera math.

Changes:

  • Deleted SGLFW window/input/render-loop infrastructure, vendored GLEQ, CUDA–OpenGL output-buffer interop, and all associated GLSL shader sources.
  • Removed GLEW/GLFW discovery/linkage from sysrap and installed-package dependency metadata, and dropped related dev packages from the Dockerfile.
  • Updated tests/docs/comments to remove references to the deleted interactive OpenGL visualization paths and removed obsolete OpenGL attribute metadata.

Reviewed changes

Copilot reviewed 68 out of 68 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
u4/U4Mesh.h Updates mesh comment to remove OpenGL-specific phrasing.
sysrap/tests/sphoton_test.cc Removes obsolete OpenGL attribute metadata from test output.
sysrap/tests/spath_test.cc Renames envvar used in spath::Resolve test away from SGLFW naming.
sysrap/tests/SOPTIX_Scene_test.cc Removes references to SGLFW interactive variant in header comment.
sysrap/tests/SOPTIX_Scene_Encapsulated_test.cc Removes references to SGLFW interactive variant in header comment.
sysrap/tests/SGLFW_SOPTIX_Scene_test.cc Deletes interactive OptiX+OpenGL interop test executable.
sysrap/tests/SGLFW_Evt_test.cc Deletes SGLFW event rendering test executable.
sysrap/SScene.h Updates documentation/comments to describe OptiX-only triangulated usage and de-couple from GUI assumptions.
sysrap/SRecord.h Removes OpenGL attribute-spec constant; updates header comment.
sysrap/SOPTIX.rst Updates documentation to remove SGLFW/OpenGL pipeline references.
sysrap/SOPTIX_Scene.h Removes stale rename note referencing SGLFW naming.
sysrap/SOPTIX_SBT.h Removes deleted SGLFW test mention from “Used from” list.
sysrap/SOPTIX_Properties.h Updates/cleans comment formatting and removes OpenGL-vs-OptiX mismatch note.
sysrap/SMesh.h Removes OpenGL vertex-attribute spec constants.
sysrap/SGLM.h Updates comments to remove SGLFW-specific references and generalize client control language.
sysrap/SGLFW.h Deletes legacy OpenGL window/render loop and key handling implementation.
sysrap/SGLFW_VAO.h Deletes minimal VAO wrapper (OpenGL-only).
sysrap/SGLFW_tests/CMakeLists.txt Deletes standalone SGLFW tests build definition.
sysrap/SGLFW_SOPTIX.h Deletes OptiX-to-OpenGL interop renderer glue.
sysrap/SGLFW_Scene.h Deletes OpenGL raster scene pipeline wrapper.
sysrap/SGLFW_Record.h Deletes OpenGL record-array rendering wrapper.
sysrap/SGLFW_Program.h Deletes OpenGL shader program compilation/link wrapper.
sysrap/SGLFW_Mesh.h Deletes OpenGL mesh upload/render wrapper.
sysrap/SGLFW_Keys.h Deletes GLFW key-state tracking helper.
sysrap/SGLFW_GLEQ.h Deletes GLEQ event-name helper.
sysrap/SGLFW_Gen.h Deletes OpenGL genstep rendering wrapper.
sysrap/SGLFW_Evt.h Deletes OpenGL event rendering manager.
sysrap/SGLFW_CUDA.h Deletes CUDA–OpenGL output-buffer display coordinator.
sysrap/SGLFW_check.h Deletes OpenGL error checking helper tied to SGLFW.
sysrap/SGLFW_Buffer.h Deletes minimal OpenGL buffer wrapper.
sysrap/SGLFW_Attrib.h Deletes OpenGL attribute metadata parser/types.
sysrap/SGLDisplay.h Deletes OpenGL PBO-to-screen display shader pipeline.
sysrap/SGen.h Removes OpenGL attribute-spec constants; updates header comment.
sysrap/SEvt.cc Removes OpenGL attribute metadata set on produced NP arrays.
sysrap/SCUDA_OutputBuffer.h Deletes CUDA output buffer implementation that supported GL interop.
sysrap/SCUDA_MeshGroup.h Removes comment referencing SGLFW mesh pattern.
sysrap/SCUDA_Mesh.h Removes comment referencing SGLFW mesh pattern.
sysrap/gleq.h Deletes vendored GLEQ implementation/header.
sysrap/gl/wireframe/vert.glsl Deletes GLSL shader source (wireframe).
sysrap/gl/wireframe/geom.glsl Deletes GLSL shader source (wireframe).
sysrap/gl/wireframe/frag.glsl Deletes GLSL shader source (wireframe).
sysrap/gl/rec_line_strip/vert.glsl Deletes GLSL shader source (record line strip).
sysrap/gl/rec_line_strip/geom.glsl Deletes GLSL shader source (record line strip).
sysrap/gl/rec_line_strip/frag.glsl Deletes GLSL shader source (record line strip).
sysrap/gl/rec_flying_point/vert.glsl Deletes GLSL shader source (record flying point).
sysrap/gl/rec_flying_point/geom.glsl Deletes GLSL shader source (record flying point).
sysrap/gl/rec_flying_point/frag.glsl Deletes GLSL shader source (record flying point).
sysrap/gl/rec_flying_point_persist/vert.glsl Deletes GLSL shader source (record flying point persist).
sysrap/gl/rec_flying_point_persist/geom.glsl Deletes GLSL shader source (record flying point persist).
sysrap/gl/rec_flying_point_persist/frag.glsl Deletes GLSL shader source (record flying point persist).
sysrap/gl/normal/vert.glsl Deletes GLSL shader source (normal shading).
sysrap/gl/normal/frag.glsl Deletes GLSL shader source (normal shading).
sysrap/gl/iwireframe/vert.glsl Deletes GLSL shader source (instanced wireframe).
sysrap/gl/iwireframe/geom.glsl Deletes GLSL shader source (instanced wireframe).
sysrap/gl/iwireframe/frag.glsl Deletes GLSL shader source (instanced wireframe).
sysrap/gl/inormal/vert.glsl Deletes GLSL shader source (instanced normal).
sysrap/gl/inormal/frag.glsl Deletes GLSL shader source (instanced normal).
sysrap/gl/gen_line_strip/vert.glsl Deletes GLSL shader source (genstep line strip).
sysrap/gl/gen_line_strip/geom.glsl Deletes GLSL shader source (genstep line strip).
sysrap/gl/gen_line_strip/frag.glsl Deletes GLSL shader source (genstep line strip).
sysrap/GL_CHECK.h Deletes OpenGL error-checking helpers used by the legacy stack.
sysrap/CMakeLists.txt Removes GLEW/GLFW discovery/linking and stops installing legacy OpenGL headers.
Dockerfile Drops GLFW/GLEW dev packages from the dev image.
CSGOptiX/tests/CSGOptiXRenderInteractiveTest.cc Deletes interactive OptiX display test that depended on SGLFW/OpenGL.
CSGOptiX/tests/CMakeLists.txt Removes OpenGL/GLEW/GLFW discovery and interactive test target build.
CSGOptiX/Frame.h Removes stale comment referencing overlap with SGLFW.
CSGOptiX/CSGOptiX.cc Updates snap documentation to remove SGLFW comparison.
cmake/Config.cmake.in Removes transitive installed-package dependencies on GLEW/glfw3.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread sysrap/SOPTIX_Properties.h Outdated
Comment thread sysrap/SOPTIX_SBT.h Outdated
plexoos and others added 2 commits July 14, 2026 13:40
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@plexoos
plexoos merged commit afa549b into main Jul 14, 2026
9 checks passed
@plexoos
plexoos deleted the remove-gl branch July 14, 2026 17:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants