Vladimír Vondruš
cc9c71f601
Add a NoAllocate tag.
...
Will be used by Vulkan.
6 years ago
Vladimír Vondruš
67ebe78a6e
Vk: ability to pick a memory type.
...
Goes in-line with APIs for device and queue selection.
6 years ago
Vladimír Vondruš
33c838bcff
vk-info: show memory heaps and types.
6 years ago
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š
84e1939ee1
external: no need to export the flextVkInit*() functions anymore.
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š
21a91e8b0a
external: fetch vkEnumerateInstanceVersion() in a static constructor.
...
Version query. Such a simple and obvious thing and because they forgot
to add such function to Vulkan 1.0, the only three possible ways to
retrieve a version retrieval function are:
1. with a static constructor that could make a library crash even before
main() is reached if the driver is *extra* shitty
2. with a init() function that would cause race conditions if ever
called from multiple threads (which of course can happen because you
need to know instance version in order to use the correct function
pointers and route pNext fields)
3. with a init() function that internally uses std::mutexes and
std::call_once and <functional> and atomics and whatnot and thus
takes longer to compile than the rest of the engine
Approach 2 chosen originally but the race condition countermeasures
turned out to be extra annoying to use, so switched to approach 1 now.
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š
2464c76f6e
GL: add a clarifying comment.
6 years ago
Vladimír Vondruš
1046e051b9
doc: expand the File Formats tables, add "bundleability" info for each.
...
Providing a legend describing what each color-code means and listing
image and scene converters as well.
6 years ago
Vladimír Vondruš
55d7a1e6e0
doc: updated changelog and credits.
6 years ago
Vladimír Vondruš
dbc67a01ce
Math: reorder test to be in the same order as in the header.
6 years ago
Vladimír Vondruš
07ba09c700
Math: minor cleanup.
...
No need to use contractions, inverseRayDirection is okay because nobody
needs to type it anywhere. Also no need for the `ones` vector in the
test, Float/Vector3 works as well.
6 years ago
Vladimír Vondruš
8f59c37b87
DebugTools: update layout of the colormap overview to fit longer names.
6 years ago
janos
81feec8f2d
DebugTools: add Smooth-Cool-Warm colormap.
6 years ago
Vladimír Vondruš
37c031f349
Platform: don't use const or let in EM_ASM(), breaks closure compiler.
...
And add a note there to prevent this from being changed again in the
future.
6 years ago
janos
6a0fdf2194
add ray range interection algorithm
6 years ago
Vladimír Vondruš
ff14efa446
AnyShaderConverter: adapt test to GlslangShaderConverter changes.
...
Format::Spirv is now allowed output format for validation.
6 years ago
Vladimír Vondruš
38172d41b2
shaderconverter: allow specifying input/output format as well.
...
To make it convenient, the format equals to the usual file extension.
Currently skipping WGSL and DXIL however because I have no idea what
extension should they have, not even the DirectXShaderCompiler repo
tests show anything useful, there it's either generic LLVM *.ll or *.bc.
Come on, did people in 2020 also forget how to design file formats?!
6 years ago
Vladimír Vondruš
807a7e939c
ObjImporter: compile with exceptions enabled on Emscripten.
...
Actually looking forward to when I rewrite this whole thing.
6 years ago
Vladimír Vondruš
686b915bc3
Math: this test wasn't right.
...
Uncovered after the latest Emscripten-related update to
CORRADE_LONG_DOUBLE_SAME_AS_DOUBLE.
6 years ago
Vladimír Vondruš
ef7232e71d
Math: clean up obsolete test workflows.
6 years ago
Pablo Escobar
f94035805d
EmscriptenApplication: use _malloc instead of internal allocate
6 years ago