15bd8deadSopenharmony_ciName
25bd8deadSopenharmony_ci
35bd8deadSopenharmony_ci    IMG_tile_region_protection
45bd8deadSopenharmony_ci
55bd8deadSopenharmony_ciName Strings
65bd8deadSopenharmony_ci
75bd8deadSopenharmony_ci    GL_IMG_tile_region_protection
85bd8deadSopenharmony_ci
95bd8deadSopenharmony_ciContact
105bd8deadSopenharmony_ci
115bd8deadSopenharmony_ci    Deepak Ravikumar, Imagination Technologies 
125bd8deadSopenharmony_ci    (deepak 'dot' ravikumar 'at' imgtec 'dot' com)
135bd8deadSopenharmony_ci
145bd8deadSopenharmony_ciContributors
155bd8deadSopenharmony_ci
165bd8deadSopenharmony_ci      Ian King, Imagination Technologies
175bd8deadSopenharmony_ci      (Ian 'dot' King 'at' imgtec 'dot' com)
185bd8deadSopenharmony_ci
195bd8deadSopenharmony_ciStatus
205bd8deadSopenharmony_ci
215bd8deadSopenharmony_ci    Complete.
225bd8deadSopenharmony_ci
235bd8deadSopenharmony_ciVersion
245bd8deadSopenharmony_ci
255bd8deadSopenharmony_ci    Last Modified Date: June 06, 2022
265bd8deadSopenharmony_ci    Revision: 1.0
275bd8deadSopenharmony_ci
285bd8deadSopenharmony_ciNumber
295bd8deadSopenharmony_ci
305bd8deadSopenharmony_ci    OpenGL SC Extension #1
315bd8deadSopenharmony_ci 
325bd8deadSopenharmony_ciDependencies
335bd8deadSopenharmony_ci
345bd8deadSopenharmony_ci    This extension is written against the OpenGL SC 2.0.1 
355bd8deadSopenharmony_ci    specification, EGL Version 1.4 specification and the
365bd8deadSopenharmony_ci    GLSL ES Shading Language 1.00 specification with limitations as 
375bd8deadSopenharmony_ci    specified in Appendix F of the OpenGL SC 2.0.1 specification.
385bd8deadSopenharmony_ci
395bd8deadSopenharmony_ciOverview
405bd8deadSopenharmony_ci
415bd8deadSopenharmony_ci    The safety-critical geometric primitives should have safety 
425bd8deadSopenharmony_ci    mechanisms to guard them against faults that may result in pixel 
435bd8deadSopenharmony_ci    corruption. On Imagination Technologies safety-critical Tile Based 
445bd8deadSopenharmony_ci    rendering GPUs, Tile Region Protection (TRP) safety mechanism 
455bd8deadSopenharmony_ci    performs safety integrity checks on all tiles that contain 
465bd8deadSopenharmony_ci    safety-critical geometries and detect faults in the rendering of 
475bd8deadSopenharmony_ci    these elements. This extension allows application to tag all its 
485bd8deadSopenharmony_ci    safety-critical geometric primitives as safety-related so as to run 
495bd8deadSopenharmony_ci    TRP safety checks on them and report faults in their rendering. 
505bd8deadSopenharmony_ci    Any faults reported by this extension can then be acted upon by the 
515bd8deadSopenharmony_ci    application. Depending on the hardware. TRP can detect either 
525bd8deadSopenharmony_ci    transient or both transient and permanent faults that occur during 
535bd8deadSopenharmony_ci    the rendering of these safety-critical elements.
545bd8deadSopenharmony_ci    
555bd8deadSopenharmony_ci    This extension provides application a way to specify all its 
565bd8deadSopenharmony_ci    safety-critical geometric primitives in order to enable the TRP
575bd8deadSopenharmony_ci    safety integrity checks on them, and thereby detect and report 
585bd8deadSopenharmony_ci    faults in their rendering.
595bd8deadSopenharmony_ci    
605bd8deadSopenharmony_ci    This extension also adds a read-only built-in boolean
615bd8deadSopenharmony_ci    gl_TRPIsProtected, to be used in the fragment shader to check if 
625bd8deadSopenharmony_ci    the tile is protected by TRP or not. This built-in allows 
635bd8deadSopenharmony_ci    developers to verify that all of the safety-critical geometric 
645bd8deadSopenharmony_ci    primitives are indeed protected by TRP. Shaders using the new 
655bd8deadSopenharmony_ci    functionality provided by this extension should enable this via
665bd8deadSopenharmony_ci    the construct,
675bd8deadSopenharmony_ci
685bd8deadSopenharmony_ci    #extension GL_IMG_tile_region_protection : require   (or enable)
695bd8deadSopenharmony_ci
705bd8deadSopenharmony_ciIP Status
715bd8deadSopenharmony_ci
725bd8deadSopenharmony_ci    Imagination Technologies Proprietary
735bd8deadSopenharmony_ci
745bd8deadSopenharmony_ciNew Procedures and Functions
755bd8deadSopenharmony_ci
765bd8deadSopenharmony_ci    None
775bd8deadSopenharmony_ci
785bd8deadSopenharmony_ciNew Types
795bd8deadSopenharmony_ci
805bd8deadSopenharmony_ci    None
815bd8deadSopenharmony_ci
825bd8deadSopenharmony_ciNew Tokens
835bd8deadSopenharmony_ci
845bd8deadSopenharmony_ci    Accepted by the <cap> parameter of Enable and Disable, 
855bd8deadSopenharmony_ci    <value> parameter of IsEnabled and by the <pname> parameter 
865bd8deadSopenharmony_ci    of GetBooleanv
875bd8deadSopenharmony_ci
885bd8deadSopenharmony_ci        GL_TRP_IMG                            0x8EA0
895bd8deadSopenharmony_ci    
905bd8deadSopenharmony_ci    Returned by GetGraphicsResetStatus
915bd8deadSopenharmony_ci
925bd8deadSopenharmony_ci        GL_TRP_ERROR_CONTEXT_RESET_IMG        0x8EA1
935bd8deadSopenharmony_ci
945bd8deadSopenharmony_ci    Returned by GetError
955bd8deadSopenharmony_ci
965bd8deadSopenharmony_ci        GL_TRP_UNSUPPORTED_CONTEXT_IMG        0x8EA2
975bd8deadSopenharmony_ci
985bd8deadSopenharmony_ci
995bd8deadSopenharmony_ciAdditions to Chapter 2 of the OpenGL SC 2.0.1 Specification
1005bd8deadSopenharmony_ci(OpenGL SC Operation)
1015bd8deadSopenharmony_ci
1025bd8deadSopenharmony_ci    Section 2.6 Graphics Reset Recovery Add below to the values
1035bd8deadSopenharmony_ci    that can be returned by GetGraphicsResetStatus
1045bd8deadSopenharmony_ci    
1055bd8deadSopenharmony_ci    TRP_ERROR_CONTEXT_RESET_IMG indicates that a reset has been detected
1065bd8deadSopenharmony_ci    due to a fault detected by TRP in a safety-critical render in the 
1075bd8deadSopenharmony_ci    current GL context.
1085bd8deadSopenharmony_ci
1095bd8deadSopenharmony_ci
1105bd8deadSopenharmony_ci    Table 2.3 Summary of GL errors add the below entry
1115bd8deadSopenharmony_ci
1125bd8deadSopenharmony_ci       Error                       Description     Offending 
1135bd8deadSopenharmony_ci                                                   command 
1145bd8deadSopenharmony_ci                                                   ignored?        Advisory Action
1155bd8deadSopenharmony_ci       -------------------         -----------     -----           -------------------       
1165bd8deadSopenharmony_ci      TRP_UNSUPPORTED_CONTEXT_IMG  TRP enable        Yes           Continue for
1175bd8deadSopenharmony_ci                                   failed due to                   non safety-critical
1185bd8deadSopenharmony_ci                                   context not                     renders.
1195bd8deadSopenharmony_ci                                   supporting                      Abort for
1205bd8deadSopenharmony_ci                                   robust buffer                   safety-critical
1215bd8deadSopenharmony_ci                                   and/or has                      renders.
1225bd8deadSopenharmony_ci                                   reset notifi-               
1235bd8deadSopenharmony_ci                                   cation other
1245bd8deadSopenharmony_ci                                   than
1255bd8deadSopenharmony_ci                                   LOSE_CONTEXT_ON_RESET                            
1265bd8deadSopenharmony_ci
1275bd8deadSopenharmony_ciAdditions to Chapter 4 of the OpenGL SC 2.0.1 Specification
1285bd8deadSopenharmony_ci(Per-Fragment Operations and the Frame Buffer)
1295bd8deadSopenharmony_ci
1305bd8deadSopenharmony_ci    Add Section 4.1.9 Tile Region Protection(TRP) after 
1315bd8deadSopenharmony_ci    4.1.8 "Additional Multisample Fragment Operations"
1325bd8deadSopenharmony_ci    
1335bd8deadSopenharmony_ci    Tile Region Protection performs safety checks during the 
1345bd8deadSopenharmony_ci    rendering of safety-critical geometric primitives, to protect them 
1355bd8deadSopenharmony_ci    from faults that may otherwise cause pixel data corruption and 
1365bd8deadSopenharmony_ci    result in the safety-critical elements being rendered incorrectly. 
1375bd8deadSopenharmony_ci    Depending on the hardware,TRP can detect either transient or both 
1385bd8deadSopenharmony_ci    transient and permanent faults that occur during the rendering of 
1395bd8deadSopenharmony_ci    these safety-critical elements.
1405bd8deadSopenharmony_ci
1415bd8deadSopenharmony_ci    TRP is enabled with the generic Enable command using the
1425bd8deadSopenharmony_ci    symbolic constant TRP_IMG before passing the safety-critical 
1435bd8deadSopenharmony_ci    sequence of geometric primitives to the GL. Once TRP is enabled, 
1445bd8deadSopenharmony_ci    all further sequence of geometric primitives passed to the GL are 
1455bd8deadSopenharmony_ci    treated as safety-critical. It can be disabled with the Disable 
1465bd8deadSopenharmony_ci    command using the same symbolic constant for the non safety-critical
1475bd8deadSopenharmony_ci    geometric primitives.
1485bd8deadSopenharmony_ci    
1495bd8deadSopenharmony_ci    TRP runs safety integrity checks during the rendering of the 
1505bd8deadSopenharmony_ci    specified safety-critical geometries. Any fault detected by TRP in 
1515bd8deadSopenharmony_ci    the rendering of these elements will result in a reset of the GL 
1525bd8deadSopenharmony_ci    context and any subsequent GL commands on that context will
1535bd8deadSopenharmony_ci    generate a CONTEXT_LOST error. In this case, GetGraphicsResetStatus 
1545bd8deadSopenharmony_ci    will return the value TRP_ERROR_CONTEXT_RESET_IMG. 
1555bd8deadSopenharmony_ci    
1565bd8deadSopenharmony_ci    TRP requires a graphic context with reset notification strategy
1575bd8deadSopenharmony_ci    set to LOSE_CONTEXT_ON_RESET and robust buffer access enabled 
1585bd8deadSopenharmony_ci    with CONTEXT_ROBUST_ACCESS_EXT set to True. 
1595bd8deadSopenharmony_ci    GL_TRP_UNSUPPORTED_CONTEXT_IMG error is generated if TRP is 
1605bd8deadSopenharmony_ci    enabled for a graphics context that does not have robust buffer
1615bd8deadSopenharmony_ci    access enabled (OPENGL_ROBUST_ACCESS_EXT set to False) or 
1625bd8deadSopenharmony_ci    that has reset notification strategy set to a value other than 
1635bd8deadSopenharmony_ci    LOSE_CONTEXT_ON_RESET
1645bd8deadSopenharmony_ci    
1655bd8deadSopenharmony_ci
1665bd8deadSopenharmony_ciAdditions to Chapter 6 of the OpenGL SC 2.0.1 Specification 
1675bd8deadSopenharmony_ci(State and State Requests)
1685bd8deadSopenharmony_ci
1695bd8deadSopenharmony_ci    Table 6.11. Pixel Operations (cont.) add the below entry
1705bd8deadSopenharmony_ci
1715bd8deadSopenharmony_ci                                        Initial
1725bd8deadSopenharmony_ci    Get Value        Type  Get Command  Value     Description          Section
1735bd8deadSopenharmony_ci    -------------------  ----  -----------  ------  -------------------     -------
1745bd8deadSopenharmony_ci    TRP_IMG           B     IsEnabled   False   Tile Region Protection  4.1.9
1755bd8deadSopenharmony_ci                                                enabled
1765bd8deadSopenharmony_ci
1775bd8deadSopenharmony_ci
1785bd8deadSopenharmony_ciAdditions to Chapter 7 of the OpenGL Shading Language 1.00 Specification
1795bd8deadSopenharmony_ci(Built-in Variables)
1805bd8deadSopenharmony_ci
1815bd8deadSopenharmony_ci    Added new built-in boolean to 7.2 Fragment Shader Special Variables 
1825bd8deadSopenharmony_ci    with the below description.
1835bd8deadSopenharmony_ci    
1845bd8deadSopenharmony_ci    The fragment shader has access to the read-only built-in variable
1855bd8deadSopenharmony_ci    gl_TRPIsProtected whose value is true for all fragments with window 
1865bd8deadSopenharmony_ci    relative coordinates falling inside a protected tile. At least one 
1875bd8deadSopenharmony_ci    square of an integer grid in window coordinates which are part of a 
1885bd8deadSopenharmony_ci    protected tile occupied by a geometric primitive is protected by 
1895bd8deadSopenharmony_ci    TRP safety checks.
1905bd8deadSopenharmony_ci
1915bd8deadSopenharmony_ci    The built-in variables that are accessible from a fragment shader 
1925bd8deadSopenharmony_ci    are intrinsically given types as follows:
1935bd8deadSopenharmony_ci    
1945bd8deadSopenharmony_ci    mediump vec4 gl_FragCoord;
1955bd8deadSopenharmony_ci    bool gl_FrontFacing;
1965bd8deadSopenharmony_ci    mediump vec4 gl_FragColor;
1975bd8deadSopenharmony_ci    mediump vec4 gl_FragData[gl_MaxDrawBuffers];
1985bd8deadSopenharmony_ci    mediump vec2 gl_PointCoord;
1995bd8deadSopenharmony_ci    bool gl_TRPIsProtected;
2005bd8deadSopenharmony_ci 
2015bd8deadSopenharmony_ciDependencies on GL and ES profiles, versions, and other extensions
2025bd8deadSopenharmony_ci
2035bd8deadSopenharmony_ci    None
2045bd8deadSopenharmony_ci   
2055bd8deadSopenharmony_ciErrors
2065bd8deadSopenharmony_ci
2075bd8deadSopenharmony_ci    TRP_UNSUPPORTED_CONTEXT_IMG error is generated if TRP is enabled for
2085bd8deadSopenharmony_ci    a graphic context for which the reset notification strategy 
2095bd8deadSopenharmony_ci    RESET_NOTIFICATION_STRATEGY_EXT is not LOSE_CONTEXT_ON_RESET and 
2105bd8deadSopenharmony_ci    robust buffer access CONTEXT_ROBUST_ACCESS is false.
2115bd8deadSopenharmony_ci
2125bd8deadSopenharmony_ciNew State
2135bd8deadSopenharmony_ci
2145bd8deadSopenharmony_ci    Table 6.11. Pixel Operations (cont.) add the below entry
2155bd8deadSopenharmony_ci
2165bd8deadSopenharmony_ci                                        Initial
2175bd8deadSopenharmony_ci    Get Value        Type  Get Command  Value     Description          Section
2185bd8deadSopenharmony_ci    -------------------  ----  -----------  ------  -------------------     -------
2195bd8deadSopenharmony_ci    TRP_IMG          B     IsEnabled    False   Tile Region Protection  4.1.9
2205bd8deadSopenharmony_ci                                                enabled
2215bd8deadSopenharmony_ci
2225bd8deadSopenharmony_ciNew Implementation Dependent State
2235bd8deadSopenharmony_ci
2245bd8deadSopenharmony_ci    None
2255bd8deadSopenharmony_ci
2265bd8deadSopenharmony_ciSample Code
2275bd8deadSopenharmony_ci
2285bd8deadSopenharmony_ci    The below code snippet illustrates the usage of this extension to 
2295bd8deadSopenharmony_ci    protect safety-critical sequence of geometric primitives.
2305bd8deadSopenharmony_ci    
2315bd8deadSopenharmony_ci    /* Step 1 Enable TRP */
2325bd8deadSopenharmony_ci    glEnable(GL_TRP_IMG);
2335bd8deadSopenharmony_ci    GLenum error = glGetError();
2345bd8deadSopenharmony_ci    if (error == (GLenum)GL_NO_ERROR)
2355bd8deadSopenharmony_ci    {
2365bd8deadSopenharmony_ci      /* Step 2 Submit commands for rendering the 
2375bd8deadSopenharmony_ci       * safety-critical sequence of geometric primitives.
2385bd8deadSopenharmony_ci       */
2395bd8deadSopenharmony_ci       ...
2405bd8deadSopenharmony_ci    }
2415bd8deadSopenharmony_ci
2425bd8deadSopenharmony_ci    /* Step 3 Disable TRP before submitting the
2435bd8deadSopenharmony_ci     * non safety-critical sequence of geometric primitives to GL.
2445bd8deadSopenharmony_ci     */
2455bd8deadSopenharmony_ci     glDisable(GL_TRP_IMG);
2465bd8deadSopenharmony_ci     ...
2475bd8deadSopenharmony_ci    /* End of non-safety critical geometry submission */
2485bd8deadSopenharmony_ci     
2495bd8deadSopenharmony_ci    /* Step 4  Upon completion of the submitted commands to GL,  
2505bd8deadSopenharmony_ci     * check status of the safety-critical renders
2515bd8deadSopenharmony_ci     */
2525bd8deadSopenharmony_ci    error = glGetError();
2535bd8deadSopenharmony_ci    if (error == (GLenum)GL_CONTEXT_LOST)
2545bd8deadSopenharmony_ci    {
2555bd8deadSopenharmony_ci      GLenum graphicResetReason = glGetGraphicsResetStatus();
2565bd8deadSopenharmony_ci      if (graphicResetReason == (GLenum)GL_TRP_ERROR_CONTEXT_RESET_IMG)
2575bd8deadSopenharmony_ci      {
2585bd8deadSopenharmony_ci        /* Step 4.5 Handle fault detected by TRP in 
2595bd8deadSopenharmony_ci         * safety-critical render
2605bd8deadSopenharmony_ci         */
2615bd8deadSopenharmony_ci      }
2625bd8deadSopenharmony_ci    }
2635bd8deadSopenharmony_ci    
2645bd8deadSopenharmony_ci    The fragment shader code snippet below illustrates how to identify
2655bd8deadSopenharmony_ci    if the tile is protected by TRP safety checks or not.
2665bd8deadSopenharmony_ci    
2675bd8deadSopenharmony_ci    #extension GL_IMG_tile_region_protection : enable
2685bd8deadSopenharmony_ci     
2695bd8deadSopenharmony_ci    void main()
2705bd8deadSopenharmony_ci    {
2715bd8deadSopenharmony_ci      outColour.rgb = vec3(0.0,1.0,0.0);
2725bd8deadSopenharmony_ci      /* Overlay safety protected tiles with green colour */
2735bd8deadSopenharmony_ci      outColour.a = gl_TRPIsProtected ? 0.5 : 0.0;
2745bd8deadSopenharmony_ci    }
2755bd8deadSopenharmony_ci
2765bd8deadSopenharmony_ciConformance Tests
2775bd8deadSopenharmony_ci
2785bd8deadSopenharmony_ci    GL2ExtensionTests/img_trp
2795bd8deadSopenharmony_ci
2805bd8deadSopenharmony_ciIssues
2815bd8deadSopenharmony_ci
2825bd8deadSopenharmony_ci    1) What should the default state of TRP_IMG be?
2835bd8deadSopenharmony_ci
2845bd8deadSopenharmony_ci       RESOLVED: If TRP_IMG default state was True, then every geometry 
2855bd8deadSopenharmony_ci       being rendered, irrespective of it being safety-critical or not, 
2865bd8deadSopenharmony_ci       will be treated as safety-related and safety integrity checks 
2875bd8deadSopenharmony_ci       would be run on them. This will have a negative effect on the 
2885bd8deadSopenharmony_ci       overall performance and would defeat the purpose of TRP, as TRP 
2895bd8deadSopenharmony_ci       is aimed at providing efficient and high performance 
2905bd8deadSopenharmony_ci       safety-critical rendering. Hence the default state of TRP_IMG is 
2915bd8deadSopenharmony_ci       false.
2925bd8deadSopenharmony_ci
2935bd8deadSopenharmony_ci       From an application perspective, TRP must be enabled before 
2945bd8deadSopenharmony_ci       submitting the safety-critical geometric primitives to the GL in 
2955bd8deadSopenharmony_ci       order to run the TRP safety integrity checks for them to detect 
2965bd8deadSopenharmony_ci       and report faults in their rendering. TRP should be disabled 
2975bd8deadSopenharmony_ci       before submitting non safety-critical sequence of geometric 
2985bd8deadSopenharmony_ci       primitives to the GL.
2995bd8deadSopenharmony_ci    
3005bd8deadSopenharmony_ci    2) How should the application react to a TRP_ERROR_CONTEXT_RESET_IMG 
3015bd8deadSopenharmony_ci       event?
3025bd8deadSopenharmony_ci
3035bd8deadSopenharmony_ci       RESOLVED: Application should treat TRP_ERROR_CONTEXT_RESET_IMG 
3045bd8deadSopenharmony_ci       similar to a context reset event and should not use the graphics 
3055bd8deadSopenharmony_ci       context for any further purpose. Recovery requires creating a new
3065bd8deadSopenharmony_ci       context and recreating all relevant states from the lost context.
3075bd8deadSopenharmony_ci
3085bd8deadSopenharmony_ci    3) How does this extension ensure freedom from interference 
3095bd8deadSopenharmony_ci       during the rendering of safety-critical sequence of geometric 
3105bd8deadSopenharmony_ci       primitives from faults that may arise from the rendering of 
3115bd8deadSopenharmony_ci       non-safety critical geometric primitives ?
3125bd8deadSopenharmony_ci
3135bd8deadSopenharmony_ci       RESOLVED: In order to ensure the integrity of rendering of 
3145bd8deadSopenharmony_ci       safety-critical sequence of geometric primitives, it is required 
3155bd8deadSopenharmony_ci       to ensure that there is freedom from interference during the 
3165bd8deadSopenharmony_ci       rendering of safety-critical geometric primitives from faults 
3175bd8deadSopenharmony_ci       that may have occurred during the rendering of 
3185bd8deadSopenharmony_ci       non safety-critical geometric primitives. Otherwise, such a fault
3195bd8deadSopenharmony_ci       might cause non safety-critical geometric primitives to occlude 
3205bd8deadSopenharmony_ci       the safety-critical geometries and prevent it from being 
3215bd8deadSopenharmony_ci       displayed correctly.
3225bd8deadSopenharmony_ci
3235bd8deadSopenharmony_ci       This extension can efficiently detect such faults from 
3245bd8deadSopenharmony_ci       interfering with the expected rendering of safety-critical 
3255bd8deadSopenharmony_ci       sequence of geometric primitives, provided the application has 
3265bd8deadSopenharmony_ci       tagged at least one of the submitted geometric primitive as 
3275bd8deadSopenharmony_ci       safety-related. However, if the application explicitly calls 
3285bd8deadSopenharmony_ci       Flush, Finish or Readnpixels to submit commands containing only 
3295bd8deadSopenharmony_ci       non safety-critical sequence of geometric primitives to the GPU 
3305bd8deadSopenharmony_ci       and then proceeds to add more geometric primitives, including 
3315bd8deadSopenharmony_ci       sequence of safety-critical geometric primitives, then, the TRP 
3325bd8deadSopenharmony_ci       extension will not be able to ensure freedom from interference 
3335bd8deadSopenharmony_ci       during the rendering of the safety-critical sequence of geometric
3345bd8deadSopenharmony_ci       primitives from faults that may have occurred from the rendering 
3355bd8deadSopenharmony_ci       of previously submitted non-safety critical geometric primitives. 
3365bd8deadSopenharmony_ci       In such use cases, the  application should add additional safety 
3375bd8deadSopenharmony_ci       mechanisms to verify that the safety-critical geometry rendering 
3385bd8deadSopenharmony_ci       was not affected by faults from non safety-critical sequence of 
3395bd8deadSopenharmony_ci       geometric primitives.
3405bd8deadSopenharmony_ci
3415bd8deadSopenharmony_ci       It is highly recommended to avoid such use cases where the 
3425bd8deadSopenharmony_ci       application explicitly submits all previously called commands 
3435bd8deadSopenharmony_ci       (eg by calling Flush, Finish or Readnpixels), containing only 
3445bd8deadSopenharmony_ci       non safety-critical sequence of geometric primitives to the GPU 
3455bd8deadSopenharmony_ci       and then adds more geometric primitives including sequence of 
3465bd8deadSopenharmony_ci       safety-critical geometries for rendering. The same also applies 
3475bd8deadSopenharmony_ci       for the case where the application explicitly submits 
3485bd8deadSopenharmony_ci       safety-critical sequence of geometric primitives and then
3495bd8deadSopenharmony_ci       adds further sequence of only non safety-critical 
3505bd8deadSopenharmony_ci       geometric primitives. This TRP extension is capable of 
3515bd8deadSopenharmony_ci       efficiently detecting rendering faults from non safety-critical 
3525bd8deadSopenharmony_ci       geometric primitives affecting safety-critical geometric 
3535bd8deadSopenharmony_ci       primitives rendering if it knows that there is at least one 
3545bd8deadSopenharmony_ci       safety-critical geometric primitive in the submitted sequence of 
3555bd8deadSopenharmony_ci       geometric primitives.
3565bd8deadSopenharmony_ci
3575bd8deadSopenharmony_ciRevision History
3585bd8deadSopenharmony_ci
3595bd8deadSopenharmony_ci      Revision 1.0, 06/06/2022 
3605bd8deadSopenharmony_ci      - Initial revision.
361