Commit Graph

2889 Commits

Author SHA1 Message Date
Rua
fd546e464c
Include image format on descriptor, if provided by shader (#1623) 2021-06-28 14:51:59 +07:00
Ilya Lakhin
5b7ebeea0a #1620 Changelog update 2021-06-28 14:44:11 +07:00
kdelamo94
fafb3eb72f
(#1618): Add DisplayNativeAmd enum variant to ColorSpaceEnum (#1620)
* (#1618): Add DisplayNativeAmd enum variant to ColorSpaceEnum
  - Fixed issue where GPUs that support
    VK_COLOR_SPACE_DISPLAY_NATIVE_AMD in its surface format colorspaces would cause
    vulkano to Panic when checking the surface capabilities of the device.

* (#1618): Remove AMD Vendor suffix from DisplayNative Enum
2021-06-28 14:41:15 +07:00
Ilya Lakhin
a426c3d3fd #1606 Changelog update 2021-06-28 14:33:19 +07:00
Francisco Ayala Le Brun
698d457235
Add support for semaphore file descriptor export (#1606)
* Add external semaphore device extensions & function

* Add semaphore export functionality

* Fix test failing due to missing extensions

* Add semaphore module

* Add builder pattern for semaphore

* Add check for supported extensions before running test

* Add missing file

* Fix use with super instead of crate

* Fix pool semaphore built incorrectly; Fix semaphore types export

* Add pool parameter as semaphore builder function

* Fix test not checking instance extensions
2021-06-28 14:30:06 +07:00
Ilya Lakhin
e3e210f968 #1615 Changelog update 2021-06-28 13:32:59 +07:00
Rua
908714f3da
Handle Result from Vulkan calls in device_memory.rs (#1615) 2021-06-28 13:29:41 +07:00
Ilya Lakhin
e163dbbce6 #1614 Changelog update 2021-06-28 13:28:17 +07:00
Rua
847c81bb88
Better feature and device selection in examples (#1614)
* Don't enable any features in examples unless the example requires it

* More elaborate device selection code in the triangle example

* Better device selection for all other examples
2021-06-28 13:24:44 +07:00
Ilya Lakhin
c5864e9f28
Release 0.24.0 and vk-sys 0.6.2 (#1612) 2021-06-20 13:35:03 +07:00
Ilya Lakhin
6eceb9b5b0 #1608 Changelog update 2021-06-20 12:42:18 +07:00
Austin Johnson
2941c42a01
Allow use of uninitialized images when being written to (#1608)
* improve image layout transitions

* replace ImageResourceContext with ImageUninitializedSafe

* run cargo fmt
2021-06-20 12:37:25 +07:00
Ilya Lakhin
3759b8cf1f #1603 Changelog update 2021-06-20 12:31:10 +07:00
i509VCB
e5a55a9199
Implement fmt::Display for DisplayMode and clarify what the return value of DisplayMode.refresh_rate means (#1603)
* Clarify refresh_rate return type, impl Display on DisplayMode


Actually describe what a display mode is

* Display in hertz, not millihertz. Add a small test

* little typo

* Remove non-functional test
2021-06-20 12:29:38 +07:00
Ilya Lakhin
629fff826e #1605 Changelog update 2021-06-14 02:50:33 +07:00
Rua
0d5edc130d
Add auto-generated device properties (#1605)
* Migrate to using Ash as a base

* Small change to test, to make it applicable to Vulkan 1.1

* Auto-generate extensions, check extension requirements

* Add documentation to extensions, use vk.xml from Ash 0.32.1

* Remove `RawDeviceExtensions` and `RawInstanceExtensions`

* Add extension conflict checking

* Small fix

* Add auto-generated features, more requirements checks

* Features documentation

* Macrofy required_if_supported_extensions

* Include vulkano-gen tool

* Move autogen imports to macros

* Change autogen into a build script

* Delete leftover file

* Autogenerate device properties

* Propagate bugfix in properties chain to features
2021-06-14 02:47:10 +07:00
Ilya Lakhin
bb4234df45 #1599 Changelog update 2021-06-08 00:48:12 +07:00
Rua
71191bd24d
Auto-generate extensions and features, check requirements (#1599)
* Migrate to using Ash as a base

* Small change to test, to make it applicable to Vulkan 1.1

* Auto-generate extensions, check extension requirements

* Add documentation to extensions, use vk.xml from Ash 0.32.1

* Remove `RawDeviceExtensions` and `RawInstanceExtensions`

* Add extension conflict checking

* Small fix

* Add auto-generated features, more requirements checks

* Features documentation

* Macrofy required_if_supported_extensions

* Include vulkano-gen tool

* Move autogen imports to macros

* Change autogen into a build script

* Delete leftover file
2021-06-08 00:45:41 +07:00
Ilya Lakhin
15fcbafaf9 #1598 Changelog entries 2021-06-07 21:53:12 +07:00
Tim Balsfulland
748097a159
add support for VK_KHR_multiview (#1598)
* initial support for the `VK_KHR_multiview` extension

The `VK_KHR_multiview` extension can be used to efficiently draw to multiple layers of a framebuffer at once with.
This is particularly useful for virtual reality applications or other types of stereoscopic rendering where both eyes need to be rendered and they share almost all visible vertices.

* allow creation of multi-layer attachment images

Using the `AttachmentImage::multisampled_with_usage_with_layers` constructor.
More constructors with different combinations could be added for the `AttachmentImage` but `multisampled_with_usage_with_layers` already exposes all possible options.
I think all these different constructors should be replaced with a constructor that takes a struct that implements `Default` or an enum with the different possibilities.

* compliance with VUID-VkFramebufferCreateInfo-renderPass-02531

* removed changelog entries according to new policy

* migrate `VK_KHR_multiview` support to ash

* add more comments

* add remaining `VK_KHR_multiview` validation

* validate instanced drawing using `multiview` limits

* add some missing validation relating to `VIEW_LOCAL` dependencies

* use the vulkano device feature instead of depending on the `multiview` extension directly
2021-06-07 21:41:13 +07:00
Jason Macnak
f2e277f9e4
Adds LICENSE-* files to crate subdirectories (#1597)
... so that the license files appear in downloaded
crates.
2021-05-31 04:53:05 +07:00
Ilya Lakhin
f73d9703af #1587 Changelog 2021-05-31 03:58:54 +07:00
Icy Defiance
c09a46dea3
Add CapabilityDrawParameters (#1587) 2021-05-31 03:58:15 +07:00
Ilya Lakhin
2b7956be74 #1594 Cangelog 2021-05-31 03:55:36 +07:00
Nicolas Patry
28637e8c67
Fixing the teapot example on ArchLinux (GTX 1650). (#1594) 2021-05-31 03:53:42 +07:00
Rua
f4b189792a
Migrate to using Ash as a base (#1593)
* Migrate to using Ash as a base

* Small change to test, to make it applicable to Vulkan 1.1
2021-05-31 03:42:51 +07:00
Ilya Lakhin
728fab92d1 #1590 Changelog entries submission policy change 2021-05-24 17:25:11 +07:00
CABrinegar
81ec4bff40
Minor correction (#1589)
Correction to outdated comments describing function usage.
Corrections to English grammar.
Opinionated changes to sentence structures.
2021-05-24 17:00:12 +07:00
Rua
ccfc275be4
Re-export SwapchainBuilder (#1592) 2021-05-24 15:57:30 +07:00
Rua
5175722c6b
Update winit to 0.25 (#1586) 2021-05-23 23:37:01 +07:00
Rua
2f7e7af7ee
Allow choosing the Vulkan max API version when creating Instance (#1585)
* Allow choosing the Vulkan max API version when creating Instance

* Rewrite feature handling, include all Vulkan 1.1 and 1.2 features

* Fixes

* Move features.rs to device module

* More small fixes

* Changelog
2021-05-23 23:09:50 +07:00
Rua
d36e5a2b1d
Major refactor of shader interface and pipeline layout types (#1581)
* Convert trait `ShaderInterfaceDef` into struct `ShaderInterface`

* Convert some instances of PipelineLayoutDesc to RuntimePipelineDesc

* Use regular Vec for now

* Convert PipelineLayoutDescUnion to RuntimePipelineDesc

* Convert PipelineLayoutDescTweaks to use RuntimePipelineDesc

* Remove PipelineLayoutDesc trait, replace with what used to be RuntimePipelineDesc

* Remove PipelineLayoutAbstract trait

* Fix bug

* Provide value for push constants to entry point instead of type

* Remove GraphicsEntryPointAbstract, allow pipelines without fragment shader

* Move descriptor::pipeline_layout to pipeline::layout

* Small changelog addition

* Fix bug
2021-05-23 22:33:25 +07:00
Rua
01fcd53faa
Check draw_indirect count against limit, minor doc fixes (#1574) 2021-05-19 23:06:56 +07:00
prataprc
666938645f
vulkano/image: SampleCounts for each pixel in an Image. (#1583)
* vulkano/image: SampleCounts for each pixel in an Image.

Map u32-bit SampleCountsFlagBits type to boolean collection of
SampleCounts struct type.

* vulkano/image: Convert between vk::SampleCountFlags and SampleCounts
2021-05-18 00:13:10 +07:00
Rua
8bedccf9bd
Allow specifying the target Vulkan and SPIR-V versions in vulkano-shaders (#1584) 2021-05-17 19:38:15 +07:00
Ilya Lakhin
794d005351 Changelog for PR #1580 2021-05-17 17:23:00 +07:00
Okko Hakola
08634dd7ed
An improved fix for info pointer chain segfault (#1580)
* An improved fix for info pointer chain segfault

* Only set ptr chain's end if previous head is not null
2021-05-17 17:18:46 +07:00
prataprc
2193c0ee50
gitignore: remove vim swap files. (#1579) 2021-05-17 17:03:54 +07:00
Ilya Lakhin
1fd6bd2dd3 Vulkano-win version bump 2021-05-16 23:47:36 +07:00
Rua
6f3deceb8b
Add support for instance and device versions, check version in vulkano-shaders (#1569)
* Move physical device functions into their own module

* Add method to FunctionPointers to query Vulkan api version

* Store the versions of instances and devices, allow user to query

* Check Vulkan version in vulkano-shaders, changelog

* Small mistake in changelog
2021-05-16 03:04:55 +07:00
Ilya Lakhin
8c0630d3c8
Release 0.23.0 (#1576) 2021-05-10 21:58:23 +07:00
prataprc
116abf4d58
Collection of commits. (#1567)
* Add core instance extensions.

core extensions added as part of `vulkano::instance::InstanceExtensions`

VK_KHR_device_group_creation
VK_KHR_external_fence_capabilities
VK_KHR_external_memory_capabilities
VK_KHR_external_semaphore_capabilities
VK_KHR_get_display_properties2
VK_EXT_acquire_xlib_display
VK_EXT_debug_report
VK_EXT_direct_mode_display
VK_EXT_display_surface_counter

* export FunctionPointers::entry_points method.

Similar to PhysicalDevice.instance().pointers() export root-level
entry_points() method. This will allow applications to call vk-functions
like `vkEnumerateInstanceExtensionProperties` directly.

* heap: Add MEMORY_HEAP_MULTI_INSTANCE_BIT for MemoryHeap.

A new method is_multi_instance() method is added to `MemoryHeap` to
know whether the heap is enabled for multi-instance.

* CHANGE-LOG.
2021-05-10 21:32:08 +07:00
Rua
87e161cc78
Add SwapchainBuilder for easier (re)creation (#1566)
* Add `SwapchainBuilder` for easier (re)creation

* Small ergonomic improvement

* Add inline, some documentation fixes, remove `Option` from dimensions
2021-05-03 20:07:41 +07:00
Rua
9f250aae04
Minor refactor of UnsafeBuffer (#1565)
* Replace UnsafeBuffer usage functions with single `usage` function

* Refactor SparseLevel too
2021-05-03 19:39:46 +07:00
Rua
2e15060683
Change all flags conversions to use From (#1564) 2021-04-27 00:01:49 +07:00
Rua
0c1e0ff40d
Simplify handling of command buffer usage flags (#1563) 2021-04-26 21:53:18 +07:00
Arc'blroth
a83f0fe489
Add exact_entrypoint_interface flag to shader! (Fixes #1556) (#1559)
* add `exact_entrypoint_interface` flag to vulkano-shaders

Signed-off-by: Arc-blroth <45273859+Arc-blroth@users.noreply.github.com>

* cargo fmt

Signed-off-by: Arc-blroth <45273859+Arc-blroth@users.noreply.github.com>

* oops

Signed-off-by: Arc-blroth <45273859+Arc-blroth@users.noreply.github.com>
2021-04-26 21:32:52 +07:00
Rua
f1dad10cd4
Remove format structs and some related traits (#1550)
* Remove format structs, StrongStorage trait

* Remove a bunch of superfluous traits and functions

* Remove FormatDesc trait

* Make formats macro a bit easier to read

* Rename AcceptsPixels trait to Pixel, reverse implementation direction

* Changelog

* Documentation

* Improved image aspects, add aspects to Format
2021-04-17 20:05:09 +07:00
Arc'blroth
fb187e8884
#[derive(Copy, Clone)] on BufferlessDefinition and BufferlessVertices to allow cloning unfinished graphics pipeline builders (#1543)
Signed-off-by: Arc-blroth <45273859+Arc-blroth@users.noreply.github.com>
2021-04-16 13:43:42 +07:00
Okko Hakola
7db41e5309
Fix pointer problems in device memory builder (#1554)
* Take a stab at fixing pointer trashing in memory builder

* Repr C for base structure

* Add to changelog
2021-04-14 20:12:27 +07:00