[Mesa-dev] [RFC] spec: MESA_program_binary

Tapani Pälli tapani.palli at intel.com
Thu Feb 16 06:55:46 UTC 2017


On 02/16/2017 04:52 AM, Timothy Arceri wrote:
> In order add functionality to ARB_get_program_binary we need
> binary format enums.

I've understood that this is a driver internal enumeration. When 
application gets the binary it also receives enum (integer value) what 
format we gave. Then when loading application needs to query what 
formats are supported by the implementation and load the correct binary. 
We just need to internally make agreement on format list and return 
correct one matching the current driver in use?


> ---
>
> Techland games such as Dead Island and Dying Light make use of
> GetProgramBinary(). My current guess is the Dead Island crash
> https://bugs.freedesktop.org/show_bug.cgi?id=85564 is caused
> due to buggy handling of this feature not being available.
>
> Anyway I'm not sure how we go about getting Khronos to assign
> enums for the binary formats but thought I'd send this to the
> list for discussion.
>
>  docs/specs/MESA_program_binary.txt | 78 ++++++++++++++++++++++++++++++++++++++
>  1 file changed, 78 insertions(+)
>  create mode 100644 docs/specs/MESA_program_binary.txt
>
> diff --git a/docs/specs/MESA_program_binary.txt b/docs/specs/MESA_program_binary.txt
> new file mode 100644
> index 0000000..b34e42e
> --- /dev/null
> +++ b/docs/specs/MESA_program_binary.txt
> @@ -0,0 +1,78 @@
> +Name
> +
> +    MESA_program_binary
> +
> +Name Strings
> +
> +    GL_MESA_program_binary
> +
> +Contact
> +
> +    Timothy Arceri (tarceri 'at' itsqueeze.com)
> +
> +Status
> +
> +    Complete.
> +
> +Version
> +
> +    Last Modified Date: February 16, 2017
> +    Revision: #1
> +
> +Number
> +
> +    ???
> +
> +Dependencies
> +
> +    OpenGL ES 2.0 is required.
> +
> +    Written based on the wording of the OpenGL ES 2.0 specification.
> +
> +    This extension interacts with OES_get_program_binary.
> +
> +Overview
> +
> +    MESA provides drivers for multiple hardware vendors. This extension
> +    provides binary formats in order to avoid conflicts between drivers when
> +    loading precompiled binaries.
> +
> +New Procedures and Functions
> +
> +    None.
> +
> +New Tokens
> +
> +    Accepted by the <binaryFormat> parameter of ShaderBinary:
> +
> +        MESA_PROGRAM_BINARY_AMD                    ????
> +        MESA_PROGRAM_BINARY_NV                     ????
> +        MESA_PROGRAM_BINARY_INTEL                  ????
> +        MESA_PROGRAM_BINARY_BCOM                   ????
> +        MESA_PROGRAM_BINARY_QCOM                   ????
> +
> +Additions to Chapter 2 of the OpenGL ES 2.0 Specification (OpenGL Operation)
> +
> +    Add the following paragraph to the end of section 2.10.2:
> +
> +    "Depending on the hardware in use the apropriate <binaryFormat> is
> +    returned when querying the list of SHADER_BINARY_FORMATS.
> +
> +    Pre-compiled shader binaries in this format may be loaded via ShaderBinary.
> +
> +    When a binary fails to load, an INVALID_VALUE error is generated and a
> +    more detailed error message is appended to the shader's info log."
> +
> +Errors
> +
> +    INVALID_VALUE is generated if the <binary> parameter to ShaderBinary was
> +    produced with an incompatible version of the MESA shader compiler.
> +
> +New State
> +
> +    None.
> +
> +Revision History
> +
> +    #01    02/16/2010    Timothy Arceri       First draft.
> +
>


More information about the mesa-dev mailing list