Closed Bug 781097 Opened 12 years ago Closed 10 years ago

Use OES_get_program_binary to cache shaders on first run and optimize startup time

Categories

(Core :: Graphics, defect)

x86
macOS
defect
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 918941

People

(Reporter: BenWa, Unassigned)

References

Details

This extension is available on PowerVR and allows us to retrieve and load binary shaders. This should help with startup performance. We have a few options: 1) Easiest - If the extension exists on the first run cache the compiled shaders. 2) Instrument a build to dump and extract the shader binary. 3) Use the PowerVR SDK to precompile the shaders.
(In reply to Benoit Girard (:BenWa) from comment #0) > This extension is available on PowerVR and allows us to retrieve and load > binary shaders. This should help with startup performance. > > We have a few options: > 1) Easiest - If the extension exists on the first run cache the compiled > shaders. > 2) Instrument a build to dump and extract the shader binary. > 3) Use the PowerVR SDK to precompile the shaders. How long does our shader compilation take on PowerVR?
I'll get some numbers when I come back, but it would be nice if someone can look into this first. I remember it taking a few ms but I'm not sure if that was PoverVR or desktop.
I'd rather not do this, though if we do, we should do #1. Binary shaders are being deprecated entirely in the next version of GLES. It also means we have to do extra tracking... like we need to recompile if the driver version increases (e.g. after a firmware upgrade).
(In reply to Vladimir Vukicevic [:vlad] [:vladv] from comment #3) > I'd rather not do this, though if we do, we should do #1. Binary shaders > are being deprecated entirely in the next version of GLES. It also means we > have to do extra tracking... like we need to recompile if the driver version > increases (e.g. after a firmware upgrade). Source? OpenGL ES 3.0 Section 2.11.2 'Loading Shader Binaries' claims that it is. In the mean time I wouldn't mind using a few extension to get this of ES 2.0 if it gets a win.
On the SGX540_120 I'm seeing compile times of 85,15,21 ms for the first 3 shader compiles on mobile. However on subsequent starts up it takes 0-1ms per shader so they must be doing their own caching.
This looks like it could be closed as a duplicate of bug #918941 (since that one has more discussion)?
Fine by me.
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.