This updates NvCounterEnumerator to use the RawCounterConfig and counter
availability APIs available in recent Nsight PerfSDK headers. Using
these APIs to filter metrics by counter availability prevents crashes
and NaN values on some GPUs.
void ThreadState::SkipIgnoredInstructions() processes merge instructions before control flow is updated and the tangle might have diverged and the merge point would be set to for threads in the tangle without executing the merge instruction
Required for simulations which do multiple simulation steps per control flow update and can diverge the tangle outside of the control flow and in this scenario need to set multiple merge points. A single merge point for the tangle is incorrect
RemoteServer timedout due to VK_Leak_Check taking too long before sending commands to remote server. Spawning a worker thread to keeping the remote server connection alive fixes the disconnection issue.
* This requires custom-installing the V140 toolset which unfortunately takes a
long time on CI :(.
* We also drop the VS2019 target as it has little use.
* When patching shaders for separability we are limited in what we can safely
do. If we need to add a separable declaration but a shader uses legacy GLSL
and redeclares an individual global these can't co-exist, so we try to remove
the incompatible one. This may not be safe but is a best-effort.
On the active thread
* GSM reads come from the local GSM cache (not the global GSM data)
* GSM writes go to the local GSM cache and the global GSM data
* Workgroup Memory barrier populates the local GSM cache with the data from the global GSM data
On the non-active threads:
* GSM reads/write always operate on the global GSM data
* Workgroup Memory barrier is ignored
Similar to the validation that is performed in ShaderViewer UI
Disabled by default pass True to process_trace to enable the validation
Includes validate_shadervariable() and shadervariable_equal()
if members.size() == 0
rows * columns must be between 1 and 15
type must not be Struct
if members.size() > 0
type must be Struct or Unknown or ConstantBlock
rows must be 0
columns must be 0
then recurse and check construction of each element of members array