* In GL various really really stupid options for changing shaders and
recompiling and relinking is possible.
* We don't support the whole giant trash fire, but we can at least
handle re-compiling a shader within the same program (so the original
source isn't used anywhere and can be safely rewritten).
If the app name doesn't have a directory separator search PATH directories to find path of application to launch.
Resolve the app name fully then change the working directory
Implemented OpenGL counters based on ARB_pipeline_statistics extension
and occlusion queries.
Because OpenGL doesn't seem to allow concurrent queries of the same
type occlusion queries in the log are ignored when executing
FetchCounters.
Renamed GPUTimer to GPUQueries because D3D11 GPUTimer structure seems
to be visible and creates conflicts on VS.
Implemented D3D12 counters based on occlusion and pipeline statistics
queries.
Display an error message window when SetStablePower is called and
Win10 is not in developer mode.
- ShaderDebugState now carries a 'flags' that can be updated when the interpreter is run. Currently supported flags are 'sample/load/gather insn' or 'insn generated nan/inf'.
- DXBC interpreter now pushes operation type into results for simple intrinsics. This avoids the situation where temp decls are by default uint-typed, and any arithmetic operation on float or double operands would result in a uint shader variable. Other intrinsics are largely correct because they create temporaries with appropriate typed constructors.
- Provide icons for user interface elements, based on the existing 'run to' icons with modifications by myself.
A canonical UI paradigm is that when you have a dialog with a list of
items as a central element and an "Ok" action, double-clicking the item
results in the dialog confirmation.
This change adds this behavior to the Capture dialog.
This comes up as a warning in VS2017, and all instances of this should
be unsafe given that std::string in MSVC only starts with a pointer when
the string contents is longer than the internal buffer, and of course
the size is larger than that of a pointer so all following arguments
wouldn't work either.
* This might not precisely reflect the contents of memory from external
APIs, but it will at least run without crashing and allow programs
that rely on the extension to function and capture for inspecting
internal vulkan work.
* A 64-bit install has an x86 subfolder to capture 32-bit programs. If
a 32-bit program then launches a 64-bit program we need to 'promote'
back to run the original bitness to capture it.
* It's still not supported to capture 64-bit in general from just a
32-bit install as the support files aren't included.