We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Does such a tool exists?
I am working with some researchers in computer vision on porting to GPU some of their algorithm. Does ARM provide a mean to protect shader content? I understand the general case does not mandate such endeavor as the application is much more important than individual shaders. But in my specific scenario, I believe there is a novelty that could be worth spending some effort to protect. Precompiling shaders offline for a specific architecture, at the expanse of portability, is the only way I can imagine. Feedback on this would be greatly appreciated.
The offline compiler is available here:
Mali Offline Compiler - Mali Developer Center
As you say, for most real applications no-one bothers with binary shaders (simply too many vendors/GPUs/driver versions to keep on top of - you'd need literally hundreds of variants if you are shipping on multiple devices, and would have to keep on top of any over-the-air firmware changes). I've only ever seen it used in anger for platform-level software which therefore only has to support a single variant as part of the device firmware.
Newer APIs such as Vulkan are moving away from pure text source to a compiled intermediate representation (SPIR-V) which is less transparent, although still possible to decompile back into a source form.
HTH, Pete