15bd8deadSopenharmony_ciName 25bd8deadSopenharmony_ci 35bd8deadSopenharmony_ci NV_vdpau_interop2 45bd8deadSopenharmony_ci 55bd8deadSopenharmony_ciName Strings 65bd8deadSopenharmony_ci 75bd8deadSopenharmony_ci GL_NV_vdpau_interop2 85bd8deadSopenharmony_ci 95bd8deadSopenharmony_ciContributors 105bd8deadSopenharmony_ci 115bd8deadSopenharmony_ci Manoj Gupta Bonda, NVIDIA 125bd8deadSopenharmony_ci James Jones, NVIDIA 135bd8deadSopenharmony_ci 145bd8deadSopenharmony_ciContact 155bd8deadSopenharmony_ci 165bd8deadSopenharmony_ci Manoj Gupta Bonda, NVIDIA (mbonda 'at' nvidia.com) 175bd8deadSopenharmony_ci 185bd8deadSopenharmony_ciStatus 195bd8deadSopenharmony_ci 205bd8deadSopenharmony_ci Complete 215bd8deadSopenharmony_ci 225bd8deadSopenharmony_ciVersion 235bd8deadSopenharmony_ci 245bd8deadSopenharmony_ci 1 (2 Oct 2018) 255bd8deadSopenharmony_ci 265bd8deadSopenharmony_ciNumber 275bd8deadSopenharmony_ci 285bd8deadSopenharmony_ci OpenGL Extension #533 295bd8deadSopenharmony_ci 305bd8deadSopenharmony_ciDependencies 315bd8deadSopenharmony_ci 325bd8deadSopenharmony_ci This extension is written against the OpenGL 4.6 Specification 335bd8deadSopenharmony_ci (Compatibility Profile), dated July 30, 2017. 345bd8deadSopenharmony_ci but can apply to OpenGL 1.1 and up. 355bd8deadSopenharmony_ci 365bd8deadSopenharmony_ci OpenGL 1.1 is required. 375bd8deadSopenharmony_ci GL_NV_vdpau_interop is required. 385bd8deadSopenharmony_ci GL_EXT_framebuffer_object affects the definition of this extension. 395bd8deadSopenharmony_ci GL_ARB_texture_rectangle affects the definition of this extension. 405bd8deadSopenharmony_ci GL_ARB_texture_non_power_of_two affects the definition of this 415bd8deadSopenharmony_ci extension. 425bd8deadSopenharmony_ci 435bd8deadSopenharmony_ciOverview 445bd8deadSopenharmony_ci 455bd8deadSopenharmony_ci This extension allows VDPAU video surfaces to be used 465bd8deadSopenharmony_ci either with frame or field structures for texturing and rendering. 475bd8deadSopenharmony_ci 485bd8deadSopenharmony_ciIP Status 495bd8deadSopenharmony_ci 505bd8deadSopenharmony_ci There are no known IP issues. 515bd8deadSopenharmony_ci 525bd8deadSopenharmony_ciNew Types 535bd8deadSopenharmony_ci 545bd8deadSopenharmony_ci None 555bd8deadSopenharmony_ci 565bd8deadSopenharmony_ciNew Procedures and Functions 575bd8deadSopenharmony_ci 585bd8deadSopenharmony_ci 595bd8deadSopenharmony_ci vdpauSurfaceNV VDPAURegisterVideoSurfaceWithPictureStructureNV (const void *vdpSurface, 605bd8deadSopenharmony_ci enum target, 615bd8deadSopenharmony_ci sizei numTextureNames, 625bd8deadSopenharmony_ci const uint *textureNames, 635bd8deadSopenharmony_ci boolean isFrameStructure); 645bd8deadSopenharmony_ci 655bd8deadSopenharmony_ciNew Tokens 665bd8deadSopenharmony_ci 675bd8deadSopenharmony_ci None 685bd8deadSopenharmony_ci 695bd8deadSopenharmony_ciAdditions to Chapter 8 of the OpenGL 4.6 (unabridged) Specification 705bd8deadSopenharmony_ci(Textures and Samplers) 715bd8deadSopenharmony_ci 725bd8deadSopenharmony_ci Replace the paragraph that begins with 'The command 735bd8deadSopenharmony_ci vdpauSurfaceNV VDPAURegisterVideoSurfaceNV' and the following two paragraphs, 745bd8deadSopenharmony_ci including table 3.8.3.1, with the following: 755bd8deadSopenharmony_ci 765bd8deadSopenharmony_ci The commands 775bd8deadSopenharmony_ci 785bd8deadSopenharmony_ci vdpauSurfaceNV VDPAURegisterVideoSurfaceNV (const void *vdpSurface, 795bd8deadSopenharmony_ci enum target, 805bd8deadSopenharmony_ci sizei numTextureNames, 815bd8deadSopenharmony_ci const uint *textureNames); 825bd8deadSopenharmony_ci 835bd8deadSopenharmony_ci vdpauSurfaceNV VDPAURegisterVideoSurfaceWithPictureStructureNV (const void *vdpSurface, 845bd8deadSopenharmony_ci enum target, 855bd8deadSopenharmony_ci sizei numTextureNames, 865bd8deadSopenharmony_ci const uint *textureNames, 875bd8deadSopenharmony_ci boolean isFrameStructure); 885bd8deadSopenharmony_ci 895bd8deadSopenharmony_ci defines a set of two-dimensional textures, where the image data may 905bd8deadSopenharmony_ci be taken from the VdpVideoSurface <vdpSurface>. <target> must be 915bd8deadSopenharmony_ci one of TEXTURE_2D or TEXTURE_RECTANGLE. <numTextureNames> 925bd8deadSopenharmony_ci determines how many textures are defined. <textureNames> contains 935bd8deadSopenharmony_ci the names of the textures that are defined. The surface is 945bd8deadSopenharmony_ci transitioned into the registered state. 955bd8deadSopenharmony_ci 965bd8deadSopenharmony_ci VDPAURegisterVideoSurfaceNV is equivalent to calling 975bd8deadSopenharmony_ci VDPAURegisterVideoSurfaceWithPictureStructureNV with <isFrameStructure> 985bd8deadSopenharmony_ci set to FALSE. 995bd8deadSopenharmony_ci 1005bd8deadSopenharmony_ci Legal values for <numTextureNames>,<isFrameStructure> are derived from the 1015bd8deadSopenharmony_ci VdpChromaType of <vdpSurface>, as defined in table 8.7.1. 1025bd8deadSopenharmony_ci 1035bd8deadSopenharmony_ci Internal 1045bd8deadSopenharmony_ci VdpChromaType numTextureNames isFrameStructure Index Size Format Content 1055bd8deadSopenharmony_ci ------------- --------------- ---------------- ----- ---- -------- ------------------- 1065bd8deadSopenharmony_ci VDP_CHROMA_TYPE_420 4 0 0 w x h/2 R8 Top-field luma 1075bd8deadSopenharmony_ci 1 w x h/2 R8 Bottom-field luma 1085bd8deadSopenharmony_ci 2 w/2 x h/4 R8G8 Top-field chroma 1095bd8deadSopenharmony_ci 3 w/2 x h/4 R8G8 Bottom-field chroma 1105bd8deadSopenharmony_ci VDP_CHROMA_TYPE_422 4 0 0 w x h/2 R8 Top-field luma 1115bd8deadSopenharmony_ci 1 w x h/2 R8 Bottom-field luma 1125bd8deadSopenharmony_ci 2 w/2 x h/2 R8G8 Top-field chroma 1135bd8deadSopenharmony_ci 3 w/2 x h/2 R8G8 Bottom-field chroma 1145bd8deadSopenharmony_ci VDP_CHROMA_TYPE_444 4 0 0 w x h/2 R8 Top-field luma 1155bd8deadSopenharmony_ci 1 w x h/2 R8 Bottom-field luma 1165bd8deadSopenharmony_ci 2 w x h/2 R8G8 Top-field chroma 1175bd8deadSopenharmony_ci 3 w x h/2 R8G8 Bottom-field chroma 1185bd8deadSopenharmony_ci VDP_CHROMA_TYPE_420 2 1 0 w x h R8 Luma 1195bd8deadSopenharmony_ci 1 w/2 x h/2 R8G8 Chroma 1205bd8deadSopenharmony_ci VDP_CHROMA_TYPE_422 2 1 0 w x h R8 Luma 1215bd8deadSopenharmony_ci 1 w/2 x h R8G8 Chroma 1225bd8deadSopenharmony_ci VDP_CHROMA_TYPE_444 2 1 0 w x h R8 Luma 1235bd8deadSopenharmony_ci 1 w x h R8G8 Chroma 1245bd8deadSopenharmony_ci VDP_CHROMA_TYPE_420_FIELD 4 0 0 w x h/2 R8 Top-field luma 1255bd8deadSopenharmony_ci 1 w x h/2 R8 Bottom-field luma 1265bd8deadSopenharmony_ci 2 w/2 x h/4 R8G8 Top-field chroma 1275bd8deadSopenharmony_ci 3 w/2 x h/4 R8G8 Bottom-field chroma 1285bd8deadSopenharmony_ci VDP_CHROMA_TYPE_422_FIELD 4 0 0 w x h/2 R8 Top-field luma 1295bd8deadSopenharmony_ci 1 w x h/2 R8 Bottom-field luma 1305bd8deadSopenharmony_ci 2 w/2 x h/2 R8G8 Top-field chroma 1315bd8deadSopenharmony_ci 3 w/2 x h/2 R8G8 Bottom-field chroma 1325bd8deadSopenharmony_ci VDP_CHROMA_TYPE_444_FIELD 4 0 0 w x h/2 R8 Top-field luma 1335bd8deadSopenharmony_ci 1 w x h/2 R8 Bottom-field luma 1345bd8deadSopenharmony_ci 2 w x h/2 R8G8 Top-field chroma 1355bd8deadSopenharmony_ci 3 w x h/2 R8G8 Bottom-field chroma 1365bd8deadSopenharmony_ci VDP_CHROMA_TYPE_420_FRAME 2 1 0 w x h R8 Luma 1375bd8deadSopenharmony_ci 1 w/2 x h/2 R8G8 Chroma 1385bd8deadSopenharmony_ci VDP_CHROMA_TYPE_422_FRAME 2 1 0 w x h R8 Luma 1395bd8deadSopenharmony_ci 1 w/2 x h R8G8 Chroma 1405bd8deadSopenharmony_ci VDP_CHROMA_TYPE_444_FRAME 2 1 0 w x h R8 Luma 1415bd8deadSopenharmony_ci 1 w x h R8G8 Chroma 1425bd8deadSopenharmony_ci 1435bd8deadSopenharmony_ci Table 8.7.1: Supported VdpChromaType values, and derived values 1445bd8deadSopenharmony_ci of <numTextureNames>,<isFrameStructure> and texture parameters for 1455bd8deadSopenharmony_ci each texture. 1465bd8deadSopenharmony_ci 1475bd8deadSopenharmony_ci VDPAURegisterVideoSurfaceWithPictureStructureNV's return value is a handle 1485bd8deadSopenharmony_ci used by various other commands detailed in NV_vdpau_interop. 1495bd8deadSopenharmony_ci 1505bd8deadSopenharmony_ci 1515bd8deadSopenharmony_ciAdditions to the AGL/GLX/WGL Specifications 1525bd8deadSopenharmony_ci 1535bd8deadSopenharmony_ci None 1545bd8deadSopenharmony_ci 1555bd8deadSopenharmony_ciAdditions to the OpenGL Shading Language 1565bd8deadSopenharmony_ci 1575bd8deadSopenharmony_ci None 1585bd8deadSopenharmony_ci 1595bd8deadSopenharmony_ciGLX Protocol 1605bd8deadSopenharmony_ci 1615bd8deadSopenharmony_ci VDPAU implementations currently only support direct-rendering. 1625bd8deadSopenharmony_ci Consequently, no GLX protocol is currently defined for this 1635bd8deadSopenharmony_ci extension. 1645bd8deadSopenharmony_ci 1655bd8deadSopenharmony_ciDependencies on GL_ARB_texture_rectangle 1665bd8deadSopenharmony_ci 1675bd8deadSopenharmony_ci If GL_ARB_texture_rectangle is not supported, TEXTURE_RECTANGLE may 1685bd8deadSopenharmony_ci not be used as target for VDPAURegisterVideoSurfaceWithPictureStructureNV. 1695bd8deadSopenharmony_ci 1705bd8deadSopenharmony_ciDependencies on GL_ARB_texture_non_power_of_two 1715bd8deadSopenharmony_ci 1725bd8deadSopenharmony_ci If GL_ARB_texture_non_power_of_two is not supported, only VDPAU 1735bd8deadSopenharmony_ci surfaces with power-of-two size may be used with target TEXTURE_2D. 1745bd8deadSopenharmony_ci 1755bd8deadSopenharmony_ciErrors 1765bd8deadSopenharmony_ci 1775bd8deadSopenharmony_ci INVALID_OPERATION is generated by 1785bd8deadSopenharmony_ci VDPAURegisterVideoSurfaceWithPictureStructureNV if the VDPAU driver 1795bd8deadSopenharmony_ci refuses the request for some reason. 1805bd8deadSopenharmony_ci 1815bd8deadSopenharmony_ci INVALID_OPERATION is generated if any texture named by an entry 1825bd8deadSopenharmony_ci within the <textureNames> parameter of 1835bd8deadSopenharmony_ci VDPAURegisterVideoSurfaceWithPictureStructureNV is marked as immutable. 1845bd8deadSopenharmony_ci 1855bd8deadSopenharmony_ci INVALID_VALUE is generated if the VDPAU surface named by the 1865bd8deadSopenharmony_ci <vdpSurface> parameter of VDPAURegisterVideoSurfaceWithPictureStructureNV 1875bd8deadSopenharmony_ci does not have a supported format; 1885bd8deadSopenharmony_ci see table 8.7.1. 1895bd8deadSopenharmony_ci 1905bd8deadSopenharmony_ciNew State 1915bd8deadSopenharmony_ci 1925bd8deadSopenharmony_ci None 1935bd8deadSopenharmony_ci 1945bd8deadSopenharmony_ciNew Implementation State 1955bd8deadSopenharmony_ci 1965bd8deadSopenharmony_ci None 1975bd8deadSopenharmony_ci 1985bd8deadSopenharmony_ciIssues 1995bd8deadSopenharmony_ci 2005bd8deadSopenharmony_ci 2015bd8deadSopenharmony_ciRevision History 2025bd8deadSopenharmony_ci 2035bd8deadSopenharmony_ci 1. 02 Oct 2018 - Manoj Bonda 2045bd8deadSopenharmony_ci Initial version 2055bd8deadSopenharmony_ci 2065bd8deadSopenharmony_ci 2. 21 Nov 2018 - Manoj Bonda 2075bd8deadSopenharmony_ci Changed status to complete. 2085bd8deadSopenharmony_ci 209