This was done silently until now and I think such platform-specific code
should be always exposed as a disableable workaround. Moreover, I need a
similar thing for ANGLE, so this comes handy.
Needed a change in flextGL to allow merging in 3rd party gl.xml
additions because Chrome is apparently a center of the universe and thus
doesn't need to bother upstreaming its extensions, ffs.
Because it's possible to specify the formats explicitly it doesn't make
sense not to support that. Eventually contents-based detection could be
implemented as well, but I don't want to do that just yet.
And make it return right after the first error. Also clean up some
old-style code -- the redirection should be restricted to the smallest
scope possible.
So if we convert foo.blah but explicitly tell it that it's a SPIR-V
file, it actually treats it as such, instead of complaining that `blah`
is not a known extension.
First step towards being able to operate directly on data.
Currently those will be needed mainly by the Vk library to patch around
a SwiftShader bug. I'm not sure yet how the public API should look so
it's all hidden in the Implementation namespace for now.
If it's ignored, a warning is printed to catch accidents, but not an
error since it should be possible to just append --info to existing
command line to see what the input is about.
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.
So it's possible to do
Vk::Mesh mesh{Vk::MeshLayout{}
.addBinding(...)
.addAttribute(...)
};
Without this, the above will result in a dangling layout reference.
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.