Use 10-bit packed preview format and add OCIO LUT regression tests
Renderer / preview: - Switch the preview/display readback format from F16 to packed 10-bit RGBA (PixelFormat::U10) to halve GPU->CPU/IPC bandwidth while keeping 10-bit panel precision. - Add U10 support to VideoParams, FFmpeg/OIIO/OCIO utility mappings, OpenGL (GL_RGB10_A2), Vulkan (VK_FORMAT_A2B10G10R10_UNORM_PACK32), and plugin bit-depth lookups. - Update preview autocacher comment to reflect the new behavior. OCIO LUT tests: - Add four E2E-style ColorLutNode gtests that drive a SolidGenerator -> OCIOLutNode graph through NodeTraverser and compare resulting pixels on the CPU. They cover forward/inverse transforms and verify that switching LUT direction and LUT file updates both the processor and the output pixels. Cleanup: - Remove a leftover SolidGenerator::Value debug fprintf. - Capture render worker stderr in RenderWorkerFootageTest for better diagnostics.
This commit is contained in:
@@ -688,9 +688,11 @@ RenderTicketWatcher *PreviewAutoCacher::RenderFrame(Node *node,
|
||||
rvp.AddCache(frame_cache);
|
||||
} else {
|
||||
// Preview/display frames are rendered at reduced precision to cut the
|
||||
// GPU->CPU readback and IPC transfer bandwidth in half. The internal
|
||||
// render pipeline stays F32/ACEScg; only the final preview copy is F16.
|
||||
rvp.force_format = PixelFormat::F16;
|
||||
// GPU->CPU readback and IPC transfer bandwidth. The internal render
|
||||
// pipeline stays F32/ACEScg; the final preview copy is packed 10-bit
|
||||
// RGBA (4 bytes/pixel) to preserve 10-bit panel precision while halving
|
||||
// bandwidth compared to F16.
|
||||
rvp.force_format = PixelFormat::U10;
|
||||
rvp.force_channel_count = VideoParams::kRGBAChannelCount;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user