Commit Graph
84 Commits
Author SHA1 Message Date
Mike-Solar e5eeaddf2f format: reformatting files 2026-07-13 15:30:43 +08:00
Mike-Solar d66779d281 Apply export color transform in render worker
The export color transform was passed to RenderTask as a ColorProcessor,
but the worker IPC render_frame message never carried it. The worker
always set the ticket's coloroutput to null, so frames were returned in
the project's reference space and encoded without the chosen output
transform (e.g. Rec.709 / sRGB), causing the exported video to look
wrongly tinted.

Serialize the ColorTransform through the render_frame control message
and reconstruct the ColorProcessor on the worker side before rendering.
Also expose ColorTransform as a Qt metatype so it can be stored in a
ticket QVariant.
2026-07-13 10:19:30 +08:00
Mike-Solar f6211f97a5 Fix render worker reuse and stabilize out-of-process video rendering 2026-07-13 10:19:30 +08:00
Mike-Solar 8b8aa945f0 Sync RenderManager::backend_ after DynamicRenderer fallback
DynamicRenderer::Load() can internally fall back from Vulkan to
OpenGL when the Vulkan library is missing or is_available() fails.
Previously RenderManager::backend_ stayed at kVulkan, so callers
asking RenderManager::backend() got the wrong answer. After a
successful dynamic load, sync backend_ from
DynamicRenderer::backend_name() and log any fallback.

ctest still passes 4/4 in build-default-on.
2026-07-13 10:19:29 +08:00
Mike-Solar 225f8505c2 feat(render): dynamic OpenGL/Vulkan backend split and backend-neutral viewer
- Extract libolive-rendercore static library to minimize backend link boundary.
- Add DynamicRenderer adapter with C ABI (oakgl/oakvulkan shared libs).
- Make OAK_ENABLE_DYNAMIC_RENDER_BACKEND default ON with OpenGL fallback.
- Implement VulkanRenderer prototype (textures, shaders, UBO blit, readback).
- Add backend-neutral viewer readback path (offscreen -> QImage -> QPainter).
- Refactor PluginRenderer to be renderer-agnostic; OFX plugins fall back to CPU
  path on non-OpenGL backends while preserving OpenGL render path.
- Add Renderer::AttachOutputTexture/DetachOutputTexture and C ABI forwards.
- Update docs/zh/render-backend-dynamic-plan.md for Phase 3/4/5.
2026-07-13 10:19:29 +08:00
Mike-Solar d5d70d0151 Add dynamic render backend adapter scaffold 2026-07-13 10:19:29 +08:00
Mike-Solar 341283b1cd Add graphics backend selection 2026-07-13 10:19:29 +08:00
Mike-Solar 0daad22129 Complete render process isolation phases 4 and 5 2026-06-06 23:31:52 +08:00
Mike-Solar 042f008a02 Add decoded input slots for render workers 2026-06-04 21:32:43 +08:00
Mike-Solar 98c884c381 Wire render worker pool into render manager 2026-06-04 16:23:36 +08:00
Mike-Solar bfb1b2fce4 update copyright back 2026-01-16 21:22:05 +08:00
Mike-Solar e851653fa3 尝试修复粉紫屏未果 2026-01-16 21:11:24 +08:00
Mike-Solar b8669f6a11 Change project name; 2026-01-05 16:22:26 +08:00
Mike Solar 6fdfd03ffd update: update copyright 2025-08-05 17:12:49 +08:00
Mike Solar 74f73ab3be change: change code style to Linux style except indent. 2025-08-03 03:09:40 +08:00
itsmattkc 11e4e051c3 move undo files around for better organization 2023-02-20 16:09:22 -08:00
itsmattkc 5da72e4d35 Squashed commit of the following:
commit dec7ca6b96c58decf2c5e5194b665fa2342951b2
Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com>
Date:   Wed Feb 8 12:32:12 2023 -0800

    moved previewautocacher to rendermanager

commit d289d74d82c3911f3fdaa707abe9994c7363594d
Merge: a8a049a28 70d34c674
Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com>
Date:   Wed Feb 8 12:15:31 2023 -0800

    Merge branch 'master' into move-cacher-to-renderman

commit a8a049a2857c438cbab0f1ab21e3299fdfbf1fa1
Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com>
Date:   Wed Feb 8 11:18:25 2023 -0800

    initial work
2023-02-08 12:40:19 -08:00
itsmattkc dd9c52ab59 start moving core frameworks to external libraries 2023-01-19 09:51:47 -08:00
itsmattkc 76e0e2bd13 Merge branch 'master' into multicam 2022-09-29 21:18:30 -07:00
itsmattkc 6e183fe4be multicam: refactor to heavily optimize multicam monitor retrieval 2022-09-29 17:50:09 -07:00
itsmattkc fe159bdd73 rendermanager: use multithreading for waveforms 2022-09-27 22:06:05 -07:00
itsmattkc 752616647c rendermanager: separate waveform into another thread 2022-09-08 20:29:36 -07:00
itsmattkc 877c967ce2 rendermanager: move ticket to render thread 2022-09-01 11:05:46 -07:00
itsmattkc b24cf3e658 rendermanager: make declaring render mode mandatory 2022-08-18 08:21:16 -07:00
itsmattkc 54d0a94a20 Merge branch 'master' into cache-update 2022-08-18 08:12:46 -07:00
itsmattkc 9636ec202d render: allow forcing channel count 2022-07-28 08:57:18 -07:00
itsmattkc 25e94112f8 viewer: implement lookahead to ensure footage is ready in advance 2022-07-26 14:49:19 -07:00
itsmattkc 7e1792cfea Merge branch 'master' into cache-update 2022-07-01 22:32:49 -05:00
itsmattkc 63f74691a5 render: cleaned up threading 2022-06-25 09:59:43 -07:00
itsmattkc ec215f7de6 renderer: attach renderer to single thread 2022-06-24 09:59:28 -07:00
itsmattkc 3f8001b146 render: use single base thread for rendering 2022-06-21 14:08:29 -07:00
itsmattkc b9119e21f4 rendermanager: remove unnecessary debug line 2022-06-10 12:14:15 -07:00
itsmattkc 09a3ce39b9 rendermanager: reimplement clearing old decoders 2022-06-10 12:12:03 -07:00
itsmattkc 998b9ba482 Merge branch 'master' into hashremoval 2022-06-01 10:06:33 -07:00
itsmattkc eb9b1850ae minor code cleanup 2022-05-31 20:14:07 -07:00
itsmattkc 2f7dc3c98b implemented separate waveform cache 2022-05-29 17:52:35 -07:00
itsmattkc 60f7f06de4 implemented base for thumbnail display 2022-05-25 11:18:08 -07:00
itsmattkc e0bb31b199 remove shifts, operations, and make caches node-agnostic 2022-05-16 19:53:38 -07:00
itsmattkc c3f0c75558 code: minor improvements to readability/flow 2022-05-16 17:26:40 -07:00
itsmattkc 5539440e7f move cache saving to renderprocessor
In my testing, this doesn't seem to help performance whatsoever, but at least the code is cleaner.
2022-05-16 17:02:18 -07:00
itsmattkc 9ba3f24f3b cache: fixed double write corruption 2022-05-16 16:10:54 -07:00
itsmattkc bfd6a407a5 Merge branch 'master' into hashremoval 2022-05-16 09:12:49 -07:00
itsmattkc ea13f249b7 render: fixed threading regression 2022-05-15 21:36:40 -07:00
itsmattkc 09c57422f9 ffmpeg: significantly optimized decoder 2022-05-15 19:33:01 -07:00
itsmattkc 4bc82ca6df removed hashes from previewautocacher 2022-05-09 19:40:58 -07:00
itsmattkc 0538c01f45 remove hashtraverser 2022-05-09 18:22:32 -07:00
itsmattkc 4acb89ab1e minor formatting
Yes, we will get a proper clang-format at some point
2022-05-05 09:35:35 -07:00
Bennett Anderson 31dc557909 Update copyright year 2022-05-04 09:47:17 -07:00
Bennett f9db19e91c Always prefer constexpr when possible 2022-05-04 09:39:43 -07:00
Bennett 11ea7fcb71 Initial threadpool rewrite/cleanup 2022-05-04 09:39:43 -07:00