15bd8deadSopenharmony_ciName
25bd8deadSopenharmony_ci
35bd8deadSopenharmony_ci    ARM_mali_program_binary
45bd8deadSopenharmony_ci
55bd8deadSopenharmony_ciName Strings
65bd8deadSopenharmony_ci
75bd8deadSopenharmony_ci    GL_ARM_mali_program_binary
85bd8deadSopenharmony_ci
95bd8deadSopenharmony_ciContributors
105bd8deadSopenharmony_ci
115bd8deadSopenharmony_ci    Jan-Harald Fredriksen, ARM
125bd8deadSopenharmony_ci    Tom Olson, ARM
135bd8deadSopenharmony_ci
145bd8deadSopenharmony_ciContact
155bd8deadSopenharmony_ci
165bd8deadSopenharmony_ci    Jan-Harald Fredriksen (jan-harald.fredriksen 'at' arm.com)
175bd8deadSopenharmony_ci
185bd8deadSopenharmony_ciStatus
195bd8deadSopenharmony_ci
205bd8deadSopenharmony_ci    Shipping as of August 2012.
215bd8deadSopenharmony_ci
225bd8deadSopenharmony_ciVersion
235bd8deadSopenharmony_ci
245bd8deadSopenharmony_ci    Last Modified Date: June 26, 2015
255bd8deadSopenharmony_ci
265bd8deadSopenharmony_ciNumber
275bd8deadSopenharmony_ci
285bd8deadSopenharmony_ci    OpenGL ES Extension #120
295bd8deadSopenharmony_ci
305bd8deadSopenharmony_ciDependencies
315bd8deadSopenharmony_ci
325bd8deadSopenharmony_ci    OpenGL ES 2.0 is required.
335bd8deadSopenharmony_ci    OES_get_program_binary is required.
345bd8deadSopenharmony_ci
355bd8deadSopenharmony_ci    This extension is written based on the wording of the OpenGL ES 2.0.25
365bd8deadSopenharmony_ci    specification and the OES_get_program_binary extension.
375bd8deadSopenharmony_ci
385bd8deadSopenharmony_ciOverview
395bd8deadSopenharmony_ci
405bd8deadSopenharmony_ci    The OES_get_program_binary extension enables applications to retrieve program
415bd8deadSopenharmony_ci    binaries using GetProgramBinaryOES and reload them using ProgramBinaryOES.
425bd8deadSopenharmony_ci
435bd8deadSopenharmony_ci    The mechanism for retrieval and reloading of program binaries is vendor
445bd8deadSopenharmony_ci    agnostic, but the binary format itself is vendor specific.
455bd8deadSopenharmony_ci
465bd8deadSopenharmony_ci    This extension adds a token to identify program binaries that are
475bd8deadSopenharmony_ci    compatible with the ARM Mali family of GPUs.
485bd8deadSopenharmony_ci
495bd8deadSopenharmony_ciIssues
505bd8deadSopenharmony_ci
515bd8deadSopenharmony_ci    1. When should applications recompile and relink program binaries?
525bd8deadSopenharmony_ci
535bd8deadSopenharmony_ci    UNRESOLVED: ProgramBinaryOES may fail after a driver update. In this
545bd8deadSopenharmony_ci    case, it may be useful for applications to know whether all program
555bd8deadSopenharmony_ci    binaries need to be recompiled and/or relinked. There is no language
565bd8deadSopenharmony_ci    mechanism other than the program object info log to provide this
575bd8deadSopenharmony_ci    information to the application. However, it is expected that if any
585bd8deadSopenharmony_ci    binary fails to load after a driver update, then all programs binaries
595bd8deadSopenharmony_ci    retrieved prior to the driver update will fail to load.
605bd8deadSopenharmony_ci
615bd8deadSopenharmony_ciNew Procedures and Functions
625bd8deadSopenharmony_ci
635bd8deadSopenharmony_ci    None
645bd8deadSopenharmony_ci
655bd8deadSopenharmony_ciNew Tokens
665bd8deadSopenharmony_ci
675bd8deadSopenharmony_ci    Accepted by the <binaryFormat> parameter of ProgramBinaryOES:
685bd8deadSopenharmony_ci
695bd8deadSopenharmony_ci        MALI_PROGRAM_BINARY_ARM              0x8F61
705bd8deadSopenharmony_ci
715bd8deadSopenharmony_ciAdditions to Chapter 2 of the OpenGL ES 2.0 Specification (OpenGL ES Operation)
725bd8deadSopenharmony_ci
735bd8deadSopenharmony_ci    At the end of the section called Program Binaries, add:
745bd8deadSopenharmony_ci
755bd8deadSopenharmony_ci    "The format MALI_PROGRAM_BINARY_ARM will be present in the list of
765bd8deadSopenharmony_ci    program binary formats returned when querying PROGRAM_BINARY_FORMATS_OES.
775bd8deadSopenharmony_ci    This format will be returned in <binaryFormat> by GetProgramBinaryOES, and
785bd8deadSopenharmony_ci    may be used as the <binaryFormat> in calls to ProgramBinaryOES.
795bd8deadSopenharmony_ci
805bd8deadSopenharmony_ci    ProgramBinaryOES may reject a MALI_PROGRAM_BINARY_ARM program binary. This
815bd8deadSopenharmony_ci    can happen if <binary> is not a valid Mali program binary, if <binary> has
825bd8deadSopenharmony_ci    been compiled for an incompatible Mali GPU, if <binary> has been compiled
835bd8deadSopenharmony_ci    for a different API version, or if <binary> has been produced by an
845bd8deadSopenharmony_ci    incompatible version of the shader compiler or driver. If <binary> is
855bd8deadSopenharmony_ci    rejected for any of these reasons, the LINK_STATUS will be set to FALSE
865bd8deadSopenharmony_ci    and the program object's info log will be updated with a reason for the
875bd8deadSopenharmony_ci    rejection.
885bd8deadSopenharmony_ci
895bd8deadSopenharmony_ci    If <binary> was rejected because it was produced by an incompatible version
905bd8deadSopenharmony_ci    of the shader compiler or driver, applications should recompile and relink
915bd8deadSopenharmony_ci    all programs produced with the previous version of the shader compiler and
925bd8deadSopenharmony_ci    driver."
935bd8deadSopenharmony_ci
945bd8deadSopenharmony_ciAdditions to Chapter 3 of the OpenGL ES 2.0 Specification (Rasterization)
955bd8deadSopenharmony_ci
965bd8deadSopenharmony_ci    None
975bd8deadSopenharmony_ci
985bd8deadSopenharmony_ciAdditions to Chapter 4 of the OpenGL ES 2.0 Specification (Per-Fragment Operations and the Frame Buffer)
995bd8deadSopenharmony_ci
1005bd8deadSopenharmony_ci    None
1015bd8deadSopenharmony_ci
1025bd8deadSopenharmony_ciAdditions to Chapter 5 of the OpenGL ES 2.0 Specification (Special Functions)
1035bd8deadSopenharmony_ci
1045bd8deadSopenharmony_ci    None
1055bd8deadSopenharmony_ci
1065bd8deadSopenharmony_ciAdditions to Chapter 6 of the OpenGL ES 2.0 Specification (State and State Requests)
1075bd8deadSopenharmony_ci
1085bd8deadSopenharmony_ci    None
1095bd8deadSopenharmony_ci
1105bd8deadSopenharmony_ciErrors
1115bd8deadSopenharmony_ci
1125bd8deadSopenharmony_ci    None
1135bd8deadSopenharmony_ci
1145bd8deadSopenharmony_ciNew State
1155bd8deadSopenharmony_ci
1165bd8deadSopenharmony_ci    None
1175bd8deadSopenharmony_ci
1185bd8deadSopenharmony_ciNew Implementation Dependent State
1195bd8deadSopenharmony_ci
1205bd8deadSopenharmony_ci    None
1215bd8deadSopenharmony_ci
1225bd8deadSopenharmony_ciRevision History
1235bd8deadSopenharmony_ci
1245bd8deadSopenharmony_ci    #1  21/03/2012   Jan-Harald Fredriksen    First draft.
1255bd8deadSopenharmony_ci    #2  26/03/2012   Jan-Harald Fredriksen    Completed internal review.
1265bd8deadSopenharmony_ci    #3  24/06/2012   Jan-Harald Fredriksen    Clarified behavior for incompatible binaries.
1275bd8deadSopenharmony_ci    #4  01/09/2012   Jan-Harald Fredriksen    Updated status.
1285bd8deadSopenharmony_ci    #5  25/06/2015   Jan-Harald Fredriksen    Fixed typo.
129