The JSON data currently has the format shown below.
Each entry in the outer array is a single distinct set of device features
(array of "extensions"
plus hash of implementation-dependent "limits"
).
Each feature set is associated with an array of "devices"
.
For each of those devices, we have received a report containing that particular feature set;
this is effectively just a compression mechanism so we don't have to duplicate the entire
feature set description when dozens of devices have identical features.
Each device has an "os"
("Windows"
, "Linux"
, "OS X"
),
a "renderer"
(from GL_RENDERER
),
a "vendor"
(from GL_VENDOR
),
and a "driver"
(typically derived from the appropriate DLL on Windows,
or sometimes a list of lots of DLLs if we can't figure out which is appropriate,
or derived from the full GL_VERSION
string on Linux).
[ { "devices": [ { "driver": "6.14.10.8494", "os": "Windows", "renderer": "AMD 760G", "vendor": "ATI Technologies Inc." } ], "extensions": [ "GL_AMD_performance_monitor", ... "WGL_EXT_swap_control" ], "limits": { "GL_ALIASED_LINE_WIDTH_RANGE[0]": "1", ... "GL_VERTEX_PROGRAM_ARB.GL_MAX_PROGRAM_TEMPORARIES_ARB": "160" } }, { "devices": [ { "driver": "6.14.10.10057", "os": "Windows", "renderer": "AMD M880G with ATI Mobility Radeon HD 4200", "vendor": "ATI Technologies Inc." }, { "driver": "6.14.10.10179", "os": "Windows", "renderer": "AMD M880G with ATI Mobility Radeon HD 4250", "vendor": "ATI Technologies Inc." }, { "driver": "3.3.10188", "os": "Linux", "renderer": "ATI Mobility Radeon HD 3400 Series", "vendor": "ATI Technologies Inc." }, { "driver": "6.14.10.10151", "os": "Windows", "renderer": "ATI Mobility Radeon HD 3400 Series", "vendor": "ATI Technologies Inc." }, ... ], "extensions": [ "GL_AMDX_debug_output", ... "WGL_EXT_swap_control" ], "limits": { "GL_ALIASED_LINE_WIDTH_RANGE[0]": "1", ... "GL_VERTEX_PROGRAM_ARB.GL_MAX_PROGRAM_TEMPORARIES_ARB": "160" } }, ... }