15bd8deadSopenharmony_ciName 25bd8deadSopenharmony_ci 35bd8deadSopenharmony_ci NV_render_depth_texture 45bd8deadSopenharmony_ci 55bd8deadSopenharmony_ciName Strings 65bd8deadSopenharmony_ci 75bd8deadSopenharmony_ci WGL_NV_render_depth_texture 85bd8deadSopenharmony_ci 95bd8deadSopenharmony_ciContact 105bd8deadSopenharmony_ci 115bd8deadSopenharmony_ci Pat Brown, NVIDIA Corporation (pbrown 'at' nvidia.com) 125bd8deadSopenharmony_ci 135bd8deadSopenharmony_ciNotice 145bd8deadSopenharmony_ci 155bd8deadSopenharmony_ci Copyright NVIDIA Corporation, 2001, 2002. 165bd8deadSopenharmony_ci 175bd8deadSopenharmony_ciStatus 185bd8deadSopenharmony_ci 195bd8deadSopenharmony_ci Shipping, March 2002. 205bd8deadSopenharmony_ci 215bd8deadSopenharmony_ciVersion 225bd8deadSopenharmony_ci 235bd8deadSopenharmony_ci Last Modified Date: 2003/01/08 245bd8deadSopenharmony_ci NVIDIA Revision: 1 255bd8deadSopenharmony_ci 265bd8deadSopenharmony_ciNumber 275bd8deadSopenharmony_ci 285bd8deadSopenharmony_ci 263 295bd8deadSopenharmony_ci 305bd8deadSopenharmony_ciDependencies 315bd8deadSopenharmony_ci 325bd8deadSopenharmony_ci OpenGL 1.1 is required. 335bd8deadSopenharmony_ci 345bd8deadSopenharmony_ci ARB_render_texture is required. 355bd8deadSopenharmony_ci 365bd8deadSopenharmony_ci SGIX_depth_texture is required. 375bd8deadSopenharmony_ci 385bd8deadSopenharmony_ci NV_render_texture_rectangle affects the definition of this extension. 395bd8deadSopenharmony_ci 405bd8deadSopenharmony_ciOverview 415bd8deadSopenharmony_ci 425bd8deadSopenharmony_ci This extension allows a depth buffer to be used for both rendering and 435bd8deadSopenharmony_ci texturing. It is built upon the ARB_render_texture extension; the only 445bd8deadSopenharmony_ci addition in this extension is the ability to use a depth buffer as a 455bd8deadSopenharmony_ci DEPTH_COMPONENT texture map. 465bd8deadSopenharmony_ci 475bd8deadSopenharmony_ciIssues 485bd8deadSopenharmony_ci 495bd8deadSopenharmony_ci In the ARB_render_texture spec, the number and size of physical depth 505bd8deadSopenharmony_ci buffers in a rendered texture is left undefined. From the 515bd8deadSopenharmony_ci ARB_render_texture specification: 525bd8deadSopenharmony_ci 535bd8deadSopenharmony_ci The contents of the depth and stencil buffers may not be preserved 545bd8deadSopenharmony_ci when rendering a texture to the pbuffer and switching which image 555bd8deadSopenharmony_ci of the texture is rendered to (e.g., switching from rendering one 565bd8deadSopenharmony_ci mipmap level to rendering another). 575bd8deadSopenharmony_ci 585bd8deadSopenharmony_ci That behavior is clearly unacceptable in an implementation where the 595bd8deadSopenharmony_ci rendered texture IS the depth buffer. 605bd8deadSopenharmony_ci 615bd8deadSopenharmony_ci RESOLVED: Yes, it needs to be fixed. This extension specifies that 625bd8deadSopenharmony_ci each mipmap level and cube map face gets its own depth buffer, whose 635bd8deadSopenharmony_ci contents are preserved when switching render targets. 645bd8deadSopenharmony_ci 655bd8deadSopenharmony_ci Should there be separate pixel format attributes for BIND_TO_TEXTURE_DEPTH 665bd8deadSopenharmony_ci and BIND_TO_TEXTURE_RECTANGLE_DEPTH? Or is a single attribute sufficient? 675bd8deadSopenharmony_ci 685bd8deadSopenharmony_ci RESOLVED: We should support separate capabilities, as done with the 695bd8deadSopenharmony_ci other formats. See the NV_render_texture_rectangle spec for more info. 705bd8deadSopenharmony_ci 715bd8deadSopenharmony_ci Should it be possible to have a single pbuffer support binding both color 725bd8deadSopenharmony_ci and depth buffers to textures? 735bd8deadSopenharmony_ci 745bd8deadSopenharmony_ci RESOLVED: Yes. This means that we must provide a separate 755bd8deadSopenharmony_ci DEPTH_TEXTURE_FORMAT attribute that must be set at pbuffer creation 765bd8deadSopenharmony_ci time, since using only the TEXTURE_FORMAT attribute would allow you to 775bd8deadSopenharmony_ci create a pbuffer supporting either color or depth textures, but not 785bd8deadSopenharmony_ci both. 795bd8deadSopenharmony_ci 805bd8deadSopenharmony_ci For double-buffered or stereo pixel formats that support binding to depth 815bd8deadSopenharmony_ci textures, how many depth buffers do you have? 825bd8deadSopenharmony_ci 835bd8deadSopenharmony_ci RESOLVED: There is only a single depth buffer for double-buffered or 845bd8deadSopenharmony_ci stereo pixel formats. Double buffering refers only to the number of 855bd8deadSopenharmony_ci color buffers. There will be multiple depth buffers only if the pbuffer 865bd8deadSopenharmony_ci is specified to support mipmaps or cube maps. 875bd8deadSopenharmony_ci 885bd8deadSopenharmony_ci What happens with multisample pixel formats, where the only depth buffer 895bd8deadSopenharmony_ci contains multiple samples per pixel? This issue is slightly different for 905bd8deadSopenharmony_ci rendered depth textures, since multisample pixel formats do contain 915bd8deadSopenharmony_ci "normal" color buffers in addition to the multisample buffer. 925bd8deadSopenharmony_ci 935bd8deadSopenharmony_ci UNRESOLVED. 945bd8deadSopenharmony_ci 955bd8deadSopenharmony_ciNew Procedures and Functions 965bd8deadSopenharmony_ci 975bd8deadSopenharmony_ci None. 985bd8deadSopenharmony_ci 995bd8deadSopenharmony_ciNew Tokens 1005bd8deadSopenharmony_ci 1015bd8deadSopenharmony_ci Accepted by the <piAttributes> parameter of wglGetPixelFormatAttribivARB, 1025bd8deadSopenharmony_ci wglGetPixelFormatAttribfvARB, and the <piAttribIList> and <pfAttribIList> 1035bd8deadSopenharmony_ci parameters of wglChoosePixelFormatARB: 1045bd8deadSopenharmony_ci 1055bd8deadSopenharmony_ci WGL_BIND_TO_TEXTURE_DEPTH_NV 0x20A3 1065bd8deadSopenharmony_ci WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV 0x20A4 1075bd8deadSopenharmony_ci 1085bd8deadSopenharmony_ci Accepted by the <piAttribList> parameter of wglCreatePbufferARB and 1095bd8deadSopenharmony_ci by the <iAttribute> parameter of wglQueryPbufferARB: 1105bd8deadSopenharmony_ci 1115bd8deadSopenharmony_ci WGL_DEPTH_TEXTURE_FORMAT_NV 0x20A5 1125bd8deadSopenharmony_ci 1135bd8deadSopenharmony_ci Accepted as a value in the <piAttribList> parameter of wglCreatePbufferARB 1145bd8deadSopenharmony_ci and returned in the value parameter of wglQueryPbufferARB when 1155bd8deadSopenharmony_ci <iAttribute> is WGL_DEPTH_TEXTURE_FORMAT_NV: 1165bd8deadSopenharmony_ci 1175bd8deadSopenharmony_ci WGL_TEXTURE_DEPTH_COMPONENT_NV 0x20A6 1185bd8deadSopenharmony_ci WGL_NO_TEXTURE_ARB 0x2077 1195bd8deadSopenharmony_ci 1205bd8deadSopenharmony_ci Accepted by the <iBuffer> parameter of wglBindTexImageARB: 1215bd8deadSopenharmony_ci 1225bd8deadSopenharmony_ci WGL_DEPTH_COMPONENT_NV 0x20A7 1235bd8deadSopenharmony_ci 1245bd8deadSopenharmony_ciAdditions to Chapter 2 of the OpenGL 1.2.1 Specification (OpenGL Operation) 1255bd8deadSopenharmony_ci 1265bd8deadSopenharmony_ci None. 1275bd8deadSopenharmony_ci 1285bd8deadSopenharmony_ciAdditions to Chapter 3 of the OpenGL 1.2.1 Specification (Rasterization) 1295bd8deadSopenharmony_ci 1305bd8deadSopenharmony_ci None. 1315bd8deadSopenharmony_ci 1325bd8deadSopenharmony_ciAdditions to Chapter 4 of the OpenGL 1.2.1 Specification (Per-Fragment 1335bd8deadSopenharmony_ciOperations and the Frame Buffer) 1345bd8deadSopenharmony_ci 1355bd8deadSopenharmony_ci None. 1365bd8deadSopenharmony_ci 1375bd8deadSopenharmony_ciAdditions to Chapter 5 of the OpenGL 1.2.1 Specification (Special Functions) 1385bd8deadSopenharmony_ci 1395bd8deadSopenharmony_ci None. 1405bd8deadSopenharmony_ci 1415bd8deadSopenharmony_ciAdditions to Chapter 6 of the OpenGL 1.2.1 Specification (State and State 1425bd8deadSopenharmony_ciRequests) 1435bd8deadSopenharmony_ci 1445bd8deadSopenharmony_ci None. 1455bd8deadSopenharmony_ci 1465bd8deadSopenharmony_ciAdditions to the WGL Specification 1475bd8deadSopenharmony_ci 1485bd8deadSopenharmony_ci First, close your eyes and pretend that a WGL specification actually 1495bd8deadSopenharmony_ci existed. Maybe if we all concentrate hard enough, one will magically 1505bd8deadSopenharmony_ci appear. 1515bd8deadSopenharmony_ci 1525bd8deadSopenharmony_ci 1535bd8deadSopenharmony_ci (Add to the description of <piAttributes> in wglGetPixelFormatAttribivARB 1545bd8deadSopenharmony_ci and <pfAttributes> in wglGetPixelFormatfv:) 1555bd8deadSopenharmony_ci 1565bd8deadSopenharmony_ci WGL_BIND_TO_TEXTURE_DEPTH_NV 1575bd8deadSopenharmony_ci WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV 1585bd8deadSopenharmony_ci 1595bd8deadSopenharmony_ci True if the depth buffer can be bound to a DEPTH_COMPONENT texture or 1605bd8deadSopenharmony_ci texture rectangle. Currently only pbuffers can be bound as textures 1615bd8deadSopenharmony_ci so this attribute will only be TRUE if WGL_DRAW_TO_PBUFFER is also 1625bd8deadSopenharmony_ci TRUE. 1635bd8deadSopenharmony_ci 1645bd8deadSopenharmony_ci 1655bd8deadSopenharmony_ci (Add new table entries to match criteria in description of 1665bd8deadSopenharmony_ci wglChoosePixelFormatARB:) 1675bd8deadSopenharmony_ci 1685bd8deadSopenharmony_ci Attribute Type Match Criteria 1695bd8deadSopenharmony_ci 1705bd8deadSopenharmony_ci WGL_BIND_TO_TEXTURE_DEPTH_NV boolean exact 1715bd8deadSopenharmony_ci WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV boolean exact 1725bd8deadSopenharmony_ci 1735bd8deadSopenharmony_ci 1745bd8deadSopenharmony_ci (In the wglCreatePbufferARB section, modify the attribute list) 1755bd8deadSopenharmony_ci 1765bd8deadSopenharmony_ci WGL_TEXTURE_FORMAT_ARB 1775bd8deadSopenharmony_ci 1785bd8deadSopenharmony_ci This attribute indicates the base internal format of the texture that 1795bd8deadSopenharmony_ci will be created when a color buffer of a pbuffer is bound to a texture 1805bd8deadSopenharmony_ci map. It can be set to WGL_TEXTURE_RGB_ARB (indicating an internal 1815bd8deadSopenharmony_ci format of RGB), WGL_TEXTURE_RGBA_ARB (indicating a base internal 1825bd8deadSopenharmony_ci format of RGBA), or WGL_NO_TEXTURE_ARB. The default value is 1835bd8deadSopenharmony_ci WGL_NO_TEXTURE_ARB. 1845bd8deadSopenharmony_ci 1855bd8deadSopenharmony_ci WGL_DEPTH_TEXTURE_FORMAT_NV 1865bd8deadSopenharmony_ci 1875bd8deadSopenharmony_ci This attribute indicates the base internal format of the texture that 1885bd8deadSopenharmony_ci will be created when the depth buffer of a pbuffer is bound to a 1895bd8deadSopenharmony_ci texture map. It can be set to WGL_TEXTURE_DEPTH_COMPONENT_NV 1905bd8deadSopenharmony_ci (indicating an internal format of DEPTH_COMPONENT), or 1915bd8deadSopenharmony_ci WGL_NO_TEXTURE_ARB. The default value is WGL_NO_TEXTURE_ARB. 1925bd8deadSopenharmony_ci 1935bd8deadSopenharmony_ci (In the wglCreatePbufferARB section, modify the discussion of what happens 1945bd8deadSopenharmony_ci to the depth/stencil/accum buffers when switching between mipmap levels or 1955bd8deadSopenharmony_ci cube map faces.) 1965bd8deadSopenharmony_ci 1975bd8deadSopenharmony_ci For pbuffers with a texture format of WGL_TEXTURE_RGB_ARB or 1985bd8deadSopenharmony_ci WGL_TEXTURE_RGBA_ARB, there will be a separate set of color buffers for 1995bd8deadSopenharmony_ci each mipmap level and cube map face in the pbuffer. Otherwise, the WGL 2005bd8deadSopenharmony_ci implementation is free to share a single set of color, auxillary, and 2015bd8deadSopenharmony_ci accumulation buffers between levels or faces. 2025bd8deadSopenharmony_ci 2035bd8deadSopenharmony_ci For pbuffers with a depth texture format of 2045bd8deadSopenharmony_ci WGL_TEXTURE_DEPTH_COMPONENT_NV, there will be a separate depth buffer for 2055bd8deadSopenharmony_ci each mipmap level and cube map face. Otherwise, the WGL implementation is 2065bd8deadSopenharmony_ci free to share a single depth buffer between levels or faces. 2075bd8deadSopenharmony_ci 2085bd8deadSopenharmony_ci The contents of any color or depth buffer that may be shared between faces 2095bd8deadSopenharmony_ci are undefined after switching between mipmap levels or cube map faces. 2105bd8deadSopenharmony_ci 2115bd8deadSopenharmony_ci (In the wglCreatePbufferARB section, add to the error list) 2125bd8deadSopenharmony_ci 2135bd8deadSopenharmony_ci ERROR_INVALID_DATA WGL_DEPTH_TEXTURE_FORMAT_NV is 2145bd8deadSopenharmony_ci WGL_TEXTURE_DEPTH_COMPONENT_NV, 2155bd8deadSopenharmony_ci WGL_TEXTURE_TARGET_ARB is 2165bd8deadSopenharmony_ci WGL_TEXTURE_RECTANGLE_NV, and the 2175bd8deadSopenharmony_ci WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV 2185bd8deadSopenharmony_ci attribute is not set in the pixel format. 2195bd8deadSopenharmony_ci 2205bd8deadSopenharmony_ci ERROR_INVALID_DATA WGL_DEPTH_TEXTURE_FORMAT_NV is 2215bd8deadSopenharmony_ci WGL_TEXTURE_DEPTH_COMPONENT_NV, 2225bd8deadSopenharmony_ci WGL_TEXTURE_TARGET_ARB is not 2235bd8deadSopenharmony_ci WGL_TEXTURE_RECTANGLE_NV, and the 2245bd8deadSopenharmony_ci WGL_BIND_TO_TEXTURE_DEPTH_NV attribute is not 2255bd8deadSopenharmony_ci set in the pixel format. 2265bd8deadSopenharmony_ci 2275bd8deadSopenharmony_ci (In the wglCreatePbufferARB section, modify the error list, replacing the 2285bd8deadSopenharmony_ci errors concerning texture format/target combinations with the following.) 2295bd8deadSopenharmony_ci 2305bd8deadSopenharmony_ci ERROR_INVALID_DATA WGL_TEXTURE_TARGET_ARB is WGL_NO_TEXTURE_ARB 2315bd8deadSopenharmony_ci and either WGL_TEXTURE_FORMAT_ARB or 2325bd8deadSopenharmony_ci WGL_DEPTH_TEXTURE_FORMAT_NV is not 2335bd8deadSopenharmony_ci WGL_NO_TEXTURE_ARB. 2345bd8deadSopenharmony_ci 2355bd8deadSopenharmony_ci ERROR_INVALID_DATA WGL_TEXTURE_TARGET_ARB is not 2365bd8deadSopenharmony_ci WGL_NO_TEXTURE_ARB and both 2375bd8deadSopenharmony_ci WGL_TEXTURE_FORMAT_ARB and 2385bd8deadSopenharmony_ci WGL_DEPTH_TEXTURE_FORMAT_NV are 2395bd8deadSopenharmony_ci WGL_NO_TEXTURE_ARB. 2405bd8deadSopenharmony_ci 2415bd8deadSopenharmony_ci Modify wglDestroyPbufferARB: 2425bd8deadSopenharmony_ci 2435bd8deadSopenharmony_ci A pbuffer is destroyed by calling 2445bd8deadSopenharmony_ci 2455bd8deadSopenharmony_ci BOOL wglDestroyPbufferARB(HPBUFFERARB hPbuffer); 2465bd8deadSopenharmony_ci 2475bd8deadSopenharmony_ci The pbuffer is destroyed once it is no longer current to any rendering 2485bd8deadSopenharmony_ci context and once all color and depth buffers that are bound to a 2495bd8deadSopenharmony_ci texture object have been released. When a pbuffer is destroyed, any 2505bd8deadSopenharmony_ci memory resources that are attached to it are freed and its handle is 2515bd8deadSopenharmony_ci no longer valid. 2525bd8deadSopenharmony_ci 2535bd8deadSopenharmony_ci .... 2545bd8deadSopenharmony_ci 2555bd8deadSopenharmony_ci Modify wglBindTexImageARB: 2565bd8deadSopenharmony_ci 2575bd8deadSopenharmony_ci ... 2585bd8deadSopenharmony_ci 2595bd8deadSopenharmony_ci The pbuffer attribute WGL_DEPTH_TEXTURE_FORMAT_NV determines the base 2605bd8deadSopenharmony_ci internal format of the depth texture. The format-specific component 2615bd8deadSopenharmony_ci sizes are also determined by pbuffer attributes as shown in the table 2625bd8deadSopenharmony_ci below. The component sizes are dependent on the format of the 2635bd8deadSopenharmony_ci texture. 2645bd8deadSopenharmony_ci 2655bd8deadSopenharmony_ci Texture Component Size Format 2665bd8deadSopenharmony_ci 2675bd8deadSopenharmony_ci D WGL_DEPTH_BITS_ARB DEPTH_COMPONENT 2685bd8deadSopenharmony_ci 2695bd8deadSopenharmony_ci 2705bd8deadSopenharmony_ci Table x.x: Size of texture components 2715bd8deadSopenharmony_ci 2725bd8deadSopenharmony_ci ... 2735bd8deadSopenharmony_ci 2745bd8deadSopenharmony_ci The possible values for <iBuffer> are WGL_FRONT_LEFT_ARB, 2755bd8deadSopenharmony_ci WGL_FRONT_RIGHT_ARB, WGL_BACK_LEFT_ARB, WGL_BACK_RIGHT_ARB, 2765bd8deadSopenharmony_ci WGL_DEPTH_COMPONENT_NV, and WGL_AUX0_ARB through WGL_AUXn_ARB. 2775bd8deadSopenharmony_ci 2785bd8deadSopenharmony_ci ... 2795bd8deadSopenharmony_ci 2805bd8deadSopenharmony_ci 2815bd8deadSopenharmony_ci (Modify paragraphs in wglBindTexImageARB section to include language about 2825bd8deadSopenharmony_ci allowing depth buffers) 2835bd8deadSopenharmony_ci 2845bd8deadSopenharmony_ci Note that the color or depth buffer is bound to a texture object. If the 2855bd8deadSopenharmony_ci texture object is shared between contexts, then the color or depth buffers 2865bd8deadSopenharmony_ci are also shared. If a texture object is deleted before 2875bd8deadSopenharmony_ci wglReleaseTexImageARB is called, then the color buffer is released and the 2885bd8deadSopenharmony_ci pbuffer is made available for reading and writing. 2895bd8deadSopenharmony_ci 2905bd8deadSopenharmony_ci It is not an error to call TexImage2D, TexImage1D, CopyTexImage1D or 2915bd8deadSopenharmony_ci CopyTexImage2D to replace an image of a texture object that has a color or 2925bd8deadSopenharmony_ci depth buffer bound to it. However, these calls will cause the color or 2935bd8deadSopenharmony_ci depth buffers to be released back to the pbuffer and new memory will be 2945bd8deadSopenharmony_ci allocated for the texture. Note that the color or depth buffer is released 2955bd8deadSopenharmony_ci even if the image that is being defined is a mipmap level that was not 2965bd8deadSopenharmony_ci defined by the color buffer. 2975bd8deadSopenharmony_ci 2985bd8deadSopenharmony_ci 2995bd8deadSopenharmony_ci (Modify wglReleaseTexImageARB section to include language allowing the 3005bd8deadSopenharmony_ci binding of depth buffers) 3015bd8deadSopenharmony_ci 3025bd8deadSopenharmony_ci To release a color or depth buffer that is being used as a texture call 3035bd8deadSopenharmony_ci 3045bd8deadSopenharmony_ci BOOL wglReleaseTexImageARB (HPBUFFERARB hPbuffer, int iBuffer) 3055bd8deadSopenharmony_ci 3065bd8deadSopenharmony_ci This releases the specified color or depth buffer back to the pbuffer. The 3075bd8deadSopenharmony_ci pbuffer is made available for reading and writing when it no longer has 3085bd8deadSopenharmony_ci any color or depth buffers bound as textures. 3095bd8deadSopenharmony_ci 3105bd8deadSopenharmony_ci <iBuffer> must be one of WGL_FRONT_LEFT_ARB, WGL_FRONT_RIGHT_ARB, 3115bd8deadSopenharmony_ci WGL_BACK_LEFT_ARB, WGL_BACK_RIGHT_ARB, WGL_DEPTH_COMPONENT_NV, or 3125bd8deadSopenharmony_ci WGL_AUX0_ARB through WGL_AUXn_ARB. 3135bd8deadSopenharmony_ci 3145bd8deadSopenharmony_ci The contents of the color or depth buffer being released are undefined 3155bd8deadSopenharmony_ci when it is first released. In particular, there is no guarantee that the 3165bd8deadSopenharmony_ci texture image is still present. However, the contents of other color, 3175bd8deadSopenharmony_ci depth, stencil, or accumulation buffers are unaffected when the color or 3185bd8deadSopenharmony_ci depth buffer is released. 3195bd8deadSopenharmony_ci 3205bd8deadSopenharmony_ci If the specified color or depth buffer is no longer bound to a texture 3215bd8deadSopenharmony_ci (e.g., because the texture object was deleted) then this call is a noop; 3225bd8deadSopenharmony_ci no error is generated. 3235bd8deadSopenharmony_ci 3245bd8deadSopenharmony_ci After a color or depth buffer is released from a texture (either 3255bd8deadSopenharmony_ci explicitly by calling wglReleaseTexImageARB or implicitly by calling a 3265bd8deadSopenharmony_ci routine such as TexImage2D), all texture images that were defined by the 3275bd8deadSopenharmony_ci color buffer become NULL (it is as if TexImage was called with an image of 3285bd8deadSopenharmony_ci zero width). 3295bd8deadSopenharmony_ci 3305bd8deadSopenharmony_ciNew State 3315bd8deadSopenharmony_ci 3325bd8deadSopenharmony_ci None 3335bd8deadSopenharmony_ci 3345bd8deadSopenharmony_ciDependencies on NV_render_texture_rectangle 3355bd8deadSopenharmony_ci 3365bd8deadSopenharmony_ci If NV_render_texture_rectangle is not supported, all references to texture 3375bd8deadSopenharmony_ci rectangles and WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV should be deleted. 3385bd8deadSopenharmony_ci 3395bd8deadSopenharmony_ciRevision History 3405bd8deadSopenharmony_ci 3415bd8deadSopenharmony_ci None 342