Ignore the meme title, this is a thread to help people with RYZEN CPUs get much better performance in SC. TL;DR: I explain why RYZEN CPUs suffer with Star Citizen, and what you can do to potentially massively improve your performance with such CPUs. If youre here for the performance boost, just jump to discussion point 3. DISCLAIMER: This doesn't seem to work for everyone, however, the majority who've tried this have had a noticeable impact. @Holan shows the impact this had on his system in verse in this video https://www.youtube.com/watch?v=3gAs2RiGE9M&feature=youtu.be I've had similar impact on my system, but others said there was no noticeable impact. So good luck to you! IF YOU'RE LOOKING TO BOOST YOUR PERFORMANCE ON THE 5000 SERIES AMD CHIPSETS CHECK OUT THIS RESPONSE: https://robertsspaceindustries.com/spectrum/community/SC/forum/50174/thread/developers-hate-this-boost-your-ryzen-performance-/3842320 On the 5600x and 5800x you won't get a performance boost manipulating CPU affintiy, however on the 5900x you should get a boost if you set affinity to the first or last 6 CPUs(12 if SMT is enabled), and on the 5950x you should get a boost if you set affinity to the first or last 8 CPUs (16 if SMT is enabled). To preface this thread, I am the proud owner of a lovely 3970x TR which I use for both personal work (network and software engineering simulations) as well as for gaming. A few months ago, when I had just built this PC, I tried playing SC and the performance was an absolute horror show. I couldn’t for the life of me figure out what was going wrong, and I posted this thread (https://robertsspaceindustries.com/spectrum/community/SC/forum/50174/thread/ultra-high-end-pc-sub-30-frames/2820278). where I got some help, but it was not enough In this thread I will discuss a few things: 1- Why RYZEN CPUs have some trouble with alpha games like Star Citizen. 2- What can CIG do to resolve this issue and optimize their game? 3- What can YOU do in the meantime to get higher performance? If you found anything I’ve said is wrong, or if I’ve missed the mark on anything, don’t hesitate to tell me so I can correct my knowledge and the post! Thanks! 1- Why RYZEN CPUs have some trouble with alpha games like Star Citizen. First off let’s start by talking about RYZEN architectures and why such high-end CPUs can have problems with a game like SC. Ryzen CPUs typically feature high core counts, however, not all of these cores sit in one die on a package. To explain things, first we need to define a few terms: CPU Core: An execution unit that can run one thread at a time. CPU Complex (CCX): A term exclusive to RYZEN chips. Represents a cluster of 4 cores on a single silicon chip. CPU Die (CCD): A term used for both Intel and RYZEN chips. In the case of RYZEN however, a CPU Die consists of 2 CCXs attached to each other through something called infinity fabric. Infinity fabric (IF): A system of communication connecting components in a RYZEN chip. CPU Package: This is what you buy off-the-shelf. It typically includes one or more CPU dies, housing for dies, and the contacts for the motherboard. The following image shows the simplified barebone architecture of a 16 core Ryzen chip. https://imgur.com/7i5Sobq We can see in this picture that IF exists between different CCXs and CCDs to facilitate communication between them, and that enables modular construction of high-core CPUs which makes the process of CPU binning much easier for RYZEN. The cost of this, however, is a bottleneck of communication when you have an application running multiple threads over multiple cores that have a lot of interprocess communication (IPC). For example, Say I have an application that runs 16 threads (1 per physical core in the above architecture), and those threads need to all communicate with each other, that communication gets bottlenecked by infinity fabric, which slows down the application performance. This is the true core of the issue of Star Citizen. Many threads running on different cores that exist in different chip dies and complexes in a high-core count CPU, requiring those threads to talk to each other through Infinity fabric creates a bottleneck for such chips. 2- What can CIG do to resolve this issue and optimize their game? Why don’t other AAA games suffer like this? The majority of games out of optimization phase typically account for such issues by either insuring that their threads aren’t spread out over too many CPUs as long as there’s no issue with load balancing. Or they insure that if their threads are spread out, IPC is limited between those threads such that no bottlenecking occurs. This is what CIG can do. Preferably the second part, as that allows them to run embarrassingly parallel code (that’s a programming term, not an insult) on multiple CPUs while not causing any bottlenecks or overloading single cores. 3- What can YOU do in the meantime to get higher performance? We can limit the cores on which star citizen runs manually by setting core affinity for the star citizen executable. Why does this help? Because we can select cores which exist only on one CCX, or one CCD to minimize IF bottlenecks. The first step to optimizing SC for your CPU is to find out what your CPU looks like. Tools created by AMD themselves such as RYZEN master allow you to do that. It shows you exactly the number of cores you have enabled per CCX, the number of CCDs you have, and their clock rates. Alternatively, you can just look this information up. Once you figure out how many cores you have enabled per CCX (either 3 or 4), you can set process affinity for star citizen through 1 of two ways: 1- Through task bar : A) Open task bar B) Go to the details tab C) Go to star citizen executable and right click it. D) Select set affinity, and select the first 6 CPUs if your CCX has 3 cores or the first 8 CPUs if your CCX has 4 cores. This is if your chip is multi-threaded. E) You’re done!! You can do this live while in-game and instantly see a performance boost. Try this out in a hangar!! 2- Through a batch file : A) Create a .bat file and call it whatever. B) Write the following inside using notepad: PowerShell "$Process = Get-Process StarCitizen; $Process.ProcessorAffinity=XXX" C) Replace XXX with the hexadecimal figure for your cores. 0xFF for 4 cores, or 0x3F for 3 cores. D) Save the batch file and close notepad, then double click the file to run it while star citizen is running. E) You’re done!! You can do this live while in-game and instantly see a performance boost. Try this out in a hangar!! You can mess around with setting affinity to different cores and see results for yourself. If you pick all cores, you’ll notice that SC usage is spread across cores from different dies. If you want to manually test performance boosts try the following combination of core affinity: 1- 4 cores in 1 CCX (best performance boost). 2- 3 cores in 1 CCX, and 1 core in a neighboring CCX on the same CCD. (Medium performance boost. 3- 2 cores in 1 CCD, and 2 cores in another CCD. (Pretty much no boost, this is the same as running on all cores). For reference, in revel and york hangar, I get the following FPS rates on 1080p with my GTX 2080 Ti, 128 GB 3600 Mhz RAM, and 4.5Ghz CPU core clock rates. 1- 204~ with combo 1 2- 178~ with combo 2 3- 142~ with combo 3 While these may all seem high anyways, in the verse where your network impacts your performance, I end up going from 30-40 FPS to 60-70 FPS in high fidelity/detail/object count areas. If you have any questions at all, need any help, or think I'm wrong or I've described anything wrong please tell me! Thanks!!