Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
ff66c2b
GPU Display: Better implementation of FPS limiting
davidrohr Oct 12, 2026
8fbfc5b
GPU Display: Better handling of key presses from the console
davidrohr Oct 12, 2026
5e5017b
GPU Wayland Display: Fix incorrect copy&paste when setting up the dis…
davidrohr Oct 12, 2026
0d1ba80
GPU Wayland Display: Fix Typo
davidrohr Oct 12, 2026
3aca8c7
GPU Wayland Display: fix should not attach wayland SHM buffer to the …
davidrohr Oct 12, 2026
5bf4ef9
GPU Wayland Display: Use server side decoration, now that they are mo…
davidrohr Oct 12, 2026
213cb3f
GPU Wayland Display: Refactoring for correct windows / pixel sizes wi…
davidrohr Oct 12, 2026
ffa6726
GPU Wayland Display: Update keymap with correct defines for +/-
davidrohr Oct 12, 2026
49c55ed
GPU Display: Release keys / mouse buttons when focus lost
davidrohr Oct 12, 2026
561d6d7
GPU Wayland Display: Handle Key Repeats
davidrohr Oct 12, 2026
750d7e2
GPU Wayland Display: Add error handling / reporting
davidrohr Oct 12, 2026
eb80cc0
GPU Display: Fix missing return value
davidrohr Oct 12, 2026
347cbaa
GPU Display CMake: Simplify generation of wayland protocols
davidrohr Oct 12, 2026
202fe09
GPU Display: Support middle mouse button
davidrohr Oct 12, 2026
37f0223
GPU Display: Raster font at correct pixel size taking into accound fr…
davidrohr Oct 12, 2026
fa719da
GPU Display: Add minimum window size
davidrohr Oct 12, 2026
ff5c3b9
GPU Wayland Display: Support pixel-precise rendering
davidrohr Oct 13, 2026
87763e6
GPU Display: Render also text in X11 and GLFW at correct size taking …
davidrohr Oct 13, 2026
4b3fdc5
GPU Display: Fix a data race and clean up lambda captures
davidrohr Oct 13, 2026
0d775b1
GPU Display: Don't draw TOF and ITS hits multiple times
davidrohr Oct 13, 2026
7e2daa4
GPU Wayland Display: set mouse cursor to default instead of being und…
davidrohr Oct 13, 2026
c4190e2
GPU Vulkan Display: Improve device initialization
davidrohr Oct 13, 2026
c5b4eb1
GPU Vulkan Display: Improve requesting device features
davidrohr Oct 13, 2026
9665b53
GPU Display: Fix memcpy must not be called with nullptr / size=0 inpu…
davidrohr Oct 13, 2026
f20b672
GPU Display: Fix wait when stopping display, rename some misleading f…
davidrohr Oct 13, 2026
9af7793
GPU Vulkan Display: Simplify: number of command buffers can equal num…
davidrohr Oct 13, 2026
08422aa
GPU Vulkan Display: Improve semaphores and fences for rendering, allo…
davidrohr Oct 13, 2026
1761568
GPU Vulkan Display: Fix error handling when acquiring images
davidrohr Oct 13, 2026
34045c1
GPU Vulkan Backend: Merge all commands to a single commit, remove emp…
davidrohr Oct 14, 2026
9d074c1
GPU Vulkan Backend: Remove unnecessary semaphores and rely on barriers
davidrohr Oct 14, 2026
fb17660
GPU Vulkan Backend: fix taking screenshots if runtime uses non-standa…
davidrohr Oct 14, 2026
be638a5
GPU Vulkan Display: Switch to Vulkan 1.4
davidrohr Oct 14, 2026
df422c3
GPU Vulkan Backend: We were using multi-draw-indirect all the time wi…
davidrohr Oct 14, 2026
744df57
GPU OpenGL Display: Switch to using SPIR-V shaders
davidrohr Oct 14, 2026
012ebba
GPU Display: Stop using DebugGUI, just pull in the stuff directly, an…
davidrohr Oct 14, 2026
030b150
GPU Display CMake: No need to require OpenGL, we can build with Vulka…
davidrohr Oct 14, 2026
3702d32
GPU Vulkan Display: Switch to timeline semaphore (Vulkan 1.2)
davidrohr Oct 14, 2026
bad1472
GPU Vulkan Display: provide fallback in case no device-local host-vis…
davidrohr Oct 14, 2026
9df7324
GPU Display Qt GUI: Avoid Qt CMake AUTOMOC
davidrohr Oct 14, 2026
bc75a9a
GPU Vulkan Backend: Switch to Dynamic Rendering / Synchronization2
davidrohr Oct 14, 2026
cebbdcd
GPU Vulkan Display: minor optimization: reuse resources from old swap…
davidrohr Oct 14, 2026
13bff4a
GPU Vulkan Backend: Write UBOs and map/unmap/recreate buffers only on…
davidrohr Oct 14, 2026
27f4b26
GPU Vulkan Display: Simplification: Use Push Descriptors instead of t…
davidrohr Oct 14, 2026
31a4ca1
GPU Vulkan Display: Make viewport / scissor dynamic, images are by de…
davidrohr Oct 14, 2026
75e3514
GPU Vulkan Display: Add optional support for smooth lines
davidrohr Oct 14, 2026
9718027
GPU Display: Add shaders for smooth lines and points for OpenGL and V…
davidrohr Oct 14, 2026
79dd2f6
GPU Vulkan Display: Use in-memory pipeline cache
davidrohr Oct 14, 2026
8488df2
GPU Vulkan Display: Use Vulkan14Features::maintenance5 to load shader…
davidrohr Oct 14, 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
2 changes: 1 addition & 1 deletion GPU/GPUTracking/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ set(CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE_UPPER} "${CMAKE_CXX_FLAGS_${CMAKE_BUILD_T

include(cmake/helpers.cmake)

if((ALIGPU_BUILD_TYPE STREQUAL "Standalone" AND GPUCA_BUILD_EVENT_DISPLAY) OR (ALIGPU_BUILD_TYPE STREQUAL "O2" AND NOT CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND TARGET AliceO2::DebugGUI AND OPENGL_FOUND AND GLFW_FOUND AND (NOT DEFINED GPUCA_BUILD_EVENT_DISPLAY OR NOT GPUCA_BUILD_EVENT_DISPLAY)))
if((ALIGPU_BUILD_TYPE STREQUAL "Standalone" AND GPUCA_BUILD_EVENT_DISPLAY) OR (ALIGPU_BUILD_TYPE STREQUAL "O2" AND NOT CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND TARGET AliceO2::DebugGUI AND (NOT DEFINED GPUCA_BUILD_EVENT_DISPLAY OR GPUCA_BUILD_EVENT_DISPLAY)))
set(GPUCA_EVENT_DISPLAY ON)
endif()
if(ROOT_FOUND)
Expand Down
9 changes: 5 additions & 4 deletions GPU/GPUTracking/Definitions/GPUSettingsList.h
Original file line number Diff line number Diff line change
Expand Up @@ -499,12 +499,13 @@ AddOption(camLookOrigin, bool, false, "", 0, "Make the camera look at the origin
AddOption(camYUp, bool, false, "", 0, "Orient the camera such that the y-axis is always upwards")
AddOption(cameraMode, int32_t, 0, "", 0, "Camera mode")
AddOption(fullScreen, bool, false, "", 0, "Full Screen")
AddOption(maximized, bool, false, "", 0, "Full Screen")
AddOption(openGLCore, bool, false, "", 0, "Use renderer path for OpenGL core profile")
AddOption(maximized, bool, true, "", 0, "Maximized window")
AddOption(rendererCompatSmoothing, bool, false, "", 0, "Use compat smoothing (if available) of instad 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(drawQualityVSync, bool, true, "", 0, "Enable Vertical Sync")
AddOption(maxFPSRate, int32_t, 0, "", 0, "Do not limit FPS but run at maximum possible rate")
AddOption(maxFPSRate, bool, false, "", 0, "Do not limit FPS but run at maximum possible rate")
AddOption(fpsRate, int32_t, 100, "", 0, "Target frame rate (frames per second) if not running at maximum rate (0 = no limit)")
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 @@ -513,7 +514,7 @@ EndConfig()

// Vulkan Display Settings
BeginSubConfig(GPUSettingsDisplayVulkan, vulkan, configStandalone.display, "GLV", 0, "Vulkan display settings", display_vulkan)
AddOption(nFramesInFlight, int32_t, 0, "", 0, "Max number of render frames in flight (0 = as many as swapchain images)")
AddOption(nFramesInFlight, uint32_t, 3, "", 0, "Max number of render frames in flight")
AddOption(uniformBuffersInDeviceMemory, bool, 1, "", 0, "Have uniform buffers in host-accessible device memory")
AddOption(forceDevice, int32_t, -1, "", 0, "Force Vulkan device number to use")
AddHelp("help", 'h')
Expand Down
14 changes: 8 additions & 6 deletions GPU/GPUTracking/Global/GPUChainTracking.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,12 @@ GPUChainTracking::GPUChainTracking(GPUReconstruction* rec, uint32_t maxTPCHits,
mFlatObjectsDevice.mChainTracking = this;
}

GPUChainTracking::~GPUChainTracking() = default;
GPUChainTracking::~GPUChainTracking()
{
if (mDisplayRunning) {
GetProcessingSettings().eventDisplay->StopDisplay();
}
}

void GPUChainTracking::RegisterPermanentMemoryAndProcessors()
{
Expand Down Expand Up @@ -861,16 +866,13 @@ int32_t GPUChainTracking::RunChainFinalize()
} else if (iKey == 'n') {
break;
} else if (iKey) {
while (GetProcessingSettings().eventDisplay->getSendKey() != 0) {
usleep(1000);
}
GetProcessingSettings().eventDisplay->setSendKey(iKey);
GetProcessingSettings().eventDisplay->sendKey(iKey);
}
}
} while (GetProcessingSettings().eventDisplay->getDisplayControl() == 0);
if (GetProcessingSettings().eventDisplay->getDisplayControl() == 2) {
mDisplayRunning = false;
GetProcessingSettings().eventDisplay->DisplayExit();
GetProcessingSettings().eventDisplay->StopDisplay();
const_cast<GPUSettingsProcessing&>(GetProcessingSettings()).eventDisplay = nullptr; // TODO: fixme - eventDisplay should probably not be put into ProcessingSettings in the first place
return GPUReconstruction::retValValue::retDoExit;
}
Expand Down
6 changes: 3 additions & 3 deletions GPU/GPUTracking/Interface/GPUO2InterfaceDisplay.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ GPUO2InterfaceDisplay::GPUO2InterfaceDisplay(const GPUO2InterfaceConfiguration*

GPUO2InterfaceDisplay::~GPUO2InterfaceDisplay() = default;

int32_t GPUO2InterfaceDisplay::startDisplay()
int32_t GPUO2InterfaceDisplay::StartUnmanagedDisplay()
{
int32_t retVal = mDisplay->StartDisplay();
if (retVal) {
Expand Down Expand Up @@ -71,9 +71,9 @@ int32_t GPUO2InterfaceDisplay::show(const GPUTrackingInOutPointers* ptrs)
return 0;
}

int32_t GPUO2InterfaceDisplay::endDisplay()
int32_t GPUO2InterfaceDisplay::StopUnmanagedDisplay()
{
mFrontend->DisplayExit();
mFrontend->StopDisplay();
return 0;
}

Expand Down
4 changes: 2 additions & 2 deletions GPU/GPUTracking/Interface/GPUO2InterfaceDisplay.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,9 @@ class GPUO2InterfaceDisplay

void UpdateCalib(const GPUCalibObjectsConst* calib);
void UpdateGRP(const GPUSettingsGRP* grp);
int32_t startDisplay();
int32_t StartUnmanagedDisplay();
int32_t show(const GPUTrackingInOutPointers* ptrs);
int32_t endDisplay();
int32_t StopUnmanagedDisplay();

private:
std::unique_ptr<GPUDisplayInterface> mDisplay;
Expand Down
2 changes: 1 addition & 1 deletion GPU/GPUTracking/Standalone/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ if(GPUCA_BUILD_EVENT_DISPLAY)
find_package(Fontconfig REQUIRED)
endif()
if(GPUCA_BUILD_EVENT_DISPLAY_VULKAN)
find_package(Vulkan REQUIRED)
find_package(Vulkan 1.4.328 REQUIRED)
if (Vulkan_GLSLC_EXECUTABLE STREQUAL "Vulkan_GLSLC_EXECUTABLE-NOTFOUND")
message(FATAL_ERROR ${Vulkan_GLSLC_EXECUTABLE})
endif()
Expand Down
36 changes: 0 additions & 36 deletions GPU/GPUTracking/cmake/vulkan_display.cmake

This file was deleted.

Loading
Loading