Commit Graph

2781 Commits

Author SHA1 Message Date
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
Ilya Lakhin
a4ef1e6d9f
Readme update(fixes) 2021-04-11 14:15:47 +07:00
Dana Marcuse
cbd915b107
Add 8-bit push constant support to vulkano-shaders (#1544) 2021-04-11 11:57:22 +07:00
Rua
bb51359d32
Add an example demonstrating the basics of occlusion queries (#1548)
* Add an example demonstrating the basics of occlusion queries

* Make some functions const
2021-04-10 23:07:15 +07:00
Ilya Lakhin
fc42de0c48
Readme update(removing some mentions of safety due to controversial opinions on this topic) 2021-04-10 22:38:59 +07:00
Rua
5577099029
Partial safe support for queries (#1542)
* Add get_results to UnsafeQueriesRange

* Add copy_query_pool_results command, remove "Unsafe" from names

* Documentation + changelog

* Add reset_query_pool

* Add begin_query and end_query

* Add query feature checks when starting an AutoCommandBufferBuilder

* Add write_timestamp

* Re-exports

* Further safety checks for write_timestamp

* Track query active state in AutoCommandBufferBuilder, further safety checks

* Move query/mod.rs to query.rs as there's no other submodules

* Check for query state when building
2021-04-10 19:07:59 +07:00
Ilya Lakhin
e8e9c69d83
Readme update(Sierra) 2021-04-10 18:19:20 +07:00
Rua
803eacfcd6
Render pass restructuring (#1531)
* Create generic render pass description type, macro generates that instead of making its own type

* Replace EmptySinglePassRenderPassDesc with empty() constructor

* Remove RenderPass type parameter

* Remove RenderPassAbstract trait, type parameters that use it. Add GraphicsPipelineAbstract::subpass and Framebuffer::render_pass

* Remove RenderPassDescClearValues trait

* Remove RenderPassSubpassInterface and RenderPassCompatible traits

* Change RenderPassDesc into a struct

* Rename framebuffer module to render_pass, move/rename other things

* Rustfmt + changelog

* Documentation update
2021-04-10 18:09:03 +07:00
Ilya Lakhin
f89c2e325f
Readme fix(maintainer link) 2021-04-10 18:04:23 +07:00