![]() The CPU affinity panel doesn't always allow for unpinning threads spun up dynamically by the program itself. You can fix this by undoing the pinning on the main thread via the CPU affinity panel, at which point Windows' scheduler, which is properly hyperthreading aware, will move the thread off of CPU0 to give space to the thread remaining pinned on its paired logical core. pick a core that is in a hyperthreaded logical pair with CPU0) you get major performance issues because hyperthreaded pairs don't really schedule instructions in parallel all that well and you get a lot of contention slowing everything down to a relative crawl. ![]() Ofcourse, if you then pick CPUn poorly (i.e. To pin on both cores, the fastest (and most naive/dumb) solution is to build the executable with headers that pin its main thread to CPU0 (which is always present) and from that main thread prep and pin a new thread to run the renderer, timer, physics, etc. the less timing-sensitive and less resource-intensive facets of the engine) pinned to the other. to one CPU core and to have audio, asset loading, input processing, etc. ![]() Theoretically, if the engine has to be made efficient for dual core usage, then the best way to do so is to pin the render thread, frame timer, physics, etc. My gut tells me it's the main thread that started the game, also pinned to a core. ![]() Originally posted by Kaldaien:I don't really know what the purpose of the thread the engine runs on CPU0 is, only that there IS a single thread that the game runs exclusively on that CPU. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |