Sontin, don't opine on topics you're not well versed in.
Preemption is not tied to Async Compute directly but comes into play when switching between Graphics and Compute loads. What Async Compute + Graphics does is execute both a Compute and a Graphics task in parallel. So a switch is involved if your architecture can't execute both tasks in parallel. One task will be executed before the other with a fence placed to synchronize both queues. So preemption is involved here.
I'm fully aware of what fences are used for. I taught you.
The point of my comment was that absent fences, from the equation, both tasks would need to have an identical execution time for renderstates comment to be correct. The fence would be pointless in that case as synchronization wouldn't need enforcement.
Example:
Async Compute + Graphics working
Graphics 10ms
Compute 5ms
Fence placed
Total execution time = 10ms
Async Compute + Graphics not working
Graphics 10ms
Compute 5ms
Fence placed
Total execution time = 15ms
Now you'd expect a performance loss on the latter but with Pascal vs Fury, we're talking about two different architectures. Pascal's higher clocks lowers the execution times of both compute and graphics tasks.
Example:
Graphics 5ms
Compute 3ms
Fence placed
Total Execution time = 8ms
So Pascal, although it doesn't support Async Compute + Graphics, still bests Fiji because it can execute both tasks in serial quicker than Fiji can in Parallel.
What we observe is about a 5FPS lead (10%) over Fiji (which is tiny) under AotS. This compared to the huge lead Pascal enjoys in non-Async compute + graphics titles. This makes sense if the above is true.
Because in non-Async compute + graphics titles, Fiji would take 15ms, not 10ms, vs Pascal's 8ms.
Understand?
As for Maxwell vs Pascal. The context switch involved between Graphics and Compute tasks caused a performance loss with Async compute + graphics turned on. Maxwell would process the compute task and then the graphics task with the fence enforcing synchronization between the two. This caused a performance loss.
With Pascal, that issue is fixed. So now Pascal only loses 0.1 FPS when Async compute + graphics is turned on. Pascal doesn't gain anything, because it doesn't support the feature, but it doesn't really lose anything either.
