15bd8deadSopenharmony_ciName 25bd8deadSopenharmony_ci 35bd8deadSopenharmony_ci OES_extended_matrix_palette 45bd8deadSopenharmony_ci 55bd8deadSopenharmony_ciName Strings 65bd8deadSopenharmony_ci 75bd8deadSopenharmony_ci GL_OES_extended_matrix_palette 85bd8deadSopenharmony_ci 95bd8deadSopenharmony_ciContact 105bd8deadSopenharmony_ci 115bd8deadSopenharmony_ci Aaftab Munshi (amunshi@ati.com) 125bd8deadSopenharmony_ci 135bd8deadSopenharmony_ciNotice 145bd8deadSopenharmony_ci 155bd8deadSopenharmony_ci Copyright (c) 2005-2013 The Khronos Group Inc. Copyright terms at 165bd8deadSopenharmony_ci http://www.khronos.org/registry/speccopyright.html 175bd8deadSopenharmony_ci 185bd8deadSopenharmony_ciSpecification Update Policy 195bd8deadSopenharmony_ci 205bd8deadSopenharmony_ci Khronos-approved extension specifications are updated in response to 215bd8deadSopenharmony_ci issues and bugs prioritized by the Khronos OpenGL ES Working Group. For 225bd8deadSopenharmony_ci extensions which have been promoted to a core Specification, fixes will 235bd8deadSopenharmony_ci first appear in the latest version of that core Specification, and will 245bd8deadSopenharmony_ci eventually be backported to the extension document. This policy is 255bd8deadSopenharmony_ci described in more detail at 265bd8deadSopenharmony_ci https://www.khronos.org/registry/OpenGL/docs/update_policy.php 275bd8deadSopenharmony_ci 285bd8deadSopenharmony_ciStatus 295bd8deadSopenharmony_ci 305bd8deadSopenharmony_ci Ratified by the Khronos BOP, July 22, 2005. 315bd8deadSopenharmony_ci 325bd8deadSopenharmony_ciVersion 335bd8deadSopenharmony_ci 345bd8deadSopenharmony_ci Last Modified Date: February 3, 2005 355bd8deadSopenharmony_ci 365bd8deadSopenharmony_ciNumber 375bd8deadSopenharmony_ci 385bd8deadSopenharmony_ci OpenGL ES Extension #8 395bd8deadSopenharmony_ci 405bd8deadSopenharmony_ciDependencies 415bd8deadSopenharmony_ci 425bd8deadSopenharmony_ci OES_matrix_palette is required 435bd8deadSopenharmony_ci OpenGL ES 1.1 is required. 445bd8deadSopenharmony_ci 455bd8deadSopenharmony_ciOverview 465bd8deadSopenharmony_ci 475bd8deadSopenharmony_ci The OES_matrix_palette extension added the ability to support vertex skinning 485bd8deadSopenharmony_ci in OpenGL ES. One issue with OES_matrix_palette is that the minimum size of 495bd8deadSopenharmony_ci the matrix palette is very small. This leads to applications having to break 505bd8deadSopenharmony_ci geometry into smaller primitive sets called via. glDrawElements. This has an 515bd8deadSopenharmony_ci impact on the overall performance of the OpenGL ES implementation. In general, 525bd8deadSopenharmony_ci hardware implementations prefer primitive packets with as many triangles as 535bd8deadSopenharmony_ci possible. The default minimum size defined in OES_matrix_palette is not 545bd8deadSopenharmony_ci sufficient to allow this. The OES_extended_matrix_palette extension increases 555bd8deadSopenharmony_ci this minimum from 9 to 32. 565bd8deadSopenharmony_ci 575bd8deadSopenharmony_ci Another issue is that it is very difficult for ISVs to handle different 585bd8deadSopenharmony_ci size matrix palettes as it affects how they store their geometry 595bd8deadSopenharmony_ci in the database - may require multiple representations which is 605bd8deadSopenharmony_ci not really feasible. So the minimum size is going to be what most ISVs 615bd8deadSopenharmony_ci will use. 625bd8deadSopenharmony_ci 635bd8deadSopenharmony_ci By extending the minimum size of the matrix palette, we remove this 645bd8deadSopenharmony_ci fragmentation and allow applications to render geometry with minimal 655bd8deadSopenharmony_ci number of calls to glDrawElements or glDrawArrays. The OpenGL ES 665bd8deadSopenharmony_ci implementation can support this without requiring any additional hardware 675bd8deadSopenharmony_ci by breaking the primitive, plus it gives implementations the flexibility 685bd8deadSopenharmony_ci to accelerate with a bigger matrix palette if they choose to do so. 695bd8deadSopenharmony_ci 705bd8deadSopenharmony_ci Additionally, feedback has also been received to increase the number of 715bd8deadSopenharmony_ci matrices that are blend per vertex from 3 to 4. The OES_extended_matrix_palette 725bd8deadSopenharmony_ci extension increases the minium number of matrices / vertex to 4. 735bd8deadSopenharmony_ci 745bd8deadSopenharmony_ciIP Status 755bd8deadSopenharmony_ci 765bd8deadSopenharmony_ci None. 775bd8deadSopenharmony_ci 785bd8deadSopenharmony_ciIssues 795bd8deadSopenharmony_ci 805bd8deadSopenharmony_ci None 815bd8deadSopenharmony_ci 825bd8deadSopenharmony_ciNew Procedures and Functions 835bd8deadSopenharmony_ci 845bd8deadSopenharmony_ci None 855bd8deadSopenharmony_ci 865bd8deadSopenharmony_ciNew Tokens 875bd8deadSopenharmony_ci 885bd8deadSopenharmony_ci No new tokens added except that the default values for 895bd8deadSopenharmony_ci MAX_PALETTE_MATRICES_OES and MAX_VERTEX_UNITS_OES are 32 and 4 respectively. 905bd8deadSopenharmony_ci 915bd8deadSopenharmony_ciAdditions to Chapter 2 of the OpenGL ES 1.0 Specification 925bd8deadSopenharmony_ci 935bd8deadSopenharmony_ci None 945bd8deadSopenharmony_ci 955bd8deadSopenharmony_ciErrors 965bd8deadSopenharmony_ci 975bd8deadSopenharmony_ci None 985bd8deadSopenharmony_ci 995bd8deadSopenharmony_ciNew State 1005bd8deadSopenharmony_ci 1015bd8deadSopenharmony_ciGet Value Type Command Value Description 1025bd8deadSopenharmony_ci--------- ---- ------- ------- ----------- 1035bd8deadSopenharmony_ci 1045bd8deadSopenharmony_ciMAX_PALETTE_MATRICES_OES Z+ GetIntegerv 32 size of matrix palette 1055bd8deadSopenharmony_ciMAX_VERTEX_UNITS_OES Z+ GetIntegerv 4 number of matrices per vertex 1065bd8deadSopenharmony_ci 1075bd8deadSopenharmony_ciRevision History 1085bd8deadSopenharmony_ci 1095bd8deadSopenharmony_ci Feb 03, 2005 Aaftab Munshi First draft of extension 110