Commit graph

236 commits

Author SHA1 Message Date
Jasper Bekkers 6bdc403330
[WIP] Khr Ray Tracing (#278)
* Fix incorrect generation of commands with aliases

* Use alias name instead of the actual cmd name

* Generate vulkan ray-tracing bindings

* Add ray-tracing khr

* High level ray tracing support

* Re-enable nv ray tracing extension (this will break the build)

* Generate aliases for extension enums

* Add missing alias because the parser doesn't provide alias information here

* Fix 'unreachable pattern' warnings

* Fix clippy warning

Co-authored-by: Maik Klein <maikklein@googlemail.com>
2020-03-22 16:05:30 +01:00
Maik Klein af6acb93e5
Fix incorrect generation of commands with aliases (#279)
* Fix incorrect generation of commands with aliases

* Use alias name instead of the actual cmd name
2020-03-22 13:56:01 +01:00
Maik Klein c32f0dd739 Clippy lints for 1.42 2020-03-15 00:55:26 +01:00
Benjamin Saunders 651462a342
Fix XCB types (#267) 2020-02-02 10:42:59 +01:00
Alexander Ekdahl 00f52cc5ad Vulkan 1.2 Support (#264)
* Updated vk-parse and Vulkan-Headers to Vulkan 1.2

* First pass at generating vk.rs

* Support double

* Generate from EnumSpec::Value

* Remove println

* Fix mutable pointer bug

* cargo fmt

* Update document link

* Remove mention of Vulkan 1.2 support for now

* Add clippy::wrong_self_convention
2020-01-19 09:56:12 +01:00
Maik Klein 17edc8c13c Disable missing_safety_doc 2020-01-18 14:32:56 +01:00
Steve Wooster 54e7097dc7 Make more structs derive PartialEq/Eq/Hash (#248)
Adds equality-related traits to VkClearRect, VkOffset2D, VkOffset3D,
VkRect2D and VkSurfaceFormatKHR. Fixes a typo preventing said traits
from being applied to VkExtent2D.
2019-11-17 11:49:09 +01:00
Maik Klein e67df2650a
Update VulkanHeaders to 1.1.117 (#222)
* Update VulkanHeaders to 1.1.117

* Mark Ggp definitions as experimental

* Fix is_version

* Switch to 1.1.117
2019-10-20 18:11:13 +02:00
Maik Klein 855068323d
Address all the clippy lints (#233)
* Fix literals in vk.rs

* Address all the other clippy lints in ash

* Module level clippy lint

* More lints

* Make hashmaps generic for clippy

* Remove unused macro import
2019-10-20 17:18:40 +02:00
Benjamin Saunders 4e8090f0bb Replace version macros with const fns 2019-10-05 11:16:35 -07:00
bors[bot] 455adc6c1a Merge #216 #217
216: Update to 2018 edition r=MaikKlein a=aloucks

Fixes #204 

217: Make handle and bitflags constructor functions const r=MaikKlein a=aloucks

Fixes #187

Co-authored-by: Aaron Loucks <aloucks@cofront.net>
2019-05-26 21:21:57 +00:00
Aaron Loucks fb982fe419 Make handle and bitflags constructors functions const
Fixes #187
2019-05-25 16:00:15 -04:00
Aaron Loucks 634b618852 Run cargo fmt 2019-05-25 15:38:28 -04:00
Aaron Loucks 1ba1d46eb2 Update generator and examples to edition 2018 2019-05-25 15:34:18 -04:00
Aaron Loucks 284043b605 Update to 2018 edition 2019-05-25 15:25:00 -04:00
Benjamin Saunders bb6427d693 Idiomatic Debug impls for enums and bitflags
Improves consistency with Rust idioms. In particular, readability of
panic messages arising from unwrapped `VkResult`s is vastly improved.
2019-04-23 19:41:17 -07:00
bors[bot] 775a7d035d Merge #196
196: Rewrite builder in the readme r=MaikKlein a=MaikKlein



Co-authored-by: Maik Klein <maikklein@googlemail.com>
Co-authored-by: Benjamin Saunders <ben.e.saunders@gmail.com>
2019-03-22 12:03:11 +00:00
Aaron Loucks d52f2c9b3e Reverting changes to Result's Display impl 2019-03-20 21:19:49 -04:00
Maik Klein 90538a05c0 Add docs to the build method 2019-03-20 10:45:17 +01:00
Aaron Loucks 584a3bb5da The doc parameter of define_handle is now optional 2019-03-17 12:54:26 -04:00
Aaron Loucks ac4e38a3d9 Remove deprecated method impls for std Error 2019-03-16 13:25:21 -04:00
Aaron Loucks f1fd35350c Convert khronos_link! into a function 2019-03-16 13:22:25 -04:00
Aaron Loucks adb194891f Add Khronos doc links and other ergonomic cleanup
* Khronos doc links are now automatically generated in vk.rs
* Added doc links to all other non-generated functions
* Implemented std::error::Error for LoadingError
* Made EntryCustom public in addition to the Entry typedef so that
  rustdoc no longer ignores it
* Moved Entry::new into EntryCustom (non-breaking)
* Added EntryCustom::try_enumerate_instance_version. The EntryV1_1 trait
  is not implemented for any type. Even if it were, the function would
  panic for Vulkan 1.0 implementations
* Added entry and instance creation example to lib docs
* Updated the Display impl for vk::Result so that it matches
  other bitmask and enum conventions
* Removed lazy_static dependency because it was no longer being
  referenced
2019-03-16 13:22:24 -04:00
Aaron Loucks b570edcee2 Add doc links for all non-generated files 2019-03-16 13:22:24 -04:00
Aaron Loucks 7555816b58 Generate doc links for all structs and functions 2019-03-16 13:22:24 -04:00
Aaron Loucks 23cbec85e9 Use BTreeMap only where absolutely necessary 2019-03-14 19:22:52 -04:00
Aaron Loucks 71ab88531e Fix struct generation with constant sized arrays 2019-03-13 17:50:04 -04:00
Aaron Loucks 659b10c5ae Make vk.rs generation idempotent and regenerate
All instances of HashMap and HashSet have been replaced with
BTreeMap and BTreeSet. Repeated generation of vk.rs results
in the same output given the same vk.xml and generator.

Note that this commit still contains the struct generation bug
introduced in PR #191. All structs with fixed sized arrays
are currently generated as slices.
2019-03-13 17:25:29 -04:00
bors[bot] 6672f53ee8 Merge #183
183: [WIP] Implement extension chaining r=MaikKlein a=MaikKlein

This is only a proof on concept right now. I'll finish it up next week.

What are your thoughts? Right now this requires a cast from `*const` to `*mut`.

Co-authored-by: Maik Klein <maikklein@googlemail.com>
2019-03-10 19:07:54 +00:00
Maik Klein 7d5d20017b Move external tests to lib.rs 2019-03-10 12:56:51 +01:00
Maik Klein 1744159dfd Move ptr chain tests out of the generator 2019-03-09 19:51:23 +01:00
Maik Klein c8c8f69a7c next can contain a pointer chain and we need to correct insert it. 2019-03-09 19:51:23 +01:00
Maik Klein bf29ebb39d Replace root create info with root_struct 2019-03-09 19:51:23 +01:00
Dzmitry Malyshau 7aa30a6544 Pass constant size arrays by reference 2019-03-08 00:06:01 -05:00
Maik Klein 88b1ac077d Rename root_extends 2019-03-04 10:22:38 +01:00
Maik Klein 04dbf20371 Transform the ptr chain sample into a test case 2019-03-04 09:56:53 +01:00
Maik Klein 215511f9cf Implement ExtendXXX for multiple root create infos
if there are more than 1
2019-03-03 18:29:37 +01:00
Maik Klein 38fe16f6c7 Use repr transparent for builders 2019-03-03 14:33:19 +01:00
Maik Klein 1e13b999d7 Add some documentation to push_next 2019-02-28 10:59:46 +01:00
Maik Klein c66ae6b77e Add lifetime to push_next 2019-02-28 10:59:46 +01:00
Maik Klein 3de2ca9a22 Implement ExtendsXXX for all builders as well 2019-02-28 10:59:46 +01:00
Maik Klein 4f7ca180f6 Implement push_next 2019-02-28 10:59:46 +01:00
Maik Klein c46a41e1d2 Replace ExtensionChain with a simple iterator 2019-02-28 10:59:46 +01:00
Maik Klein 6d72bb547d Implement extension chaining 2019-02-28 10:59:46 +01:00
Maik Klein 04e6e372cd Update to 1.1.97 2019-02-14 00:16:52 +01:00
Maik Klein e86645d233 Add extension names to the funcion pointer structs 2019-02-12 15:04:38 +01:00
Francesca Plebani 06886a034e Fix ARM build
On ARM, c_char is unsigned.
2019-01-29 14:07:20 -05:00
Matus Talcik 6497e2f58c Builder: fix [c_void] 2018-12-09 11:52:28 +01:00
Benjamin Saunders 06b9599e16 Update to latest rustfmt 2018-12-08 15:42:13 -08:00
Benjamin Saunders c0b7d91faf Don't generate extension traits for inextensible structs 2018-11-30 18:13:54 -08:00
Benjamin Saunders fc1625e81c Fix extension trait implementations, tweak naming
These were being implemented for the trait object of the extension
struct's own extension trait, instead of the extension struct itself.
2018-11-30 18:12:16 -08:00
Matus Talcik 1be701f853 Builder: next pattern 2018-11-22 21:54:05 +01:00
Maik Klein d7218ef7a8 Remove explicit length type 2018-11-22 16:13:09 +01:00
Maik Klein 3aaa804abd Add a cache for bitflags because there are duplicates 2018-11-22 16:13:09 +01:00
Maik Klein ef85a0b5f5 Add fuchsia typedefs 2018-11-22 16:13:09 +01:00
Maik Klein 3a7f811700 Generate aliases for types 2018-11-22 16:13:09 +01:00
Maik Klein f60cc9e532 Update vk.xml to spec 1.1.92 2018-11-22 16:13:09 +01:00
Maik Klein 9e4f25f282 Update vk_parse to 0.2 2018-11-22 16:13:09 +01:00
msiglreith 86e273b71a Public export function pointers 2018-11-21 19:11:13 +01:00
imdone.io app user f7381f2307 TODO comments updated by @imdoneio [ci skip] [imdone skip] 2018-11-20 11:55:06 -05:00
Matus Talcik b71dc58efb Initial support for rustfmt 2018-11-17 19:05:28 +01:00
msiglreith cd20cc4e37 Generate function pointer raw type definitions 2018-11-16 18:41:36 +01:00
msiglreith 424ebbad20 Export define macros 2018-11-16 18:41:36 +01:00
Matus Talcik 8a82125788 Builder pattern: Bool32 -> bool. Edge cases added 2018-11-12 23:22:16 +01:00
Maik Klein a55cb9bd0c Merge branch 'flatten' of https://github.com/Ralith/ash into Ralith-flatten 2018-11-11 14:47:51 +01:00
Maik Klein 6beeb16a4e Merge branch 'flags-api' of https://github.com/Ralith/ash into Ralith-flags-api 2018-11-11 14:37:26 +01:00
Maik Klein 35d6bdf144 Remove format 2018-11-04 09:26:10 +01:00
Maik Klein adf571c95c Initialize function pointers to a panicking function if it couldn't be
loaded
2018-11-03 23:37:20 +01:00
Matus Talcik b0864e5c44 Change code function of VkShaderModule to take &[u32] according to spec 2018-10-29 13:32:17 +01:00
Matus Talcik deb83f4b2e fix *const in some setters 2018-10-26 15:49:12 +02:00
Matus Talcik 70acea569d Handle ShaderModuleCreateInfo code properly 2018-10-24 16:00:16 +02:00
Matus Talcik 4072cc39e8 Fix filtering of _count member fields 2018-10-24 00:20:03 +02:00
Matus Talcik 358220cb85 Filter out _count members in builder pattern 2018-10-24 00:19:34 +02:00
Matus Talcik 0c70322d22 Implementation of setters 2018-10-24 00:19:06 +02:00
Maik Klein 5e2f231cf2 wl_* types are not pointers 2018-10-23 15:50:47 +02:00
Benjamin Saunders cd394db60f Wrap function pointers in Option since they might be null 2018-10-08 17:34:40 -07:00
Benjamin Saunders d4789768a6 Fix nonsense Debug impl on non-char static arrays 2018-10-07 10:17:48 -07:00
Benjamin Saunders d78afd87dd Flatten vk.rs module structure and use f32 2018-09-29 11:21:56 -07:00
Benjamin Saunders aa171d405a More traits for dispatchable handles 2018-09-16 12:18:10 -07:00
Benjamin Saunders 0446b59873 More consistent names in flags API
Improves consistency with other newtypes and with bitflags.
2018-09-16 12:08:14 -07:00
Gabriel Majeri fd5d89f2b6 Remove libc usage 2018-08-28 20:01:16 +03:00
Gabriel Majeri b722b0f3a9 Map all integer types to Rust types 2018-08-25 14:09:44 +03:00
Gabriel Majeri 0786d71b39 Fix Vulkan version macros 2018-08-25 10:51:57 +03:00
Maik Klein 898e9791b7
Merge pull request #110 from MatusT/generator
Default trait: set pointers to std::ptr::null()/null_mut()
2018-08-23 07:18:21 +02:00
Maik Klein 9edecfd476
Merge pull request #108 from GabrielMajeri/entry-1.1
Make `enumerate_instance_version` an `Entry` function
2018-08-23 07:13:08 +02:00
Matus Talcik 7e505347f4 Default trait: set pointers to std::ptr::null()/null_mut() instead of zeroed 2018-08-22 22:53:17 +02:00
Gabriel Majeri 15839ddc4e Move enumerate_instance_version to Entry
Also adds `EntryV1_1` trait

# Conflicts:
#	ash/src/version.rs
2018-08-22 10:24:50 +03:00
Benjamin Saunders a0424596a5 More robust Display for flags types
Fixes strange behavior if a Vulkan flags constant setting multiple bits
is defined prior to that which sets only one of those bits.
2018-08-21 21:16:08 -07:00
Benjamin Saunders d5666554fc Expose conversions between enums and raw values 2018-08-20 23:56:33 -07:00
Maik Klein e546fbbb5d [Fix] BitPos can be negative 2018-08-20 09:55:41 +02:00
Maik Klein 8521f01488 Switch to manual_derives 2018-08-20 07:32:30 +02:00
Benjamin Saunders 6738c4c01c impl Display for constants 2018-08-19 20:13:02 -07:00
Maik Klein c4e4ab8fc2 Temporary implement Hash and PartialEq for certain types that only
contain primtive types
2018-08-19 10:10:11 +02:00
Brian Merchant 21a4eef1f8 pin vk-parse to crates.io 2018-08-17 12:26:32 -07:00
Benjamin Saunders 6e54dd346e Introduce Handle trait 2018-08-04 12:22:09 -07:00
Tim 92d0541170 Change type of TRUE and FALSE to Bool32 2018-08-03 15:39:25 +02:00
Tim 2256c431be Use repr(transparent) where possible and apply rustfmt to those files 2018-08-03 12:34:14 +02:00
Maik Klein a6d5a124df Rename constants in the example and inside static arrays 2018-08-01 09:22:28 +02:00
Maik Klein 33a0eee190 Remove "VK" from constants 2018-08-01 09:12:39 +02:00
Maik Klein 89dffac854 Remove useless println 2018-08-01 09:10:41 +02:00
Maik Klein 666e5628ac Remove vendor ext from vendor constant variants 2018-08-01 08:51:50 +02:00
Maik Klein 197b06b0d8 Fix: Some *const pointers should have been *mut pointers 2018-07-31 14:17:24 +02:00
Maik Klein 2921a03638 Fix repeating name in constants 2018-07-31 13:44:22 +02:00
Maik Klein 56bf57acf5 Fix *const *const ptr 2018-07-31 13:30:35 +02:00
Maik Klein f04df1e1df Vulkan-Headers 2018-07-31 10:51:44 +02:00
Maik Klein 1eea8ab1ef Remove --force 2018-07-31 06:37:09 +02:00
Maik Klein 7201e78674 Don't implement Default for handles 2018-07-30 20:23:25 +02:00
Maik Klein 37f9f98297 Add extension feature constants 2018-07-30 20:06:00 +02:00
Maik Klein aeb4ebea51 Refactor generate_extension 2018-07-30 19:53:12 +02:00
Maik Klein 773c64cde1 Implement automatic derive for Debug 2018-07-30 12:50:51 +02:00
Maik Klein b2098bd942 Cleanup from clippy 2018-07-30 08:54:03 +02:00
Maik Klein 2623e23f77 Properly add the vulkan headers submodule 2018-07-29 23:16:42 +02:00
Maik Klein d267044765 Remove folder that should be a submodule 2018-07-29 22:48:40 +02:00
Maik Klein 65f4b7584c Add submodule 2018-07-29 22:46:21 +02:00
Maik Klein 3cacb4a00a Add support for extension constants 2018-07-29 22:39:45 +02:00
Maik Klein 207f468f4b Switch to Vulkan-Headers 2018-07-29 22:39:21 +02:00
Maik Klein 1a3094d4c2 Add extensions 2018-07-21 12:56:16 +02:00
Maik Klein 3fc04b77a6 Abstract over constants 2018-07-11 13:18:22 +02:00
Maik Klein a9bf74cebf Remove unnecessary println 2018-07-09 09:25:37 +02:00
Maik Klein f65c62dbaa Implement Error for the new Result 2018-07-09 09:24:18 +02:00
Maik Klein 72f1cdf6ad Transform Bitflags and Enums to constants 2018-07-09 08:49:28 +02:00
Maik Klein fb13cc402e Add extension structure type constants to StructureType 2018-07-07 14:49:17 +02:00
Maik Klein e6e8bbd91b Successfully replace the old vk.rs file 2018-07-07 12:54:31 +02:00
Maik Klein 21e934d5b1 Add unions 2018-07-07 10:43:44 +02:00
Maik Klein 4584a8af2a Add custom Result impl 2018-07-07 10:43:05 +02:00
Maik Klein 9f14e404d7 Impl cexpr 2018-06-24 12:09:37 +02:00
Maik Klein 886d0f0c96 Use constants for bitflags 2018-06-05 17:46:57 +02:00
Maik Klein dc378d7b9f Move from vkxml to vk-parse 2018-06-05 17:46:57 +02:00
Maik Klein bfed51f8d3 Save 2018-06-05 17:46:32 +02:00
Maik Klein b47b20023e Generate bitmasks 2018-06-05 17:46:32 +02:00
Maik Klein 86068db713 Add ptr types 2018-06-05 17:46:32 +02:00
Maik Klein 9d31e95f94 Add function pointer calls 2018-06-05 17:46:32 +02:00
Maik Klein b622fd7993 Add clone 2018-06-05 17:46:32 +02:00
Maik Klein 2c9d4ed71d Better version idents 2018-06-05 17:46:32 +02:00
Maik Klein 6691e7e79f Remove vk:: prefix for types 2018-06-05 17:46:32 +02:00
Maik Klein be08103d1d Init generator 2018-06-05 17:46:32 +02:00