YCbCr444 Color Space with PRIME?

Hi.
I am using Kubuntu 20.04, nvidia driver 440.82.
I have some subtle color banding issues on my generic 1080 led monitor (IPS panel). This is not very noticeable problem really, but still annoying to my eyes. I can only notice it in some unfocused backgrounds of my RAW photos.

But in summary, that color banding is more visible in RGB color space mode selected from nvidia settings (DVI-d, HDMI). But this is corrected if I choose YCbCr444 color space mode (HDMI).
The problem is that I want to use PRIME On-Demand mode, but nvidia settings doesn’t show Monitor settings with PRIME and I can’t select Color Spaces modes when PRIME is used.
Is this because when using PRIME, color space modes depends on intel iGPU drivers?

How could I choose YCbCr444 color space for my HDMI monitor when I use PRIME?

You might be able to set this inside the output class in
/usr/share/X11/xorg.conf.d/10-nvidia.conf

Also, please check if it is an issue with ColorRange
https://download.nvidia.com/XFree86/Linux-x86_64/384.98/README/xconfigoptions.html

When I don’t use PRIME and I have monitor settings available from nvidia-settings, I have tried Limited color range for RGB and it didn’t fix any banding problem either.

I’m not sure exactly what options to add. I have added the line:
Option “ColorSpace” “YCbCr444”
restarted the system, but apparently it still doesn’t use YCbCr444 mode, still banding problem. I also don’t get output when I want to check current Color Space with:
nvidia-settings --query=CurrentColorSpace

My monitor is connected to HDMI motherboard output. I can’t use PRIME if the monitor is connected to nvidia outputs.

This is my xorg.conf which I use to be able to use PRIME on demand and OpenGL render offload (Which work correctly, no problem with PRIME):

Section "ServerLayout"
   Identifier "layout"
   Screen 0 "iGPU"
   Option "AllowNvidiaGpuScreens"
EndSection

Section "Device"
   Identifier "iGPU"
   Driver "modesetting"
   BusID  "PCI:0:2:0"
EndSection

Section "Device"
   Identifier "nvidia"
   Driver "nvidia"
   BusID  "PCI:1:0:0"
EndSection    

Section "Screen"
   Identifier "iGPU"
   Device "iGPU"
EndSection
1 Like

Ok, you’re using PRIME offload, I thought you were using PRIME output with the hdmi connected to the nvidia. If the on-board hdmi is used, the nvidia gpu can’t do anything, it’s under full intel control.

Addendum: looks like the i915 driver doesn’t support this, needs a patched kernel:
https://patchwork.freedesktop.org/series/36068/

That is another one of my problems:

I can’t use PRIME if monitor/display outputs are connected to nvidia card (GTX 960).
I use CUDA/OpenCL computation with applications like Blender. The problem I have is that if I just use nvidia, while do heavy computing work with CUDA/OpenCL, the whole system slows down and I cannot work on the PC while computing is working. I also need OpenGL render offload for Blender, especially for Eevee. I really solved all this using PRIME (on demand) and with render offload, everything works correctly, but only when my monitors are connected to motherboard (iGPU). The main problem I have now is the one I comment on in this thread, not being able to use YCbCr444 for my HDMI monitor.

What would be my best option to be able to use monitors connected to nvida card, and at the same time be able to use iGPU with PRIME? In order for this to be a solution for my previously stated objective (To be able to use the system while working with nvidia GPU computing)

I have selected in BIOS of the motherboard:
-Main Display: iGPU (iGPU, PCIe and Auto are the options)
I seem to remember that I had tried choosing PCIe with my monitor connected to the nvidia card, but without being able to use PRIME

-Multi-monitor: Enabled

OK thanks. I’m going to investigate more about it.