Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
3361b5c
GPU: remove obsolete config code
davidrohr Oct 16, 2026
e84c169
GPU Display: Fix FPE with display width = 0, e.g. with none backend
davidrohr Oct 22, 2026
6e0a21d
GPU: Possibility to generate run time type information about config s…
davidrohr Oct 16, 2026
452b665
GPU Display: Reorganize frontend to have GPUSettingsFrontendConfig.cx…
davidrohr Oct 16, 2026
2f24f3f
GPU Display Frontend: move key binding constants to separate header
davidrohr Oct 24, 2026
115b35c
GPU Display: Build config RTTI Structs
davidrohr Oct 22, 2026
f291280
GPU Display: Remove mKeysShifted helper array
davidrohr Oct 24, 2026
59148a9
GPU Display: Assemble all variables controlling the display in a cont…
davidrohr Oct 25, 2026
adae1dc
GPU Display: Add option to list configuration bindings for keyboard a…
davidrohr Oct 24, 2026
b101516
GPU Display Frontend: move key handling to RTTI callbacks instead of …
davidrohr Oct 24, 2026
65bd0ff
GPU Display Frontend: Add a map for key down actions, and assign keys…
davidrohr Oct 27, 2026
2afcc38
GPU Display: Switch help-text to auto-generated help text from key bi…
davidrohr Oct 27, 2026
b8e35cf
GPU Display: Info messages per configuration value, not per key, so t…
davidrohr Oct 27, 2026
6c4bccb
GPU Display: Unify calling DrawGLScene and handling of events
davidrohr Oct 27, 2026
4ec2eab
GPU Display: Clean up full screen / maximized setting, make them idem…
davidrohr Oct 28, 2026
19339bb
GPU Display: Cleanup: check for config changes only once
davidrohr Oct 28, 2026
3a73005
GPU Display backend glut: support maximizing the window
davidrohr Oct 28, 2026
8ca0fea
GPU Display: Modernize GLUT backend: Use callbacks with user-data for…
davidrohr Oct 28, 2026
1f44d17
GPU Display Frontend: Use condition_variable to signal stop and confi…
davidrohr Oct 29, 2026
ef0ff3c
GPU Wayland Display: Fix handling of F keys
davidrohr Oct 29, 2026
fd76c94
GPU Display: Drop / implement some simple TODOs
davidrohr Oct 29, 2026
e619644
GPU Display: Fix creating unrequested screenshot, when enabling savin…
davidrohr Oct 29, 2026
7606ffc
GPU Display Frontend: auto-generate info message for key-press if non…
davidrohr Oct 29, 2026
5e63de4
GPU Display: Order key bindings for better grouping in the help text
davidrohr Oct 29, 2026
406c208
GPU Display: Drop obsolete compat profile for OpenGL
davidrohr Oct 31, 2026
48acba7
GPU Display: Wrap lines of help text if they do not fit on screen
davidrohr Oct 31, 2026
04a8217
GPU Display Qt GUI: Add proper passing of frames with config elements…
davidrohr Oct 29, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 1 addition & 4 deletions GPU/GPUTracking/DataTypes/GPUConfigDump.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,7 @@ using namespace o2::gpu;
namespace
{
GPUSettingsStandalone configStandalone;
std::vector<std::function<void()>> qprint_global;
#define QCONFIG_PRINT
#include "utils/qconfig_internal.h"
#undef QCONFIG_PRINT
#include "utils/qconfig_print.inc"
} // namespace

void GPUConfigDump::dumpConfig(const GPUSettingsRec* rec, const GPUSettingsProcessing* proc, const GPUSettingsQA* qa, const GPUSettingsDisplay* display, const GPUSettingsDeviceBackend* device, const GPURecoStepConfiguration* workflow)
Expand Down
12 changes: 6 additions & 6 deletions GPU/GPUTracking/Definitions/GPUSettingsList.h
Original file line number Diff line number Diff line change
Expand Up @@ -456,8 +456,8 @@ AddOption(propagateTracks, int32_t, 0, "", 0, "Propagate final tracks further (i
AddOption(showCollision, int32_t, -1, "", 0, "Show only individual collision")
AddOption(colorCollisions, int32_t, 0, "", 0, "Distinguish collisions in timeframe by color")
AddOption(colorClusters, int32_t, 1, "", 0, "Color clusters belonging to track objects")
AddOption(pointSize, float, 2.0f, "", 0, "Set point size")
AddOption(lineWidth, float, 1.4f, "", 0, "Set line width")
AddOption(pointSize, float, 2.0f, "", 0, "Set point size", min(0.8f), max(20.f))
AddOption(lineWidth, float, 1.4f, "", 0, "Set line width", min(0.4f), max(20.f))
AddOption(drawTPC, bool, true, "", 0, "Enable drawing TPC data")
AddOption(drawTRD, bool, true, "", 0, "Enabale drawing TRD data")
AddOption(drawTOF, bool, true, "", 0, "Enabale drawing TOF data")
Expand Down Expand Up @@ -502,12 +502,11 @@ AddOption(camYUp, bool, false, "", 0, "Orient the camera such that the y-axis is
AddOption(cameraMode, int32_t, 0, "", 0, "Camera mode")
AddOption(fullScreen, bool, false, "", 0, "Full Screen")
AddOption(maximized, bool, true, "", 0, "Maximized window")
AddOption(rendererCompatSmoothing, bool, false, "", 0, "Use compat smoothing (if available) instead of shader for smooth lines / points")
AddOption(drawQualityMSAA, int32_t, 0, "", 0, "MultiSample Anti Aliasing")
AddOption(drawQualityDownsampleFSAA, int32_t, 0, "", 0, "Downsampling Anti Aliasing")
AddOption(drawQualityMSAA, int32_t, 0, "", 0, "MultiSample Anti Aliasing", min(0), max(8))
AddOption(drawQualityDownsampleFSAA, int32_t, 0, "", 0, "Downsampling Anti Aliasing", min(0), max(4))
AddOption(drawQualityVSync, bool, true, "", 0, "Enable Vertical Sync")
AddOption(fpsLimit, int32_t, 1, "", 0, "FPS limit: 0 = none (maximum rate), 1 = display refresh rate (no limit without VSync), 2 = fpsRate")
AddOption(fpsRate, int32_t, 100, "", 0, "Target frame rate (frames per second) for fpsLimit 2, or if the backend cannot limit to the refresh rate (0 = no limit)")
AddOption(fpsRate, int32_t, 100, "", 0, "Target frame rate (frames per second) for fpsLimit 2, or if the backend cannot limit to the refresh rate", min(1), max(9999))
AddOption(useGLIndirectDraw, bool, true, "", 0, "Use OpenGL indirect draws to reduce number of draw calls")
AddOption(screenshotScaleFactor, int32_t, 1, "", 0, "Resolution scale factor when taking screenshots")
AddOption(fov, int32_t, 45, "", 0, "Display FOV")
Expand All @@ -534,6 +533,7 @@ AddOption(displayFrontend, std::string, "auto", "displayFrontend", 0, "Frontend
AddOptionVec(filterMacros, std::string, "", 0, "ROOT macros used as track filter")
AddOption(guiReplyTimeout, uint32_t, 100, "", 0, "Time in ms the Qt GUI waits at most for the display to process its update")
AddOption(guiMaxUpdatesAhead, uint32_t, 3, "", 0, "Number of updates the Qt GUI may send ahead of the last one the display has processed, before it waits for the display")
AddOption(listFrontendOptionHandling, bool, false, "", 0, "List all assigned keys in frontend, Configurable settings in Qt GUI, and missing configuration options")
AddSubConfig(GPUSettingsDisplayLight, light)
AddSubConfig(GPUSettingsDisplayHeavy, heavy)
AddSubConfig(GPUSettingsDisplayRenderer, renderer)
Expand Down
29 changes: 23 additions & 6 deletions GPU/GPUTracking/display/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,22 @@ if(NOT GPUCA_EVENT_DISPLAY_OPENGL)
set(X11_FOUND 0)
endif()

if(GLUT_FOUND)
include(CheckSymbolExists)
set(CMAKE_REQUIRED_INCLUDES ${GLUT_INCLUDE_DIR})
set(CMAKE_REQUIRED_LIBRARIES ${GLUT_glut_LIBRARY})
check_symbol_exists(glutDisplayFuncUcall "GL/freeglut.h;GL/freeglut_ucall.h" GPUCA_GLUT_HAS_UCALL) # Callbacks with user data, freeglut >= 3.2 (modifier key codes exist since 2.8)
unset(CMAKE_REQUIRED_INCLUDES)
unset(CMAKE_REQUIRED_LIBRARIES)
if(NOT GPUCA_GLUT_HAS_UCALL)
if(ALIGPU_BUILD_TYPE STREQUAL "Standalone")
message(FATAL_ERROR "GLUT event display frontend needs freeglut >= 3.2")
endif()
message(STATUS "GLUT event display frontend disabled: needs freeglut >= 3.2")
set(GLUT_FOUND 0)
endif()
endif()

if(Vulkan_FOUND)
string(FIND "${Vulkan_VERSION}" "." vulkan_dot_index)
if(NOT ${Vulkan_VERSION} VERSION_GREATER_EQUAL "1.4.328" OR vulkan_dot_index EQUAL -1 OR NOT GPUCA_GLSLC)
Expand Down Expand Up @@ -113,9 +129,10 @@ set(SRCS_NO_H helpers/GPUDisplayLoader.cxx
helpers/GPUDisplayQuaternion.cxx
helpers/GPUDisplayInterpolation.cxx
helpers/GPUDisplayROOT.cxx
frontend/GPUDisplayKeys.cxx)
frontend/GPUDisplayHelp.cxx
frontend/GPUDisplayFrontendConfig.cxx)

set(HDRS_INSTALL helpers/GPUDisplayMagneticFieldConstants.h)
set(HDRS_INSTALL helpers/GPUDisplayMagneticFieldConstants.h frontend/GPUDisplayFrontendKeys.h)

if(GPUCA_EVENT_DISPLAY_VULKAN)
set(SRCS ${SRCS} backend/GPUDisplayBackendVulkan.cxx)
Expand Down Expand Up @@ -150,10 +167,10 @@ if(GPUCA_EVENT_DISPLAY_WAYLAND)
list(APPEND WAYLAND_PROTOCOL_SOURCES ${source})
endforeach()

set_property(SOURCE frontend/GPUDisplayFrontendWayland.cxx ${WAYLAND_PROTOCOL_SOURCES} APPEND PROPERTY OBJECT_DEPENDS ${WAYLAND_PROTOCOL_HEADERS})
set_property(SOURCE frontend/GPUDisplayFrontendWayland.cxx APPEND PROPERTY INCLUDE_DIRECTORIES ${CMAKE_CURRENT_BINARY_DIR}/xdg-gen/)
set_property(SOURCE frontend/GPUDisplayFrontendWayland.cxx frontend/GPUDisplayFrontendWaylandEv.cxx ${WAYLAND_PROTOCOL_SOURCES} APPEND PROPERTY OBJECT_DEPENDS ${WAYLAND_PROTOCOL_HEADERS})
set_property(SOURCE frontend/GPUDisplayFrontendWayland.cxx frontend/GPUDisplayFrontendWaylandEv.cxx APPEND PROPERTY INCLUDE_DIRECTORIES ${CMAKE_CURRENT_BINARY_DIR}/xdg-gen/)

set(SRCS_NO_H ${SRCS_NO_H} frontend/GPUDisplayFrontendWayland.cxx ${WAYLAND_PROTOCOL_SOURCES})
set(SRCS_NO_H ${SRCS_NO_H} frontend/GPUDisplayFrontendWayland.cxx frontend/GPUDisplayFrontendWaylandEv.cxx ${WAYLAND_PROTOCOL_SOURCES})
endif()

if(X11_FOUND)
Expand Down Expand Up @@ -234,7 +251,7 @@ if (OPENGL_GLU_FOUND)
endif()

if(GPUCA_CONFIG_GL3W)
target_compile_definitions(${targetName} PRIVATE GPUCA_DISPLAY_GL3W GPUCA_DISPLAY_OPENGL_CORE)
target_compile_definitions(${targetName} PRIVATE GPUCA_DISPLAY_GL3W)
endif()

if(ALIGPU_BUILD_TYPE STREQUAL "O2")
Expand Down
Loading
Loading