15bd8deadSopenharmony_ciThis is the registry of GLX opcodes, error codes, and event codes. It is
25bd8deadSopenharmony_civery rarely modified since there is almost no interest in supporting GLX
35bd8deadSopenharmony_ciwith modern OpenGL features, and the work of extending the XML schema to
45bd8deadSopenharmony_ciexpress it is not worthwhile.
55bd8deadSopenharmony_ci
65bd8deadSopenharmony_ciWhen new GLX protocol is needed for extension specifications, allocate it
75bd8deadSopenharmony_cihere and reflect it in the extension specification document as well as, if
85bd8deadSopenharmony_ciappropriate, glx.xml.
95bd8deadSopenharmony_ci
105bd8deadSopenharmony_ciReserved opcode ranges assigned to vendors, and in some cases, opcodes
115bd8deadSopenharmony_ciactually assigned within that range are tracked here. Not all opcodes used
125bd8deadSopenharmony_ciby vendors are known.
135bd8deadSopenharmony_ci
145bd8deadSopenharmony_ciGLX Opcodes (8 bits)
155bd8deadSopenharmony_ci====================
165bd8deadSopenharmony_ci     1-15   GLX 1.0
175bd8deadSopenharmony_ci    16      Vendor Private
185bd8deadSopenharmony_ci    17      Vendor Private with Reply
195bd8deadSopenharmony_ci    18-20   GLX 1.1
205bd8deadSopenharmony_ci    21-32   GLX 1.3
215bd8deadSopenharmony_ci    33      glXSetClientInfoARB (GLX_ARB_create_context)
225bd8deadSopenharmony_ci    34      glXCreateContextAttribsARB (GLX_ARB_create_context)
235bd8deadSopenharmony_ci    35      glXSetClientInfo2ARB (GLX_ARB_create_context)
245bd8deadSopenharmony_ci
255bd8deadSopenharmony_ciGLX Vendor Private / Vendor Private with Reply opcodes (32-bits)
265bd8deadSopenharmony_ci                          (first 4 bytes past standard X header)
275bd8deadSopenharmony_ci================================================================
285bd8deadSopenharmony_ci
295bd8deadSopenharmony_ci     0     255  EXT (various - contact SGI)
305bd8deadSopenharmony_ci   256     271  HP (originally Compaq)
315bd8deadSopenharmony_ci      (272-511 unused)
325bd8deadSopenharmony_ci   512     575  E&S
335bd8deadSopenharmony_ci      (576-1023 unused)
345bd8deadSopenharmony_ci  1024    1269  EXT (various - contact SGI)
355bd8deadSopenharmony_ci      1024              GLX_EXT_import_context
365bd8deadSopenharmony_ci  1270    1275          NV_register_combiners
375bd8deadSopenharmony_ci  1276    1280          NV_fence
385bd8deadSopenharmony_ci  1281    1292          NVIDIA (use TBD; was intended for NV_vertex_program)
395bd8deadSopenharmony_ci  1293    1308          NV_vertex_program / ARB_vertex_program / ARB_fragment_program
405bd8deadSopenharmony_ci  1309                  NVIDIA (use TBD)
415bd8deadSopenharmony_ci  1310    1311          NV_fragment_program
425bd8deadSopenharmony_ci  1312                  NV_fence
435bd8deadSopenharmony_ci  1313    1318          GLX_NV_video_output
445bd8deadSopenharmony_ci  1319    1320          NV_vertex_program
455bd8deadSopenharmony_ci  1321    1326          NVIDIA (use TBD)
465bd8deadSopenharmony_ci  1327                  NV_register_combiners2
475bd8deadSopenharmony_ci  1328    1329          EXT_timer_query
485bd8deadSopenharmony_ci  1330    1331          GLX_EXT_texture_from_pixmap
495bd8deadSopenharmony_ci  1332    1339          NV_present_video
505bd8deadSopenharmony_ci  1340                  NVIDIA (use TBD)
515bd8deadSopenharmony_ci  1341                  GLX_NV_delay_before_swap
525bd8deadSopenharmony_ci  1342    1359          NVIDIA (use TBD)
535bd8deadSopenharmony_ci  1360                  GLX_NV_copy_image
545bd8deadSopenharmony_ci  1361    1364          NVIDIA (use TBD)
555bd8deadSopenharmony_ci  1365    1368          NV_gpu_program4
565bd8deadSopenharmony_ci  1369    1386          NVIDIA (use TBD)
575bd8deadSopenharmony_ci  1387    1388          GLX_NV_copy_buffer
585bd8deadSopenharmony_ci  1389    1399          NVIDIA (use TBD)
595bd8deadSopenharmony_ci  1400    1415          NV_video_capture
605bd8deadSopenharmony_ci  1416                  GLX_EXT_swap_control
615bd8deadSopenharmony_ci  1417    1420          NVIDIA (use TBD)
625bd8deadSopenharmony_ci  1421                  OES_single_precision (Khronos OpenGL ES 1.0)
635bd8deadSopenharmony_ci  1422    1428          EXT_framebuffer_object
645bd8deadSopenharmony_ci      (1429-2047 unused)
655bd8deadSopenharmony_ci  2048    2064  SUN
665bd8deadSopenharmony_ci  3000    3999  IBM
675bd8deadSopenharmony_ci  4096    5151  SGI (4106-5151 unused)
685bd8deadSopenharmony_ci      4096              SGIS_detail_texture
695bd8deadSopenharmony_ci      4097              SGIS_sharpen_texture
705bd8deadSopenharmony_ci      4098    4100      SGI_color_table
715bd8deadSopenharmony_ci      4101              SGIS_texture_filter4
725bd8deadSopenharmony_ci      4102    4104      SGIX_instruments
735bd8deadSopenharmony_ci      4105              SGIX_flush_raster
745bd8deadSopenharmony_ci  5152    5184  Mesa (unknown use)
755bd8deadSopenharmony_ci  8192    8207  HP
765bd8deadSopenharmony_ci 16384   16399  ADD
775bd8deadSopenharmony_ci 65536   66575  SGI (various GLX extensions)
785bd8deadSopenharmony_ci      65536             GLX_SGI_swap_control
795bd8deadSopenharmony_ci      65537             GLX_SGI_make_current_read
805bd8deadSopenharmony_ci      65538  65539      GLX_SGIX_video_source
815bd8deadSopenharmony_ci      65540  65542      GLX_SGIX_fbconfig
825bd8deadSopenharmony_ci      65543  65546      GLX_SGIX_pbuffer
835bd8deadSopenharmony_ci      65547             GLX_SGIX_swap_group
845bd8deadSopenharmony_ci      65548  65549      GLX_SGIX_swap_barrier
855bd8deadSopenharmony_ci      65550  65553      GLX_SGIX_hyperpipe_group
865bd8deadSopenharmony_ci      65554             GLX_SGIX_query_board_num (internal, for shm)
875bd8deadSopenharmony_ci
885bd8deadSopenharmony_ciOpenGL Single Opcodes (8 Bits)
895bd8deadSopenharmony_ci===============================
905bd8deadSopenharmony_ci
915bd8deadSopenharmony_ci   167-up Reserved
925bd8deadSopenharmony_ci         0     146  OpenGL 1.0/1.1 core
935bd8deadSopenharmony_ci       147     159  OpenGL 1.2 core
945bd8deadSopenharmony_ci       160     160  ARB_texture_compression
955bd8deadSopenharmony_ci       161     166  ARB_occlusion_query
965bd8deadSopenharmony_ci       167     178  ARB_shader_objects
975bd8deadSopenharmony_ci       179     181  ARB_vertex_shader
985bd8deadSopenharmony_ci       182     183  EXT_gpu_shader4
995bd8deadSopenharmony_ci       184     185  NV_vertex_program4
1005bd8deadSopenharmony_ci       186     194  ARB_vertex_buffer_object
1015bd8deadSopenharmony_ci       195     202  OpenGL 2.0 core
1025bd8deadSopenharmony_ci       203     204  EXT_texture_integer
1035bd8deadSopenharmony_ci       205     205  ARB_map_buffer_range
1045bd8deadSopenharmony_ci       206     209  ARB_vertex_array_object
1055bd8deadSopenharmony_ci       210     212  EXT_draw_buffers2
1065bd8deadSopenharmony_ci       213     214  OpenGL 3.0 core
1075bd8deadSopenharmony_ci       215     220  ARB_uniform_buffer_object
1085bd8deadSopenharmony_ci       221          ARB_copy_buffer
1095bd8deadSopenharmony_ci
1105bd8deadSopenharmony_ciOpenGL Rendering Opcodes (16 Bits)
1115bd8deadSopenharmony_ci==================================
1125bd8deadSopenharmony_ci
1135bd8deadSopenharmony_ci     0-1007 Reserved to ARB (231-1007 unused)
1145bd8deadSopenharmony_ci         0     191  OpenGL 1.0 core (140 deprecated?)
1155bd8deadSopenharmony_ci       192     194  OpenGL 1.1 core
1165bd8deadSopenharmony_ci       195     196  OpenGL 1.2 core
1175bd8deadSopenharmony_ci       197     213  ARB_multitexture
1185bd8deadSopenharmony_ci       214     219  ARB_texture_compression
1195bd8deadSopenharmony_ci       220     228  ARB_vertex_blend
1205bd8deadSopenharmony_ci       229          ARB_multisample
1215bd8deadSopenharmony_ci       230          ARB_window_pos
1225bd8deadSopenharmony_ci       231     232  ARB_occlusion_query
1235bd8deadSopenharmony_ci       233          ARB_draw_buffers
1245bd8deadSopenharmony_ci       234          ARB_color_buffer_float
1255bd8deadSopenharmony_ci       235     237  ARB_framebuffer_object
1265bd8deadSopenharmony_ci       238     264  ARB_shader_object
1275bd8deadSopenharmony_ci       265          ARB_vertex_shader
1285bd8deadSopenharmony_ci       266     268  ARB_geometry_shader4
1295bd8deadSopenharmony_ci       269     277  EXT_gpu_shader4
1305bd8deadSopenharmony_ci       278     289  NV_vertex_program4
1315bd8deadSopenharmony_ci       290     301  ARB_vertex_buffer_object
1325bd8deadSopenharmony_ci       302     304  ARB_stencil_two_side
1335bd8deadSopenharmony_ci       305     310  OpenGL 2.1 core
1345bd8deadSopenharmony_ci       311     345  ARB_pixel_buffer_object
1355bd8deadSopenharmony_ci       346     347  EXT_texture_integer
1365bd8deadSopenharmony_ci       348     349  NV_conditional_render
1375bd8deadSopenharmony_ci       350     351  ARB_vertex_array_object
1385bd8deadSopenharmony_ci       352     354  EXT_draw_buffers2
1395bd8deadSopenharmony_ci       355     363  OpenGL 3.0 core
1405bd8deadSopenharmony_ci       364     365  NV_primitive_restart
1415bd8deadSopenharmony_ci       366          ARB_uniform_buffer_object
1425bd8deadSopenharmony_ci       367          ARB_texture_buffer_object
1435bd8deadSopenharmony_ci  1008-1023 Reserved to IBM (unknown usage)
1445bd8deadSopenharmony_ci  1024-1039 Reserved to HP (originally Compaq) (unknown usage)
1455bd8deadSopenharmony_ci  1040-2047 Unused
1465bd8deadSopenharmony_ci  2048-3071 Reserved to SGI (2083-3071 unused)
1475bd8deadSopenharmony_ci      2048    2049  SGIS_multisample
1485bd8deadSopenharmony_ci      2050          SGIX_tag_sample_buffer
1495bd8deadSopenharmony_ci      2051          SGIS_detail_texture
1505bd8deadSopenharmony_ci      2052          SGIS_sharpen_texture
1515bd8deadSopenharmony_ci      2053    2056  SGI_color_table
1525bd8deadSopenharmony_ci      2057    2058  SGIS_texture4D
1535bd8deadSopenharmony_ci      2059          SGIX_pixel_texture
1545bd8deadSopenharmony_ci      2060    2063  SGIX_sprite
1555bd8deadSopenharmony_ci      2064          SGIS_texture_filter4
1565bd8deadSopenharmony_ci      2065    2066  EXT_point_parameters/SGIS_point_parameters
1575bd8deadSopenharmony_ci      2067          SGIS_fog_function
1585bd8deadSopenharmony_ci      2068          unused?
1595bd8deadSopenharmony_ci      2069    2070  SGIX_instruments
1605bd8deadSopenharmony_ci      2071          SGIX_reference_plane
1615bd8deadSopenharmony_ci      2072          SGIX_framezoom
1625bd8deadSopenharmony_ci      2073    2076  unused?
1635bd8deadSopenharmony_ci      2077          SGIX_instruments
1645bd8deadSopenharmony_ci      2078    2081  SGIX_list_priority
1655bd8deadSopenharmony_ci      2082          SGIS_texture_color_mask
1665bd8deadSopenharmony_ci  3072-4095 Reserved to ARB (unused)
1675bd8deadSopenharmony_ci  4096-5151 Reserved to EXT (4460-5151 unused)
1685bd8deadSopenharmony_ci      4096          EXT_blend_color/1.2
1695bd8deadSopenharmony_ci      4097          EXT_blend_minmax/1.2
1705bd8deadSopenharmony_ci      4098          EXT_polygon_offset
1715bd8deadSopenharmony_ci      4099    4100  EXT_subtexture
1725bd8deadSopenharmony_ci      4101    4109  EXT_convolution/1.2
1735bd8deadSopenharmony_ci      4110    4113  EXT_histogram/1.2
1745bd8deadSopenharmony_ci      4114          EXT_texture3D/1.2
1755bd8deadSopenharmony_ci      4115          EXT_subtexture/1.2
1765bd8deadSopenharmony_ci      4116          EXT_vertex_array
1775bd8deadSopenharmony_ci      4117    4118  EXT_texture_object/1.1
1785bd8deadSopenharmony_ci      4119    4123  EXT_copy_texture/1.1
1795bd8deadSopenharmony_ci      4124    4125  EXT_fog_coord
1805bd8deadSopenharmony_ci      4126    4133  EXT_secondary_color
1815bd8deadSopenharmony_ci      4134          EXT_blend_func_separate
1825bd8deadSopenharmony_ci      4135          EXT_vertex_weighting
1835bd8deadSopenharmony_ci      4136    4142  NV_register_combiners
1845bd8deadSopenharmony_ci      4143    4144  NV_fence (4144 retired, used to be for FinishFence)
1855bd8deadSopenharmony_ci      4145    4179  NVIDIA (use TBD; was intended for NV_vertex_program)
1865bd8deadSopenharmony_ci      4180    4214  NV_vertex_program
1875bd8deadSopenharmony_ci      4215    4217  ARB_vertex_program
1885bd8deadSopenharmony_ci      4218    4219  NV_fragment_program
1895bd8deadSopenharmony_ci      4220          EXT_stencil_two_side
1905bd8deadSopenharmony_ci      4221    4222  NV_point_sprite
1915bd8deadSopenharmony_ci      4223          EXT_stencil_clear_tag
1925bd8deadSopenharmony_ci      4225          EXT_polygon_offset_clamp
1935bd8deadSopenharmony_ci      4228          EXT_blend_equation_separate
1945bd8deadSopenharmony_ci      4229          EXT_depth_bounds_test
1955bd8deadSopenharmony_ci      4230    4239  ARB_vertex_program
1965bd8deadSopenharmony_ci      4240    4264  NV_half_float
1975bd8deadSopenharmony_ci      4265    4280  NVIDIA (use TBD)
1985bd8deadSopenharmony_ci      4281    4282  EXT_gpu_program_parameters
1995bd8deadSopenharmony_ci      4283    4285  NV_depth_buffer_float
2005bd8deadSopenharmony_ci      4286    4290  NVIDIA (use TBD)
2015bd8deadSopenharmony_ci      4291          NV_copy_image
2025bd8deadSopenharmony_ci      4292    4293  EXT_texture_integer
2035bd8deadSopenharmony_ci      4294    4307  NVIDIA (use TBD)
2045bd8deadSopenharmony_ci      4308    4312  OES_single_precision (Khronos OpenGL ES 1.0)
2055bd8deadSopenharmony_ci      4313    4315  SUN (use TBD)
2065bd8deadSopenharmony_ci      4316    4325  EXT_framebuffer_object
2075bd8deadSopenharmony_ci      4326    4329  ARB_matrix_palette
2085bd8deadSopenharmony_ci      4330          EXT_framebuffer_blit
2095bd8deadSopenharmony_ci      4331          EXT_framebuffer_multisample
2105bd8deadSopenharmony_ci      4332    4347  NVIDIA (use TBD, bug 6720)
2115bd8deadSopenharmony_ci      4348          NV_texture_barrier
2125bd8deadSopenharmony_ci      4349    4459  NVIDIA (use TBD, bug 6720)
2135bd8deadSopenharmony_ci
2145bd8deadSopenharmony_ci  8192-8207  Reserved to HP (unknown usage)
2155bd8deadSopenharmony_ci 16384-16415 Reserved to SUN (unknown usage)
2165bd8deadSopenharmony_ci 24576-24607 Reserved to ADD (unknown usage)
2175bd8deadSopenharmony_ci
2185bd8deadSopenharmony_ci
2195bd8deadSopenharmony_ciGLX Enumerateds (32 Bits)
2205bd8deadSopenharmony_ci=========================
2215bd8deadSopenharmony_ci0x0-0xFF      Reserved to EXT (visual attribute names)
2225bd8deadSopenharmony_ci       0x1    0x11  GLX 1.0 (attribute names)
2235bd8deadSopenharmony_ci      0x12    0x1F  unused?
2245bd8deadSopenharmony_ci      0x20          GLX_EXT_visual_rating (attribute names)
2255bd8deadSopenharmony_ci      0x21          unused?
2265bd8deadSopenharmony_ci      0x22    0x28  GLX_EXT_visual_info (attribute names)
2275bd8deadSopenharmony_ci0x1F00-0x1F02 Reserved to ARB (shared with WGL)
2285bd8deadSopenharmony_ci    0x1F00  0x1F02  GLX_AMD_gpu_association
2295bd8deadSopenharmony_ci0x2070-0x209F Reserved to ARB (shared with WGL)
2305bd8deadSopenharmony_ci    0x2090  0x2094  GLX_ARB_create_context
2315bd8deadSopenharmony_ci    0x2095          GL_ARB_vertex_buffer_object
2325bd8deadSopenharmony_ci    0x2097  0x2098  GLX_ARB_context_flush_control
2335bd8deadSopenharmony_ci0x20A0-0x219F Reserved to NVIDIA (shared with WGL)
2345bd8deadSopenharmony_ci    0x20B0          GLX_NV_float_buffer
2355bd8deadSopenharmony_ci    0x20B1          GLX_EXT_fbconfig_packed_float
2365bd8deadSopenharmony_ci    0x20B2          GLX_ARB_framebuffer_sRGB (nee EXT)
2375bd8deadSopenharmony_ci    0x20B3          GLX_NV_multisample_coverage
2385bd8deadSopenharmony_ci    0x20B9          GLX_ARB_fbconfig_float
2395bd8deadSopenharmony_ci    0x20C3  0x20CC  GLX_NV_video_out
2405bd8deadSopenharmony_ci    0x20CD  0x20CF  GLX_NV_video_capture
2415bd8deadSopenharmony_ci    0x20D0  0x20EB  GLX_EXT_texture_from_pixmap
2425bd8deadSopenharmony_ci    0x20F0          GLX_NV_present_video
2435bd8deadSopenharmony_ci    0x20F1  0x20F2  GLX_EXT_swap_control
2445bd8deadSopenharmony_ci    0x20F3          GLX_EXT_swap_control_tear
2455bd8deadSopenharmony_ci    0x20F4          GLX_EXT_buffer_age
2465bd8deadSopenharmony_ci    0x20F5          GLX_EXT_stereo_tree
2475bd8deadSopenharmony_ci    0x20F6          GLX_EXT_libglvnd
2485bd8deadSopenharmony_ci    0x20F7          GLX_NV_robustness_video_memory_purge
2495bd8deadSopenharmony_ci0x21A0-0x21AF Reserved to AMD (shared with WGL)
2505bd8deadSopenharmony_ci    0x21A2  0x21A8  GLX_AMD_gpu_association
2515bd8deadSopenharmony_ci0x31B3 Reserved to ARB (shared with WGL)
2525bd8deadSopenharmony_ci    0x31B3          GLX_ARB_create_context_no_error
2535bd8deadSopenharmony_ci0x8000-0x800F Reserved to EXT (0x800E-0x800F unused)
2545bd8deadSopenharmony_ci    0x8000  0x8009  GLX_EXT_visual_info
2555bd8deadSopenharmony_ci    0x800A  0x800C  GLX_EXT_import_context
2565bd8deadSopenharmony_ci    0x800D          GLX_EXT_visual_rating
2575bd8deadSopenharmony_ci0x8010-0x803F Reserved to SGI (0x8029-0x803F unused)
2585bd8deadSopenharmony_ci    0x8010  0x8015  GLX_SGIX_fbconfig
2595bd8deadSopenharmony_ci    0x8016  0x8023  GLX_SGIX_pbuffer
2605bd8deadSopenharmony_ci    0x8024          GLX_SGIX_dm_buffer
2615bd8deadSopenharmony_ci    0x8025          GLX_SGIS_blended_overlay
2625bd8deadSopenharmony_ci    0x8026  0x8027  GLX_SGIS_shared_multisample
2635bd8deadSopenharmony_ci    0x8028          GLX_SGIX_visual_select_group
2645bd8deadSopenharmony_ci    0x8030          GLX_SGIX_hyperpipe
2655bd8deadSopenharmony_ci0x8040-0x804F Reserved to OpenGL ARB
2665bd8deadSopenharmony_ci    0x8040  0x8041  GLX 1.3
2675bd8deadSopenharmony_ci0x8050-0x805F Reserved to 3Dfx
2685bd8deadSopenharmony_ci    0x8050  0x8051  GLX_3DFX_multisample
2695bd8deadSopenharmony_ci0x8060-0x806F Reserved to OpenML SIG
2705bd8deadSopenharmony_ci    0x8060  0x8063  GLX_OML_swap_method
2715bd8deadSopenharmony_ci0x8070-0x816F Reserved to NVIDIA
2725bd8deadSopenharmony_ci0x8170-0x817F Reserved to SUN
2735bd8deadSopenharmony_ci0x8180-0x818F Reserved to Intel (0x818F unused)
2745bd8deadSopenharmony_ci    0x8180  0x8182  GLX_INTEL_swap_event
2755bd8deadSopenharmony_ci    0x8183  0x818E  GLX_MESA_query_renderer
2765bd8deadSopenharmony_ci0x8250-0x826F Reserved to ARB (Shared with GL and WGL)
2775bd8deadSopenharmony_ci    0x8252          GLX_ARB_create_context_robustness
2785bd8deadSopenharmony_ci    0x8256          GLX_ARB_create_context_robustness
2795bd8deadSopenharmony_ci    0x8261          GLX_ARB_create_context_robustness
2805bd8deadSopenharmony_ci0x9126        GLX_ARB_create_context_profile (shared with WGL)
2815bd8deadSopenharmony_ci
2825bd8deadSopenharmony_ci100000-100011 Reserved to SGI (100002-100011 unused)
2835bd8deadSopenharmony_ci    100000  100001  GLX_SGIS_multisample/GLX_ARB_multisample
2845bd8deadSopenharmony_ci
2855bd8deadSopenharmony_ciGLX Error Codes
2865bd8deadSopenharmony_ci===============
2875bd8deadSopenharmony_ci
2885bd8deadSopenharmony_ci(Extension reservations for vendor extensions should start sufficiently
2895bd8deadSopenharmony_cihigh so they don't interfere with GLX core and GLX ARB extensions.)
2905bd8deadSopenharmony_ci
2915bd8deadSopenharmony_ci0   GLXBadContext                   OpenGL ARB (GLX core)
2925bd8deadSopenharmony_ci1   GLXBadContextState              OpenGL ARB (GLX core)
2935bd8deadSopenharmony_ci2   GLXBadDrawable                  OpenGL ARB (GLX core)
2945bd8deadSopenharmony_ci3   GLXBadPixmap                    OpenGL ARB (GLX core)
2955bd8deadSopenharmony_ci4   GLXBadContextTag                OpenGL ARB (GLX core)
2965bd8deadSopenharmony_ci5   GLXBadCurrentWindow             OpenGL ARB (GLX core)
2975bd8deadSopenharmony_ci6   GLXBadRenderRequest             OpenGL ARB (GLX core)
2985bd8deadSopenharmony_ci7   GLXBadLargeRequest              OpenGL ARB (GLX core)
2995bd8deadSopenharmony_ci8   GLXUnsupportedPrivateRequest    OpenGL ARB (GLX core)
3005bd8deadSopenharmony_ci9   GLXBadFBConfig                  OpenGL ARB (GLX core)
3015bd8deadSopenharmony_ci10  GLXBadPbuffer                   OpenGL ARB (GLX core)
3025bd8deadSopenharmony_ci11  GLXBadCurrentDrawable           OpenGL ARB (GLX core)
3035bd8deadSopenharmony_ci12  GLXBadWindow                    OpenGL ARB (GLX core)
3045bd8deadSopenharmony_ci13  GLXBadProfileARB                OpenGL ARB (GLX_ARB_create_context)
3055bd8deadSopenharmony_ci
3065bd8deadSopenharmony_ci
3075bd8deadSopenharmony_ciGLX Event Masks
3085bd8deadSopenharmony_ci===============
3095bd8deadSopenharmony_ci0x08000000      GLX 1.3 / SGIX_pbuffer
3105bd8deadSopenharmony_ci0x04000000      Intel (INTEL_swap_event)
3115bd8deadSopenharmony_ci
3125bd8deadSopenharmony_ciGLX Event Codes
3135bd8deadSopenharmony_ci===============
3145bd8deadSopenharmony_ci
3155bd8deadSopenharmony_ci(The X.org/Mesa GLX implementation derived from the SGI Sample
3165bd8deadSopenharmony_ciImplementation has __GLX_NUMBER_EVENTS == 17, suggesting that vendor
3175bd8deadSopenharmony_cievents should be allocated downwards from the first free value <= 16
3185bd8deadSopenharmony_ci(14), and core GLX events allocated upwards).
3195bd8deadSopenharmony_ci
3205bd8deadSopenharmony_ci0               OpenGL ARB (GLX_PbufferClobber in GLX 1.3)
3215bd8deadSopenharmony_ci15              Intel (GLX_BufferSwapINTEL)
3225bd8deadSopenharmony_ci16              SGI (GLX_PbufferClobberSGIX)
3235bd8deadSopenharmony_ci64              SGI
3245bd8deadSopenharmony_ci
3255bd8deadSopenharmony_ciGLX protocol encoding for GL >= 2.0
3265bd8deadSopenharmony_ci===================================
3275bd8deadSopenharmony_ci
3285bd8deadSopenharmony_ci(This section - this whole file really - should eventually be incorporated
3295bd8deadSopenharmony_ciin a proper update of the GLX protocol specification.)
3305bd8deadSopenharmony_ci
3315bd8deadSopenharmony_ciOpenGL 2.0
3325bd8deadSopenharmony_ci----------
3335bd8deadSopenharmony_ci
3345bd8deadSopenharmony_ci    DeleteShader
3355bd8deadSopenharmony_ci
3365bd8deadSopenharmony_ci        1           CARD8           opcode (X assigned)
3375bd8deadSopenharmony_ci        1           195             GLX opcode
3385bd8deadSopenharmony_ci        2           3               request length
3395bd8deadSopenharmony_ci        4           GLX_CONTEXT_TAG context tag
3405bd8deadSopenharmony_ci        4           CARD32          shader
3415bd8deadSopenharmony_ci
3425bd8deadSopenharmony_ci    IsShader
3435bd8deadSopenharmony_ci
3445bd8deadSopenharmony_ci        1           CARD8           opcode (X assigned)
3455bd8deadSopenharmony_ci        1           196             GLX opcode
3465bd8deadSopenharmony_ci        2           3               request length
3475bd8deadSopenharmony_ci        4           GLX_CONTEXT_TAG context tag
3485bd8deadSopenharmony_ci        4           CARD32          shader
3495bd8deadSopenharmony_ci      =>
3505bd8deadSopenharmony_ci        1           1               reply
3515bd8deadSopenharmony_ci        1                           unused
3525bd8deadSopenharmony_ci        2           CARD16          sequence number
3535bd8deadSopenharmony_ci        4           0               reply length
3545bd8deadSopenharmony_ci        4           BOOL32          return value
3555bd8deadSopenharmony_ci        20                          unused
3565bd8deadSopenharmony_ci
3575bd8deadSopenharmony_ci    IsProgram
3585bd8deadSopenharmony_ci
3595bd8deadSopenharmony_ci        1           CARD8           opcode (X assigned)
3605bd8deadSopenharmony_ci        1           197             GLX opcode
3615bd8deadSopenharmony_ci        2           3               request length
3625bd8deadSopenharmony_ci        4           GLX_CONTEXT_TAG context tag
3635bd8deadSopenharmony_ci        4           CARD32          program
3645bd8deadSopenharmony_ci      =>
3655bd8deadSopenharmony_ci        1           1               reply
3665bd8deadSopenharmony_ci        1                           unused
3675bd8deadSopenharmony_ci        2           CARD16          sequence number
3685bd8deadSopenharmony_ci        4           0               reply length
3695bd8deadSopenharmony_ci        4           BOOL32          return value
3705bd8deadSopenharmony_ci        20                          unused
3715bd8deadSopenharmony_ci
3725bd8deadSopenharmony_ci    GetShaderiv
3735bd8deadSopenharmony_ci
3745bd8deadSopenharmony_ci        1           CARD8           opcode (X assigned)
3755bd8deadSopenharmony_ci        1           198             GLX opcode
3765bd8deadSopenharmony_ci        2           4               request length
3775bd8deadSopenharmony_ci        4           GLX_CONTEXT_TAG context tag
3785bd8deadSopenharmony_ci        4           CARD32          program
3795bd8deadSopenharmony_ci        4           CARD32          pname
3805bd8deadSopenharmony_ci      =>
3815bd8deadSopenharmony_ci        1           1               reply
3825bd8deadSopenharmony_ci        1                           unused
3835bd8deadSopenharmony_ci        2           CARD16          sequence number
3845bd8deadSopenharmony_ci        4           m               reply length, m = (n == 1 ? 0 : n)
3855bd8deadSopenharmony_ci        4                           unused
3865bd8deadSopenharmony_ci        4           CARD32          n
3875bd8deadSopenharmony_ci
3885bd8deadSopenharmony_ci        if (n == 1) this follows:
3895bd8deadSopenharmony_ci
3905bd8deadSopenharmony_ci        4           CARD32          params
3915bd8deadSopenharmony_ci        12                          unused
3925bd8deadSopenharmony_ci
3935bd8deadSopenharmony_ci        otherwise this follows:
3945bd8deadSopenharmony_ci
3955bd8deadSopenharmony_ci        16                          unused
3965bd8deadSopenharmony_ci        n*4         LISTOFCARD32    params
3975bd8deadSopenharmony_ci
3985bd8deadSopenharmony_ci        Note that n may be 0, indicating that a GL error occurred.
3995bd8deadSopenharmony_ci
4005bd8deadSopenharmony_ci    GetProgramiv
4015bd8deadSopenharmony_ci
4025bd8deadSopenharmony_ci        1           CARD8           opcode (X assigned)
4035bd8deadSopenharmony_ci        1           199             GLX opcode
4045bd8deadSopenharmony_ci        2           4               request length
4055bd8deadSopenharmony_ci        4           GLX_CONTEXT_TAG context tag
4065bd8deadSopenharmony_ci        4           CARD32          program
4075bd8deadSopenharmony_ci        4           CARD32          pname
4085bd8deadSopenharmony_ci      =>
4095bd8deadSopenharmony_ci        1           1               reply
4105bd8deadSopenharmony_ci        1                           unused
4115bd8deadSopenharmony_ci        2           CARD16          sequence number
4125bd8deadSopenharmony_ci        4           m               reply length, m = (n == 1 ? 0 : n)
4135bd8deadSopenharmony_ci        4                           unused
4145bd8deadSopenharmony_ci        4           CARD32          n
4155bd8deadSopenharmony_ci
4165bd8deadSopenharmony_ci        if (n == 1) this follows:
4175bd8deadSopenharmony_ci
4185bd8deadSopenharmony_ci        4           CARD32          params
4195bd8deadSopenharmony_ci        12                          unused
4205bd8deadSopenharmony_ci
4215bd8deadSopenharmony_ci        otherwise this follows:
4225bd8deadSopenharmony_ci
4235bd8deadSopenharmony_ci        16                          unused
4245bd8deadSopenharmony_ci        n*4         LISTofCARD32    params
4255bd8deadSopenharmony_ci
4265bd8deadSopenharmony_ci        Note that n may be 0, indicating that a GL error occurred.
4275bd8deadSopenharmony_ci
4285bd8deadSopenharmony_ci    GetShaderInfoLog
4295bd8deadSopenharmony_ci
4305bd8deadSopenharmony_ci        1           CARD8           opcode (X assigned)
4315bd8deadSopenharmony_ci        1           200             GLX opcode
4325bd8deadSopenharmony_ci        2           4               request length
4335bd8deadSopenharmony_ci        4           GLX_CONTEXT_TAG context tag
4345bd8deadSopenharmony_ci        4           CARD32          shader
4355bd8deadSopenharmony_ci        4           CARD32          bufSize
4365bd8deadSopenharmony_ci      =>
4375bd8deadSopenharmony_ci        1           1               reply
4385bd8deadSopenharmony_ci        1                           unused
4395bd8deadSopenharmony_ci        2           CARD16          sequence number
4405bd8deadSopenharmony_ci        4           m               reply length, m = (n + p) / 4
4415bd8deadSopenharmony_ci        4                           unused
4425bd8deadSopenharmony_ci        4           CARD32          n, n = length + 1
4435bd8deadSopenharmony_ci        16                          unused
4445bd8deadSopenharmony_ci        n           LISTofBYTE      infoLog
4455bd8deadSopenharmony_ci        p                           unused, p=pad(n)
4465bd8deadSopenharmony_ci
4475bd8deadSopenharmony_ci        Note that n may be 0, indicating that a GL error occurred.
4485bd8deadSopenharmony_ci
4495bd8deadSopenharmony_ci    GetProgramInfoLog
4505bd8deadSopenharmony_ci
4515bd8deadSopenharmony_ci        1           CARD8           opcode (X assigned)
4525bd8deadSopenharmony_ci        1           201             GLX opcode
4535bd8deadSopenharmony_ci        2           4               request length
4545bd8deadSopenharmony_ci        4           GLX_CONTEXT_TAG context tag
4555bd8deadSopenharmony_ci        4           CARD32          program
4565bd8deadSopenharmony_ci        4           CARD32          bufSize
4575bd8deadSopenharmony_ci      =>
4585bd8deadSopenharmony_ci        1           1               reply
4595bd8deadSopenharmony_ci        1                           unused
4605bd8deadSopenharmony_ci        2           CARD16          sequence number
4615bd8deadSopenharmony_ci        4           m               reply length, m = (n + p) / 4
4625bd8deadSopenharmony_ci        4                           unused
4635bd8deadSopenharmony_ci        4           CARD32          n, n = length + 1
4645bd8deadSopenharmony_ci        16                          unused
4655bd8deadSopenharmony_ci        n           LISTofBYTE      infoLog
4665bd8deadSopenharmony_ci        p                           unused, p=pad(n)
4675bd8deadSopenharmony_ci
4685bd8deadSopenharmony_ci        Note that n may be 0, indicating that a GL error occurred.
4695bd8deadSopenharmony_ci
4705bd8deadSopenharmony_ci    DeleteProgram
4715bd8deadSopenharmony_ci
4725bd8deadSopenharmony_ci        1           CARD8           opcode (X assigned)
4735bd8deadSopenharmony_ci        1           202             GLX opcode
4745bd8deadSopenharmony_ci        2           3               request length
4755bd8deadSopenharmony_ci        4           GLX_CONTEXT_TAG context tag
4765bd8deadSopenharmony_ci        4           CARD32          program
4775bd8deadSopenharmony_ci
4785bd8deadSopenharmony_ciOpenGL 2.1
4795bd8deadSopenharmony_ci----------
4805bd8deadSopenharmony_ci
4815bd8deadSopenharmony_ci    UniformMatrix2x3fv
4825bd8deadSopenharmony_ci
4835bd8deadSopenharmony_ci        2           16+4*count*2*3  rendering command length
4845bd8deadSopenharmony_ci        2           305             rendering command opcode
4855bd8deadSopenharmony_ci        4           CARD32          location
4865bd8deadSopenharmony_ci        4           CARD32          count
4875bd8deadSopenharmony_ci        1           BOOL            transpose
4885bd8deadSopenharmony_ci        3                           unused
4895bd8deadSopenharmony_ci        4*count*2*3 LISTofFLOAT32   value
4905bd8deadSopenharmony_ci
4915bd8deadSopenharmony_ci    If the command is encoded in a glXRenderLarge request, the
4925bd8deadSopenharmony_ci    command opcode and command length fields above are expanded to
4935bd8deadSopenharmony_ci    4 bytes each:
4945bd8deadSopenharmony_ci
4955bd8deadSopenharmony_ci        4           20+4*count*2*2  rendering command length
4965bd8deadSopenharmony_ci        4           305             rendering command opcode
4975bd8deadSopenharmony_ci
4985bd8deadSopenharmony_ci    UniformMatrix3x2fv
4995bd8deadSopenharmony_ci
5005bd8deadSopenharmony_ci        2           16+4*count*3*2  rendering command length
5015bd8deadSopenharmony_ci        2           306             rendering command opcode
5025bd8deadSopenharmony_ci        4           CARD32          location
5035bd8deadSopenharmony_ci        4           CARD32          count
5045bd8deadSopenharmony_ci        1           BOOL            transpose
5055bd8deadSopenharmony_ci        3                           unused
5065bd8deadSopenharmony_ci        4*count*3*2 LISTofFLOAT32   value
5075bd8deadSopenharmony_ci
5085bd8deadSopenharmony_ci    If the command is encoded in a glXRenderLarge request, the
5095bd8deadSopenharmony_ci    command opcode and command length fields above are expanded to
5105bd8deadSopenharmony_ci    4 bytes each:
5115bd8deadSopenharmony_ci
5125bd8deadSopenharmony_ci        4           20+4*count*3*2  rendering command length
5135bd8deadSopenharmony_ci        4           306             rendering command opcode
5145bd8deadSopenharmony_ci
5155bd8deadSopenharmony_ci    UniformMatrix2x4fv
5165bd8deadSopenharmony_ci
5175bd8deadSopenharmony_ci        2           16+4*count*2*4  rendering command length
5185bd8deadSopenharmony_ci        2           307             rendering command opcode
5195bd8deadSopenharmony_ci        4           CARD32          location
5205bd8deadSopenharmony_ci        4           CARD32          count
5215bd8deadSopenharmony_ci        1           BOOL            transpose
5225bd8deadSopenharmony_ci        3                           unused
5235bd8deadSopenharmony_ci        4*count*2*4 LISTofFLOAT32   value
5245bd8deadSopenharmony_ci
5255bd8deadSopenharmony_ci    If the command is encoded in a glXRenderLarge request, the
5265bd8deadSopenharmony_ci    command opcode and command length fields above are expanded to
5275bd8deadSopenharmony_ci    4 bytes each:
5285bd8deadSopenharmony_ci
5295bd8deadSopenharmony_ci        4           20+4*count*2*4  rendering command length
5305bd8deadSopenharmony_ci        4           307             rendering command opcode
5315bd8deadSopenharmony_ci
5325bd8deadSopenharmony_ci    UniformMatrix4x2fv
5335bd8deadSopenharmony_ci
5345bd8deadSopenharmony_ci        2           16+4*count*4*2  rendering command length
5355bd8deadSopenharmony_ci        2           308             rendering command opcode
5365bd8deadSopenharmony_ci        4           CARD32          location
5375bd8deadSopenharmony_ci        4           CARD32          count
5385bd8deadSopenharmony_ci        1           BOOL            transpose
5395bd8deadSopenharmony_ci        3                           unused
5405bd8deadSopenharmony_ci        4*count*4*2 LISTofFLOAT32   value
5415bd8deadSopenharmony_ci
5425bd8deadSopenharmony_ci    If the command is encoded in a glXRenderLarge request, the
5435bd8deadSopenharmony_ci    command opcode and command length fields above are expanded to
5445bd8deadSopenharmony_ci    4 bytes each:
5455bd8deadSopenharmony_ci
5465bd8deadSopenharmony_ci        4           20+4*count*4*2  rendering command length
5475bd8deadSopenharmony_ci        4           308             rendering command opcode
5485bd8deadSopenharmony_ci
5495bd8deadSopenharmony_ci    UniformMatrix3x4fv
5505bd8deadSopenharmony_ci
5515bd8deadSopenharmony_ci        2           16+4*count*3*4  rendering command length
5525bd8deadSopenharmony_ci        2           309             rendering command opcode
5535bd8deadSopenharmony_ci        4           CARD32          location
5545bd8deadSopenharmony_ci        4           CARD32          count
5555bd8deadSopenharmony_ci        1           BOOL            transpose
5565bd8deadSopenharmony_ci        3                           unused
5575bd8deadSopenharmony_ci        4*count*3*4 LISTofFLOAT32   value
5585bd8deadSopenharmony_ci
5595bd8deadSopenharmony_ci    If the command is encoded in a glXRenderLarge request, the
5605bd8deadSopenharmony_ci    command opcode and command length fields above are expanded to
5615bd8deadSopenharmony_ci    4 bytes each:
5625bd8deadSopenharmony_ci
5635bd8deadSopenharmony_ci        4           20+4*count*3*4  rendering command length
5645bd8deadSopenharmony_ci        4           309             rendering command opcode
5655bd8deadSopenharmony_ci
5665bd8deadSopenharmony_ci    UniformMatrix4x3fv
5675bd8deadSopenharmony_ci
5685bd8deadSopenharmony_ci        2           16+4*count*4*3  rendering command length
5695bd8deadSopenharmony_ci        2           310             rendering command opcode
5705bd8deadSopenharmony_ci        4           CARD32          location
5715bd8deadSopenharmony_ci        4           CARD32          count
5725bd8deadSopenharmony_ci        1           BOOL            transpose
5735bd8deadSopenharmony_ci        3                           unused
5745bd8deadSopenharmony_ci        4*count*4*3 LISTofFLOAT32   value
5755bd8deadSopenharmony_ci
5765bd8deadSopenharmony_ci    If the command is encoded in a glXRenderLarge request, the
5775bd8deadSopenharmony_ci    command opcode and command length fields above are expanded to
5785bd8deadSopenharmony_ci    4 bytes each:
5795bd8deadSopenharmony_ci
5805bd8deadSopenharmony_ci        4           20+4*count*4*3  rendering command length
5815bd8deadSopenharmony_ci        4           310             rendering command opcode
5825bd8deadSopenharmony_ci
5835bd8deadSopenharmony_ciOpenGL 3.0
5845bd8deadSopenharmony_ci----------
5855bd8deadSopenharmony_ci
5865bd8deadSopenharmony_ci    The following rendering commands are sent to the sever as part of a
5875bd8deadSopenharmony_ci    glXRender request:
5885bd8deadSopenharmony_ci
5895bd8deadSopenharmony_ci        BindBufferRange
5905bd8deadSopenharmony_ci
5915bd8deadSopenharmony_ci            2           32              rendering command length
5925bd8deadSopenharmony_ci            2           355             rendering command opcode
5935bd8deadSopenharmony_ci            8           INT64           offset
5945bd8deadSopenharmony_ci            8           INT64           size
5955bd8deadSopenharmony_ci            4           ENUM            target
5965bd8deadSopenharmony_ci            4           CARD32          index
5975bd8deadSopenharmony_ci            4           CARD32          buffer
5985bd8deadSopenharmony_ci
5995bd8deadSopenharmony_ci        BindBufferBase
6005bd8deadSopenharmony_ci
6015bd8deadSopenharmony_ci            2           16              rendering command length
6025bd8deadSopenharmony_ci            2           356             rendering command opcode
6035bd8deadSopenharmony_ci            4           ENUM            target
6045bd8deadSopenharmony_ci            4           CARD32          index
6055bd8deadSopenharmony_ci            4           CARD32          buffer
6065bd8deadSopenharmony_ci
6075bd8deadSopenharmony_ci        BeginTransformFeedback
6085bd8deadSopenharmony_ci
6095bd8deadSopenharmony_ci            2           8               rendering command length
6105bd8deadSopenharmony_ci            2           357             rendering command opcode
6115bd8deadSopenharmony_ci            4           ENUM            primitiveMode
6125bd8deadSopenharmony_ci
6135bd8deadSopenharmony_ci        EndTransformFeedback
6145bd8deadSopenharmony_ci
6155bd8deadSopenharmony_ci            2           4               rendering command length
6165bd8deadSopenharmony_ci            2           358             rendering command opcode
6175bd8deadSopenharmony_ci
6185bd8deadSopenharmony_ci        ClearBufferfi
6195bd8deadSopenharmony_ci
6205bd8deadSopenharmony_ci            2           20              rendering command length
6215bd8deadSopenharmony_ci            2           360             rendering command opcode
6225bd8deadSopenharmony_ci            4           ENUM            buffer
6235bd8deadSopenharmony_ci            4           CARD32          drawbuffer
6245bd8deadSopenharmony_ci            4           FLOAT32         depth
6255bd8deadSopenharmony_ci            4           CARD32          stencil
6265bd8deadSopenharmony_ci
6275bd8deadSopenharmony_ci        ClearBufferfv
6285bd8deadSopenharmony_ci
6295bd8deadSopenharmony_ci            2           12+(4*n)        rendering command length
6305bd8deadSopenharmony_ci            2           361             rendering command opcode
6315bd8deadSopenharmony_ci            4           ENUM            buffer
6325bd8deadSopenharmony_ci                        0x1800   n=4    GL_COLOR
6335bd8deadSopenharmony_ci                        0x1801   n=1    GL_STENCIL
6345bd8deadSopenharmony_ci                        0x1802   n=1    GL_DEPTH
6355bd8deadSopenharmony_ci                        else     n=0
6365bd8deadSopenharmony_ci            4           CARD32          drawbuffer
6375bd8deadSopenharmony_ci            4*n         LISTofFLOAT32   value
6385bd8deadSopenharmony_ci
6395bd8deadSopenharmony_ci        ClearBufferiv
6405bd8deadSopenharmony_ci
6415bd8deadSopenharmony_ci            2           12+(4*n)        rendering command length
6425bd8deadSopenharmony_ci            2           362             rendering command opcode
6435bd8deadSopenharmony_ci            4           ENUM            buffer
6445bd8deadSopenharmony_ci                        0x1800   n=4    GL_COLOR
6455bd8deadSopenharmony_ci                        0x1801   n=1    GL_STENCIL
6465bd8deadSopenharmony_ci                        0x1802   n=1    GL_DEPTH
6475bd8deadSopenharmony_ci                        else     n=0
6485bd8deadSopenharmony_ci            4           CARD32          drawbuffer
6495bd8deadSopenharmony_ci            4*n         LISTofINT32     value
6505bd8deadSopenharmony_ci
6515bd8deadSopenharmony_ci        ClearBufferuiv
6525bd8deadSopenharmony_ci
6535bd8deadSopenharmony_ci            2           12+(4*n)        rendering command length
6545bd8deadSopenharmony_ci            2           363             rendering command opcode
6555bd8deadSopenharmony_ci            4           ENUM            buffer
6565bd8deadSopenharmony_ci                        0x1800   n=4    GL_COLOR
6575bd8deadSopenharmony_ci                        0x1801   n=1    GL_STENCIL
6585bd8deadSopenharmony_ci                        0x1802   n=1    GL_DEPTH
6595bd8deadSopenharmony_ci                        else     n=0
6605bd8deadSopenharmony_ci            4           CARD32          drawbuffer
6615bd8deadSopenharmony_ci            4*n         LISTofCARD32    value
6625bd8deadSopenharmony_ci
6635bd8deadSopenharmony_ci    The following rendering commands can be sent in a glXRender
6645bd8deadSopenharmony_ci    or glXRenderLarge request.
6655bd8deadSopenharmony_ci
6665bd8deadSopenharmony_ci        TransformFeedbackVaryings
6675bd8deadSopenharmony_ci
6685bd8deadSopenharmony_ci            2      16+(n*4)+s+p    rendering command length
6695bd8deadSopenharmony_ci            2      359             rendering command opcode
6705bd8deadSopenharmony_ci            4      CARD32          program
6715bd8deadSopenharmony_ci            4      INT32           count
6725bd8deadSopenharmony_ci            4      ENUM            buffermode
6735bd8deadSopenharmony_ci            n*4    LISTofINT32     lengths[n], n = count
6745bd8deadSopenharmony_ci            s      LISTofCHAR      varyings, s = sum of all entries in the lengths
6755bd8deadSopenharmony_ci                                   array
6765bd8deadSopenharmony_ci            p                      unused, p = pad(s)
6775bd8deadSopenharmony_ci
6785bd8deadSopenharmony_ci    If the command is encoded in a glXRenderLarge request, the command
6795bd8deadSopenharmony_ci    opcode and command length fields are expanded to 4 bytes each.
6805bd8deadSopenharmony_ci
6815bd8deadSopenharmony_ci            4      20+(n*4)+s+p    rendering command length
6825bd8deadSopenharmony_ci            4      359             rendering command opcode
6835bd8deadSopenharmony_ci
6845bd8deadSopenharmony_ci    lengths[i] is calculated as strlen(varyings[i]) + 1. The NUL terminator
6855bd8deadSopenharmony_ci    is included when sending the varyings.
6865bd8deadSopenharmony_ci
6875bd8deadSopenharmony_ci    The following single commands are sent to the server as part of a
6885bd8deadSopenharmony_ci    glXSingle request:
6895bd8deadSopenharmony_ci
6905bd8deadSopenharmony_ci        GetTransformFeedbackVarying
6915bd8deadSopenharmony_ci
6925bd8deadSopenharmony_ci            1      CARD8           opcode(X assigned)
6935bd8deadSopenharmony_ci            1      213             GLX opcode
6945bd8deadSopenharmony_ci            2      5               request length
6955bd8deadSopenharmony_ci            4      GLX_CONTEXT_TAG context tag
6965bd8deadSopenharmony_ci            4      CARD32          program
6975bd8deadSopenharmony_ci            4      CARD32          index
6985bd8deadSopenharmony_ci            4      CARD32          bufsize
6995bd8deadSopenharmony_ci            =>
7005bd8deadSopenharmony_ci            1      1               reply
7015bd8deadSopenharmony_ci            1                      unused
7025bd8deadSopenharmony_ci            2      CARD16          sequence number
7035bd8deadSopenharmony_ci            4      m               reply length, m = (n == 0 ? 0 : (n + p) / 4)
7045bd8deadSopenharmony_ci            4                      unused
7055bd8deadSopenharmony_ci            4      n-1             length
7065bd8deadSopenharmony_ci            4      INT32           size
7075bd8deadSopenharmony_ci            4      INT32           type
7085bd8deadSopenharmony_ci            8                      unused
7095bd8deadSopenharmony_ci            n      LISTofCHAR      name, n = strlen(name)+1
7105bd8deadSopenharmony_ci            p                      unused, p = pad(m)
7115bd8deadSopenharmony_ci
7125bd8deadSopenharmony_ci        GetStringi
7135bd8deadSopenharmony_ci
7145bd8deadSopenharmony_ci            1           CARD8           opcode (X assigned)
7155bd8deadSopenharmony_ci            1           214             GLX opcode
7165bd8deadSopenharmony_ci            2           4               request length
7175bd8deadSopenharmony_ci            4           GLX_CONTEXT_TAG context tag
7185bd8deadSopenharmony_ci            4           ENUM            name
7195bd8deadSopenharmony_ci            4           CARD32          index
7205bd8deadSopenharmony_ci          =>
7215bd8deadSopenharmony_ci            1           1               reply
7225bd8deadSopenharmony_ci            1           1               unused
7235bd8deadSopenharmony_ci            2           CARD16          sequence number
7245bd8deadSopenharmony_ci            4           m               reply length, m = (n + p) / 4
7255bd8deadSopenharmony_ci            4                           unused
7265bd8deadSopenharmony_ci            4           CARD32          n
7275bd8deadSopenharmony_ci            16                          unused
7285bd8deadSopenharmony_ci            n           STRING8         string
7295bd8deadSopenharmony_ci            p                           unused, p=pad(n)
730