Imagination PowerVR SDK Blog

How to use binary shaders?


#1

Hi,
I can’t get binary shaders working: when I upload any of my shader binarys (the file output by the PVRUniSco, right?) i get an GL_OUT_OF_MEMORY (1285) error. What am I doing wrong? What might cause this error?
My device is a SE Satio (sgx530)


#2

The shader compiler and the version of the drivers using the output binary have to exactly match for binary shader upload to be effective. The PVRUniSCo compiler version number is very unlikely to match the driver version on your Satio, I’m afraid.

What are your reasons for trying binary shaders and not compiling them on the device?


#3

I’m going to need quiet a lot shaders (The shaders have to be compile with different preprocessor definitions, eg. for reflections one version with and one without dual paraboloid parametrization), and shader compilation is slow. I don’t want my game to take 20 secs to start up, and I think binary shaders are uploaded  faster.

BTW: Another thing that I’ve encountered is that shader compilation takes twice the time if it is done after the first frame is rendered, is this normal?