[Mesa-dev] [PATCH 2/8] mesa: expose AMD_gpu_shader_int64

Marek Olšák maraeo at gmail.com
Tue Aug 21 02:20:36 UTC 2018


On Wed, Aug 15, 2018 at 2:25 PM Ian Romanick <idr at freedesktop.org> wrote:
>
> On 08/08/2018 07:12 PM, Marek Olšák wrote:
> > From: Marek Olšák <marek.olsak at amd.com>
> >
> > because the closed driver exposes it.
> >
> > It's equivalent to ARB_gpu_shader_int64.
> > In this patch, I did everything the same as we do for ARB_gpu_shader_int64.
>
> The closed driver only exposes this on core profile?  That's unexpected.

The closed driver exposes it in both profiles, but Mesa needs display
support before it can expose it in the compatibility profile.

Marek

>
> Either way, this patch is
>
> Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
>
> > ---
> >  docs/relnotes/18.3.0.html                   |   1 +
> >  src/compiler/glsl/builtin_functions.cpp     |   3 +-
> >  src/compiler/glsl/builtin_types.cpp         |   3 +-
> >  src/compiler/glsl/glsl_lexer.ll             |  18 +-
> >  src/compiler/glsl/glsl_parser_extras.cpp    |   1 +
> >  src/compiler/glsl/glsl_parser_extras.h      |   5 +-
> >  src/mapi/glapi/gen/AMD_gpu_shader_int64.xml | 239 ++++++++++++++++++++
> >  src/mapi/glapi/gen/gl_API.xml               |   2 +
> >  src/mesa/main/extensions_table.h            |   1 +
> >  9 files changed, 261 insertions(+), 12 deletions(-)
> >  create mode 100644 src/mapi/glapi/gen/AMD_gpu_shader_int64.xml
> >
> > diff --git a/docs/relnotes/18.3.0.html b/docs/relnotes/18.3.0.html
> > index ac2cc1e893b..840a336d41a 100644
> > --- a/docs/relnotes/18.3.0.html
> > +++ b/docs/relnotes/18.3.0.html
> > @@ -45,20 +45,21 @@ TBD.
> >
> >
> >  <h2>New features</h2>
> >
> >  <p>
> >  Note: some of the new features are only available with certain drivers.
> >  </p>
> >
> >  <ul>
> >  <li>GL_AMD_framebuffer_multisample_advanced on radeonsi.</li>
> > +<li>GL_AMD_gpu_shader_int64 on i965, nvc0, radeonsi.</li>
> >  <li>GL_EXT_window_rectangles on radeonsi.</li>
> >  </ul>
> >
> >  <h2>Bug fixes</h2>
> >
> >  <ul>
> >  <li>TBD</li>
> >  </ul>
> >
> >  <h2>Changes</h2>
> > diff --git a/src/compiler/glsl/builtin_functions.cpp b/src/compiler/glsl/builtin_functions.cpp
> > index 7119903795f..e37d96c4636 100644
> > --- a/src/compiler/glsl/builtin_functions.cpp
> > +++ b/src/compiler/glsl/builtin_functions.cpp
> > @@ -522,21 +522,22 @@ supports_arb_fragment_shader_interlock(const _mesa_glsl_parse_state *state)
> >  static bool
> >  shader_clock(const _mesa_glsl_parse_state *state)
> >  {
> >     return state->ARB_shader_clock_enable;
> >  }
> >
> >  static bool
> >  shader_clock_int64(const _mesa_glsl_parse_state *state)
> >  {
> >     return state->ARB_shader_clock_enable &&
> > -          state->ARB_gpu_shader_int64_enable;
> > +          (state->ARB_gpu_shader_int64_enable ||
> > +           state->AMD_gpu_shader_int64_enable);
> >  }
> >
> >  static bool
> >  shader_storage_buffer_object(const _mesa_glsl_parse_state *state)
> >  {
> >     return state->has_shader_storage_buffer_objects();
> >  }
> >
> >  static bool
> >  shader_trinary_minmax(const _mesa_glsl_parse_state *state)
> > diff --git a/src/compiler/glsl/builtin_types.cpp b/src/compiler/glsl/builtin_types.cpp
> > index 7a01cb48bc8..d2bcdd68138 100644
> > --- a/src/compiler/glsl/builtin_types.cpp
> > +++ b/src/compiler/glsl/builtin_types.cpp
> > @@ -404,21 +404,22 @@ _mesa_glsl_initialize_types(struct _mesa_glsl_parse_state *state)
> >        add_type(symbols, glsl_type::dmat3_type);
> >        add_type(symbols, glsl_type::dmat4_type);
> >        add_type(symbols, glsl_type::dmat2x3_type);
> >        add_type(symbols, glsl_type::dmat2x4_type);
> >        add_type(symbols, glsl_type::dmat3x2_type);
> >        add_type(symbols, glsl_type::dmat3x4_type);
> >        add_type(symbols, glsl_type::dmat4x2_type);
> >        add_type(symbols, glsl_type::dmat4x3_type);
> >     }
> >
> > -   if (state->ARB_gpu_shader_int64_enable) {
> > +   if (state->ARB_gpu_shader_int64_enable ||
> > +       state->AMD_gpu_shader_int64_enable) {
> >        add_type(symbols, glsl_type::int64_t_type);
> >        add_type(symbols, glsl_type::i64vec2_type);
> >        add_type(symbols, glsl_type::i64vec3_type);
> >        add_type(symbols, glsl_type::i64vec4_type);
> >
> >        add_type(symbols, glsl_type::uint64_t_type);
> >        add_type(symbols, glsl_type::u64vec2_type);
> >        add_type(symbols, glsl_type::u64vec3_type);
> >        add_type(symbols, glsl_type::u64vec4_type);
> >     }
> > diff --git a/src/compiler/glsl/glsl_lexer.ll b/src/compiler/glsl/glsl_lexer.ll
> > index 87b64e09c16..74d4acca61f 100644
> > --- a/src/compiler/glsl/glsl_lexer.ll
> > +++ b/src/compiler/glsl/glsl_lexer.ll
> > @@ -656,29 +656,29 @@ isampler2DRect  TYPE(140, 300, 140, 0, glsl_type::isampler2DRect_type);
> >  usampler2DRect       TYPE(140, 300, 140, 0, glsl_type::usampler2DRect_type);
> >  isamplerBuffer       TYPE_WITH_ALT(140, 300, 140, 320, yyextra->EXT_texture_buffer_enable || yyextra->OES_texture_buffer_enable, glsl_type::isamplerBuffer_type);
> >  usamplerBuffer       TYPE_WITH_ALT(140, 300, 140, 320, yyextra->EXT_texture_buffer_enable || yyextra->OES_texture_buffer_enable, glsl_type::usamplerBuffer_type);
> >
> >      /* Additional reserved words in GLSL ES 3.00 */
> >  resource     KEYWORD(420, 300, 0, 0, RESOURCE);
> >  sample               KEYWORD_WITH_ALT(400, 300, 400, 320, yyextra->ARB_gpu_shader5_enable || yyextra->OES_shader_multisample_interpolation_enable, SAMPLE);
> >  subroutine   KEYWORD_WITH_ALT(400, 300, 400, 0, yyextra->ARB_shader_subroutine_enable, SUBROUTINE);
> >
> >      /* Additional words for ARB_gpu_shader_int64 */
> > -int64_t              TYPE_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable, glsl_type::int64_t_type);
> > -i64vec2              TYPE_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable, glsl_type::i64vec2_type);
> > -i64vec3              TYPE_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable, glsl_type::i64vec3_type);
> > -i64vec4              TYPE_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable, glsl_type::i64vec4_type);
> > -
> > -uint64_t     TYPE_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable, glsl_type::uint64_t_type);
> > -u64vec2              TYPE_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable, glsl_type::u64vec2_type);
> > -u64vec3              TYPE_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable, glsl_type::u64vec3_type);
> > -u64vec4              TYPE_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable, glsl_type::u64vec4_type);
> > +int64_t              TYPE_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable || yyextra->AMD_gpu_shader_int64_enable, glsl_type::int64_t_type);
> > +i64vec2              TYPE_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable || yyextra->AMD_gpu_shader_int64_enable, glsl_type::i64vec2_type);
> > +i64vec3              TYPE_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable || yyextra->AMD_gpu_shader_int64_enable, glsl_type::i64vec3_type);
> > +i64vec4              TYPE_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable || yyextra->AMD_gpu_shader_int64_enable, glsl_type::i64vec4_type);
> > +
> > +uint64_t     TYPE_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable || yyextra->AMD_gpu_shader_int64_enable, glsl_type::uint64_t_type);
> > +u64vec2              TYPE_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable || yyextra->AMD_gpu_shader_int64_enable, glsl_type::u64vec2_type);
> > +u64vec3              TYPE_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable || yyextra->AMD_gpu_shader_int64_enable, glsl_type::u64vec3_type);
> > +u64vec4              TYPE_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable || yyextra->AMD_gpu_shader_int64_enable, glsl_type::u64vec4_type);
> >
> >  [_a-zA-Z][_a-zA-Z0-9]*       {
> >                           struct _mesa_glsl_parse_state *state = yyextra;
> >                           if (state->es_shader && yyleng > 1024) {
> >                              _mesa_glsl_error(yylloc, state,
> >                                               "Identifier `%s' exceeds 1024 characters",
> >                                               yytext);
> >                           }
> >                           return classify_identifier(state, yytext, yyleng, yylval);
> >                       }
> > diff --git a/src/compiler/glsl/glsl_parser_extras.cpp b/src/compiler/glsl/glsl_parser_extras.cpp
> > index 6d92f24ea22..a455dde122a 100644
> > --- a/src/compiler/glsl/glsl_parser_extras.cpp
> > +++ b/src/compiler/glsl/glsl_parser_extras.cpp
> > @@ -691,20 +691,21 @@ static const _mesa_glsl_extension _mesa_glsl_supported_extensions[] = {
> >     EXT(OES_tessellation_shader),
> >     EXT(OES_texture_3D),
> >     EXT(OES_texture_buffer),
> >     EXT(OES_texture_cube_map_array),
> >     EXT_AEP(OES_texture_storage_multisample_2d_array),
> >     EXT(OES_viewport_array),
> >
> >     /* All other extensions go here, sorted alphabetically.
> >      */
> >     EXT(AMD_conservative_depth),
> > +   EXT(AMD_gpu_shader_int64),
> >     EXT(AMD_shader_stencil_export),
> >     EXT(AMD_shader_trinary_minmax),
> >     EXT(AMD_vertex_shader_layer),
> >     EXT(AMD_vertex_shader_viewport_index),
> >     EXT(ANDROID_extension_pack_es31a),
> >     EXT(EXT_blend_func_extended),
> >     EXT(EXT_frag_depth),
> >     EXT(EXT_draw_buffers),
> >     EXT(EXT_clip_cull_distance),
> >     EXT(EXT_geometry_point_size),
> > diff --git a/src/compiler/glsl/glsl_parser_extras.h b/src/compiler/glsl/glsl_parser_extras.h
> > index 59a173418b7..81792de5704 100644
> > --- a/src/compiler/glsl/glsl_parser_extras.h
> > +++ b/src/compiler/glsl/glsl_parser_extras.h
> > @@ -249,21 +249,22 @@ struct _mesa_glsl_parse_state {
> >           || EXT_separate_shader_objects_enable;
> >     }
> >
> >     bool has_double() const
> >     {
> >        return ARB_gpu_shader_fp64_enable || is_version(400, 0);
> >     }
> >
> >     bool has_int64() const
> >     {
> > -      return ARB_gpu_shader_int64_enable;
> > +      return ARB_gpu_shader_int64_enable ||
> > +             AMD_gpu_shader_int64_enable;
> >     }
> >
> >     bool has_420pack() const
> >     {
> >        return ARB_shading_language_420pack_enable || is_version(420, 0);
> >     }
> >
> >     bool has_420pack_or_es31() const
> >     {
> >        return ARB_shading_language_420pack_enable || is_version(420, 310);
> > @@ -751,20 +752,22 @@ struct _mesa_glsl_parse_state {
> >     bool OES_texture_cube_map_array_warn;
> >     bool OES_texture_storage_multisample_2d_array_enable;
> >     bool OES_texture_storage_multisample_2d_array_warn;
> >     bool OES_viewport_array_enable;
> >     bool OES_viewport_array_warn;
> >
> >     /* All other extensions go here, sorted alphabetically.
> >      */
> >     bool AMD_conservative_depth_enable;
> >     bool AMD_conservative_depth_warn;
> > +   bool AMD_gpu_shader_int64_enable;
> > +   bool AMD_gpu_shader_int64_warn;
> >     bool AMD_shader_stencil_export_enable;
> >     bool AMD_shader_stencil_export_warn;
> >     bool AMD_shader_trinary_minmax_enable;
> >     bool AMD_shader_trinary_minmax_warn;
> >     bool AMD_vertex_shader_layer_enable;
> >     bool AMD_vertex_shader_layer_warn;
> >     bool AMD_vertex_shader_viewport_index_enable;
> >     bool AMD_vertex_shader_viewport_index_warn;
> >     bool ANDROID_extension_pack_es31a_enable;
> >     bool ANDROID_extension_pack_es31a_warn;
> > diff --git a/src/mapi/glapi/gen/AMD_gpu_shader_int64.xml b/src/mapi/glapi/gen/AMD_gpu_shader_int64.xml
> > new file mode 100644
> > index 00000000000..42eb750d110
> > --- /dev/null
> > +++ b/src/mapi/glapi/gen/AMD_gpu_shader_int64.xml
> > @@ -0,0 +1,239 @@
> > +<?xml version="1.0"?>
> > +<!DOCTYPE OpenGLAPI SYSTEM "gl_API.dtd">
> > +
> > +<OpenGLAPI>
> > +
> > +<category name="GL_AMD_gpu_shader_int64" number="451">
> > +
> > +    <function name="Uniform1i64NV" alias="Uniform1i64ARB">
> > +        <param name="location" type="GLint"/>
> > +        <param name="x" type="GLint64"/>
> > +    </function>
> > +
> > +    <function name="Uniform2i64NV" alias="Uniform2i64ARB">
> > +        <param name="location" type="GLint"/>
> > +        <param name="x" type="GLint64"/>
> > +        <param name="y" type="GLint64"/>
> > +    </function>
> > +
> > +    <function name="Uniform3i64NV" alias="Uniform3i64ARB">
> > +        <param name="location" type="GLint"/>
> > +        <param name="x" type="GLint64"/>
> > +        <param name="y" type="GLint64"/>
> > +        <param name="z" type="GLint64"/>
> > +    </function>
> > +
> > +    <function name="Uniform4i64NV" alias="Uniform4i64ARB">
> > +        <param name="location" type="GLint"/>
> > +        <param name="x" type="GLint64"/>
> > +        <param name="y" type="GLint64"/>
> > +        <param name="z" type="GLint64"/>
> > +        <param name="w" type="GLint64"/>
> > +    </function>
> > +
> > +    <function name="Uniform1i64vNV" alias="Uniform1i64vARB">
> > +        <param name="location" type="GLint"/>
> > +        <param name="count" type="GLsizei"/>
> > +        <param name="value" type="const GLint64 *" count="count"/>
> > +    </function>
> > +
> > +    <function name="Uniform2i64vNV" alias="Uniform2i64vARB">
> > +        <param name="location" type="GLint"/>
> > +        <param name="count" type="GLsizei"/>
> > +        <param name="value" type="const GLint64 *" count="count" count_scale="2"/>
> > +    </function>
> > +
> > +    <function name="Uniform3i64vNV" alias="Uniform3i64vARB">
> > +        <param name="location" type="GLint"/>
> > +        <param name="count" type="GLsizei"/>
> > +        <param name="value" type="const GLint64 *" count="count" count_scale="3"/>
> > +    </function>
> > +
> > +    <function name="Uniform4i64vNV" alias="Uniform4i64vARB">
> > +        <param name="location" type="GLint"/>
> > +        <param name="count" type="GLsizei"/>
> > +        <param name="value" type="const GLint64 *" count="count" count_scale="4"/>
> > +    </function>
> > +
> > +    <function name="Uniform1ui64NV" alias="Uniform1ui64ARB">
> > +        <param name="location" type="GLint"/>
> > +        <param name="x" type="GLuint64"/>
> > +    </function>
> > +
> > +    <function name="Uniform2ui64NV" alias="Uniform2ui64ARB">
> > +        <param name="location" type="GLint"/>
> > +        <param name="x" type="GLuint64"/>
> > +        <param name="y" type="GLuint64"/>
> > +    </function>
> > +
> > +    <function name="Uniform3ui64NV" alias="Uniform3ui64ARB">
> > +        <param name="location" type="GLint"/>
> > +        <param name="x" type="GLuint64"/>
> > +        <param name="y" type="GLuint64"/>
> > +        <param name="z" type="GLuint64"/>
> > +    </function>
> > +
> > +    <function name="Uniform4ui64NV" alias="Uniform4ui64ARB">
> > +        <param name="location" type="GLint"/>
> > +        <param name="x" type="GLuint64"/>
> > +        <param name="y" type="GLuint64"/>
> > +        <param name="z" type="GLuint64"/>
> > +        <param name="w" type="GLuint64"/>
> > +    </function>
> > +
> > +    <function name="Uniform1ui64vNV" alias="Uniform1ui64vARB">
> > +        <param name="location" type="GLint"/>
> > +        <param name="count" type="GLsizei"/>
> > +        <param name="value" type="const GLuint64 *"  count="count"/>
> > +    </function>
> > +
> > +    <function name="Uniform2ui64vNV" alias="Uniform2ui64vARB">
> > +        <param name="location" type="GLint"/>
> > +        <param name="count" type="GLsizei"/>
> > +        <param name="value" type="const GLuint64 *" count="count" count_scale="2"/>
> > +    </function>
> > +
> > +    <function name="Uniform3ui64vNV" alias="Uniform3ui64vARB">
> > +        <param name="location" type="GLint"/>
> > +        <param name="count" type="GLsizei"/>
> > +        <param name="value" type="const GLuint64 *" count="count" count_scale="3"/>
> > +    </function>
> > +
> > +    <function name="Uniform4ui64vNV" alias="Uniform4ui64vARB">
> > +        <param name="location" type="GLint"/>
> > +        <param name="count" type="GLsizei"/>
> > +        <param name="value" type="const GLuint64 *" count="count" count_scale="4"/>
> > +    </function>
> > +
> > +    <function name="GetUniformi64vNV" alias="GetUniformi64vARB">
> > +        <param name="program" type="GLuint"/>
> > +        <param name="location" type="GLint"/>
> > +        <param name="params" type="GLint64 *"/>
> > +    </function>
> > +
> > +    <function name="GetUniformui64vNV" alias="GetUniformui64vARB">
> > +        <param name="program" type="GLuint"/>
> > +        <param name="location" type="GLint"/>
> > +        <param name="params" type="GLuint64 *"/>
> > +    </function>
> > +
> > +    <function name="ProgramUniform1i64NV" alias="ProgramUniform1i64ARB">
> > +        <param name="program" type="GLuint"/>
> > +        <param name="location" type="GLint"/>
> > +        <param name="x" type="GLint64"/>
> > +    </function>
> > +
> > +    <function name="ProgramUniform2i64NV" alias="ProgramUniform2i64ARB">
> > +        <param name="program" type="GLuint"/>
> > +        <param name="location" type="GLint"/>
> > +        <param name="x" type="GLint64"/>
> > +        <param name="y" type="GLint64"/>
> > +    </function>
> > +
> > +    <function name="ProgramUniform3i64NV" alias="ProgramUniform3i64ARB">
> > +        <param name="program" type="GLuint"/>
> > +        <param name="location" type="GLint"/>
> > +        <param name="x" type="GLint64"/>
> > +        <param name="y" type="GLint64"/>
> > +        <param name="z" type="GLint64"/>
> > +    </function>
> > +
> > +    <function name="ProgramUniform4i64NV" alias="ProgramUniform4i64ARB">
> > +        <param name="program" type="GLuint"/>
> > +        <param name="location" type="GLint"/>
> > +        <param name="x" type="GLint64"/>
> > +        <param name="y" type="GLint64"/>
> > +        <param name="z" type="GLint64"/>
> > +        <param name="w" type="GLint64"/>
> > +    </function>
> > +
> > +    <function name="ProgramUniform1i64vNV" alias="ProgramUniform1i64vARB">
> > +        <param name="program" type="GLuint"/>
> > +        <param name="location" type="GLint"/>
> > +        <param name="count" type="GLsizei"/>
> > +        <param name="value" type="const GLint64 *" count="count"/>
> > +    </function>
> > +
> > +    <function name="ProgramUniform2i64vNV" alias="ProgramUniform2i64vARB">
> > +        <param name="program" type="GLuint"/>
> > +        <param name="location" type="GLint"/>
> > +        <param name="count" type="GLsizei"/>
> > +        <param name="value" type="const GLint64 *" count="count" count_scale="2"/>
> > +    </function>
> > +
> > +    <function name="ProgramUniform3i64vNV" alias="ProgramUniform3i64vARB">
> > +        <param name="program" type="GLuint"/>
> > +        <param name="location" type="GLint"/>
> > +        <param name="count" type="GLsizei"/>
> > +        <param name="value" type="const GLint64 *" count="count" count_scale="3"/>
> > +    </function>
> > +
> > +    <function name="ProgramUniform4i64vNV" alias="ProgramUniform4i64vARB">
> > +        <param name="program" type="GLuint"/>
> > +        <param name="location" type="GLint"/>
> > +        <param name="count" type="GLsizei"/>
> > +        <param name="value" type="const GLint64 *" count="count" count_scale="4"/>
> > +    </function>
> > +
> > +    <function name="ProgramUniform1ui64NV" alias="ProgramUniform1ui64ARB">
> > +        <param name="program" type="GLuint"/>
> > +        <param name="location" type="GLint"/>
> > +        <param name="x" type="GLuint64"/>
> > +    </function>
> > +
> > +    <function name="ProgramUniform2ui64NV" alias="ProgramUniform2ui64ARB">
> > +        <param name="program" type="GLuint"/>
> > +        <param name="location" type="GLint"/>
> > +        <param name="x" type="GLuint64"/>
> > +        <param name="y" type="GLuint64"/>
> > +    </function>
> > +
> > +    <function name="ProgramUniform3ui64NV" alias="ProgramUniform3ui64ARB">
> > +        <param name="program" type="GLuint"/>
> > +        <param name="location" type="GLint"/>
> > +        <param name="x" type="GLuint64"/>
> > +        <param name="y" type="GLuint64"/>
> > +        <param name="z" type="GLuint64"/>
> > +    </function>
> > +
> > +    <function name="ProgramUniform4ui64NV" alias="ProgramUniform4ui64ARB">
> > +        <param name="program" type="GLuint"/>
> > +        <param name="location" type="GLint"/>
> > +        <param name="x" type="GLuint64"/>
> > +        <param name="y" type="GLuint64"/>
> > +        <param name="z" type="GLuint64"/>
> > +        <param name="w" type="GLuint64"/>
> > +    </function>
> > +
> > +    <function name="ProgramUniform1ui64vNV" alias="ProgramUniform1ui64vARB">
> > +        <param name="program" type="GLuint"/>
> > +     <param name="location" type="GLint"/>
> > +        <param name="count" type="GLsizei"/>
> > +        <param name="value" type="const GLuint64 *" count="count"/>
> > +    </function>
> > +
> > +    <function name="ProgramUniform2ui64vNV" alias="ProgramUniform2ui64vARB">
> > +        <param name="program" type="GLuint"/>
> > +        <param name="location" type="GLint"/>
> > +        <param name="count" type="GLsizei"/>
> > +        <param name="value" type="const GLuint64 *" count="count" count_scale="2"/>
> > +    </function>
> > +
> > +    <function name="ProgramUniform3ui64vNV" alias="ProgramUniform3ui64vARB">
> > +        <param name="program" type="GLuint"/>
> > +        <param name="location" type="GLint"/>
> > +        <param name="count" type="GLsizei"/>
> > +        <param name="value" type="const GLuint64 *" count="count" count_scale="3"/>
> > +    </function>
> > +
> > +    <function name="ProgramUniform4ui64vNV" alias="ProgramUniform4ui64vARB">
> > +        <param name="program" type="GLuint"/>
> > +        <param name="location" type="GLint"/>
> > +        <param name="count" type="GLsizei"/>
> > +        <param name="value" type="const GLuint64 *" count="count" count_scale="4"/>
> > +    </function>
> > +
> > +</category>
> > +
> > +</OpenGLAPI>
> > +
> > diff --git a/src/mapi/glapi/gen/gl_API.xml b/src/mapi/glapi/gen/gl_API.xml
> > index 95680f1d466..a45fdc5ed98 100644
> > --- a/src/mapi/glapi/gen/gl_API.xml
> > +++ b/src/mapi/glapi/gen/gl_API.xml
> > @@ -12950,20 +12950,22 @@
> >  </category>
> >
> >  <category name="GL_NVX_gpu_memory_info" number="438">
> >      <enum name="GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX"         value="0x9047" />
> >      <enum name="GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX"   value="0x9048" />
> >      <enum name="GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX" value="0x9049" />
> >      <enum name="GPU_MEMORY_INFO_EVICTION_COUNT_NVX"           value="0x904A" />
> >      <enum name="GPU_MEMORY_INFO_EVICTED_MEMORY_NVX"           value="0x904B" />
> >  </category>
> >
> > +<xi:include href="AMD_gpu_shader_int64.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
> > +
> >  <category name="GL_NV_fill_rectangle" number="466">
> >      <enum name="FILL_RECTANGLE_NV" value="0x933C"/>
> >  </category>
> >
> >  <category name="GL_INTEL_conservative_rasterization" number="491">
> >    <enum name="CONSERVATIVE_RASTERIZATION_INTEL" value="0x83FE"/>
> >  </category>
> >
> >  <category name="GL_NV_conservative_raster" number="465">
> >      <enum name="CONSERVATIVE_RASTERIZATION_NV"       value="0x9346">
> > diff --git a/src/mesa/main/extensions_table.h b/src/mesa/main/extensions_table.h
> > index b4c1b203c57..326fa6dc473 100644
> > --- a/src/mesa/main/extensions_table.h
> > +++ b/src/mesa/main/extensions_table.h
> > @@ -4,20 +4,21 @@
> >  #define GLC 0
> >  #define ES1 0
> >  #define ES2 0
> >  #define  x ~0
> >
> >  EXT(3DFX_texture_compression_FXT1           , TDFX_texture_compression_FXT1          , GLL, GLC,  x ,  x , 1999)
> >
> >  EXT(AMD_conservative_depth                  , ARB_conservative_depth                 , GLL, GLC,  x ,  x , 2009)
> >  EXT(AMD_draw_buffers_blend                  , ARB_draw_buffers_blend                 , GLL, GLC,  x ,  x , 2009)
> >  EXT(AMD_framebuffer_multisample_advanced    , AMD_framebuffer_multisample_advanced   , GLL, GLC,  x , ES2, 2018)
> > +EXT(AMD_gpu_shader_int64                    , ARB_gpu_shader_int64                   ,  x , GLC,  x ,  x , 2015)
> >  EXT(AMD_performance_monitor                 , AMD_performance_monitor                , GLL, GLC,  x , ES2, 2007)
> >  EXT(AMD_pinned_memory                       , AMD_pinned_memory                      , GLL, GLC,  x ,  x , 2013)
> >  EXT(AMD_seamless_cubemap_per_texture        , AMD_seamless_cubemap_per_texture       , GLL, GLC,  x ,  x , 2009)
> >  EXT(AMD_shader_stencil_export               , ARB_shader_stencil_export              , GLL, GLC,  x ,  x , 2009)
> >  EXT(AMD_shader_trinary_minmax               , dummy_true                             , GLL, GLC,  x ,  x , 2012)
> >  EXT(AMD_vertex_shader_layer                 , AMD_vertex_shader_layer                , GLL, GLC,  x ,  x , 2012)
> >  EXT(AMD_vertex_shader_viewport_index        , AMD_vertex_shader_viewport_index       , GLL, GLC,  x ,  x , 2012)
> >
> >  EXT(ANDROID_extension_pack_es31a            , ANDROID_extension_pack_es31a           ,  x ,  x ,  x ,  31, 2014)
> >
> >
>


More information about the mesa-dev mailing list