CRTC stands for "Cathode Ray Tube Controller" but wikipedia prefers "Video Display Controller".
They are still often called CRTCs - technical terms can be slow to change sometimes.
There is always a more complicated explanation, but an adequate summary is that each CRTC corresponds to a video buffer on a video card that is destined to be output. I chose this specific wording to highlight some nuances:
- A software screen, such as the one used for a headless VNC server, will use RAM for video memory and not have anything to do with a video card, or get any hardware acceleration from one. No CRTCc needed because it's not on the video card.
- If you're using a video card to render a scene and then getting the final result's buffer back into memory/disk, there is no CRTC involved because it's not bound for output, despite using the video card's memory.
- A video card may support outputting one CRTC to multiple displays. They must be the same resolution and may or may not have to be the same frequency. Simply using display settings to "Show the same screen" on two or more displays is likely to not take advantage of this, and be mirroring the final buffer on two CRTCs. Making sure that a single CRTC is being cloned onto two displays is, so far, beyond my technical ability.
So to answer your other questions:
How do I find out how many [CRTCs] are available?
$ xrandr --listproviders
Providers: number : 1
Provider 0: id: 0x4d cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 4 outputs: 10 associated providers: 0 name:Intel
Notice that like you I have more outputs than CRTCs:
outputs: 10, there are good reasons that outputs are numerous, mostly coming down to video ports having a lot of convenience baked in:
- A DisplayPort connector may have 2 or 3 outputs associated with it if daisy-chaining is supported.
- A DVI-I connector may be split into its digital and analog components to run one monitor of each type. The old lazy solution was to clone these in hardware, but it's now common for video devices to have a DVI and a VGA output associated with such a port.
- A laptop dock can easily double the number of outputs, and then some, because they want to offer the convenience of abundant extra connectors on the dock.
- A video device may have unimplemented connectors because it's been rushed to production or because it's a re-implementation of another device, but has some connectors omitted.
Is it possible to add more [CRTCs] in software or perhaps through a PCI card?
Since CRTCs are provided by a GPU, the only way to have more is to add a video device that will work simultaneously with the one you already have. I know this is possible, and that there are many limitations, but nothing more. You'll have to research multiple GPU setups to see if this is even feasible for you.
P.S. I am learning a lot of this just today and stumbled upon your question during my own research.