Commit graph

468 commits

Author SHA1 Message Date
Drodofsky dd2849450f
rename parameter of get_physical_device_surface_support (#370)
* rename parameter of get_physical_device_surface_support

* fix fmt

Co-authored-by: Felix <f.drodofsky@gmail.com>
2021-02-11 20:24:49 +01:00
Marijn Suijten abc1f80d65
extensions/khr: Remove empty "safe wrapper" for RayQuery (#364)
The `VK_KHR_ray_query` extension has no functions and this safe wrapper
(specifically to re-wrap functions) was added by accident (by me).
To prevent confusion, remove it before a new crate version is released.
Applications can easily access the name (which is the only useful thing
reexported here) from `ash::vk::extensions:KhrRayQueryFn::name()`.
2021-01-27 17:31:04 +01:00
Marijn Suijten 0a378b8807
Update Vulkan-Headers to 1.2.166 (#355)
* Update Vulkan-Headers to 1.2.165

* Update Vulkan-Headers to 1.2.166

* generator: Update itertools to 0.10
2021-01-24 22:13:28 +01:00
Marijn Suijten 7fa182cc43
Use raw pointers to static-sized arrays in FFI signatures (#353)
In rust references to DSTs (Dynamically Sized Types) like slices and
trait objects are 16-bytes instead of 8 (leaking into the next parameter
of a function call). The static-sized array generated here has its size
known beforehand and will not suffer from this issue [1], but might be
confusing for future readers/authors: convert it to a raw pointer just
to be safe.

[1]: https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=88acb9736455f7262ecf4af2077f3a59
2021-01-02 15:08:10 +01:00
Marijn Suijten 43b5058e36
Upgrade proc_macro2/syn/quote to v1.0 (#351)
* generator: Mark IDirectFB and IDirectFBSurface as opaque

* Upgrade proc_macro2/syn/quote to v1.0

* Regenerate with quote/syn/proc_macro2 v1.0
2021-01-02 14:37:10 +01:00
Michael Tang 3703e73d30
Add VK_KHR_deferred_host_operations extension support. (#348)
* Add DeferredHostOperations extension

* Add missing `name`, `fp`, and `device` functions.

* Add missing using
2020-12-29 12:10:56 +01:00
Marijn Suijten 84624fddd8
ray_tracing_pipeline: Pass SBT regions as reference instead of slice (#350)
The API for vkCmdTraceRaysKHR mandates a single non-null pointer per SBT
region to a VkStridedDeviceAddressRegionKHR. While providing more than
one such region isn't harmful, passing a slice of length 0 will cause
reads in uninitialized memory and undefined behaviour.

Converting these parameters from slices to references rids the
unnecessary confusion and prevents zero regions from being passed.
2020-12-29 12:09:46 +01:00
Michael Tang 1661b37cd2
Add missing doc link for AccelerationStructure::get_device_acceleration_structure_compatibility (#347) 2020-12-20 20:30:43 +01:00
Marijn Suijten 05747b25aa
Update Vulkan-Headers to 1.2.162 with stable ray-tracing spec (#341)
* Update Vulkan-Headers subproject to 1.2.162 (ray tracing)

* Generate against vk.xml 1.2.162

* generator: Shim IDirectFB and IDirectFBSurface to c_void

* generator: Edgecase for name-clash in p_geometries and pp_geometries

* extensions: Migrate acceleration structure to separate extension

* extensions: Migrate RT safe wrapper functions to ray_tracing_pipeline

* Add high level wrapper for currently-empty RayQuery extension

* vk: definition: Turn host/device AS handle into type safe union

Co-authored-by: Marijn Suijten <marijn@traverseresearch.nl>

Co-authored-by: Darius Bouma <darius1@live.nl>
2020-12-13 18:30:42 +01:00
Marijn Suijten bfa0309c97
Preliminary cleanup pass (#339)
* Fix clippy::manual_strip

* Fix clippy::comparison_to_empty

* Fix clippy::needless_lifetimes

* generator: Drop unnecessary edgecase for charptr array in builder

* generator: Make array type handling more linear

* prelude: Provide Result -> VkResult<()> conversion

* Add #[must_use] to Result type

* Fix all unchecked vk::Result cases

* generator: Fix typos

* generator: Assert char ptrs have `"null-terminated"` len attribute

* prelude: Provide result_with_success helper for Result -> VKresult

* Cleanup match{success} blocks with SSR

    {let $p = $f; match $q { vk::Result::SUCCESS => Ok($r), _ => Err($z), }} ==>> {$f.result_with_success($r)}

* Simplify matching on Result::SUCCESS

Using the following regex replacement:

    let err_code =\s*(.*\((\n|[^;])*?\));\s*match err_code \{\s*vk::Result::SUCCESS => Ok\((.*)\),\s*_ => Err\(err_code\),\s*\}

    $1.result_with_success($3)

* Simplify intermediate error return

    let err_code =\s*(.*\((\n|[^;])*?\));\s*if err_code != vk::Result::SUCCESS \{\s*return Err\(err_code\);\s*\}

    $1.result()?;

* Simplify error checking with .result()? and .result_with_success()

* generator: Ignore empty basetype in typedef (forward declaration)

ANativeWindow and AHardwareBuffer were [recently changed] to the
basetype category, but without an actual basetype, consequently failing
the Ident constructor with an empty name.

Since these types are already dealt with in platform_types, and there
doesn't seem to be anything sensical to define them to right now, just
ignore these cases.

[recently changed]: 0c5351f5e9 (diff-0ff049f722e55de41ee15b2c91ef380fL179-R180)

* Suggestion: Allocate data in get_ray_tracing_shader_group_handles

* generator: Update nom to 6.0

* generator: Generalize C expression conversion to TokenStream

* generator: Simplify ReferenceType::to_tokens with quote!

* generator: Refactor to not parse our own stringified token stream

* generator: Deal with pointers to static-sized arrays

* generator: Apply static-sized array pointer to size containing `*`

* generator: setter: Interpret all references as ptr, not just p_/pp_

* generator: quote::* is already imported

* generator: Replace manual fn to_tokens with quote::ToTokens trait impl

* generator: Return str reference from constant_name

* generator: Replace unused to_type_tokens with name_to_tokens

The reference argument was always None; replace it with a direct call to
name_to_tokens.

* generator: setters: Use safe mutable references instead of raw ptrs
2020-12-12 20:56:43 +01:00
Philippe Renon 29cab9e9b4
remove erroneous assert in get_query_pool_results (#335)
the stride can be bigger than a u64
for example when querying more than one pipeline statistic
2020-12-07 23:31:06 +01:00
Maik Klein 648c4a5019
Use best guess for ggp extension types (#333) 2020-10-25 22:22:21 +01:00
Marijn Suijten 6f488cd3db
Expose header version and extension spec version constants (#322)
* Generate constants for value defines

* Expose versioning constants containing macros

* Expose extension SPEC_VERSION constant
2020-09-10 20:46:42 +02:00
Marijn Suijten 5cb696beb0 tests: Fix clippy::single-component-path-imports 2020-09-02 17:08:20 -07:00
MarijnS95 c6d5d66142
entry_libloading: Provide Vulkan library loader from custom path (#319)
It is in some cases necessary to load a specific Vulkan dll/so with a
different name and/or from a different location.

Instead of copying this function to a downstream project (and making the
LoadingError constructor public to retain the same interface), split
Entry::new() such that downstream projects can easily specify and use an
alternate Vulkan implementation.
2020-08-03 11:19:42 +02:00
Apoorva Joshi 31bd928c4b
Deprecate the DebugMarker and DebugReport extension modules (#317)
* Deprecate the DebugMarker and DebugReport extension modules

* Allow deprecated modules only in mod.rs, to suppress clippy warning

Co-authored-by: Apoorva Joshi <apoorva.ramesh.joshi@gmail.com>
2020-07-24 16:21:40 +02:00
zedrian b6d9a40b0b
Added VK_KHR_pipeline_executable_properties extension support. (#313)
* Added `VK_KHR_pipeline_executable_properties` extension support.

* Unused import removed.

* Cargo-fmt requirements satisfied.

* Specification requirements satisfied.

* Cargo-fmt requirements satisfied.

* Recommended fixes applied.
2020-07-20 21:48:53 +02:00
zedrian ac4d046d4b
Added VK_EXT_tooling_info extension support (#310)
* Added `VK_EXT_tooling_info` extension support.

* Formatting applied.

* cargo-clippy suggestions satisfied.

* cargo-clippy suggestions satisfied.
2020-07-02 12:10:05 +02:00
Maik Klein 8d7dfee763 Release 0.31.0 2020-05-10 21:14:01 +02:00
Steven Le Rouzic ce1d3a1195
Make libloading an optional dependency (#296)
* Make libloading an optional dependency

* Move all libloading stuff to a specific module
2020-05-10 13:55:19 +02:00
Maik Klein 4d6bb3949d
Fix clippy lints for 1.43 (#298) 2020-05-10 13:42:07 +02:00
Friz64 37a701ad3f
Move lib creation out of EntryCustom::new_custom (#292)
* Update libloading to `0.6.1`

* Update Error type

* Make `LoadingError` a newtype

* Move lib creation out of `new_custom`
2020-05-07 18:14:24 +02:00
Friz64 3eeb78f214 Initialize MemoryRequirements with Default 2020-04-21 11:36:23 -07:00
aloucks bd6515ced8
Split vk.rs into multiple files (#286)
* Allow the generator to be run from project root dir

* Split vk.rs into multiple files

* Breakup and remove generated vk/prelude.rs

Generator changes:

- No longer convert current dir to a string when checking if the
  path ends with 'generator'
- Pass the 'ash/src' dir instead of the 'vk.rs' path

Generated and generated output changes:

- The majority of prelude.rs has been moved to macros.rs
- The pointer chain and Handle are now included in vk.rs
- Platform types has been moved to its own file.
2020-04-19 19:12:17 +02:00
msiglreith bb720dd726
Add metal surface extension (#288) 2020-04-15 22:35:48 +02:00
TheEdward162 a5e5e375b1 add const qualifier to as_raw and from_raw fns on enums 2020-04-11 11:39:22 -07:00
Gabriel Dube 1f7dd9114d
Implement VK_KHR_draw_indirect_count 2020-04-11 12:19:22 +02:00
Maik Klein e575b233e5
Remove incorrect device params (#284)
* Remove incorrect device params

* Fmt
2020-04-11 12:18:31 +02:00
Aaron Loucks 3c62d50ea0 Link to the individual man page instead of vkspec.html 2020-03-22 20:10:32 -07:00
Maik Klein c45112b5c8 Bump version to 0.30.0 2020-03-22 20:28:03 +01:00
zedrian e84c1c4e2d
Add VK_KHR_timeline_semaphore extension support (#276)
* TimelineSemaphore struct added presenting `VK_KHR_timeline_semaphore` extension.

* Unused import removed.

* Empty newline added.

* TimelineSemaphore extension object now provides functions for work with timeline semaphores.

* Function pointers removed from TimelineSemaphore as no longer needed.
*_khr postfix removed from TimelineSemaphore functions to follow the same code style as in other extensions.

* Tiny code reformatting to fit Rustfmt requirements.

* Another attempt to fit Rustfmt requirements.
2020-03-22 16:06:56 +01:00
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 de05ff6702
Switch to libloading (#275) 2020-03-15 00:48:24 +01:00
aloucks 25628402f9
Adjust doc link rendering (#273) 2020-03-15 00:47:58 +01:00
Friz64 7789163507 Switch to libloading 2020-03-14 01:10:03 +01:00
Joshua Suskalo 39a6a8552a
Add a Safety section to the documentation of create_instance and create_device (#272)
* Add a Safety section to the documentation of `create_instance` and `create_device`

* Change doc links back to original format
2020-02-29 21:24:39 +01:00
IntrepidPig 98def0a4e3
Add VK_KHR_external_memory_fd extension support (#270) 2020-02-18 22:58:36 +01:00
Benjamin Saunders 651462a342
Fix XCB types (#267) 2020-02-02 10:42:59 +01:00
Friz64 594b184c38 Add high level wrappers for Vulkan 1.2 (#265)
* Update doc links

* Added `EntryV1_1` impl and notice about compatibility

* Add missing `InstanceV1_1::get_physical_device_features2` function

* Add Vulkan 1.2 wrapper for `Entry`

* Add Vulkan 1.2 wrapper for `Instance`

* Add Vulkan 1.2 wrapper for `Device`

* Mark `enumerate_instance_version` as deprecated
2020-01-26 09:27:26 +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
aloucks 31d14486e5 Use the individual man page doc links for the push_descriptor extension (#255)
The `vkspec.html` page is rather large and slow to load and navigate.
This change is consistent with all other doc links.
2019-12-04 23:48:05 +01:00
Maksym Pavlenko 0b689273c6 Support VK_KHR_push_descriptor (#241)
* Support VK_KHR_push_descriptor

* Accept slice in cmd_push_descriptor_set
2019-12-01 11:09:21 +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
Benjamin Saunders 21c65096e0 Return VkResult<bool> from get_fence_status (#246)
Makes it easier not to ignore actual errors.
2019-11-03 19:18:14 +01:00
Eric Hegnes 7a997f1b52 Add VK_KHR_display extension support (#247)
* Add `VK_KHR_display` extension support

* Prefer `mem::MaybeUninit` over `mem::zeroed`

See
[rfc#1892](https://github.com/rust-lang/rfcs/blob/master/text/1892-uninitialized-uninhabited.md)
for details.
2019-11-03 19:17:41 +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
bors[bot] f935337aa8
Merge #240
240: Replace version macros with const fns, test cleanup r=MaikKlein a=Ralith



Co-authored-by: Benjamin Saunders <ben.e.saunders@gmail.com>
2019-10-06 10:43:12 +00:00
Benjamin Saunders 8c0ece9ef8 Safer compile-pass test 2019-10-05 11:16:35 -07:00
Benjamin Saunders 4e8090f0bb Replace version macros with const fns 2019-10-05 11:16:35 -07:00
Nils Petter Skålerud b989c4e0c2 Implemented interface for exposing raw function pointers in extensions.
Signed-off-by: Nils Petter Skålerud <np_skalerud@hotmail.com>
2019-08-28 19:36:32 +02:00
Nils Petter Skålerud 855143b93b Started on proposal on interface to expose raw function pointers for extensions.
Added raw_fp() to Surface and Swapchain
Àdded instance_handle() to Surface
Added device_handle() to Device

Signed-off-by: Nils Petter Skålerud <np_skalerud@hotmail.com>
2019-08-27 00:50:00 +02:00
bors[bot] 6d7e4bf120 Merge #215
215: Replace mem::uninitialized with mem::zeroed r=MaikKlein a=aloucks

Fixes #214

Co-authored-by: Aaron Loucks <aloucks@cofront.net>
2019-06-01 20:43:14 +00:00
Aaron Loucks 0f9c737e66 Use ptr::null_mut for void pointer initialization 2019-05-26 18:21:24 -04: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
bors[bot] d3bc0821c5 Merge #213
213: Expose get_physical_device_*_presentation_support_khr r=MaikKlein a=cormac-obrien

Fixes #197

Co-authored-by: Mac O'Brien <cormac@c-obrien.org>
2019-05-26 21:15:47 +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
Aaron Loucks bd69ab969c Replace mem::uninitialized with mem::zeroed
Fixes #214
2019-05-25 15:13:17 -04:00
Mac O'Brien 9f4863ea15 Expose get_physical_device_*_presentation_support_khr
Fixes #197
2019-05-20 12:55:50 -05:00
Mac O'Brien 9139ebfd95 Formatting pass 2019-05-18 16:09:12 -05:00
Mac O'Brien 90d7218bda Return VkResult from get_physical_device_surface_support
Fixes #185
2019-05-18 15:56:26 -05:00
Jan Bujak b1ff5de4c3 Derive Clone for InstanceError 2019-04-28 00:38:13 +02:00
Jan Bujak d7c412bca5 Derive Clone for LoadingError 2019-04-28 00:37:58 +02:00
Maik Klein 07fd87b95f Release 0.29.0 2019-04-27 08:48:41 +02: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 919cedd958 Regenerate vk.rs 2019-03-20 10:45:48 +01:00
Aaron Loucks 584a3bb5da The doc parameter of define_handle is now optional 2019-03-17 12:54:26 -04:00
Aaron Loucks c400af7f32 LoadingError and InstanceError now only format their inner value
Addressing PR feedback
2019-03-16 14:55:18 -04:00
Aaron Loucks ac4e38a3d9 Remove deprecated method impls for std Error 2019-03-16 13:25:21 -04:00
Aaron Loucks e4bcda2fec Disable doc tests that load vulkan
AppVeyor doesn't have the a driver installed.
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 ede9ed68e0 Add test for constant sized arrays 2019-03-13 21:01:11 -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
Maik Klein 793acafe1b Bump version to 0.28.0 2019-03-10 20:32:12 +01: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 cbc96b27b9 Update experimental builders 2019-03-10 12:56:51 +01:00
Maik Klein 7d5d20017b Move external tests to lib.rs 2019-03-10 12:56:51 +01:00
Maik Klein 2d730cdf65 Add ptrchain external test file 2019-03-09 19:52:25 +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
Dzmitry Malyshau 7aa30a6544 Pass constant size arrays by reference 2019-03-08 00:06:01 -05:00
Maik Klein 2ecc48388d Reformat experimental amd 2019-03-04 09:59:54 +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 d6a6aa310e Update experimental AMD extension 2019-02-28 10:59:46 +01:00
Maik Klein 1e13b999d7 Add some documentation to push_next 2019-02-28 10:59:46 +01:00
Maik Klein 4f7ca180f6 Implement push_next 2019-02-28 10:59:46 +01:00
Maik Klein 6d72bb547d Implement extension chaining 2019-02-28 10:59:46 +01:00
Maik Klein 681eec54ec Update to 1.1.97 2019-02-28 10:59:46 +01:00
bors[bot] c801dea0dc Merge #184
184: Experimental AMD extensions r=MaikKlein a=msiglreith

Addresses https://github.com/MaikKlein/ash/issues/178#issuecomment-457942089

Not fully supports all parts of the APIs, just trying to get some general feedback if this meets the expected structuring.

Co-authored-by: msiglreith <m.siglreith@gmail.com>
2019-02-25 13:49:34 +00:00
msiglreith 2f60510c87 Add experimental AMD extensions 2019-02-24 15:10:15 +01:00
Graham Wihlidal 3941c762a7 Minor cleanup 2019-02-14 12:28:45 +01:00
Graham Wihlidal 658743f59b Use 1.0 in ray tracing extension except for get_properties helper function 2019-02-14 12:15:19 +01:00
Graham Wihlidal ff44b2cb16 Remove extension names from mod.rs and make all extensions use auto-generated names 2019-02-14 12:03:41 +01:00
Graham Wihlidal b253d39abe
Merge pull request #2 from MaikKlein/master
Updated from master
2019-02-14 11:46:29 +01:00
Maik Klein 04e6e372cd Update to 1.1.97 2019-02-14 00:16:52 +01:00
Maik Klein 52e9c63ecd Regenerate vk.rs 2019-02-12 15:04:47 +01:00
Graham Wihlidal 69527c759a Rustfmt 2019-02-11 16:21:43 +01:00
Graham Wihlidal 09ee78401f Added maintenance 1-3 extension names to khr/mod.rs and moved KHR extension names from EXT to proper place. 2019-02-11 15:44:37 +01:00
Graham Wihlidal 0ed0a06634 Added helper on RayTracing to query physical device ray tracing properties info (such as shader group handle size) 2019-02-10 23:55:31 +01:00
Graham Wihlidal 011e9e611f Added DescriptorIndexing extension (just name for now), and also added names for VK_KHR_get_memory_requirements2 and VK_KHR_get_physical_device_properties2 (both are commonly used, and required for ray tracing) 2019-02-10 23:54:44 +01:00
Graham Wihlidal 9b6fa860c9 Improved get_acceleration_structure_handle and keep local device handle in rt extension 2019-02-10 13:37:53 +01:00
Graham Wihlidal c9495df122 Implemented get_acceleration_structure_handle 2019-02-10 03:56:54 +01:00
Graham Wihlidal 458a6fba20 Implemented get_ray_tracing_shader_group_handles 2019-02-10 03:51:32 +01:00
Graham Wihlidal 1c1fa85b91 Implemented create_ray_tracing_pipelines 2019-02-10 03:45:07 +01:00
Graham Wihlidal ea66baff62 Implemented cmd_write_acceleration_structures_properties 2019-02-10 03:38:01 +01:00
Graham Wihlidal b0c554cbe5 Implemented cmd_trace_rays 2019-02-10 03:33:16 +01:00
Graham Wihlidal 5eb9f09c80 Implemented cmd_copy_acceleration_structure 2019-02-10 03:29:51 +01:00
Graham Wihlidal 58ffae64de Implemented cmd_build_acceleration_structure 2019-02-10 03:28:07 +01:00
Graham Wihlidal 04bb5de31e Implemented compile_deferred 2019-02-10 03:19:37 +01:00
Graham Wihlidal 4297ea9c61 Implemented bind_acceleration_structure_memory 2019-02-10 03:12:04 +01:00
Graham Wihlidal 1213e92687 Rust format 2019-02-10 03:12:00 +01:00
Graham Wihlidal 24da3bb446 Implemented get_acceleration_structure_memory_requirements 2019-02-10 03:03:25 +01:00
Graham Wihlidal bff6f049ea Implemented destroy_acceleration_structure 2019-02-10 02:57:42 +01:00
Graham Wihlidal 0a962b42cc Implemented NV RayTracing wrapper, and wrapped create_acceleration_structure_nv 2019-02-09 21:46:51 +01:00
Maik Klein acaf8f2b99 Bump version to 0.27.1 2019-01-13 12:41:56 +01:00
Maik Klein d22d1c3f38 switch from Error::cause to Error::source 2019-01-13 12:24:34 +01:00
Chris Butler 36f935a81a Update lazy_static version to match shared_library's 2019-01-12 21:54:12 -05:00
bors[bot] 68a1d2aaa2 Merge #175
175: Add event functions r=MaikKlein a=MaikKlein

Fixes https://github.com/MaikKlein/ash/issues/174


Co-authored-by: Maik Klein <maikklein@googlemail.com>
2019-01-11 08:32:51 +00:00
Maik Klein 4c4df6c446 Bump version to 0.27.0 because there was a breaking change 2019-01-10 22:54:31 +01:00
Maik Klein 6d2fe02bb5 Bump version to 0.26.3 2019-01-10 22:37:55 +01:00
Maik Klein 6e5029cac9 Add command events 2019-01-10 22:34:53 +01:00
Maik Klein 74ac8f3ac4 Add event function 2019-01-10 22:28:59 +01:00
Matus Talcik 6497e2f58c Builder: fix [c_void] 2018-12-09 11:52:28 +01:00
bors[bot] 43eabee68a Merge #170
170: SPIR-V reading helper r=MaikKlein a=Ralith

SPIR-V is defined in terms of 4-byte words and does not have a defined endianness, and compiler and target endianness may differ. Furthermore, Vulkan seems to require SPIR-V supplied to the implementation to be 4-byte-aligned. As a result, reading SPIR-V in a safe and portable fashion is error-prone.

So far we have largely shied away from including nontrivial helper code in ash, but arguably most portable code using ash will want this function. Do we want to break precedent? Or should we introduce a separate, optional, utility crate for code that doesn't directly wrap some part of Vulkan?

Co-authored-by: Benjamin Saunders <ben.e.saunders@gmail.com>
2018-12-09 08:19:02 +00:00
Benjamin Saunders 06b9599e16 Update to latest rustfmt 2018-12-08 15:42:13 -08:00
Benjamin Saunders 4546b26736 SPIR-V reading helper 2018-12-07 17:46:49 -08:00
Maik Klein 60e3efd552
Merge pull request #168 from Ralith/misc
Expose destroy_event, fix an argument name
2018-12-06 09:23:29 +01:00
Benjamin Saunders c3e53a8317 Fix begin_command_buffer argument naming 2018-12-05 22:42:45 -08:00
Benjamin Saunders b9702a2e14 DeviceV1_0::destroy_event 2018-12-05 22:42:05 -08:00
Maik Klein 911f7545b9 Fix imports for win and mac 2018-12-04 21:55:51 +01:00
Maik Klein ab7f960ae8 Remove all vendor tags from the fns 2018-12-04 21:25:42 +01:00
Maik Klein fad6f51aae Move extensions into vendor specific modules 2018-12-04 21:25:42 +01:00
Zakor Gyula fa830166fc Add get_pipeline_cache_data 2018-12-04 16:37:09 +01: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
Maik Klein bcaa563c5b Bump version 2018-11-22 22:11:22 +01:00
Matus Talcik 1be701f853 Builder: next pattern 2018-11-22 21:54:05 +01:00
Maik Klein f905308c24 Add NvMeshShader 2018-11-22 20:48:38 +01:00