Vladimír Vondruš
a4d906de86
Vk: querying device memory heaps and types.
...
Memory type flags are put into a new, separate Memory.h header as those
will be needed more often than the (ever-growing) DeviceProperties --
from Image and Buffer constructors, in particular.
6 years ago
Vladimír Vondruš
a62e2b8f09
Vk: start writing some actual docs.
...
Because I put this on hold for two months and almost forgot what design
guidelines I wanted to follow and how the heck is the whole thing used.
6 years ago
Vladimír Vondruš
c6f377b45f
Vk: this DeviceCreateInfo constructor is garbage.
...
It only adds confusion and can be replaced by only a moderately longer
but infinitely more descriptive oneliner. Delete.
6 years ago
Vladimír Vondruš
b45c9c310f
Vk: command pool and buffer reset.
6 years ago
Vladimír Vondruš
2353ba8c1a
Vk: command buffer allocation.
6 years ago
Vladimír Vondruš
4f538a0719
Vk: command pool creation.
6 years ago
Vladimír Vondruš
4b499049f0
Vk: use the new VulkanTester in Device tests.
...
It's there only to create the instance right now. Not using it to test
instance-level functionality right now as we'd be only working around it
anyway.
6 years ago
Vladimír Vondruš
3b9acd27fb
Vk: base class for Vulkan tests.
...
Not much there yet, but this alone removes the congitive overhead when
testing Vulkan functionality on (some, whatever) device.
6 years ago
Vladimír Vondruš
4fd5e51358
Vk: fix linker issues on MinGW.
6 years ago
Vladimír Vondruš
55ec24062d
Vk: GCC 4.8, stop it, it's not Monday today.
6 years ago
Vladimír Vondruš
f75cc9330c
Vk: a non-error-prone way to retrieve queues after device creation.
...
I wonder why this couldn't be done this way in the Vulkan API directly.
6 years ago
Vladimír Vondruš
374f816762
Vk: device creation.
6 years ago
Vladimír Vondruš
b91e137058
Vk: initial seed for the magnum-vk-info utility.
6 years ago
Vladimír Vondruš
81cafc9ddf
Vk: querying device queue family properties.
6 years ago
Vladimír Vondruš
722da61e65
Vk: externally tuneable device selection.
6 years ago
Vladimír Vondruš
d28442e9b1
Vk: device extension enumeration.
6 years ago
Vladimír Vondruš
cbdea03862
Vk: test coverage with various extensions and versions.
6 years ago
Vladimír Vondruš
6515c04be1
Vk: enable KHR_get_physical_device_properties by default on Vulkan 1.0.
6 years ago
Vladimír Vondruš
aa384a5d38
Vk: initial device enumeration.
6 years ago
Vladimír Vondruš
0392aeb878
Vk: instance creation.
6 years ago
Vladimír Vondruš
b7b466d49a
Vk: parsing Version from configuration.
...
Needed so I can implement --magnum-vulkan-version.
6 years ago
Vladimír Vondruš
bb00bf43bf
Vk: variadic Is[Instance]Extension checks.
...
Because I'd like to static_assert on these.
6 years ago
Vladimír Vondruš
132bcacf28
Vk: add HandleFlags, similar to GL::ObjectFlags.
6 years ago
Vladimír Vondruš
189dad59c6
Vk: yeah well of course we can't encode Magnum version into VK_VERSION.
...
Sigh.
6 years ago
Vladimír Vondruš
64ba1e6732
Vk: enumerating instance extension properties.
...
Device extension properties will reuse a large part of this API.
6 years ago
Vladimír Vondruš
18e223e4d9
Vk: enumerating layer properties.
...
Instance layers, with the same interface designed to be reused for
device-level layers.
6 years ago
Vladimír Vondruš
ffbceef22c
Vk: retrieving instance version.
6 years ago
Vladimír Vondruš
6c9c9d9194
Vk: expose all extensions for version 1.2.
...
Also provide compile-time info with them, a runtime list and everything
else similar to what's done for GL.
6 years ago
Vladimír Vondruš
65552a6c26
Vk: add Version enum, utities for version comparison and extraction.
...
Same as the VK_VERSION_*() macros but without C-style casts that produce
warnings.
6 years ago
Vladimír Vondruš
f4f8612f7e
Vk: wrap VkResult, add an assert macro for it.
6 years ago
Vladimír Vondruš
ff41d45be8
Vk: doc++
6 years ago
Vladimír Vondruš
87381d1744
modules: make our own FindVulkan.cmake.
...
With blackjack and actually working properly on all platforms.
Seriously, did nobody ever try to use the vanilla version on Mac or MSYS
since it was added several years ago in CMake 3.7?
6 years ago
Vladimír Vondruš
5222cf3478
doc: change all "latest" additions/deprecations to 2020.06.
6 years ago
Vladimír Vondruš
1fd8722d51
doc: provide a separate \def_vk and \val_vk.
...
Originally, \def_vk was used for enum values (equivalently to how
\def_gl is used for "enum" values in GL), but I also need to reference
actual defines such as VK_VERSION_MINOR(), so renamed it to \val_vk and
reused \def_vk for actual defines.
6 years ago
Vladimír Vondruš
19e0e96d74
Updated copyright year.
6 years ago
Vladimír Vondruš
f269a1baa8
Vk: forgotten leftovers from the depths of MeshData renaming.
6 years ago
Vladimír Vondruš
65a2ced2a7
Make this compile and test cleanly with CORRADE_NO_ASSERT defined.
6 years ago
Vladimír Vondruš
b3b61b22e4
Add matrix vertex formats.
6 years ago
Vladimír Vondruš
d096aa68cc
Add MeshPrimitive::Instances, Faces and Edges.
...
To support meshes that are not so GPU-friendly. And also meshlets at a
later point.
6 years ago
Vladimír Vondruš
c9634508e3
Enlarge MeshPrimitive to four bytes, allow wrapping impl-specific values.
...
And also handle them specially in GL::meshPrimitive() and
Vk::vkPrimitiveTopology().
6 years ago
Vladimír Vondruš
7d44bccd9b
Provide reliable mapping of VertexFormat to GL and Vulkan.
...
GL was missing a check whether given format is available on a target
(for example double types are not on ES), and for Vulkan we need something
similar to pixel format mapping as well.
6 years ago
Vladimír Vondruš
d46061b285
Make MeshPrimitive and MeshIndexType enums only 8bit.
...
Otherwise they take up too much space.
6 years ago
Vladimír Vondruš
7fd92c10dd
Reserve zero MeshPrimitive and MeshIndexType for invalid values.
...
Better for checking accidents, as picking a wrong primitive / index type
can lead to *serious* rendering issues. Similarly to a change done to
(Compressed)PixelFormat in 2019.10.
6 years ago
Vladimír Vondruš
3f57130547
GL, Vk: future-proof mesh primitive and index mapping tables.
...
The test now explicitly goes through all generic names and checks that
the mapping doesn't blow up.
6 years ago
Vladimír Vondruš
d2122a3811
Vk: the heck?!
...
I copypasted real bad here.
6 years ago
Vladimír Vondruš
02d1eda03a
Vk: support 8-bit index types.
6 years ago
Vladimír Vondruš
eee136d3e5
Vk: argh, more copypaste brainfarts in the tests.
6 years ago
Vladimír Vondruš
41cf29cff6
Vk: make room for mapping vertex formats to a VkFormat.
6 years ago
Vladimír Vondruš
61af7672d1
Test: adapted for the upcoming asserting CORRADE_GRACEFUL_ASSERT.
6 years ago
Vladimír Vondruš
50ac6d1a13
Test: fix false sense of security in pixel/mesh enum mapping tests.
...
The stripped-down versions didn't actually test for correct order
because there was no external API result to check against expected
output. That's fixed now, plus clarified some comments and removed
copypasted nonsense.
6 years ago