Vladimír Vondruš
9b5c62fa46
ShaderTools: recognize also the Kernel stage.
5 years ago
Vladimír Vondruš
97d1c17ae1
ShaderTools: move the Stage enum to a dedicated header.
...
Will be used by SPIR-V reflection APIs, which don't need the whole
converter interface and all the pluginmanager stuff dragged along.
5 years ago
Vladimír Vondruš
fa08cda9e5
ShaderTools: fart.
5 years ago
Vladimír Vondruš
a1d968c643
external: add a SPIR-V header.
...
Commit faa570afbc91ac73d594d787486bcf8f2df1ace0 from
https://github.com/KhronosGroup/SPIRV-Headers .
5 years ago
Vladimír Vondruš
afe4fb76e2
Vk: implicitly enable VK_EXT_extended_dynamic_state.
...
All the heavyweight features from this extension have to be explicitly
enabled through device features, so it's okay to have it always.
5 years ago
Vladimír Vondruš
997d801410
Vk: put a test in a correct IDE folder.
...
Why it isn't 2067 already so I can use CMake 3.10 or which one that
allows me to implicitly set the folder for a directory.
5 years ago
Vladimír Vondruš
eb91cf768a
Vk: fix irrelevant copypasted code + comment in a test.
5 years ago
Vladimír Vondruš
34cc5e90e5
Vk: remove redundant namespace prefixes from a test.
5 years ago
Vladimír Vondruš
d4ab9f4cb0
Vk: implemented a Mesh wrapper.
...
Together with:
* CommandBuffer::draw()
* Support for indexed and non-indexed meshes
* Support for setting primitive and stride dynamically
I took one shortcut and vkCmdBindVertexBuffers() is currently called
once for each binding. The interface is ready for this, but I'm not yet
100% sure how to test that it actually does batch the buffers, so it's
left at the lazy implementation for now.
5 years ago
Vladimír Vondruš
9ce36aa668
Vk: rvalue overloads for MeshLayout setters.
...
So it's possible to do
Vk::Mesh mesh{Vk::MeshLayout{}
.addBinding(...)
.addAttribute(...)
};
Without this, the above will result in a dangling layout reference.
5 years ago
Vladimír Vondruš
fb5c1b14ca
Vk: rename DynamicRasterizationState::PrimitiveToplogy to MeshPrimitive.
...
For consistency, again.
5 years ago
Vladimír Vondruš
571772581c
Vk: rename PipelineStage::AllGraphics to AllRasterization.
...
Because that's what it is, after all. Also mention this naming
difference in the Vulkan wrapping overview.
I was wondering if I should rename QueueFlag::Graphics too, but since
graphics queues are used for (not really rasterization-specific) image
copies as well, and ray tracing is actually done on compute queues, I
don't think renaming to Rasterization is a good idea. Clarified the
comments at least.
5 years ago
Vladimír Vondruš
22f918dffd
Vk: some more docs / tips for pipeline barriers.
5 years ago
Vladimír Vondruš
14389c99d5
Vk: save current dynamic state on a pipeline bind.
...
Will be used for the draw() command.
5 years ago
Vladimír Vondruš
d9d8c41980
Vk: rename *IndexTypeUintXY to IndexTypeUnsignedFoo for consistency.
...
It would be weird if we had MeshIndexType::UnsignedByte but
DeviceFeature::IndexTypeUint8.
5 years ago
Vladimír Vondruš
b3394bfc48
Vk: properly skip an assertion test case on a build w/o asserts.
...
The "no assert" build on the CIs doesn't test Vulkan, so this didn't get
caught.
5 years ago
Vladimír Vondruš
9e71e5ab0e
Vk: store the set of dynamic states in a Pipeline instance.
...
Will be subsequently useful for command buffers.
5 years ago
Vladimír Vondruš
ac62a6c708
Vk: debug output for DynamicRasterizationState[s].
...
Will save them to a Pipeline and when there's a getter for something,
it's good to have a printer for it as well. Or at least for the tests.
5 years ago
Vladimír Vondruš
f9d8032fc9
Revert "Vk: use a compute pipeline for Pipeline move/wrap tests."
...
Err, I'll actually need those to test the dynamic state. Again pushed
too soon.
This reverts commit 321bb0d9c1 .
5 years ago
Vladimír Vondruš
d436e7ab50
Vk: expose EXT_robustness2 and EXT_image_robustness2 extensions.
5 years ago
Vladimír Vondruš
41b59d8176
Math: add [Unsigned]Byte/[Unsigned]Short variants of castInto().
5 years ago
Vladimír Vondruš
f2563b8cd0
doc: some initial platform docs for Vulkan.
5 years ago
Vladimír Vondruš
82b2da0b22
GL: make gl_PointSize-related APIs easier to search for.
5 years ago
Vladimír Vondruš
20c3d37701
doc: fix a critical omission in the Getting Started Guide.
5 years ago
Vladimír Vondruš
d6d2ade9b3
Vk: doc++
5 years ago
Vladimír Vondruš
5604ccf3cd
Vk: implement binding a pipeline.
5 years ago
Vladimír Vondruš
321bb0d9c1
Vk: use a compute pipeline for Pipeline move/wrap tests.
...
So much shorter.
5 years ago
Vladimír Vondruš
45c4fa20f7
Vk: compute pipeline creation.
...
Because I needed something simple to test pipeline binding with. Also,
my first handwritten SPIR-V compute shader! It does absolutely nothing,
yay.
5 years ago
Vladimír Vondruš
5f02973957
Vk: rename tests for consistency.
5 years ago
Vladimír Vondruš
f84a385fea
Vk: initial rasterization pipeline creation.
...
I named it RasterizationPipelineCreateInfo and not
GraphicsPipelineCreateInfo because there's now a
RayTracingPipelineCreateInfo as well, which is *also* graphics, and it
would be confusing for everyone except people already drowned in Vulkan
naming quirks.
5 years ago
Vladimír Vondruš
6e1920e367
Vk: minor.
...
Name the move constructor/assignment arguments so it's clearer that it's
indeed a custom implementation and not just a defaulted function moved
into the cpp.
5 years ago
Vladimír Vondruš
0c96b74109
Vk: list files needed by ShaderVkTest.
5 years ago
Vladimír Vondruš
1da2f64ce9
Vk: undefine a temporary macro.
5 years ago
Vladimír Vondruš
f438199b7a
Vk: doc++
...
Buncha brainfarts in there.
5 years ago
Vladimír Vondruš
b5a4fc03b0
Vk: add missing enums and/or docs for VK_KHR_acceleration_structure.
5 years ago
Vladimír Vondruš
f32cc66d3d
Vk: a container for a shader set needed by a pipeline.
5 years ago
Vladimír Vondruš
65346cdb5a
Vk: an extremely minimal PipelineLayout wrapper.
...
As in, does absolutely nothing.
5 years ago
Vladimír Vondruš
7a0da83c44
doc: introduce \relativeref and shorten some excessive references.
...
It doesn't help the overflowing Vk::DeviceFeature table 100%, but it's
better a bit.
5 years ago
Vladimír Vondruš
661c26be2d
Vk: recognize VK_EXT_extended_dynamic_state.
5 years ago
Vladimír Vondruš
c1a3a89fb1
Vk: doc++
5 years ago
Vladimír Vondruš
99b3c94e17
external: regenerate Vulkan headers.
5 years ago
Vladimír Vondruš
e23af8b4a6
Vk: provide comparison for MeshLayout.
...
First step towards pipeline caches. Gah the pointer jungle is making
this unnecessarily hard.
5 years ago
Vladimír Vondruš
1f89710b35
Vk: enforce binding and location ordering in MeshLayout.
...
In order to make them easier to compare.
5 years ago
Vladimír Vondruš
bbb066664b
Vk: add a wrapper for mesh layout setup.
...
Next up is *the unthinkable*, a Vk::Mesh. After that I'll finally have
enough APIs exposed to document everything including command buffer
recording and submission.
5 years ago
Vladimír Vondruš
bd56ed2d51
Vk: add a helper for connecting just one structure.
...
Without the extra overhead of Reference.
5 years ago
Vladimír Vondruš
11cca8e315
Vk: add a VertexFormat enum.
...
Similar to PixelFormat, to filter out values that make no sense as a
vertex format (such as sRGB) and add others (such as doubles). And
documenting which are guaranteed to be supported and which not. The
hasVkFormat(Magnum::VertexFormat) and vkFormat(Magnum::VertexFormat)
were also deprecated in favor of the new hasVertexFormat() /
vertexFormat() APIs.
5 years ago
Vladimír Vondruš
437b3d1556
GL: don't check for Windows-only workarounds everywhere.
...
Apparently nobody tried to run AMDGPU PRO drivers on Linux until now.
Sorry.
5 years ago
Vladimír Vondruš
18cced3e6b
Vk: add an execution-only pipelineBarrier() overload.
...
Useful for WAR barriers. I also *finally* get why is it called a
pipeline barrier and not a memory barrier.
5 years ago
Vladimír Vondruš
d4f4540913
Vk: this might be important to mention.
5 years ago
Vladimír Vondruš
f721fac45d
Vk: don't use ImageUsage::Sampled on a linear image.
...
SwiftShader doesn't support that and we don't actually need it there.
5 years ago