15bd8deadSopenharmony_ciName
25bd8deadSopenharmony_ci
35bd8deadSopenharmony_ci    NV_vertex_attrib_integer_64bit
45bd8deadSopenharmony_ci
55bd8deadSopenharmony_ciName Strings
65bd8deadSopenharmony_ci
75bd8deadSopenharmony_ci    GL_NV_vertex_attrib_integer_64bit
85bd8deadSopenharmony_ci
95bd8deadSopenharmony_ciContact
105bd8deadSopenharmony_ci
115bd8deadSopenharmony_ci    Jeff Bolz, NVIDIA (jbolz 'at' nvidia.com)
125bd8deadSopenharmony_ci
135bd8deadSopenharmony_ciContributors
145bd8deadSopenharmony_ci
155bd8deadSopenharmony_ci    Pat Brown, NVIDIA
165bd8deadSopenharmony_ci
175bd8deadSopenharmony_ciStatus
185bd8deadSopenharmony_ci
195bd8deadSopenharmony_ci    Shipping
205bd8deadSopenharmony_ci
215bd8deadSopenharmony_ciVersion
225bd8deadSopenharmony_ci
235bd8deadSopenharmony_ci    Last Modified Date:         03/21/2010
245bd8deadSopenharmony_ci    Revision:                   4
255bd8deadSopenharmony_ci
265bd8deadSopenharmony_ciNumber
275bd8deadSopenharmony_ci
285bd8deadSopenharmony_ci    392
295bd8deadSopenharmony_ci
305bd8deadSopenharmony_ciDependencies
315bd8deadSopenharmony_ci
325bd8deadSopenharmony_ci    This extension is written against the OpenGL 3.2 specification
335bd8deadSopenharmony_ci    (Compatibility Profile).
345bd8deadSopenharmony_ci
355bd8deadSopenharmony_ci    This extension is written against version 1.50 (revision 09) of the OpenGL
365bd8deadSopenharmony_ci    Shading Language Specification.
375bd8deadSopenharmony_ci
385bd8deadSopenharmony_ci    OpenGL 3.0 and GLSL 1.30 are required.
395bd8deadSopenharmony_ci
405bd8deadSopenharmony_ci    NV_gpu_shader5 or equivalent functionality is required.
415bd8deadSopenharmony_ci
425bd8deadSopenharmony_ci    This extension requires EXT_vertex_attrib_64bit.
435bd8deadSopenharmony_ci
445bd8deadSopenharmony_ci    This extension interacts with NV_vertex_buffer_unified_memory.
455bd8deadSopenharmony_ci
465bd8deadSopenharmony_ci    This extension interacts with NV_gpu_program5 and NV_gpu_shader5.
475bd8deadSopenharmony_ci
485bd8deadSopenharmony_ci    This extension interacts with EXT_vertex_attrib_64bit.
495bd8deadSopenharmony_ci
505bd8deadSopenharmony_ciOverview
515bd8deadSopenharmony_ci
525bd8deadSopenharmony_ci    This extension provides support for specifying vertex attributes with
535bd8deadSopenharmony_ci    64-bit integer components, analagous to the 64-bit floating point support
545bd8deadSopenharmony_ci    added in EXT_vertex_attrib_64bit.
555bd8deadSopenharmony_ci
565bd8deadSopenharmony_ci    Additionally, it provides the VertexAttribLFormatNV entry point to specify
575bd8deadSopenharmony_ci    bindless vertex attribute arrays with 64-bit integer or floating-point
585bd8deadSopenharmony_ci    components in conjunction with the NV_vertex_buffer_unified_memory
595bd8deadSopenharmony_ci    extension.
605bd8deadSopenharmony_ci
615bd8deadSopenharmony_ci
625bd8deadSopenharmony_ciNew Procedures and Functions
635bd8deadSopenharmony_ci
645bd8deadSopenharmony_ci    void VertexAttribL1i64NV(uint index, int64EXT x);
655bd8deadSopenharmony_ci    void VertexAttribL2i64NV(uint index, int64EXT x, int64EXT y);
665bd8deadSopenharmony_ci    void VertexAttribL3i64NV(uint index, int64EXT x, int64EXT y,
675bd8deadSopenharmony_ci                             int64EXT z);
685bd8deadSopenharmony_ci    void VertexAttribL4i64NV(uint index, int64EXT x, int64EXT y,
695bd8deadSopenharmony_ci                             int64EXT z, int64EXT w);
705bd8deadSopenharmony_ci    void VertexAttribL1i64vNV(uint index, const int64EXT *v);
715bd8deadSopenharmony_ci    void VertexAttribL2i64vNV(uint index, const int64EXT *v);
725bd8deadSopenharmony_ci    void VertexAttribL3i64vNV(uint index, const int64EXT *v);
735bd8deadSopenharmony_ci    void VertexAttribL4i64vNV(uint index, const int64EXT *v);
745bd8deadSopenharmony_ci
755bd8deadSopenharmony_ci    void VertexAttribL1ui64NV(uint index, uint64EXT x);
765bd8deadSopenharmony_ci    void VertexAttribL2ui64NV(uint index, uint64EXT x, uint64EXT y);
775bd8deadSopenharmony_ci    void VertexAttribL3ui64NV(uint index, uint64EXT x, uint64EXT y,
785bd8deadSopenharmony_ci                              uint64EXT z);
795bd8deadSopenharmony_ci    void VertexAttribL4ui64NV(uint index, uint64EXT x, uint64EXT y,
805bd8deadSopenharmony_ci                              uint64EXT z, uint64EXT w);
815bd8deadSopenharmony_ci    void VertexAttribL1ui64vNV(uint index, const uint64EXT *v);
825bd8deadSopenharmony_ci    void VertexAttribL2ui64vNV(uint index, const uint64EXT *v);
835bd8deadSopenharmony_ci    void VertexAttribL3ui64vNV(uint index, const uint64EXT *v);
845bd8deadSopenharmony_ci    void VertexAttribL4ui64vNV(uint index, const uint64EXT *v);
855bd8deadSopenharmony_ci
865bd8deadSopenharmony_ci    void GetVertexAttribLi64vNV(uint index, enum pname, int64EXT *params);
875bd8deadSopenharmony_ci    void GetVertexAttribLui64vNV(uint index, enum pname, uint64EXT *params);
885bd8deadSopenharmony_ci
895bd8deadSopenharmony_ci    void VertexAttribLFormatNV(uint index, int size, enum type, sizei stride);
905bd8deadSopenharmony_ci
915bd8deadSopenharmony_ci    (note:  VertexAttribLFormatNV is provided only if
925bd8deadSopenharmony_ci    NV_vertex_buffer_unified_memory is supported.)
935bd8deadSopenharmony_ci
945bd8deadSopenharmony_ci
955bd8deadSopenharmony_ciNew Tokens
965bd8deadSopenharmony_ci
975bd8deadSopenharmony_ci    Accepted by the <type> parameter of VertexAttribLPointerEXT,
985bd8deadSopenharmony_ci    VertexArrayVertexAttribLOffsetEXT, and VertexAttribLFormatNV:
995bd8deadSopenharmony_ci
1005bd8deadSopenharmony_ci        INT64_NV                                        0x140E
1015bd8deadSopenharmony_ci        UNSIGNED_INT64_NV                               0x140F
1025bd8deadSopenharmony_ci
1035bd8deadSopenharmony_ci
1045bd8deadSopenharmony_ciAdditions to Chapter 2 of the OpenGL 3.2 (Compatibility Profile) Specification
1055bd8deadSopenharmony_ci(OpenGL Operation)
1065bd8deadSopenharmony_ci
1075bd8deadSopenharmony_ci    Modify Section 2.7, Vertex Specification (p. 24)
1085bd8deadSopenharmony_ci
1095bd8deadSopenharmony_ci    (delete third paragraph, p. 33, beginning with "The resulting attribute
1105bd8deadSopenharmony_ci    values are undefined")
1115bd8deadSopenharmony_ci
1125bd8deadSopenharmony_ci    (rework the description of the VertexAttribI* commands, and add support
1135bd8deadSopenharmony_ci    for new VertexAttribL* commands, p. 33)
1145bd8deadSopenharmony_ci
1155bd8deadSopenharmony_ci    To load values into a generic shader attribute declared as a signed or
1165bd8deadSopenharmony_ci    unsigned integer or integer vector, except for 64-bit integer types, use
1175bd8deadSopenharmony_ci    the commands
1185bd8deadSopenharmony_ci
1195bd8deadSopenharmony_ci      void VertexAttribI{1,2,3,4}{i,ui}( uint index, T values );
1205bd8deadSopenharmony_ci      void VertexAttribI{1,2,3,4}{i,ui}v( uint index, T values );
1215bd8deadSopenharmony_ci      void VertexAttribI4{b,s,ub,us}v( uint index, T values );
1225bd8deadSopenharmony_ci
1235bd8deadSopenharmony_ci    These commands specify values that are extended to full signed or unsigned
1245bd8deadSopenharmony_ci    integers, then loaded into the generic attribute at slot index in the same
1255bd8deadSopenharmony_ci    fashion as described above.
1265bd8deadSopenharmony_ci
1275bd8deadSopenharmony_ci    To load values into a generic shader attribute declared as a double,
1285bd8deadSopenharmony_ci    64-bit signed integer, 64-bit unsigned integer, or into vectors or
1295bd8deadSopenharmony_ci    matrices thereof, use the commands
1305bd8deadSopenharmony_ci
1315bd8deadSopenharmony_ci      void VertexAttribL{1,2,3,4}dEXT(uint index, T values);
1325bd8deadSopenharmony_ci      void VertexAttribL{1,2,3,4}dvEXT(uint index, T values);
1335bd8deadSopenharmony_ci      void VertexAttribL{1,2,3,4}{i64,ui64}EXT(uint index, T values);
1345bd8deadSopenharmony_ci      void VertexAttribL{1,2,3,4}{i64,ui64}vEXT(uint index, T values);
1355bd8deadSopenharmony_ci
1365bd8deadSopenharmony_ci    These commands specify one, two, three or four values.  Note that attribute
1375bd8deadSopenharmony_ci    variables declared with "double" types must be loaded with
1385bd8deadSopenharmony_ci    VertexAttribL*d{v}EXT; loading attributes with VertexAttrib*d{v} will
1395bd8deadSopenharmony_ci    produce undefined results. Similarly, attributes declared with 64-bit 
1405bd8deadSopenharmony_ci    integer types must be loaded with VertexAttribL*{i64,ui64}{v}.
1415bd8deadSopenharmony_ci
1425bd8deadSopenharmony_ci    For all VertexAttrib* commands, the error INVALID_VALUE is generated if
1435bd8deadSopenharmony_ci    <index> is greater than or equal to MAX_VERTEX_ATTRIBS.
1445bd8deadSopenharmony_ci
1455bd8deadSopenharmony_ci    The full set of VertexAttrib* commands specify generic attributes with
1465bd8deadSopenharmony_ci    components one of six data types:
1475bd8deadSopenharmony_ci
1485bd8deadSopenharmony_ci      * floating-point values (VertexAttrib*),
1495bd8deadSopenharmony_ci      * signed or unsigned integers (VertexAttribI*),
1505bd8deadSopenharmony_ci      * double-precision floating-point values (VertexAttribL*d*), and
1515bd8deadSopenharmony_ci      * 64-bit signed or unsigned integers (VertexAttribL*{i64,ui64}*).
1525bd8deadSopenharmony_ci
1535bd8deadSopenharmony_ci    The values loaded into a shader attribute variable bound to generic
1545bd8deadSopenharmony_ci    attribute <index> are undefined if the data type of the attribute
1555bd8deadSopenharmony_ci    components specified by the most recent VertexAttrib* command do not match
1565bd8deadSopenharmony_ci    the data type of the variable.
1575bd8deadSopenharmony_ci
1585bd8deadSopenharmony_ci
1595bd8deadSopenharmony_ci    Modify Section 2.8, Vertex Arrays, p. 34
1605bd8deadSopenharmony_ci
1615bd8deadSopenharmony_ci    (insert new paragraph after first paragraph, p. 37)  
1625bd8deadSopenharmony_ci
1635bd8deadSopenharmony_ci    The command
1645bd8deadSopenharmony_ci
1655bd8deadSopenharmony_ci      void VertexAttribLPointerEXT(uint index, int size, enum type,
1665bd8deadSopenharmony_ci                                   sizei stride, const void *pointer);
1675bd8deadSopenharmony_ci
1685bd8deadSopenharmony_ci    specifies state for a generic vertex attribute array associated with a
1695bd8deadSopenharmony_ci    shader attribute variable declared with 64-bit double precision components.
1705bd8deadSopenharmony_ci    <type> must be one of DOUBLE, INT64_NV, or UNSIGNED_INT64_NV, specifying 
1715bd8deadSopenharmony_ci    components of type double, int64EXT, and uint64EXT, respectively. <index>, 
1725bd8deadSopenharmony_ci    <size>, and <stride> behave as defined in all other vertex commands; <size>
1735bd8deadSopenharmony_ci    may be one, two, three or four.
1745bd8deadSopenharmony_ci
1755bd8deadSopenharmony_ci    Each component of an array specified by VertexAttribLPointerEXT will be
1765bd8deadSopenharmony_ci    encoded into one or more generic attribute components as specified for the
1775bd8deadSopenharmony_ci    VertexAttribL* commands in Section 2.7.  The error INVALID_VALUE is
1785bd8deadSopenharmony_ci    generated if <index> is greater than or equal to MAX_VERTEX_ATTRIBS.
1795bd8deadSopenharmony_ci
1805bd8deadSopenharmony_ci
1815bd8deadSopenharmony_ci    Modify "Add to Section 2.9" edits from NV_vertex_buffer_unified_memory
1825bd8deadSopenharmony_ci
1835bd8deadSopenharmony_ci    (add to following to the list of *FormatNV commands)
1845bd8deadSopenharmony_ci
1855bd8deadSopenharmony_ci        void VertexAttribLFormatNV(uint index, int size, enum type,
1865bd8deadSopenharmony_ci                                   sizei stride);
1875bd8deadSopenharmony_ci
1885bd8deadSopenharmony_ci
1895bd8deadSopenharmony_ci    Modify Section 2.14.3, Vertex Attributes, p. 86
1905bd8deadSopenharmony_ci
1915bd8deadSopenharmony_ci    (replace last paragraph, p. 86)
1925bd8deadSopenharmony_ci
1935bd8deadSopenharmony_ci    When an attribute variable declared using one of the scalar or vector data
1945bd8deadSopenharmony_ci    types enumerated in Table X.1 and is bound to a generic attribute index
1955bd8deadSopenharmony_ci    <i>, its value(s) are taken from the components of generic attribute <i>.
1965bd8deadSopenharmony_ci    Scalars are extracted from the x component; two-, three-, and
1975bd8deadSopenharmony_ci    four-component vectors are extracted from the, (x, y), (x, y, z), or (x,
1985bd8deadSopenharmony_ci    y, z, w) components, respectively.
1995bd8deadSopenharmony_ci
2005bd8deadSopenharmony_ci      Data type                         Command
2015bd8deadSopenharmony_ci      -------------------------------   ----------------------------------
2025bd8deadSopenharmony_ci      int    int8_t  int16_t  int32_t   VertexAttribI1i
2035bd8deadSopenharmony_ci      ivec2  i8vec2  i16vec2  i32vec2   VertexAttribI2i
2045bd8deadSopenharmony_ci      ivec3  i8vec3  i16vec3  i32vec3   VertexAttribI3i
2055bd8deadSopenharmony_ci      ivec4  i8vec4  i16vec4  i32vec4   VertexAttribI4i
2065bd8deadSopenharmony_ci
2075bd8deadSopenharmony_ci      uint   uint8_t uint16_t uint32_t  VertexAttribI1ui
2085bd8deadSopenharmony_ci      ivec2  i8vec2  i16vec2  u32vec2   VertexAttribI2ui
2095bd8deadSopenharmony_ci      ivec3  i8vec3  i16vec3  u32vec3   VertexAttribI3ui
2105bd8deadSopenharmony_ci      uvec4  u8vec4  u16vec4  u32vec4   VertexAttribI4ui
2115bd8deadSopenharmony_ci
2125bd8deadSopenharmony_ci      float  int16_t  int32_t           VertexAttrib1{f,b,s,i,ub,us,ui,d}
2135bd8deadSopenharmony_ci      vec2   f16vec2  f32vec2           VertexAttrib2{f,b,s,i,ub,us,ui,d}
2145bd8deadSopenharmony_ci      vec3   f16vec3  f32vec3           VertexAttrib3{f,b,s,i,ub,us,ui,d}
2155bd8deadSopenharmony_ci      vec4   f16vec4  f32vec4           VertexAttrib4{f,b,s,i,ub,us,ui,d}
2165bd8deadSopenharmony_ci
2175bd8deadSopenharmony_ci      double    float64_t               VertexAttribL1dEXT
2185bd8deadSopenharmony_ci      dvec2     f64vec2                 VertexAttribL2dEXT
2195bd8deadSopenharmony_ci      dvec3     f64vec3                 VertexAttribL3dEXT
2205bd8deadSopenharmony_ci      dvec4     f64vec4                 VertexAttribL4dEXT
2215bd8deadSopenharmony_ci
2225bd8deadSopenharmony_ci      int64_t                           VertexAttribL1i64NV
2235bd8deadSopenharmony_ci      i64vec2                           VertexAttribL2i64NV
2245bd8deadSopenharmony_ci      i64vec3                           VertexAttribL3i64NV
2255bd8deadSopenharmony_ci      i64vec4                           VertexAttribL4i64NV
2265bd8deadSopenharmony_ci
2275bd8deadSopenharmony_ci      uint64_t                          VertexAttribL1ui64NV
2285bd8deadSopenharmony_ci      u64vec2                           VertexAttribL2ui64NV
2295bd8deadSopenharmony_ci      u64vec3                           VertexAttribL3ui64NV
2305bd8deadSopenharmony_ci      u64vec4                           VertexAttribL4ui64NV
2315bd8deadSopenharmony_ci
2325bd8deadSopenharmony_ci      Table X.1:  Scalar and vector vertex attribute types and VertexAttrib*
2335bd8deadSopenharmony_ci      commands used to set the values of the corresponding generic attribute.
2345bd8deadSopenharmony_ci
2355bd8deadSopenharmony_ci    For the 64-bit types listed in Table X.1, no default attribute values are 
2365bd8deadSopenharmony_ci    provided if the values of the vertex attribute variable are specified with 
2375bd8deadSopenharmony_ci    fewer components than required for the attribute variable.  For example, 
2385bd8deadSopenharmony_ci    the fourth component of a variable of type dvec4 will be undefined if 
2395bd8deadSopenharmony_ci    specified using VertexAttribL3dvEXT or using a vertex array specified with
2405bd8deadSopenharmony_ci    VertexAttribLPointerEXT and a size of three.
2415bd8deadSopenharmony_ci
2425bd8deadSopenharmony_ci
2435bd8deadSopenharmony_ciAdditions to Chapter 3 of the OpenGL 3.2 (Compatibility Profile) Specification
2445bd8deadSopenharmony_ci(Rasterization)
2455bd8deadSopenharmony_ci
2465bd8deadSopenharmony_ci    None.
2475bd8deadSopenharmony_ci
2485bd8deadSopenharmony_ciAdditions to Chapter 4 of the OpenGL 3.2 (Compatibility Profile) Specification
2495bd8deadSopenharmony_ci(Per-Fragment Operations and the Frame Buffer)
2505bd8deadSopenharmony_ci
2515bd8deadSopenharmony_ci    None.
2525bd8deadSopenharmony_ci
2535bd8deadSopenharmony_ciAdditions to Chapter 5 of the OpenGL 3.2 (Compatibility Profile) Specification
2545bd8deadSopenharmony_ci(Special Functions)
2555bd8deadSopenharmony_ci
2565bd8deadSopenharmony_ci    None.
2575bd8deadSopenharmony_ci
2585bd8deadSopenharmony_ciAdditions to Chapter 6 of the OpenGL 3.2 (Compatibility Profile) Specification
2595bd8deadSopenharmony_ci(State and State Requests)
2605bd8deadSopenharmony_ci
2615bd8deadSopenharmony_ci    Modify Section 6.1.15, Shader and Program Queries, p. 384
2625bd8deadSopenharmony_ci
2635bd8deadSopenharmony_ci    (add to the last list of commands, p. 387)
2645bd8deadSopenharmony_ci
2655bd8deadSopenharmony_ci      void GetVertexAttribLi64vNV(uint index, enum pname, int64EXT *params);
2665bd8deadSopenharmony_ci      void GetVertexAttribLui64vNV(uint index, enum pname, uint64EXT *params);
2675bd8deadSopenharmony_ci
2685bd8deadSopenharmony_ci    (modify the third paragraph, p. 388) The query CURRENT_VERTEX_ATTRIB
2695bd8deadSopenharmony_ci    returns the current value for the generic attribute
2705bd8deadSopenharmony_ci    <index>. GetVertexAttribdv and GetVertexAttribfv read and return the
2715bd8deadSopenharmony_ci    current attribute values as four single-precision floating-point values;
2725bd8deadSopenharmony_ci    GetVertexAttribiv reads them as floating-point values and converts them to
2735bd8deadSopenharmony_ci    four integer values; GetVertexAttribIiv reads and returns them as signed
2745bd8deadSopenharmony_ci    integers; GetVertexAttribIuiv reads and returns them as four unsigned
2755bd8deadSopenharmony_ci    integers; GetVertexAttribLdvEXT reads and returns them as four double-
2765bd8deadSopenharmony_ci    precision floating-point values.  GetVertexAttribLi64vNV reads and returns 
2775bd8deadSopenharmony_ci    them as four 64-bit signed integer values.  GetVertexAttribLui64vNV reads 
2785bd8deadSopenharmony_ci    and returns them as four 64-bit unsigned integer values.  The results of 
2795bd8deadSopenharmony_ci    the query are undefined if the current attribute values are read using one 
2805bd8deadSopenharmony_ci    data type but were specified using a different one.  The error 
2815bd8deadSopenharmony_ci    INVALID_OPERATION is generated if index is zero, as there is no current 
2825bd8deadSopenharmony_ci    value for generic attribute zero.
2835bd8deadSopenharmony_ci
2845bd8deadSopenharmony_ci
2855bd8deadSopenharmony_ciAdditions to Appendix A of the OpenGL 3.2 (Compatibility Profile)
2865bd8deadSopenharmony_ciSpecification (Invariance)
2875bd8deadSopenharmony_ci
2885bd8deadSopenharmony_ci    None.
2895bd8deadSopenharmony_ci
2905bd8deadSopenharmony_ciAdditions to the AGL/GLX/WGL Specifications
2915bd8deadSopenharmony_ci
2925bd8deadSopenharmony_ci    None.
2935bd8deadSopenharmony_ci
2945bd8deadSopenharmony_ciGLX Protocol
2955bd8deadSopenharmony_ci
2965bd8deadSopenharmony_ci    TBD
2975bd8deadSopenharmony_ci
2985bd8deadSopenharmony_ciDependencies on NV_vertex_buffer_unified_memory
2995bd8deadSopenharmony_ci
3005bd8deadSopenharmony_ci    If NV_vertex_buffer_unified_memory is not supported, remove the
3015bd8deadSopenharmony_ci    VertexAttribLFormatNV command.
3025bd8deadSopenharmony_ci
3035bd8deadSopenharmony_ciDependencies on NV_gpu_program5 and NV_gpu_shader5
3045bd8deadSopenharmony_ci
3055bd8deadSopenharmony_ci    This extension provides the ability to specify the values of vertex
3065bd8deadSopenharmony_ci    attributes with 64-bit components.  To use these vertex attributes,
3075bd8deadSopenharmony_ci    separate extensions are required to read the values.  The NV_gpu_program5
3085bd8deadSopenharmony_ci    extension provides support for 64-bit integer inputs in assembly programs;
3095bd8deadSopenharmony_ci    NV_gpu_shader5 provides similar support for GLSL vertex shaders.  To
3105bd8deadSopenharmony_ci    enable this capability in a GLSL vertex shader on implementations
3115bd8deadSopenharmony_ci    supporting NV_gpu_shader5, it is necessary to include
3125bd8deadSopenharmony_ci
3135bd8deadSopenharmony_ci      #extension GL_NV_gpu_shader5 : enable
3145bd8deadSopenharmony_ci
3155bd8deadSopenharmony_ci    in the vertex shader text.  The NV_vertex_attrib_integer_64bit extension
3165bd8deadSopenharmony_ci    does not provide any separate new GLSL capabilities and can not be used
3175bd8deadSopenharmony_ci    with "#extension".
3185bd8deadSopenharmony_ci
3195bd8deadSopenharmony_ci    64-bit components are not supported by the fixed-function vertex
3205bd8deadSopenharmony_ci    processing pipeline stage.
3215bd8deadSopenharmony_ci
3225bd8deadSopenharmony_ciDependencies on EXT_vertex_attrib_64bit
3235bd8deadSopenharmony_ci
3245bd8deadSopenharmony_ci    If EXT_vertex_attrib_64bit is supported, vertex shaders are permitted to
3255bd8deadSopenharmony_ci    use 64-bit floating-point components for their inputs.  
3265bd8deadSopenharmony_ci
3275bd8deadSopenharmony_ci    Even if an application only uses 64-bit floating-point values in their
3285bd8deadSopenharmony_ci    vertex shader, this extension may still be useful.  In particular, it
3295bd8deadSopenharmony_ci    provides the VertexAttribLFormatNV function, which allows the "bindless"
3305bd8deadSopenharmony_ci    vertex attribute array support provided by the
3315bd8deadSopenharmony_ci    NV_vertex_buffer_unified_memory extension to be used with 64-bit
3325bd8deadSopenharmony_ci    components, integer or floating-point.
3335bd8deadSopenharmony_ci
3345bd8deadSopenharmony_ciErrors
3355bd8deadSopenharmony_ci
3365bd8deadSopenharmony_ci    None.
3375bd8deadSopenharmony_ci
3385bd8deadSopenharmony_ciNew State
3395bd8deadSopenharmony_ci
3405bd8deadSopenharmony_ci    None.
3415bd8deadSopenharmony_ci
3425bd8deadSopenharmony_ciNew Implementation Dependent State
3435bd8deadSopenharmony_ci
3445bd8deadSopenharmony_ci    None.
3455bd8deadSopenharmony_ci
3465bd8deadSopenharmony_ciIssues
3475bd8deadSopenharmony_ci
3485bd8deadSopenharmony_ci    (1) What GLSL "#extension" should be required to enable 64-bit integer
3495bd8deadSopenharmony_ci        vertex sahder inputs. 
3505bd8deadSopenharmony_ci
3515bd8deadSopenharmony_ci      RESOLVED:  NV_gpu_shader5 provides general-purpose support for 64-bit
3525bd8deadSopenharmony_ci      integer types in shaders, and we have written it to explicitly permit
3535bd8deadSopenharmony_ci      64-bit integer vertex shader inputs.  Since this is the only GLSL
3545bd8deadSopenharmony_ci      capability required for this extension and NV_gpu_shader5 or equivalent
3555bd8deadSopenharmony_ci      functionality is required, there is no separate "#extension" provided
3565bd8deadSopenharmony_ci      for just this extension.
3575bd8deadSopenharmony_ci
3585bd8deadSopenharmony_ci
3595bd8deadSopenharmony_ciRevision History
3605bd8deadSopenharmony_ci
3615bd8deadSopenharmony_ci    Rev.    Date    Author    Changes
3625bd8deadSopenharmony_ci    ----  --------  --------  -----------------------------------------
3635bd8deadSopenharmony_ci     4    03/21/10  pbrown    Minor wording updates to the spec overview, 
3645bd8deadSopenharmony_ci                              dependencies, issues, and body.
3655bd8deadSopenharmony_ci
3665bd8deadSopenharmony_ci     3    03/08/10  pbrown    Rename to "NV_vertex_attrib_integer_64bit" to
3675bd8deadSopenharmony_ci                              avoid possible confusion with the floating-
3685bd8deadSopenharmony_ci                              point EXT_vertex_attrib_64bit.  The previous
3695bd8deadSopenharmony_ci                              spec name was "NV_vertex_attrib_64bit".
3705bd8deadSopenharmony_ci
3715bd8deadSopenharmony_ci     2       --     jbolz     Rewrite as (u)int64-only extension of EXT.
3725bd8deadSopenharmony_ci
3735bd8deadSopenharmony_ci     1       --     pbrown    Internal revisions.
3745bd8deadSopenharmony_ci
3755bd8deadSopenharmony_ci
376