Adding note about using "--demos-binary" option to specify the filepath of the demos binary as an alternative to making sure the demos binary is in the PATH.
Fixed a typo "can'tbe" -> "can't be"
Copy Metal driver metal-cpp files to the tests project for use in the tests project
Add extensions from Learn Metal-cpp project: https://developer.apple.com/metal/cpp/https://developer.apple.com/metal/LearnMetalCPP.zip
Custom additions to Metal CPP to get NSApplication, NSView, NSWindow, CAMetalLayer to work stand alone without requiring MetalKit library.
* This may break on drivers old enough to not recognise the first non-legacy
ASIC, but that is much rarer than new drivers that have dropped support for
the old ones.
* Normally we have to ignore subsequent states as potentially garbage pointers
if discard is enabled, but when it's dynamic state we have to ignore its
valid.
* This is a test of a specific case of lazy serialisation, but in particular
D3D12 descriptors do some aliasing tricks for types to compress the data, so
repeated serialisation needs to be safe.
* Most of the main entry points that can fail with relevant reasons now has a
way of specifying a message to return with it. This message can be displayed
to the user to give more information or context about an error.
Helpful for source browsing when using an IDE project generated by CMake
Potential list of header files found using:
find util/test/demos -name '*.h' \! -path "*3rdparty*" \! -path "*official*"
Fix a typo in a comment in D3D12_Descriptor_Indexing.py.
Fix UAV using a typed buffer view instead of a structured buffer view.
Fix SetDescriptorHeaps being called before ClearUnorderedAccessViewUint
* The pattern buffer is 64x8 but doing copies to each target location can cause
issues on very large textures. Instead we generate a 256x256 buffer with
repetitions on load (which is still only ~256-512kB), and copy from that. We
can still do truncated copies so we don't need a smaller buffer, and this
greatly reduces the number of buffer copies issued.