Commit Graph

146 Commits

Author SHA1 Message Date
Ilya Lakhin
80bb82e487 #1623 Changelog update 2021-06-28 14:52:52 +07:00
Ilya Lakhin
5b7ebeea0a #1620 Changelog update 2021-06-28 14:44:11 +07:00
Ilya Lakhin
a426c3d3fd #1606 Changelog update 2021-06-28 14:33:19 +07:00
Ilya Lakhin
e3e210f968 #1615 Changelog update 2021-06-28 13:32:59 +07:00
Ilya Lakhin
e163dbbce6 #1614 Changelog update 2021-06-28 13:28:17 +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
Ilya Lakhin
3759b8cf1f #1603 Changelog update 2021-06-20 12:31:10 +07:00
Ilya Lakhin
629fff826e #1605 Changelog update 2021-06-14 02:50:33 +07:00
Ilya Lakhin
bb4234df45 #1599 Changelog update 2021-06-08 00:48:12 +07:00
Ilya Lakhin
15fcbafaf9 #1598 Changelog entries 2021-06-07 21:53:12 +07:00
Ilya Lakhin
f73d9703af #1587 Changelog 2021-05-31 03:58:54 +07:00
Ilya Lakhin
2b7956be74 #1594 Cangelog 2021-05-31 03:55:36 +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
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
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
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
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
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
Rua
a3465537cc
Fix check for array layer count with cube descriptors (#1541) 2021-04-10 13:40:32 +07:00
Rua
78b12ca64f
Add component mapping to ImageView, create ImageViewBuilder (#1538) 2021-04-10 13:35:09 +07:00
Rua
3b06879511
Split AutoCommandBuffer into primary and secondary (#1522)
* Split CommandBuffer trait into Primary and Secondary

* Split AutoCommandBuffer

* Rename Kind to CommandBufferLevel, change how it's structured
2021-04-05 18:25:20 +07:00
Rua
1af922a607
Fix and refine the generation of readonly descriptor attribute (#1534)
* Vulkano-shaders: Improve handling of readonly descriptors

* Changelog

* Fixed image readonly detection for real this time
2021-04-05 17:53:18 +07:00
Rua
c68882eb7f
Replace deprecated Error::cause with source (#1532)
* Replace deprecated Error::cause with source

* Changelog
2021-04-04 09:31:35 +07:00
Rua
440a34b2bb
Comment in changelog with formatting instructions (#1526)
* Comment in changelog with formatting instructions

* Remove duplicate
2021-03-31 17:55:54 +07:00
Ilya Lakhin
7e32ae9b88
Release 0.22.0 (#1525) 2021-03-31 16:40:50 +07:00
Rua
4f009c3c93
Convert all code to Rust 2018 edition (#1508)
* Convert to 2018 edition of Rust

* Merge branch 'master' of https://github.com/vulkano-rs/vulkano into edition2018
2021-03-31 16:20:41 +07:00
stephan-cr
eb21fea03b
Make {CpuAccessibleBuffer,ImmutableBuffer}::from_data sound (#1517)
from_data needs flat memory structures. Types which implement
Copy (either implicity or explicitly) ensure this property.

This commit adds the Copy trait bound to
{CpuAccessibleBuffer,ImmutableBuffer}::from_data and adapts the unit
tests accordingly.
2021-03-31 11:51:38 +07:00
Rua
c2d404c669
Add dispatch_indirect to AutoCommandBufferBuilder (#1516)
* Add dispatch_indirect to AutoCommandBufferBuilder

* Merge branch 'master' of https://github.com/vulkano-rs/vulkano into dispatch-indirect

* Pfff...

* Fix bug in dispatch_indirect assert
2021-03-30 21:18:45 +07:00
Daniel Tang
b18bb01430
Fix descriptor set TypeStruct readonly detection (#1513) 2021-03-29 01:35:41 +07:00
Rua
58d19e5848
Make execute_commands safe to use (#1511)
* Add pipeline barriers when executing secondary command buffers

* Add locking for secondary command buffers when executed on a primary

* Propagate flags of secondary to primary

* Forgot the vec variant

* Add poisoning as a stopgap measure to protect against inconsistent builder state
2021-03-28 17:36:14 +07:00
gurchetansingh
65254ed10c
More memory changes with some thoughts on error handling (#1510)
* vulkano: instance: derive Ord, PartialOrd for PhysicalDeviceType

Useful for want differeniating integrated and discrete GPUs in a
hash table.

* vulkano: don't pull in all of crossbeam

Just pull in crossbeam-queue, since that's what used.

Having a smaller set of packages is easier for system integrators
such as myself.

* vulkano: memory: add import support, separate device memory and mappings, and much more!

- Chaining structs copied shamelessly and poorly from Ash :-)
- Import support, as previously promised.
- DeviceMemoryMappings so we can maybe one day expose the binding model.
- Attempts to rigorously check Valid Usage IDs (VUIDs).

A note about error handling:

- Currently, Vulkano error handling is a bit unclear.  For example, I
  didn't define a "DeviceMemoryMappingError" and simply reused the
  "DeviceMemoryAllocError" already present in the file.  In reality,
  both a theoretical "DeviceMemoryMappingError" and the already
  present "DeviceMemoryAllocError" should mostly just check the valid
  usage IDs present in the Vulkan spec (or return an error from the
  implementation).  This code pattern is common throughout Vulkano.
  Perhaps we should go to a simpler VulkanoResult<T>??? Just an idea.

- Also, is Vulkano a validation layer??? LunarG tracks every single
  VUIDs in their uber layer already:

  https://www.lunarg.com/wp-content/uploads/2019/04/UberLayer_V3.pdf

  Of course, given how Vulkan drivers are relatively straigtforward
  compared to OpenGL, it's generally possible to match LunarG *using
  Rust* if we just have a big enough community.  Whether we want to or
  not may be up for debate. For now, I just followed the original
  vision of tomaka and added validation.  If we do want to do it, then
  we have to be more rigorous about it.
2021-03-27 20:50:51 +07:00