1. 17 May, 2022 1 commit
  2. 10 May, 2022 1 commit
  3. 24 Apr, 2022 1 commit
  4. 05 Apr, 2022 1 commit
  5. 03 Apr, 2022 2 commits
    • StableCoder's avatar
      Remove the allowEmpty logic · 9740fa48
      StableCoder authored
      All bitmasks can have an empty 'zero' value, and all enums start with at
      least a single named zero-value, so there is no need to have separate
      logic for 'allowing empty'.
    • StableCoder's avatar
      Fixed parsing to skip VkStructureType · 63180dc0
      StableCoder authored
      There is no point in parsing and dealing with the VkStructureType in the
      context of these libraries.
  6. 01 Apr, 2022 1 commit
    • StableCoder's avatar
      Updated static assert messages · 00af9049
      StableCoder authored
      When the files are compiled with Vulkan header versions outside of the
      compiled range, the compiler message will now state the min/max version
      that is supported, instead of a fully generic message.
  7. 29 Mar, 2022 12 commits
    • StableCoder's avatar
      Add v1.3.210 support · 08ef2f63
      StableCoder authored
    • StableCoder's avatar
      Updated container image locations · 0a759243
      StableCoder authored
      Added explicit use of the docker.io domain.
    • StableCoder's avatar
      Fix memory leak issue in serialization · 6a63cbea
      StableCoder authored
      The temporary internal string could be leaked if the return was called
      before the free, or if at the end the serializedLength was 0.
    • StableCoder's avatar
      Added sanitizer capability, CI jobs for them · 4de1cd55
      StableCoder authored
      The sanitizers help to find issues dealing with memory, undefined
      behaviour and other hard-to-find types.
    • StableCoder's avatar
      Updated code-coverage · f50ae46e
      StableCoder authored
      More options, results from both coverage tests can nw be merged into one
    • StableCoder's avatar
      Improved README · 222c8258
      StableCoder authored
      better usage instructions for value serialization, and now reflects the
      C/C++ split.
    • StableCoder's avatar
      Improve test coverage · fdcd89d1
      StableCoder authored
      Add test cases that cover NULL or zero-sized types, testing parsing of
      64-bit templated types, and the behaviour of 'incomplete' serialization.
    • StableCoder's avatar
      Aded some more 64-bit parsing tests · 377ffe98
      StableCoder authored
    • StableCoder's avatar
      Fix issues with type names with numbers in them · b61cda8d
      StableCoder authored
      Some newer types, such as VkPipelineStageFlags2 has numeric values at
      the end, leading to issues where the assumption of 'Flags' or 'FlagBits'
      always being at the end no longer held true. This would lead to where
      generated prefixes were incorrect, where the flags/bits were being added
      to the prefix, and where the number values were being improperly added.
      Instead of the desired prefix of:
      it would generate this:
      Thus, a new method of detecting the Flag/Bits using strstr, and instead
      of manipulating the length of the string, it would advance the character
      pointer when it reaches it.
      As well, adding the case of inserting an underscore when a numeric value
      is detected.
    • StableCoder's avatar
      Split VkValueSerialization between C/C++ · 6de39af5
      StableCoder authored
      Converted the majority of the functionality of the Vulkan value
      serialization library to compile in C. All that is left on the C++ side
      is the macro and templated functions that abstract away very surface-
      level complexity.
    • StableCoder's avatar
      Added C/C++ compliation tests · 7fcd5fdc
      StableCoder authored
      Checks that the headers can be compiled under their respective supported
    • StableCoder's avatar
      Fixed incorrect static_assert for result to string · 2ff8a580
      StableCoder authored
      The result to string header is supposed to be fully C-compatible, but
      was using the C++ static asserts instead.
  8. 27 Mar, 2022 2 commits
    • StableCoder's avatar
      Updated usage comments in headers · 4da9e028
      StableCoder authored
      Slightly better readability, avoiding the auto-formatting mangling that
      occurred with the previous section.
    • StableCoder's avatar
      Refactor of python strings · e2d6ad7c
      StableCoder authored
      Rather than using the writelines function with split strings, changed to
      have a single formatted string which is then output.
  9. 23 Mar, 2022 6 commits
    • StableCoder's avatar
      Add v1.3.209 support · 92ebf571
      StableCoder authored
    • StableCoder's avatar
      Merge parsed 'flags' and 'flagbits' types · f9ba1492
      StableCoder authored
      When it comes to generating the serialization header, not having
      duplicate sets is a boon.
    • StableCoder's avatar
      Parse enum/bitmask extension platform data · 5b8abb16
      StableCoder authored
    • StableCoder's avatar
      Moved enum value location in XML cache · 3df8a926
      StableCoder authored
      Rather than the values being directly under the type node, it is now
      buried one layer deeper under 'values'. This will allow for adding a
      'platforms' set under the enum node.
    • StableCoder's avatar
      Value serialization now accounts for aliases · 7ee90a7e
      StableCoder authored
      When serializing, the order that values were parsed could have an affect
      on what is output as part of serializing values. The last value that
      matched the value would always be used, even if that value was an
      aliased value to a possibly promoted newer value.
      To deal with this, the sets of enum values now have a new 'alias'
      boolean which describes whether the value is aliased, and if so, will be
      skipped for serialization. Per value, there is only ever one non-aliased
      value, from which all the 'aliased' versions copy that value.
      The reason these aliased values still exist in the sets is still for
      parsing from data and programs using older versions of the Vulkan
    • StableCoder's avatar
      Add ability for generate.sh to skip XML parsing · 20116dbd
      StableCoder authored
      Can greatly speed up development by not having to re-generate the cache.
  10. 22 Mar, 2022 3 commits
    • StableCoder's avatar
      Mordernized serialization script write calls · 60e6b46e
      StableCoder authored
      Rather than using the 'writelines' function which passes an array of
      strings, uses strings formatted through native strings functionality for
      more readable code.
    • StableCoder's avatar
      Add more entries for serialization headers · 19d7ed9a
      StableCoder authored
      For the most part the EnumValueSets have been re-ordered since how enums
      are parsed from the Vulkan XML have modified how they are output.
      For actual changes however, many enum types that do not have any values
      now have entries in the enumTypes array, with no array but placed there
      so zero-values can be parsed and serielized. As well, duplicate sets of
      enums that have been promoted between vendors have been merged into the
      latest set (ie 'aliased' sets now point at newest variant of the enum).
    • StableCoder's avatar
      Updated handling of enums/bitmasks · d86987fc
      StableCoder authored
      Rather than adding enum and bitmasks as they have values appear in the
      Vulkan XML, they are all collected from the initial types/type section.
      This does allow for adding some more pertinent information, such as
      alias information that can be used to better build relationships in the
  11. 18 Mar, 2022 1 commit
  12. 08 Mar, 2022 1 commit
  13. 20 Feb, 2022 1 commit
  14. 06 Feb, 2022 1 commit
  15. 31 Jan, 2022 2 commits
    • StableCoder's avatar
      Fixed sub-compare function calls · 93006e98
      StableCoder authored
      When a compare function was called from another as part of the initial
      trivial check set, the inverse of what was desired was sent back. So
      while the sub-type was equal, the calling type would think it wasn;t.
      Inverting the call point resolves this.
    • StableCoder's avatar
      Changed formatting of generated headers · 053bf4ec
      StableCoder authored
      The headers need a few passes for some reason to format properly.
  16. 30 Jan, 2022 4 commits
    • StableCoder's avatar
      Changed the big if/else chain to independent ifs · d90a486b
      StableCoder authored
      MSVC has a nested block limit of 128, and if/else chain counts as that.
      Thus MSVC would hit this limit when compiling the cleanup header.
    • StableCoder's avatar
      Fixed handling of alias structs · ac7a8d90
      StableCoder authored
      A fair number of extension struct types have been promoted and as such,
      renamed to lose vendor suffixes.
      However, these aliases were not tracked nor accounted for, so structs
      that would have required work for cleanup or comparison were treated as
      if they had no members at all.
      The parsing script has been updated to pass alias information along, and
      the cleanup/compare generation scripts updated to follow any alias and
      use those member instead.
      As well, because some structs have had members added or removed through
      specification revisions, members also get first/last information to help
      properly guard them.
      Because of aliases however, using the switch case no longer works as
      there are multiple enums for the same value, so changing to a big
      if/else chain had to happen.
    • StableCoder's avatar
      Added comparison header · fd5b6bae
      StableCoder authored
      Doing simple comparisons of struct-local data only.
    • StableCoder's avatar
      Updated XML parsing to deal with platform versions · cfd59e64
      StableCoder authored
      As the Vulkan spec has progressed, some associations between functions
      and definitions have changed, when items have been promoted or certain
      extension/platform names have been removed.
      Rather than requiring all platforms to be defined, structures may exist
      if at least one of the platforms are defined. As such, they should be
      what is checked for instead using OR.
      Also added the ability to manually exclude certain structs for whatever
      reason. Currently because I don't know how to implement some bits and
      have no need to yet.