Thanks for all your advice (including those that contacted me directly).
The profile times I posted were from a fresh load of Chrome, running compile vertex + fragment, then link, plus a little of our own setup code (<1ms). As you say, Chrome appears to cache compiles/links after a first run so I'm not aware how I could go about getting 'warmed up' profiles - advice welcome. If anyone is interested, I can get the breakdowns between compile and link, I don't think we see much in the way of the first shader being massively more expensive, but that might just be because so many of them take over 200ms to compile.
Vlad, certainly being able to permanently cache shaders after a first load would solve the problem (and if it's an easy solution, then great), but I think an asynchronous method of compilation and linking would be the nicest solution - we already throttle the shader compilation rate and handle not having the exact shader we need, so in effect we are already asynchronous at the graphics engine level, it'd just be nice not to lock up the main thread whilst waiting for the result!
On 2013/06/26 5:58, Conor Dickinson wrote:
I have the same question. It is extremely difficult to benchmark the compile times. For one reason, you do not know when the compile is actually happening. For another, it is essential to do a warm up run first but if the implementation, like Chrome(?) or Android, is caching shader compiles under the covers, the second run won't compile anything unless you make subtle changes to the shader.
注意：この電子メールには、株式会社エイチアイの機密情報が含まれている場合が有ります。正式なメール受信者では無い場合はメール複製、 再配信または情報の使用を固く禁じております。エラー、手違いでこのメールを受け取られましたら削除を行い配信者にご連絡をお願いいたし ます.
NOTE: This electronic mail message may contain confidential and privileged information from HI Corporation. If you are not the intended recipient, any disclosure, photocopying, distribution or use of the contents of the received information is prohibited. If you have received this e-mail in error, please notify the sender immediately and permanently delete this message and all related copies.