[waffle] Approaches to JSON

Frank Henigman fjhenigman at google.com
Mon Jan 11 13:41:03 PST 2016


On Mon, Jan 11, 2016 at 3:43 PM, Chad Versace <chad.versace at intel.com>
wrote:

> There are two sets of very different json patchsets on the list. Each
> has advantages and disadvantages.
>
> Dylan's patchset duplicates a small amount of code. And it doesn't teach
> wflinfo to print any additional info, such as GLX or EGL specific info.
> However, the patchset is short, sweet, has no major flaw, and is
> the correct approach for what he wished to accomplish: teach wflinfo to
> print its current output in a new format, json.
>
> Having json output makes Dylan's life easier as a Piglit developer, and
> the sooner he can get json the better. So I'm inclined to expedite
> Dylan's patchset and merge it soon, pending fixes.
>
> Frank's patchset adds platform-specific info the wflinfo's output, which
> is a feature it really needs. And the code for the platform-specific
> info rightly belongs in core waffle, which the patchset gets right.
> However, the patchset is much larger, needs lots more review, and needs
> to undergo some API changes.
>
> In other words, Frank's patches will take more time to land, and Dylan's
> are nearly ready to land as-is. And I don't want to artificially stall
> Dylan's Piglit work.
>
> I've decided my preferred format for wflinfo's json output. If the
> format is acceptable to everyone, then I want to see Dylan fixup
> patch 4/4 of his series and resubmit.
>
> I've been taking notes on Frank's patchset, but won't have time to
> provide real feedback until Tuesday (tomorrow) morning.
>
>
> JSON Format
> -----------
> Below is the json format I prefer. Is this acceptable to everyone? Did I
> underspecify the format?
>
> The major things I considered when deciding the format are:
>   1. Keep it simple.
>   2. Explicit is better than implicit.
>   3. Make life easy for existing wflinfo parsers
>      that wish to begin consuming the json. That means existing keys and
>      values should closely resemble eachother, and preferably be
>      identical.
>
> Definition:
>   * All key names are lower case, for consistency.
>   * Key names use ' ', not '-' nor '_', as the separator. This is
>     consistent with wflinfo's current output and glxinfo's output.
>   * For existing keys in wflinfo's current output, the JSON key names
>     should match modulo case.
>   * For existing values in wflinfo's current output, the JSON value
>     should be identical.
>   * The "opengl" table contains all info specific to the OpenGL context.
>     That includes GLSL info, as that is a property of the OpenGL
>     context.
>
>   {
>     "waffle": {
>       "platform": String,
>       "api": String,
>     },
>     "opengl": {
>       "vendor string": String,
>       "renderer string": String,
>       "version string": String,
>       "shading language version string": String,
>       "extensions": [String],
>     },
>     <if platform uses EGL>
>     "egl": {
>       "vendor string": String,
>       "version string": String,
>       "version": [Int, Int],
>       "extensions": [String],
>       "client apis": [String],
>     },
>     <endif>
>     <if platform is GLX>
>     "glx": {
>       "server": {
>         "vendor string": String,
>         "version string": String,
>         "extensions string": [String],
>       },
>       "client": {
>         "vendor string": String,
>         "version string": String,
>         "extensions": [String],
>       }
>       "common": {
>         "version": [Int, Int],
>         "extensions": [String],
>       },
>     },
>     <endif>
>   }
>
> The GLX and EGL tables can be extended in the future to contain
> additional information, such as visual configs.
>

Your JSON format is fine with me.

So if I understand, you're still interested in my patches after landing
Dylan's?  If so I'll just wait until all review comments are in (take your
time) and then prepare v2.  Thanks.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/waffle/attachments/20160111/1bebd4d9/attachment.html>


More information about the waffle mailing list