Hash :
067ace47
        
        Author :
  
        
        Date :
2022-12-21T00:00:00
        
      
Add ANGLE_clip_cull_distance extension Added an extension spec. Trivially exposed it on GL, Vulkan, and D3D11. Adjusted tests and validation to allow no cull distance support for this extension string. Removed extra built-in variable definitions. Bug: angleproject:7904 Change-Id: Ic60772dfe28132c316eaa29aadc1afd66e3b0fa7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4114290 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114
Name
    ANGLE_clip_cull_distance
Name Strings
    GL_ANGLE_clip_cull_distance
Contributors
    Contributors to EXT_clip_cull_distance
    Members of the WebGL working group
Status
    Draft
Version
    Last Modified Date: December 1, 2022
    Revision: 1
Number
    OpenGL ES Extension XX
Dependencies
    This specification is written against the OpenGL ES 3.2 Specification
    (May 5, 2022), and the OpenGL ES 3.20 Shading Language Specification
    (July 10, 2019) but can apply to prior specifications.
    OpenGL ES 3.0 and OpenGL ES Shading Language 3.00 are required.
Overview
    This extension has the same semantics as EXT_clip_cull_distance but
    the number of supported cull distances may be zero.
New Procedures and Functions
    None
New Tokens
    Accepted by the <pname> parameters of GetBooleanv, GetIntegerv,
    GetInteger64v, and GetFloatv:
        MAX_CLIP_DISTANCES_ANGLE                          0x0D32
        MAX_CULL_DISTANCES_ANGLE                          0x82F9
        MAX_COMBINED_CLIP_AND_CULL_DISTANCES_ANGLE        0x82FA
    Accepted by the <pname> parameters of Enable, Disable and IsEnabled:
        CLIP_DISTANCE0_ANGLE           0x3000
        CLIP_DISTANCE1_ANGLE           0x3001
        CLIP_DISTANCE2_ANGLE           0x3002
        CLIP_DISTANCE3_ANGLE           0x3003
        CLIP_DISTANCE4_ANGLE           0x3004
        CLIP_DISTANCE5_ANGLE           0x3005
        CLIP_DISTANCE6_ANGLE           0x3006
        CLIP_DISTANCE7_ANGLE           0x3007
Additions to OpenGL ES Shading Language 3.20 Specification
    Including the following line in a shader can be used to control
    the language features described in this extension:
        #extension GL_ANGLE_clip_cull_distance : <behavior>
    where <behavior> is as described in section 3.4.
    A new preprocessor #define is added to the OpenGL ES Shading Language:
        #define GL_ANGLE_clip_cull_distance 1
    Other additions follow the EXT_clip_cull_distance specification.
Dependencies on cull distance support
    If cull distances are not supported, querying MAX_CULL_DISTANCES_ANGLE
    and MAX_COMBINED_CLIP_AND_CULL_DISTANCES_ANGLE must return zero, the
    built-in constants gl_MaxCullDistances and gl_MaxCombinedClipAndCullDistances
    are defined as zero, and gl_CullDistance must not be used in shaders.
New State
    Add the following to Table 21.6 (Transformation State):
                                            Initial
    Get Value            Type   Get Command Value    Description       Sec.
    -------------------- ------ ----------- -------- ----------------- ----
    CLIP_DISTANCEi_ANGLE 8* x B IsEnabled   FALSE    ith user clip     12.5
                                                     distance enabled
New Implementation Dependent State
    Add the following to Table 21.40 (Implementation Dependent Values):
                                              Minimum
    Get Value                Type Get Command Value    Description       Sec.
    ------------------------ ---- ----------- -------- ----------------- ----
    MAX_CLIP_DISTANCES_ANGLE Z+   GetIntegerv 8        Max. no. of user  12.5
                                                       clip distances
    MAX_CULL_DISTANCES_ANGLE Z+   GetIntegerv 0        Max. no. of user  12.5
                                                       cull distances
    MAX_COMBINED_CLIP_AND-   Z+   GetIntegerv 0        Max. combined no. 12.5
    _CULL_DISTANCES_ANGLE                              of user clip and
                                                       cull distances
Revision History
    12/1/2022   First revision