1Name 2 3 ARM_mali_program_binary 4 5Name Strings 6 7 GL_ARM_mali_program_binary 8 9Contributors 10 11 Jan-Harald Fredriksen, ARM 12 Tom Olson, ARM 13 14Contact 15 16 Jan-Harald Fredriksen (jan-harald.fredriksen 'at' arm.com) 17 18Status 19 20 Shipping as of August 2012. 21 22Version 23 24 Last Modified Date: June 26, 2015 25 26Number 27 28 OpenGL ES Extension #120 29 30Dependencies 31 32 OpenGL ES 2.0 is required. 33 OES_get_program_binary is required. 34 35 This extension is written based on the wording of the OpenGL ES 2.0.25 36 specification and the OES_get_program_binary extension. 37 38Overview 39 40 The OES_get_program_binary extension enables applications to retrieve program 41 binaries using GetProgramBinaryOES and reload them using ProgramBinaryOES. 42 43 The mechanism for retrieval and reloading of program binaries is vendor 44 agnostic, but the binary format itself is vendor specific. 45 46 This extension adds a token to identify program binaries that are 47 compatible with the ARM Mali family of GPUs. 48 49Issues 50 51 1. When should applications recompile and relink program binaries? 52 53 UNRESOLVED: ProgramBinaryOES may fail after a driver update. In this 54 case, it may be useful for applications to know whether all program 55 binaries need to be recompiled and/or relinked. There is no language 56 mechanism other than the program object info log to provide this 57 information to the application. However, it is expected that if any 58 binary fails to load after a driver update, then all programs binaries 59 retrieved prior to the driver update will fail to load. 60 61New Procedures and Functions 62 63 None 64 65New Tokens 66 67 Accepted by the <binaryFormat> parameter of ProgramBinaryOES: 68 69 MALI_PROGRAM_BINARY_ARM 0x8F61 70 71Additions to Chapter 2 of the OpenGL ES 2.0 Specification (OpenGL ES Operation) 72 73 At the end of the section called Program Binaries, add: 74 75 "The format MALI_PROGRAM_BINARY_ARM will be present in the list of 76 program binary formats returned when querying PROGRAM_BINARY_FORMATS_OES. 77 This format will be returned in <binaryFormat> by GetProgramBinaryOES, and 78 may be used as the <binaryFormat> in calls to ProgramBinaryOES. 79 80 ProgramBinaryOES may reject a MALI_PROGRAM_BINARY_ARM program binary. This 81 can happen if <binary> is not a valid Mali program binary, if <binary> has 82 been compiled for an incompatible Mali GPU, if <binary> has been compiled 83 for a different API version, or if <binary> has been produced by an 84 incompatible version of the shader compiler or driver. If <binary> is 85 rejected for any of these reasons, the LINK_STATUS will be set to FALSE 86 and the program object's info log will be updated with a reason for the 87 rejection. 88 89 If <binary> was rejected because it was produced by an incompatible version 90 of the shader compiler or driver, applications should recompile and relink 91 all programs produced with the previous version of the shader compiler and 92 driver." 93 94Additions to Chapter 3 of the OpenGL ES 2.0 Specification (Rasterization) 95 96 None 97 98Additions to Chapter 4 of the OpenGL ES 2.0 Specification (Per-Fragment Operations and the Frame Buffer) 99 100 None 101 102Additions to Chapter 5 of the OpenGL ES 2.0 Specification (Special Functions) 103 104 None 105 106Additions to Chapter 6 of the OpenGL ES 2.0 Specification (State and State Requests) 107 108 None 109 110Errors 111 112 None 113 114New State 115 116 None 117 118New Implementation Dependent State 119 120 None 121 122Revision History 123 124 #1 21/03/2012 Jan-Harald Fredriksen First draft. 125 #2 26/03/2012 Jan-Harald Fredriksen Completed internal review. 126 #3 24/06/2012 Jan-Harald Fredriksen Clarified behavior for incompatible binaries. 127 #4 01/09/2012 Jan-Harald Fredriksen Updated status. 128 #5 25/06/2015 Jan-Harald Fredriksen Fixed typo. 129