Vendor-specific information may follow the version number. Its format
depends on the implementation, but a space always separates the version
number and the vendor-specific information.
All strings are null-terminated.
NNNNOOOOTTTTEEEESSSS
If an error is generated, ggggllllGGGGeeeettttSSSSttttrrrriiiinnnngggg returns 0.
The client and server may support different versions or extensions.
ggggllllGGGGeeeettttSSSSttttrrrriiiinnnngggg always returns a compatible version number or list of
extensions. The release number always describes the server.
EEEERRRRRRRROOOORRRRSSSS
GGGGLLLL____IIIINNNNVVVVAAAALLLLIIIIDDDD____EEEENNNNUUUUMMMM is generated if _n_a_m_e is not an accepted value.
GGGGLLLL____IIIINNNNVVVVAAAALLLLIIIIDDDD____OOOOPPPPEEEERRRRAAAATTTTIIIIOOOONNNN is generated if ggggllllGGGGeeeettttSSSSttttrrrriiiinnnngggg is executed between the
execution of ggggllllBBBBeeeeggggiiiinnnn and the corresponding execution of ggggllllEEEEnnnndddd.
The GGGGLLLL____RRRREEEENNNNDDDDEEEERRRREEEERRRR strings returned by ggggllllGGGGeeeettttSSSSttttrrrriiiinnnngggg for each graphics system
are listed below. Square brackets ([,]) surround optional parts of the
string, and angle brackets (<,>) surround multi-valued parts that are
always present. Neither the square brackets nor the angle brackets are
part of the string.
IIIInnnnddddyyyy and XXXXLLLL: """"NNNNEEEEWWWWPPPPOOOORRRRTTTT <<<<nnnnppppllllaaaannnneeeessss>>>>"""", where _n_p_l_a_n_e_s is the number of
configured bitplanes: 8 or 24.
PPPPeeeerrrrssssoooonnnnaaaallll IIIIrrrriiiissss: """"GGGGRRRR1111....<<<<vvvveeeerrrrssssiiiioooonnnn>>>>[[[[////22224444]]]][[[[////ZZZZ]]]][[[[////TTTTuuuurrrrbbbboooo]]]]"""", where _v_e_r_s_i_o_n is the
XXXXSSSS, XXXXZZZZ, EEEEllllaaaannnn, and EEEExxxxttttrrrreeeemmmmeeee: """"<<<<ttttyyyyppppeeee>>>>----<<<<ggggrrrraaaapppphhhhiiiiccccssss>>>>"""", where _t_y_p_e is one of
GR2, GR3, GU1 or GR2MP and _g_r_a_p_h_i_c_s is one of XS, XSM, XS24, XS24-Z,
XZ, Elan, or Extreme, corresponding to the configuration of the
RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee, RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee2222, and VVVVTTTTXXXX: """"<<<<ttttyyyyppppeeee>>>>////<<<<ppppiiiixxxxdddd>>>>////<<<<nnnnrrrrmmmm>>>>////<<<<tttteeeexxxxsssszzzz>>>>"""",
where _t_y_p_e is REC, RE, REV, RET, or RES, corresponding to Crimson,
Power Series, Onyx/VTX with R4400, PowerOnyx with R8000, or
Onyx/PowerOnyx with R10000; _p_i_x_d is S, M, or L, corresponding to
small, medium, or large pixel depth, respectively; _n_r_m is 1, 2, or
4, indicating the number of raster manager boards; _t_e_x_s_z is 2 or 8
indicating the size of the texture memory in megatexels. (Each
texel is 16 bits in size.)
SSSSoooolllliiiidddd IIIImmmmppppaaaacccctttt, HHHHiiiigggghhhh IIIImmmmppppaaaacccctttt and MMMMaaaaxxxxiiiimmmmuuuummmm IIIImmmmppppaaaacccctttt: """"IIIIMMMMPPPPAAAACCCCTTTT////<<<<nnnnggggeeee>>>>////<<<<nnnnrrrrssssssss>>>>////<<<<tttteeeexxxxsssszzzz>>>>"""",
where _n_g_e is 1 or 2, corresponding to the number of GEs; _n_r_s_s is 1
or 2, corresponding to the number of raster subsystem boards; and
_t_e_x_s_z is 0, 1 or 4, corresponding to the size of texture memory in