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.
* This is a stupid requirement as the quad overdraw shader doesn't use any
interpolators, but the D3D12 runtime complains and refuses to create a PSO
unless the PS has a matching signature. This works as long as the position was
the first output from the previous stage, but if it isn't the PSO fails to
create.
* To fix this, we take the existing shader and patch it by grafting the output
signature from the last stage over onto the input signature, and patching up
where the position is.
* Unfortunately there isn't an easy registry key to check to see if the
2015-2019 redist that we need is installed. Instead we need to check the
major/minor version to see if it's at least 14.20.
* This is complicated by the fact that windows installer returns DWORD registry
values with an extra # but provides no built-in way to strip it so it can be
compared numerically. The solution we've used here is a custom vbscript
action, but apparently they are problematic. Worst case I believe this will
try to install the runtime when not necessary, which might require an
unnecessary reboot. Or alternatively it may misdetect the runtime as installed
but the large majority of people have a compatible redist so this isn't too
bad either.
* Normally we only check mapped memory when it's referenced during capture by
some binding, but for BDA we don't have bindings so we have to conservatively
check it every time.