Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
1804158
refactor(vulkan): restructure the Vulkan viewport into VulkanWindow h…
cedrik-fuoco-adsk Sep 29, 2026
3f9bf7e
feat(vulkan): share one process-lifetime VkInstance between the 10-bi…
cedrik-fuoco-adsk Sep 10, 2026
d7fa72a
fix(vulkan): present the main viewport when a separate output is active
cedrik-fuoco-adsk Sep 10, 2026
010349d
feat(vulkan): add VulkanDesktopVideoDevice, the 10-bit second-display…
cedrik-fuoco-adsk Sep 10, 2026
2bb850f
fix(vulkan): advertise RGB10 on a Vulkan presentation device
cedrik-fuoco-adsk Sep 10, 2026
54fc89a
feat: rebuild the desktop presentation devices when the main-view bac…
cedrik-fuoco-adsk Sep 10, 2026
6f0c552
feat: live-swap the main view between OpenGL and Vulkan on an 8/10-bi…
cedrik-fuoco-adsk Sep 10, 2026
cbfa44c
fix(vulkan): do not deliver destroyed() into a half-destructed Vulkan…
cedrik-fuoco-adsk Sep 10, 2026
08248fc
fix(vulkan): stop stealing the GL context from the presentation output
cedrik-fuoco-adsk Sep 10, 2026
4ef7e1c
fix(vulkan): keep the presentation output inert for input
cedrik-fuoco-adsk Sep 11, 2026
75d35b5
chore(vulkan): report frame timing and interactive latency under -deb…
cedrik-fuoco-adsk Sep 11, 2026
1322bcf
perf(vulkan): present the control viewport one frame deep
cedrik-fuoco-adsk Sep 11, 2026
ce66044
perf(vulkan): match the presentation output's FBO to its swapchain fo…
cedrik-fuoco-adsk Sep 11, 2026
5173d5f
perf(vulkan): skip an output present while its GPU work is in flight
cedrik-fuoco-adsk Sep 11, 2026
8c922f5
fix(color): keep the display colour pipeline across a main-view backe…
cedrik-fuoco-adsk Sep 11, 2026
38dbb9b
fix(vulkan): require matching GL/Vulkan device UUIDs before GPU interop
cedrik-fuoco-adsk Sep 11, 2026
c46e9bc
fix(gl): distinguish a missing GL context from a failed GL call
cedrik-fuoco-adsk Sep 19, 2026
ae03448
feat(gl): add GLContextScope, guaranteeing a context for GL teardown
cedrik-fuoco-adsk Sep 19, 2026
773e78c
fix(gl): destroy renderer FBOs with a GL context current
cedrik-fuoco-adsk Sep 19, 2026
b39d73e
fix(gl): release pooled PBOs while a context still exists
cedrik-fuoco-adsk Sep 19, 2026
55133aa
fix(rv): restore cout/cerr when the console window is destroyed
cedrik-fuoco-adsk Sep 19, 2026
d29e50f
fix(rv): stop auxiliary windows from blocking application exit
cedrik-fuoco-adsk Sep 19, 2026
8d95502
fix(audio): do not block shutdown on a thread with no event loop
cedrik-fuoco-adsk Sep 19, 2026
e690e15
fix(container): return null from an empty property's data()
cedrik-fuoco-adsk Sep 21, 2026
8e6f6c1
fix(rv): clear the global settings pointer after deleting it
cedrik-fuoco-adsk Sep 21, 2026
ebb6305
fix(audio): release the audio output objects when creation fails
cedrik-fuoco-adsk Sep 21, 2026
c24ea6a
fix(rv): make the display colour-profile query safe on Windows
cedrik-fuoco-adsk Sep 21, 2026
f48aa6a
fix(rv): present the second display through a shared-context QOpenGLW…
cedrik-fuoco-adsk Sep 21, 2026
90b8344
fix(gl): verify presentation FBO clones before blitting from them
cedrik-fuoco-adsk Sep 21, 2026
44c28ce
fix(gl): keep a context current through GL teardown
cedrik-fuoco-adsk Sep 21, 2026
5f7b194
fix(rv): rebuild presentation devices onto the live main-view backend
cedrik-fuoco-adsk Sep 21, 2026
e61b280
fix(rv): persist the display depth when switching back to 8-bit
cedrik-fuoco-adsk Sep 21, 2026
2ff2829
fix(vulkan): correct presentation sizing on a second display
cedrik-fuoco-adsk Sep 21, 2026
6c9c680
fix(vulkan): port the Vulkan presentation interop negotiation
cedrik-fuoco-adsk Sep 22, 2026
8ffbde9
Reduce comments and make sure curly braces are used for single line
cedrik-fuoco-adsk Sep 25, 2026
72448b4
fix: harden GL, audio and Vulkan shutdown and failure paths
cedrik-fuoco-adsk Sep 28, 2026
d0cdaed
refactor: address remaining C++ review findings
cedrik-fuoco-adsk Sep 28, 2026
d2e50da
fix(windows): pass 0 for UrlCreateFromPath's reserved flags argument
cedrik-fuoco-adsk Sep 28, 2026
d10e525
refactor(vulkan): carry #1319 review feedback into VulkanWindow
cedrik-fuoco-adsk Sep 29, 2026
f612001
refactor(vulkan): carry the forcedTilingRequested optional into Vulka…
cedrik-fuoco-adsk Sep 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
19 changes: 2 additions & 17 deletions src/bin/apps/rv/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -376,25 +376,10 @@ int utf8Main(int argc, char* argv[])
// without an explicit, ordering-sensitive setShareContext() call. Must be
// set before the QApplication is constructed.
//
// The Vulkan presentation path depends on this as well: there is no GLView
// to chain from, so the offscreen presentation context joins this global
// group instead (see QTVulkanVideoDevice::ensureGLContext). Otherwise FTGL
// font-atlas glyph uploads land in a context where the atlas texture has no
// storage.
// The Vulkan path also relies on it: QTVulkanVideoDevice::ensureGLContext()
// has no GLView to share with, so it joins this global group.
QApplication::setAttribute(Qt::AA_ShareOpenGLContexts);

// Render Qt Quick through OpenGL, matching the graphics API RV's windows
// composite with.
//
// Qt Quick's RHI backend defaults to Direct3D 11 on Windows. RV's top-level
// windows composite with OpenGL (GLView realizes the window up front, before
// any render-to-texture widget joins the tree), and a QQuickWidget cannot
// obtain a QRhi from a window using a different API. Without this, anything
// Quick-based inside an RV window -- most visibly a QWebEngineView, whose
// page is rendered by a QQuickWidget -- silently draws nothing and logs "The
// top-level window is not using the expected graphics API for composition"
// followed by "Attempted to render scene with no rhi".
//
#ifdef PLATFORM_WINDOWS
// Put Qt Quick on the same graphics API RV's windows composite with.
//
Expand Down
1 change: 0 additions & 1 deletion src/lib/app/RvApp/Options.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,6 @@ namespace Rv
else if (name == "threads")
stl_ext::thread_group::debug_all(true);
else if (name == "gpu")
// Enables GLView format baseline, ImageRenderer GL reporting, and Vulkan presentation/interop diagnostics.
ImageRenderer::debugGpu(true);
else if (name == "audio")
{
Expand Down
15 changes: 13 additions & 2 deletions src/lib/app/RvCommon/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,18 @@ IF(RV_TARGET_LINUX
MESSAGE(FATAL_ERROR "Vulkan::Vulkan target is missing; cmake/dependencies/vulkan.cmake should provide it on Linux and Windows")
ENDIF()
MESSAGE(STATUS "Vulkan: using managed Vulkan ${RV_DEPS_VULKAN_VERSION}")
LIST(APPEND _sources VulkanView.cpp QTVulkanVideoDevice.cpp RvCommon/VulkanView.h RvCommon/QTVulkanVideoDevice.h)
LIST(
APPEND
_sources
VulkanView.cpp
VulkanWindow.cpp
QTVulkanVideoDevice.cpp
VulkanDesktopVideoDevice.cpp
RvCommon/VulkanView.h
RvCommon/VulkanWindow.h
RvCommon/QTVulkanVideoDevice.h
RvCommon/VulkanDesktopVideoDevice.h
)
ENDIF()

FILE(GLOB _ui_sources ui/*.ui)
Expand Down Expand Up @@ -164,7 +175,7 @@ IF(NOT
(RV_TARGET_LINUX
OR RV_TARGET_WINDOWS)
)
LIST(REMOVE_ITEM _files_to_moc "RvCommon/VulkanView.h" "RvCommon/QTVulkanVideoDevice.h")
LIST(REMOVE_ITEM _files_to_moc "RvCommon/VulkanView.h" "RvCommon/VulkanWindow.h" "RvCommon/QTVulkanVideoDevice.h" "RvCommon/VulkanDesktopVideoDevice.h")
ENDIF()

FOREACH(
Expand Down
Loading
Loading