1. 27 Apr, 2019 1 commit
    • Daniel Stone's avatar
      pkg-config: Add sysroot prefix · bd7a481a
      Daniel Stone authored
      xcb-proto's pkg-config file exports static file paths for where to find
      its Python files and the XML definitions.
      
      When used to discover cflags, library paths, etc, pkg-config will
      prepend ${PKG_CONFIG_SYSROOT_DIR}, if any, to those paths. This makes
      the use of a sysroot prefix transparent to users. However, since it
      doesn't know about paths in custom variables, it cannot automatically
      prefix this.
      
      Adding ${pc_sysrootdir} to these absolute paths makes the behaviour
      match, and XCB builds work out of the box in a sysroot.
      Signed-off-by: Daniel Stone's avatarDaniel Stone <daniels@collabora.com>
      Reviewed-by: Eric Anholt's avatarEric Anholt <eric@anholt.net>
      bd7a481a
  2. 17 Feb, 2019 1 commit
  3. 14 Mar, 2018 1 commit
  4. 28 Feb, 2018 3 commits
    • Daniel Stone's avatar
      Release xcb-proto 1.13 · 94228cde
      Daniel Stone authored
      This release adds support for variable-sized lists of FDs (e.g. sized
      by a field in the request/event), as well as several other cleanups and
      fixes in the core code.
      
      DRI3 has been bumped to v1.2, using the new support to support
      multi-planar buffers and DRM modifiers.
      
      Present has also been bumped to v1.2, adding a new token for the server
      to indicate to the client that it should reallocate its buffers.
      
      RandR has been updated to 1.6, adding support for DRM leases to allow
      clients to directly control outputs.
      Signed-off-by: Daniel Stone's avatarDaniel Stone <daniels@collabora.com>
      94228cde
    • Louis-Francis Ratté-Boulianne's avatar
      present: Add PresentModeSuboptimalCopy flag · 554c09ff
      Louis-Francis Ratté-Boulianne authored
      This flag (returned with PresentCompleteNotify event) indicates
      that the window could have been flipped instead of copied if
      the buffer format/modifier was different. Clients must indicate
      that they support the flag by adding option PresentOptionSuboptimal
      when calling PresentPixmap.
      
      v2: Add PresentOptionSuboptimal
      Signed-off-by: Louis-Francis Ratté-Boulianne's avatarLouis-Francis Ratté-Boulianne <lfrb@collabora.com>
      554c09ff
    • Louis-Francis Ratté-Boulianne's avatar
      DRI3: Add multi-planar and modifier support · 4bc3f832
      Louis-Francis Ratté-Boulianne authored
      Bumping to version 1.2, add support for:
        - querying formats and modifiers supported by the server
        - creating (and receiving) multi-planar buffers
        - creating (and receiving) buffers with modifiers
      
      v2: Fix alignment
      v3: Bump to version 1.2 rather than 1.1. The old dri3proto had a '1.1'
          release for non-functional changes, so we avoid that version and
          skip directly to 1.2.
      Signed-off-by: Daniel Stone's avatarDaniel Stone <daniels@collabora.com>
      Signed-off-by: Louis-Francis Ratté-Boulianne's avatarLouis-Francis Ratté-Boulianne <lfrb@collabora.com>
      4bc3f832
  5. 15 Dec, 2017 1 commit
  6. 05 Jun, 2017 1 commit
  7. 13 May, 2017 1 commit
  8. 11 Mar, 2017 4 commits
    • Christian Linhart's avatar
      SendExtensionEvent uses eventstruct · 97fbba25
      Christian Linhart authored
      Use the eventstruct element to define the SendExtensionEvent request
      instead of using a byte-array.
      
      This has the advantage that the structure of the data to be sent
      is now defined in the xml definition.
      This can be used by generators to make sending events safer.
      Such as avoiding type-casts in C.
      
      It can also be useful for protocol analyzers and tools like that
      because the structure of the sent events is now defined in the xml-definition.
      Tested-by: Christian Linhart's avatarChristian Linhart <chris@demorecorder.com>
      Signed-off-by: Christian Linhart's avatarChristian Linhart <chris@demorecorder.com>
      97fbba25
    • Christian Linhart's avatar
      add support for eventstruct · 4aa40fbd
      Christian Linhart authored
      eventstruct is a new xml element that allows to use events
      as part of requests.
      
      This is, e.g., needed by the SendExtensionEvent request
      of the XINPUT extension.
      Signed-off-by: Christian Linhart's avatarChristian Linhart <chris@demorecorder.com>
      4aa40fbd
    • Christian Linhart's avatar
      xinput: typedef for event_type_base · 89b022fd
      Christian Linhart authored
      member event_type_base in struct InputClassInfo is a CARD8.
      This patch replaces the type with the new typedef EventTypeBase
      which is defined as a CARD8.
      
      This does not alter the ABI or API for that struct because
      typedefs do not appear in the ABI.
      And C handles typedefs as aliases.
      So there'll be no API issues as well.
      
      The libxcb generator adds additional functions that implement
      an iterator over this type.
      This is harmless because adding code is ABI/API compatible.
      
      The purpose of this change is to add more semantic info to this
      member variable of this struct.
      
      This helps with xcb-based generators or automatic code-checkers
      and things like that.
      Signed-off-by: Christian Linhart's avatarChristian Linhart <chris@demorecorder.com>
      89b022fd
    • Christian Linhart's avatar
      move symboltable lookup of sumof expr to the parser · f5218967
      Christian Linhart authored
      Set the lenfield of a sumof expression object, so that
      libxcb or other generators won't need to look it up.
      
      This object is trivially available in the parser but
      needs a complex lookup in generators.
      Signed-off-by: Christian Linhart's avatarChristian Linhart <chris@demorecorder.com>
      f5218967
  9. 24 Jan, 2017 1 commit
  10. 04 Jun, 2016 1 commit
    • Jon Turney's avatar
      Update XML schema to fix 'make check' · 95a262e0
      Jon Turney authored
      Here is an attempt at updating the schema to add serialize attribute to pad
      element and required_start_align element.
      
      Not sure if I've added required_start_align element in the right place. The
      default case in the switch element is removed as it doesn't seem to be used, and
      otherwise makes the schema ambiguous.
      
      $ make check
      Making check in src
      make[1]: Entering directory '/jhbuild/x86_64-pc-cygwin/build/xcb/proto/src'
      make  check-local
      make[2]: Entering directory '/jhbuild/x86_64-pc-cygwin/build/xcb/proto/src'
      /usr/bin/xmllint --noout --schema /jhbuild/checkout/xcb/proto/src/xcb.xsd
      /jhbuild/checkout/xcb/proto/src/*.xml
      /jhbuild/checkout/xcb/proto/src/bigreq.xml validates
      /jhbuild/checkout/xcb/proto/src/composite.xml validates
      /jhbuild/checkout/xcb/proto/src/damage.xml validates
      /jhbuild/checkout/xcb/proto/src/dpms.xml validates
      /jhbuild/checkout/xcb/proto/src/dri2.xml validates
      /jhbuild/checkout/xcb/proto/src/dri3.xml validates
      /jhbuild/checkout/xcb/proto/src/ge.xml validates
      Element 'required_start_align': This element is not expected. Expected is one of ( pad, field, list, fd ).
      Element 'required_start_align': This element is not expected. Expected is one of ( pad, field, list, fd ).
      Element 'required_start_align': This element is not expected. Expected is one of ( pad, field, list, fd ).
      Element 'required_start_align': This element is not expected. Expected is one of ( pad, field, list, fd ).
      /jhbuild/checkout/xcb/proto/src/glx.xml fails to validate
      Element 'required_start_align': This element is not expected. Expected is one of ( pad, field, list, fd, exprfield, switch, reply, doc ).
      Element 'required_start_align': This element is not expected. Expected is one of ( pad, field, list, fd, exprfield, switch, reply, doc ).
      Element 'required_start_align': This element is not expected. Expected is one of ( pad, field, list, fd, doc ).
      Element 'required_start_align': This element is not expected. Expected is one of ( pad, field, list, fd, doc ).
      /jhbuild/checkout/xcb/proto/src/present.xml fails to validate
      /jhbuild/checkout/xcb/proto/src/randr.xml validates
      /jhbuild/checkout/xcb/proto/src/record.xml validates
      /jhbuild/checkout/xcb/proto/src/render.xml validates
      /jhbuild/checkout/xcb/proto/src/res.xml validates
      /jhbuild/checkout/xcb/proto/src/screensaver.xml validates
      /jhbuild/checkout/xcb/proto/src/shape.xml validates
      /jhbuild/checkout/xcb/proto/src/shm.xml validates
      /jhbuild/checkout/xcb/proto/src/sync.xml validates
      /jhbuild/checkout/xcb/proto/src/xc_misc.xml validates
      /jhbuild/checkout/xcb/proto/src/xevie.xml validates
      /jhbuild/checkout/xcb/proto/src/xf86dri.xml validates
      /jhbuild/checkout/xcb/proto/src/xf86vidmode.xml validates
      /jhbuild/checkout/xcb/proto/src/xfixes.xml validates
      /jhbuild/checkout/xcb/proto/src/xinerama.xml validates
      Element 'required_start_align': This element is not expected. Expected is one of ( bitcase, case, pad, field, list, fd ).
      Element 'required_start_align': This element is not expected. Expected is one of ( bitcase, case, pad, field, list, fd ).
      Element 'required_start_align': This element is not expected. Expected is one of ( bitcase, case, pad, field, list, fd ).
      /jhbuild/checkout/xcb/proto/src/xinput.xml fails to validate
      Element 'pad', attribute 'serialize': The attribute 'serialize' is not allowed.
      Element 'pad', attribute 'serialize': The attribute 'serialize' is not allowed.
      Element 'pad', attribute 'serialize': The attribute 'serialize' is not allowed.
      Element 'pad', attribute 'serialize': The attribute 'serialize' is not allowed.
      Element 'pad', attribute 'serialize': The attribute 'serialize' is not allowed.
      /jhbuild/checkout/xcb/proto/src/xkb.xml fails to validate
      /jhbuild/checkout/xcb/proto/src/xprint.xml validates
      /jhbuild/checkout/xcb/proto/src/xproto.xml validates
      /jhbuild/checkout/xcb/proto/src/xselinux.xml validates
      /jhbuild/checkout/xcb/proto/src/xtest.xml validates
      /jhbuild/checkout/xcb/proto/src/xv.xml validates
      /jhbuild/checkout/xcb/proto/src/xvmc.xml validates
      Makefile:534: recipe for target 'check-local' failed
      Signed-off-by: Jon Turney's avatarJon Turney <jon.turney@dronecode.org.uk>
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=95494Reviewd-by: default avatarRan Benita <ran234@gmail.com>
      Signed-off-by: Uli Schlachter's avatarUli Schlachter <psychon@znc.in>
      95a262e0
  11. 02 Jun, 2016 1 commit
  12. 28 May, 2016 2 commits
  13. 18 May, 2016 1 commit
  14. 27 Jan, 2016 2 commits
  15. 06 Jan, 2016 3 commits
    • Jaya Tiwari's avatar
      calculate lengthless list · 811e038c
      Jaya Tiwari authored
      Some rework done by Christian Linhart
      Signed-off-by: default avatarJaya Tiwari <tiwari.jaya18@gmail.com>
      Signed-off-by: Christian Linhart's avatarChristian Linhart <chris@demorecorder.com>
      811e038c
    • Christian Linhart's avatar
      make xkb pass the alignment checker · fe8ae242
      Christian Linhart authored
      These are just minimal adjustments to get xkb through
      the checks of the alignment checker.
      
      It is not the big fixup which I have already posted an RFC patch
      a while ago.
      
      V2 of this patch:
        make indentation consistent with the file
        (tabs vs spaces)
      Signed-off-by: Christian Linhart's avatarChristian Linhart <chris@demorecorder.com>
      fe8ae242
    • Christian Linhart's avatar
      automatic alignment checker / manual offsets · c499401b
      Christian Linhart authored
      The verification algorithm basically traverses the protocol-description
      of a protocol entity by recursively processing all fields and their
      types.
      
      A start-align consists of two numbers:
      * the alignment: This is a power of 2, and guarantees that the
        address (or protocol position) minus the offset can be divided
        by this number.
      
      * the offset: how many bytes the current position is after a
        position that can be divided by the alignment.
      
      The algorithm starts with the start-alignment and computes the alignment
      of each field from the start-align of the previous field as follows:
      * if the previous field is a primitive type then the offset is increased
        by the size of the primitive type module the alignment.
        If the alignment or offset are incompatible with the primitive type,
        then an error is reported.
      * if the previous field is a complex type, then it is processed recursively.
      * if the previous field is an alignment-pad, then the alignment is
        adjusted accordingly, as to be expected by the alignment-pad.
      
      Start-aligns can also be set manually with the xml-element
      "required_start_align" which has two attributes: "align" and "offset"
      If "offset" is omitted, it is assumed to 0.
      
      All toplevel protocol entities default to 4-byte start-alignment with offset 0.
      
      All non-toplevel complex entities, such as structs, switch, case, ...
      do not have a default alignment.
      If no alignment is explicitly specified for them, their alignment
      is computed by their usage in other entities.
      In that case, if they are used with aligments that violate the
      alignment requirements of some of their fields, an error is issued.
      
      If they are used with an alignment with non-zero offset,
      a warning is issued, which recommends to specify the required_start_align
      explicitly. (Reason: I don't want non-zero offsets to be silently
      computed automatically. These non-zero offsets have to be reviewed
      by a human and specified explicitely to record that this was reviewed
      by a human)
      
      If the required_start_align is explicitly specified for an entity
      then an error will be issued if it is used with an aligment that's
      incompatible with the explicitly specified alignment.
      
      If an entity is used in different contexts with different start-aligns
      then those start-aligns are combined to an align which is compatible
      with all aligns.
      E.g. (align 4, offset 0) and (align 4, offset 2) are combined
      to (align 2, offset 0).
      
      Error reports include the relevant context for a misalignment.
      For non-toplevel entities this includes the entity-usage stack.
      There is some complexity in the algorithm for reducing the size
      of the error-reports to include only the relevant info.
      
      This alignment verifier is also a prerequisite for getting
      rid of implicit alignment altogether.
      (This will then simplify the generated code and make it faster.)
      Signed-off-by: Christian Linhart's avatarChristian Linhart <chris@demorecorder.com>
      c499401b
  16. 15 Nov, 2015 3 commits
  17. 26 Oct, 2015 10 commits
  18. 13 Sep, 2015 2 commits
  19. 04 Aug, 2015 1 commit