25 ms·
No, this is something the GPU front end controls.
by jra101 12y ago
No, this is something the GPU front end controls.
- jeremiep 12y agoYou still have to be aware of it when optimizing the shaders and workloads though. On consoles where the hardware is fixed this is easily profiled. The GPU is creating threads and tasks internally and it's not always easy to balance this workload so no parts of the GPU becomes saturated while following parts in the chip's pipeline are idly waiting for work. The PowerVR chips we're working with have dozens and dozens of different profile metrics corresponding to the different areas of its pipeline, each one being a potential bottleneck. You could do something as silly as render a ball with 12k vertices instead of 24 and expecting the vertex processing to be much slower, but after profiling you find out its the fragment part lagging way behind because the data sequencer is overloaded trying to generate fragment tasks. In both cases you're rendering about the same amount of pixels. With unified shader architectures, its very frequent for vertex and fragment tasks from different draw calls to overlap simultaneously. We're even seeing tasks from different render targets overlapping! Such as fragment tasks from the shadow pass still running when the solid geometry pass is processing its vertices.
- bhouston 12y agoThis is fascinating. I would love to know more. You should write an article about advanced optimization for mobile GPUs or something.