Yes, the buffer only sets the audio block size.
With higher values, the CPU has more time to complete the processing of one block, but this increases the latency.
For instance when you use a buffer of 2048 samples (42 ms at 48 kHz, no ASIO Guard involved for now), the CPU, if it’s fast enough, will generally finish to process the block much earlier than the allowed time frame. Let’s say the processing is completed under 10 ms, so in that case for the remaining 32 ms it will do nothing, and wait for the end of the timer before sending the processed block to playback. When the current block starts playing, the next one begins processing in the background, etc.
The performance meter shows exactly how much of this headroom is being used. So with lower buffer, the meter peaks much higher.
Now the tricky part is to understand how ASIO Guard exactly works. It doesn’t simply replace the main buffer. Even though ASIO Guard is being used, Cubase still have some processing to do on the real-time path, as the audio has to go through the main buffer anyways once it leaves ASIO Guard.
ASIO Guard comes first in the chain, and the specificity of this, is that it is able to hold multiple audio blocks before sending them to playback.
The size of audio blocks is always set by the main buffer. A higher ASIO Guard setting will only increase the processing headroom and the number of audio blocks that can be stored before sending them back to playback.
For example you use a buffer of 256, and ASIO Guard is at High setting (4096 I believe but I’m not sure, let’s still take this as example). With these settings, the ASIO Guard buffer is able to process and store 16 blocks of 256 samples.
From a processing point of view, this indeed doesn’t change anything if you use buffers of various size. If you choose 1024, ASIO Guard will be able to store 4 blocks instead of 16, but the time needed to process is exactly the same, as the total number of samples is the same.
However, the main buffer is still used after the blocks exit ASIO Guard.
When the main buffer is larger than the ASIO Guard buffer, one block cannot fully reside in ASIO Guard and it needs to use the Real-Time path to process the rest of the block.
For this reason the ASIO Guard level should always be set higher than the buffer size, so that it can hold at least one full block. Setting the buffer to a high value and ASIO Guard to Low is counter intuitive.
Cubase will necessarily need to use the Real-Time path to output the audio, once it has been processed with ASIO Guard, so if you have a slow CPU or other programs that take too much ressources, having a low buffer will effectively impact the performance and can still cause dropouts!
That said, even though the ASIO Guard level is set properly, if ever ASIO Guard maxes out, then it will have to use the main buffer as last resort, so you can really expect a smoother experience by setting a larger buffer initially.