EUs Stalled in DS
The metric EUs Stalled in DS represents the percentage of overall GPU time that the EUs were stalled in Domain Shader instructions. A shader thread will stall when it reaches an instruction that cannot complete until some time-consuming operation is completed.
This metrics does not include the total amount of stalled time in the Domain Shader, but only the amount of time when the Domain Shader was causing the entire EU to stall. The EUs in the Intel® HD Graphics are hyperthreaded, which means that each EU can very quickly (within 2 clock cycles) switch from a stalled shader thread to another shader thread. Therefore, it is possible at any given time for a number of shader threads to be stalled on an EU, but for the EU to continue actively executing instructions on another shader thread. The entire EU is considered to be stalled only when all of its threads are stalled.
If a large amount of stall time seems to be occurring in a particular shader, then you should examine that shader to see whether you can reduce or eliminate some of the stalls.
Short shaders might normally stall for a majority of their execution time, since in such situations instruction or data fetch (texels, constants) latency cannot be ‘hidden’. If a large stall time occurs in longer shaders, it usually indicates inefficient shader execution and possible optimization opportunities.
The Shaders Tab in the Intel® GPA Frame Analyzer is a convenient way to inspect the shader code that was executed for a given draw call, and to experiment with optimizations.
GPU EUs Active
GPU EUs Stalled
VS Is Bottleneck