Ok Abdul, I'll try to explain it easier, so that even others can understand better. 😊
You games are made up of lines of code called strings. When you click on the game button those strings go through the cpu 1 string per thread at a time. The cpu basically pre-renders every frame by taking that string and saying 'this is a blade of grass, this is how big it is and it goes over here'. And it'll do so for every single object, whether it's a 1000 blades of grass, a tree, your character, sky etc.
It'll pre-render every single frame as fast as it can. If that's 40 in a second or 140 in a second, that's all you get. Cpu then sends that single frame to the gpu as fast as it can.
The gpu finish rendering that frame, adding the colors, placing the blade of grass, taking the 1000 others and applying all the detail settings and does so at the set resolution before giving it to the monitor.
This is where ppl perceive a bottleneck. The cpu is working its pants off trying to send 40 frames a second, the gpu is easily putting all 40 on screen, but has the capacity to do more. Ppl call that a bottleneck, it really isn't, it's just that in that game the gpu is stronger than the cpu. Change games, where the cpu is able to shove 300 frames a second at the gpu, and the detail/resolution is so high the gpu can only put 200 frames on screen every second means the cpu is stronger than the gpu. That doesn't make it a bottleneck.
You'll find that in some games, you can play at ultra settings, high settings, medium settings and fps didn't change much. That's a game where the gpu is stronger than the cpu and capable of more fps output, but is limited by the cpu's ability to give more frames. In some games, the reverse is true, at ultra fps is low, at high fps gets higher, at medium fps gets really high. That's because the cpu is giving far more than the gpu can put on screen, so lowering detail settings allows the gpu to shove the frame out faster.
The 6400 is sad. It's a very weak cpu. It's limited to just 4c/4t so many games are going to struggle with high fps, because the cpu can't pre-render very many strings at one time, and does so slowly.
Because of its limitations, the 2200G isn't much better. The bottleneck ppl claim is because with a decent gpu, it's not going to work hard at all with either of those cpus, they can't make it sweat, not enough fps output.
A decent Ryzen 5, like the 2600 is 6c/12t, that's 3 times the possible threads, considerably faster pre-renders of the strings, far more strings, far greater frames shoved at that same decent gpu. Now it'll sweat. Now it'll have to really work.