-
Notifications
You must be signed in to change notification settings - Fork 832
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Feature Request] Bind compiler threads to selected cores #4301
Comments
This has been considered before, but I'm not sure this is really practical. There so many potential caveats:
And most of all, someone would actually have to test all of that. |
On Intel CPU, CPUID intrinsic can be used to determine E cores. https://www.intel.com/content/www/us/en/developer/articles/guide/12th-gen-intel-core-processor-gamedev-guide.html Maybe in short term, we can implement by assigning compiler threads from highest core number, as currently all big.little processors put P cores from CPU 0 and E cores at the end. This can ensure there will be enough threads for compiling, while using E cores with priority. On devices without E cores, this should have no negative impact as when compiler threads use last cores system automatically move logic threads to other cores.
The messy API for systems with more than 64 cores is really a problem, I'm also confusing about Microsoft's document. |
I'm using Intel 13th gen processor with P cores and E cores.
E cores are too weak for game logic threads, but they are suitable for shader compiling.
If a new feature that binding compiler threads to user-selected cores can be added, we can configure compiler threads on E cores only so game logic threads can use P cores with priority. This may reduce lags caused by compiler threads "chasing" logic threads to E cores.
I think it's possible to bind threads to target cores by SetThreadAffinityMask. But I'm not sure whether it's possible to implement such feature.
Maybe add the configuration like:
The text was updated successfully, but these errors were encountered: