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:
@@ -209,6 +209,8 @@ int VideoParams::GetBytesPerChannel(PixelFormat format)
|
||||
break;
|
||||
case PixelFormat::U8:
|
||||
return 1;
|
||||
case PixelFormat::U10:
|
||||
return 0; // packed format, use GetBytesPerPixel instead
|
||||
case PixelFormat::U16:
|
||||
case PixelFormat::F16:
|
||||
return 2;
|
||||
@@ -221,6 +223,10 @@ int VideoParams::GetBytesPerChannel(PixelFormat format)
|
||||
|
||||
int VideoParams::GetBytesPerPixel(PixelFormat format, int channels)
|
||||
{
|
||||
if (format == PixelFormat::U10) {
|
||||
// Packed 10-bit RGBA10A2: 4 bytes per RGBA pixel regardless of channel count
|
||||
return channels == VideoParams::kRGBAChannelCount ? 4 : 0;
|
||||
}
|
||||
return GetBytesPerChannel(format) * channels;
|
||||
}
|
||||
|
||||
@@ -238,6 +244,8 @@ QString VideoParams::GetFormatName(PixelFormat format)
|
||||
switch (format) {
|
||||
case PixelFormat::U8:
|
||||
return QCoreApplication::translate("VideoParams", "8-bit");
|
||||
case PixelFormat::U10:
|
||||
return QCoreApplication::translate("VideoParams", "10-bit Packed");
|
||||
case PixelFormat::U16:
|
||||
return QCoreApplication::translate("VideoParams", "16-bit Integer");
|
||||
case PixelFormat::F16:
|
||||
|
||||
Reference in New Issue
Block a user