01-10-2018, 07:45 AM
Yeah, I don't think he's really saying they're the same thing, or anything like that.
#StopRNG
Support for 3 cores properly and Vulkan
|
01-10-2018, 07:45 AM
Yeah, I don't think he's really saying they're the same thing, or anything like that.
#StopRNG
01-10-2018, 04:22 PM
(01-10-2018, 01:38 AM)pandubz Wrote: Splitting a process into too many threads can actually cause more performance degradation than if you use fewer threads in the first place. On a single core, your OS uses a scheduler to swap processes in and out of the execution pipeline. The scheduler itself takes time to do the swapping. If you have too many things going on at once, the scheduler ends up taking a fair amount of CPU time per second just juggling processes instead of actually executing their code. This can even reach a point where the scheduler exceeds actual processes in CPU time. If you ever used a desktop with an old single core Pentium, you know what happens when you have enough RAM but too much running. That sucker still gets slooooow.Yes you're right. GSdx sw fragment processing support more threads. But it doesn't scale well. We could make it scale further with spinlock but 8 cores will become a minimum to run PCSX2... And spinlock means less turbo on the CPU and more throttling so it could be counter-productive too. (01-10-2018, 04:12 AM)dabore Wrote: mtvu is a totally different thing then what vulkan does. the idea of mtvu is to enable parallel execution of vu code while using the main thread to transfer data chunks to the gif incase it can be done without to much path signaling between the 2 processes. that option will not be obsoleted by vulkan.Well OpenGL drivers are multithreaded and likely Dx driver too. Time spends in GL call in GS thread is close of 0. However issue arise when you need to wait a result from the GPU.
01-10-2018, 06:18 PM
(01-10-2018, 04:22 PM)gregory Wrote: Well OpenGL drivers are multithreaded and likely Dx driver too. Time spends in GL call in GS thread is close of 0. However issue arise when you need to wait a result from the GPU. yeh. i figured, the most performant is when you know where everything gotta go. just open a command buffer per rendertarget. spew it, and done. ofc you gotta wait for drawcall finishes when switching and compositing targets, and when you need data (to be transfered) from the gpu. far from that command assembly is fast. you don't wait for the target to switch. you can fill the next box with target and draw commands while waiting. |
« Next Oldest | Next Newest »
|