CVS analysis' parameters 
Project module namevmd
CVS root used/home/cvs/vmd/cvsroot
Range analysisMain Branch (HEAD)
Date analysis2020-09-28 02:28 (Built in 102s)
CVS report for module 'vmd' built by cvschangelogbuilder 2.3 (build 1.76) with option buildhtmlreport.
Summary   Lines of code   Developers activity   Days of week   Hours  Tags  Last commits  

 
SummaryTop 
Current status indicatorsValue  
Files currently in repository 924 
Lines of code currently in repository (on non binary files only) 440055 
Activity indicatorsFrom startThis monthToday
Number of developers 2610
Number of commits3687830
Number of commits by status 1325 to add new file
35152 to change existing file
401 to remove file 
3 to change existing file
 
 
Different files commited 130320
Lines added / modified / removed (on non binary files only) +638868 / 281672 / -198813+5 / 6 / -8+0 / 0 / -0
Last commit 2020-09-092020-09-09 

 
Lines of code*Top 
This chart represents the balance between number of lines added and removed in non binary files (source files).
 
 

 
Developers activity*Top 
DeveloperNumber of commitsDifferent files commitedLines*
(added, modified, removed)
Lines by commit*
(added, modified, removed)
Last commit 
johns234681260377854 / 170830 / 10151716.1 / 7.2 / 4.32020-09-09 18:11 
justin720868065345 / 38338 / 765679 / 5.3 / 10.62003-08-29 23:53 
billh164035871754 / 20025 / 365843.7 / 12.2 / 2.21996-04-10 04:57 
dalke135430657277 / 14001 / 521542.3 / 10.3 / 3.81998-09-11 15:17 
saam8544017267 / 14555 / 437120.2 / 17 / 5.12011-06-20 18:26 
pgrayson5141246934 / 2388 / 52513.4 / 4.6 / 12002-06-26 18:46 
jordi4691207001 / 3656 / 89514.9 / 7.7 / 1.92007-10-26 21:04 
sergei4563545952 / 6156 / 79913 / 13.5 / 1.71998-09-24 04:47 
danorris180495092 / 3518 / 173828.2 / 19.5 / 9.62001-11-30 18:24 
eamon133461011 / 1359 / 2697.6 / 10.2 / 22004-05-26 19:03 
ulrich98626225 / 393 / 5063.5 / 4 / 0.51997-05-15 06:06 
dhardy9385166 / 1350 / 210155.5 / 14.5 / 22.52010-06-10 22:36 
brendanbc172171095 / 1034 / 10515.2 / 14.3 / 1.42018-05-11 16:59 
kvandivo7216928 / 526 / 1212.8 / 7.3 / 0.12014-12-18 00:16 
khamer55172375 / 343 / 1243.1 / 6.2 / 0.21995-06-05 16:00 
leech52362540 / 750 / 1648.8 / 14.4 / 0.31996-11-22 02:54 
barryi44141869 / 1675 / 13042.4 / 38 / 2.92003-08-07 03:40 
akohlmey4426920 / 214 / 19420.9 / 4.8 / 4.42011-12-06 05:04 
ryanmcgreevy318964 / 214 / 61931 / 6.9 / 19.92019-07-22 19:27 
reeves1515801 / 461 / 1953.4 / 30.7 / 1.21996-12-20 08:02 
ltrabuco137206 / 114 / 115.8 / 8.7 / 02009-12-06 21:28 
bishop86299 / 26 / 037.3 / 3.2 / 01995-10-20 00:09 
johns22251 / 131 / 025.5 / 65.5 / 01998-05-30 00:59 
brunner111 / 3 / 01 / 3 / 02009-06-15 21:33 
johanstr110 / 3 / 00 / 3 / 02011-12-02 23:10 
petefred110 / 2 / 00 / 2 / 02006-09-26 23:17 

                   


 
Activity by days of weekTop 


 
Activity by hoursTop 


 
Last tags by dateTop 
DateFull dateTags 
2020-05-222020-05-22 05:54linenoise-char-at-a-time 
2020-05-212020-05-21 22:00linenoise-line-at-a-time 
2019-06-052019-06-05 05:32vmd-first-python3 
2019-05-222019-05-22 18:47vmd-last-python2 
2019-03-122019-03-12 20:06raytracinggems2019 
2018-08-282018-08-28 17:23siggraph2018 
2018-03-222018-03-22 03:52gtc2018-segprofile-final 
2018-03-072018-03-07 19:26gtc2018-seggigavoxels 
2018-03-022018-03-02 05:04gtc2018-segprofile 
2016-12-012016-12-01 05:40vmd-1-9-3 
2015-09-202015-09-20 20:56vr2016 
2014-12-302014-12-30 05:45vmd-1-9-2 
2014-11-082014-11-08 06:52quicksurf-globalization 
2014-11-072014-11-07 19:02sc2014-demos 
2013-10-112013-10-11 21:29ultravis2013 
2012-02-022012-02-02 04:15vmd-1-9-1 
2011-06-162011-06-16 15:40removeidxdispcmds 
2011-06-162011-06-16 02:25atomselrange 
2011-03-142011-03-14 17:54vmd-1-9-0 
2011-01-182011-01-18 15:32lastorbifdefs 
2009-11-052009-11-05 22:29msmpot-nonperiodic 
2009-08-072009-08-07 06:08vmd-1-8-7 
2009-04-292009-04-29 15:43hpg2009-submit 
2009-02-252009-02-25 01:28volmap-ils-estatics-orig 
2009-02-112009-02-11 00:44gpgpu-2009-final 
2008-12-032008-12-03 00:33qm-nosorting-1 
2007-05-142007-05-14 22:00cuda-0-8-0 
2007-04-052007-04-05 18:21vmd-1-8-6 
2006-08-262006-08-26 05:33vmd-1-8-5 
2006-04-172006-04-17 07:41vmd-1-8-4 
2005-02-162005-02-16 06:07vmd-1-8-3 
2003-12-052003-12-05 19:09vmd-1-8-2 
2003-06-152003-06-15 18:32vmd-1-8-1 
2002-12-092002-12-09 05:44vmd-1-8-0 

 
Last commit logsTop 
TagsDateDeveloperLast 200 Commit Logs
 2020-09-09johnsEnsure release of the active device so that OSPRay 2.x doesn't creash during
shutdown in the OpenVKL layer.
* src/OSPRay2Renderer.C 1.28 (changed +2 -1)
Updated to current ANARI API, eliminating the renderer parameter to
anariNewMaterial().
* src/ANARIRenderer.C 1.8 (changed +2 -10)
 2020-09-05johnsSwapped out hard-coded sleep for environment variable based debugger attach
scheme.
* src/OSPRay2Renderer.C 1.27 (changed +7 -3)
 2020-08-16johnsAdded comments about the behavior of OSPRay 1.x ospSetData() since
the OSPRay 2.x and ANARI approaches used shared data that the application
side must maintain for persistent access until scene/context destruction.
* src/OSPRayRenderer.C 1.86 (changed +6 -6)
Continued improvement of ANARI scene/context teardown logic.
* src/ANARIRenderer.h 1.5 (changed +1 -3)
* src/ANARIRenderer.C 1.7 (changed +61 -23)
Continued improvements to OSPRay 2.x scene/context teardown code and
state management.
* src/OSPRay2Renderer.h 1.9 (changed +1 -3)
* src/OSPRay2Renderer.C 1.26 (changed +53 -19)
 2020-08-15johnsAdded environment variable disable for OSPRay 1.x interactive progressive
rendering for simplified testing.
* src/FileRenderList.C 1.107 (changed +6 -4)
Eliminated unnecessary code left from prior design work, tests, and debugging.
* src/OSPRayRenderer.C 1.84 (changed +2 -23)
Unified and streamlined all of the mesh methods that currently convert to
a triangle soup memory representation for OSPRay 1.x.
* src/OSPRayRenderer.h 1.34 (changed +5 -2)
* src/OSPRayRenderer.C 1.85 (changed +63 -208)
 2020-08-14johnsBack-ported improvements from the ANARI renderer.
Eliminate missing ospCommit() and ospRelease() reference count
decrement operations. Fixed a bug in internal framebuffer
state change management.
* src/OSPRay2Renderer.C 1.24 (changed +57 -17)
Corrected OSPRay 1.x framebuffer state management.
* src/OSPRayRenderer.C 1.80 (changed +2 -1)
Corrected destructor loops for light deletion, added logging and error
callbacks available in later 1.x API revs, and avoid adding
a potentially empty (zero-length) sphere array object to the ospModel.
In combination with the final revs of OSPRay 1.x, this commit appears
to fix memory leaks in VMD's use of the OSPRay 1.x APIs, although
OSPRay itself leaks a handful of objects still.
* src/OSPRayRenderer.C 1.83 (changed +39 -16)
Eliminated some HMD-specific state variables unnecessarily
inherited from OptiX.
* src/OSPRayRenderer.h 1.31 (changed +1 -6)
* src/OSPRay2Renderer.h 1.7 (changed +1 -6)
* src/ANARIRenderer.h 1.3 (changed +1 -6)
Ongoing revisions to update the OSPRay 1.x code to follow current
conventions with better adherance to reference count management,
although issues still remain in tests with 1.8.5.
Renamed ort_xxx types to avoid namespace collisions with multiple
uses of ResizeArray that confused Clang's address sanitizer mode.
* src/OSPRayRenderer.h 1.32 (changed +13 -13)
* src/OSPRayRenderer.C 1.81 (changed +196 -63)
Prevent SymbolTableElement objects from leaking when a new atom selection
macro replaces an existing one with the same name, e.g. as when loading
a saved state file.
* src/SymbolTable.h 1.63 (changed +41 -6)
Renamed renderer-internal ort_xxx types to avoid namespace collisions
with multiple uses of ResizeArray that confused Clang's address sanitizer.
* src/OSPRayRenderer.h 1.33 (changed +3 -3)
* src/OSPRayRenderer.C 1.82 (changed +26 -26)
* src/OSPRay2Renderer.h 1.8 (changed +18 -18)
* src/OSPRay2Renderer.C 1.25 (changed +42 -42)
* src/ANARIRenderer.h 1.4 (changed +18 -18)
* src/ANARIRenderer.C 1.6 (changed +42 -42)
Used the nascent trace capture and debuggin framework to identify and
eliminate missing anariCommit() and anariRelease() reference count
decrement operations. Fixed a bug in internal framebuffer
state change management. Ran tests with no-op scenario (construct/destruct),
single frame rendering, and back-to-back frame rendering with a persistent
context across batch rendering operations. Still needs a bit more testing
with interactive cases, more back-ends, and ideally with the aid of
a code coverage tool to ensure all branches have been exercised.
* src/ANARIRenderer.C 1.5 (changed +57 -19)
 2020-08-11johnsAdded calls to _mm256_zeroupper() prior to returns to external OS
ABI-compliant functions to prevent AVX-512 clock limits from remaining
active in subsequently executed scalar or SSE code, caused by false
dependence on upper vector register state. This is a slightly different
variant of the well-known problems with AVX-SSE instruction set encoding
and CPU state transition issues seen on prior hardware generations, but
in this case (on current Xeon and extreme desktop CPU series)
the main impact is a reduction in peak clock rate for as long as the
upper vector register state exists.
This is discussed at some length in various places online:
https://www.realworldtech.com/forum/?threadid=179700&curpostid=179756
https://stackoverflow.com/questions/58568514/does-skylake-need-vzeroupper-for-turbo-clocks-to-recover-after-a-512-bit-instruc
https://stackoverflow.com/questions/52008788/dynamically-determining-where-a-rogue-avx-512-instruction-is-executing
https://sourceware.org/bugzilla/show_bug.cgi?id=20508
https://software.intel.com/es-es/node/704023
* src/Orbital_AVX512ER.C 1.2 (changed +12 -2)
* src/Orbital_AVX512.C 1.3 (changed +7 -1)
Added calls to _mm256_zeroupper() prior to returns to external OS
ABI-compliant functions to prevent x86 AVX-SSE instruction set encoding
(VEX vs. non-VEX) transition performance loss due to CPU state transition
penalties (pre-Skylake) or false dependence on upper register state
(Skylake and later CPUs). These vector zeroing calls are fast on
Xeon hardware, but were very poor performers on Xeon Phi hardware,
costing several tens of instructions. For VMD's use of object-file-scope
architecture target compilation, we don't have to worry about calls
within the same file scope since they will all use the same instruction
set encoding. Here, we only need to be sure to zero the upper AVX registers
prior to returning to functions compiled using non-AVX execution modes
(non-VEX instruction encoding, etc). By zeroing the registers prior to
return, we eliminate problems with false dependence on upper vector register
states causing performance loss in subsequently executed SSE or scalar code.
This is discussed at some length in the Intel Optimization Guide and online:
https://software.intel.com/es-es/node/704023
https://stackoverflow.com/questions/41303780/why-is-this-sse-code-6-times-slower-without-vzeroupper-on-skylake
https://www.agner.org/optimize/blog/read.php?i=415#415
* src/util_simd_AVX.C 1.5 (changed +10 -1)
* src/QuickSurf_AVX2.C 1.5 (changed +5 -1)
 2020-07-31johnsUpdated to latest ANARI master, w/ API callback changes, and added
support for nascent debugging and tracing layer prototypes.
* src/ANARIRenderer.C 1.4 (changed +24 -5)
 2020-07-29johnsAdded FMA3 #ifdef
* src/QuickSurf_AVX2.C 1.4 (changed +3 -3)
Added compilation flags for FMA3 instructions to AVX2 builds.
* configure 1.1504 (changed +1 -1)
Check for FMA3 instructions before dispatch of the AVX2+FMA QuickSurf kernels.
* src/QuickSurf.C 1.125 (changed +4 -2)
Cranked version
* configure 1.1505 (changed +1 -1)
 2020-07-28johnsAdded runtime dispatch variants of AVX512 MO kernels.
* src/Orbital_AVX512ER.C 1.1 (added +258 -0)
* src/Orbital_AVX512.C 1.1 (added +315 -0)
Added support for runtime CPU dispatch of hand-vectorized MO kernels.
* src/Orbital.h 1.45 (changed +2 -2)
* src/Orbital.C 1.152 (changed +82 -4)
Added support for runtime dispatch of Intel x86 AVX-512 (subsets F,VL,BW,DQ,CD)
suited for descendants of Skylake Xeon, and AVX-512ER (subsets F,CD and and ER)
suited for KNL Xeon Phi and any future CPUs supporting the
exponential/reciprocal instructions used therein.
* configure 1.1500 (changed +27 -12)
Completed AVX-512F version of the molecular orbital kernel.
On an Intel i7-9800X, runtime dispatch performance for AVX-512F
(with fully populated memory system) is roughly 3x faster than the
4-way vectorized SSE kernel.
* src/Orbital_AVX512.C 1.2 (changed +8 -7)
Corrected bytes_next_alignment() helper to use the alignment size parameter
rather than the hard-coded 32-byte AVX-specific alignment.
* src/util_simd_AVX.C 1.3 (changed +3 -3)
Disable compilation of AVX2 specific routines for the time being.
* src/util_simd_AVX.C 1.4 (changed +4 -2)
Eliminated compiler warnings.
* src/Benchmark.C 1.13 (changed +2 -3)
Enabled runtime dispatch for molecular orbital kernels on AVX-512F CPUs.
* src/Orbital.C 1.154 (changed +3 -5)
Ensure that AVX2 dispatch targets also get to use AVX macros/headers
* configure 1.1503 (changed +1 -1)
Further streamlining, and elimination of mixed vector instruction set code paths
* src/QuickSurf_AVX2.C 1.3 (changed +17 -82)
Lockout AVX-512F orbital kernel until it is fully debugged.
* src/Orbital.C 1.153 (changed +7 -3)
Rewrote analyze_selection_aligned_dispatch_avx() to calculate aligned
array index offsets from low level pointer arithmetic, rather than looping
and testing for alignment within the loop itself. Added and tested an
AVX2 loop for counting selected atoms, for an eventual AVX2 dispatch variant.
* src/util_simd_AVX.C 1.2 (changed +52 -34)
Silence runtime dispatch debugging messages for the time being
* src/util_simd.C 1.21 (changed +3 -3)
Streamlined QuickSurf vmd_gaussdensity_avx2() AVX2 code path
for CPU runtime dispatch, and corrected compilation macro tests
to respect runtime dispatch mechanism.
* src/QuickSurf_AVX2.C 1.2 (changed +17 -267)
Updated AVX-512ER build flags
* configure 1.1501 (changed +2 -2)
Updated clean target for AVX-512ER targets
* configure 1.1502 (changed +1 -1)
 2020-07-26johnsCorrected test name for "vmdbench analyze_selection"
* src/cmd_vmdbench.C 1.29 (changed +4 -4)
 2020-07-24johnsAdded Tcl bindings for vmdbench_minmaxmean_1fv(),
vmdbench_minmax_3fv(), and vmdbench_analyze_selection().
* src/cmd_vmdbench.C 1.28 (changed +107 -1)
* src/Benchmark.h 1.9 (changed +5 -7)
* src/Benchmark.C 1.12 (changed +17 -7)
Added analyze_selection_aligned_dispatch() with support for runtime
dispatch for AVX-capable CPUs.
* src/util_simd.C 1.20 (changed +123 -3)
Added fctn prototypes for analyze_selection_aligned_dispatch() capable of
runtime dispatch on AVX-capable CPUs.
* src/utilities.h 1.114 (changed +10 -1)
Added initial build system support for runtime dispatch of
AVX, AVX2, and AVX-512 SIMD instruction set extensions on
x86 platforms, with the new configuration flag X86AVXDISPATCH.
* configure 1.1498 (changed +74 -17)
Added runtime-dispatch versions of SIMD kernels for atom selection and
QuickSurf / MDFF density map computation.
* src/util_simd_AVX.C 1.1 (added +286 -0)
* src/QuickSurf_AVX2.C 1.1 (added +880 -0)
Began importing standalong benchmark routines for atom selection and
volume analysis routines, particularly the SIMD acceleration routines
for which runtime CPU dispatch algorithms exist, to allow in-situ
verification of performance.
* src/Benchmark.h 1.7 (changed +14 -1)
* src/Benchmark.C 1.10 (changed +86 -2)
Changed atom selection analysis calls to analyze_selection_aligned_dispatch(),
which uses runtime-dispatch for CPUs that support AVX SIMD instructions.
* src/ParseTree.C 1.153 (changed +13 -11)
* src/Measure.C 1.152 (changed +2 -2)
* src/AtomSel.C 1.178 (changed +2 -2)
Corrected console output code when MPI is enabled.
* src/VMDApp.C 1.569 (changed +9 -7)
Corrected scoping for MPI startup checks.
* src/VMDApp.C 1.570 (changed +56 -57)
Eliminated the need for caller-provided test arrays and initialization
using some simple built-in test cases that exercise the code adequately.
* src/Benchmark.h 1.8 (changed +5 -5)
* src/Benchmark.C 1.11 (changed +47 -9)
Updated clean target to eliminate SIMD dispatch object files.
* configure 1.1499 (changed +1 -1)
Updated main QuickSurf CPU routines to support runtime-dispatch to
hand-coded AVX2 kernsl on CPUs with AVX2 SIMD instruction support.
* src/QuickSurf.C 1.124 (changed +37 -9)
 2020-07-23johnsAdded VMDApp pointer to atom selection constructor and subclasses, to
facilitate access to global data structures that enumerate CPU instruction
set extensions and/or other hardware special features required for effective
use of runtime dispatch for hand-coded SIMD loops for performance
critical atom selection operations. This allows previously cached CPUID
results and data structures to be provided as parameters to leaf node
atom selection operators.
* src/py_numeric.C 1.28 (changed +2 -2)
* src/py_atomsel.C 1.49 (changed +2 -2)
* src/TclCommands.C 1.170 (changed +2 -2)
* src/SaveTrajectoryFltkMenu.C 1.42 (changed +2 -2)
* src/MoleculeList.C 1.121 (changed +2 -2)
* src/MeasureCluster.C 1.20 (changed +6 -6)
* src/AtomSel.h 1.57 (changed +6 -4)
* src/AtomSel.C 1.176 (changed +10 -6)
Added struct tag for improved forward declarations in C++
* src/WKFThreads.h 1.17 (changed +3 -3)
Added vmd_mpi_nodeinfo() to query only the nodecount and node rank without
performing the full hardware scan. This allows VMD to make good choices
about CPU capability console messages when initialized as part of VMDApp
rather than in earlier startup phases.
* src/VMDMPI.h 1.9 (changed +2 -1)
* src/VMDMPI.C 1.24 (changed +24 -3)
Eliminated the old atom selection bound determination loop that has
been replaced by hand-coded SIMD routines for some time now.
* src/AtomSel.C 1.177 (changed +1 -22)
Explicitly initialize spline matrix to zeros.
* src/DrawMolItemRibbons.C 1.154 (changed +6 -2)
Migrated enumeration of host CPU count, memory availability and capacity,
and optional instruction set extensions and SIMD vector support to
VMDApp initialization where similar things are also done for CUDA and
the various renderers. The new CPU capability queries are now functional
across multiple platforms and compilers, enabling them to be used for
runtime dispatch of CPU-specific versions of performance critical routines,
such as x86 SSE, AVX, or AVX-512 vector instructions for atom selections,
volumetric data analysis, MDFF simulated density map calculations,
and QuickSurf representations, just as a few examples. The fastest
CPU-specific atom selection routines provide performance levels that
are bound by memory bandwidth, even with only a single thread.
By caching CPU capability flags globally, there's no need to re-query
on-the-fly, thereby ensuring near zero-overhead launch cost, so that
the fast CPU-specific routines benefit both large and small problem sizes
alike, without the overhead of waking thread pools or launching additional
CPU threads.
* src/vmd.C 1.109 (changed +1 -71)
* src/VMDApp.h 1.254 (changed +10 -2)
* src/VMDApp.C 1.567 (changed +86 -3)
Modified SymbolTable and ParseTree classes to cache the VMDApp pointer
to access global CPU capability bit flags, enabling them to be used for
runtime dispatch of CPU-specific versions of performance critical routines,
such as x86 SSE, AVX, or AVX-512 vector instructions for atom selections.
By caching CPU capability flags globally, there's no need to re-query
on-the-fly, thereby ensuring near zero-overhead launch cost, so that
the fast CPU-specific routines benefit both large and small problem sizes
alike, without the overhead of waking thread pools or launching additional
CPU threads.
* src/VMDApp.C 1.568 (changed +2 -2)
* src/SymbolTable.h 1.62 (changed +4 -2)
* src/SymbolTable.C 1.63 (changed +2 -2)
* src/ParseTree.h 1.46 (changed +3 -2)
* src/ParseTree.C 1.152 (changed +3 -2)
 2020-07-22johnsAdded AVX 8-way horizontal add helper routine
* src/util_simd.C 1.19 (changed +16 -1)
Slight optimization of SSE2 selection count loop in analyze_selection_aligned(),
to favor faster vertical additions within the innermost loop, followed by a
horizontal add at the very end.
* src/util_simd.C 1.18 (changed +14 -1)
 2020-07-20johnsAdded detection and reporting of IEEE 16-bit floating point conversion
instructions, and VM/hypervisor execution environment.
* src/vmd.C 1.108 (changed +8 -1)
* src/WKFThreads.h 1.16 (changed +11 -9)
* src/WKFThreads.C 1.25 (changed +14 -8)
 2020-07-19johnsModified analyze_selection_aligned() to allow it to universally replace
individual calls to find_first_selection_aligned() and
find_last_selection_aligned(), thereby making is far simpler to implement
runtime CPU dispatch, e.g., for specific AVX-512, AVX, and SSE
implementations of the selection loops.
* src/util_simd.C 1.17 (changed +77 -57)
Replaced individual calls to find_first_selection_aligned() and
find_last_selection_aligned() with analyze_selection_aligned() to facilitate
implementation of runtime CPU dispatch optimizations, e.g., for
x86 SSE2, AVX, AVX-512 vector instructions.
* src/Measure.C 1.151 (changed +2 -5)
Replaced individual calls to find_first_selection_aligned() and find_last_selection_aligned() with analyze_selection_aligned() to facilitate
implementation of runtime CPU dispatch optimizations, e.g., for
x86 SSE2, AVX, AVX-512 vector instructions.
* src/ParseTree.C 1.151 (changed +7 -26)
Updated vector intrinsic conditional compilation checks for
Clang versions below 5.x, after checking with compiler explorer
(http://godbolt.org/).
* src/util_simd.C 1.16 (changed +4 -3)
 2020-07-16johnsAdded conditional compilation checks for CPU capability flag queries
protecting OSPRay for its SSE 4.1 dependency.
* src/FileRenderList.C 1.106 (changed +5 -1)
Handle older revs of clang on both MacOS X and other platforms.
* src/util_simd.C 1.14 (changed +2 -2)
Make SSE workaround Clang-specific since it's not really related to
MacOS X specifically.
* src/util_simd.C 1.15 (changed +4 -5)
Pulled in Tachyon CPU ID routines to use for runtime dispatch of
CPU-specific SIMD vector code, detection of SMT depth, etc. New version
favors inline x86 assembly instead of using compiler/runtime provided
feature queries, since the direct use and parsing of x86 CPUID assembly
output provides much more detail.
* src/WKFThreads.h 1.15 (changed +5 -2)
* src/WKFThreads.C 1.23 (changed +83 -34)
Pulled in Tachyon updates to ensure x86 max CPUID function codes parameters
are queried and checked in case a primitive CPU is encountered at runtime.
* src/WKFThreads.C 1.24 (changed +13 -8)
Report availability of x86 SSE 4.1 instructions and hyperthreading.
* src/vmd.C 1.107 (changed +7 -1)
 2020-07-15johnsChanged the ANARI startup to fall back to the "reference" device by default.
* src/ANARIRenderer.C 1.3 (changed +12 -6)
Synced with latest CPU capability query updates from Tachyon
* src/WKFThreads.C 1.22 (changed +121 -2)
 2020-07-12johnsAdded OSPRay 2.x renderer mode flag to switch between sci-vis and pathtracer
* src/OSPRay2Renderer.h 1.6 (changed +3 -1)
Allow runtime override of ANARI renderer registration in the GUI, for
debugging of issues with the OSPRay 2.x pass-through back-end, and others
that may similarly encounter issues with multiple instantiation init/shutdown.
* src/FileRenderList.C 1.104 (changed +7 -3)
Automatically disable OSPRay renderers when SSE 4.1 instructions are
known not to be available. This prevents runtime crashes on host
machines that lack SSE 4.1, particularly some low-end netbooks, etc.
* src/FileRenderList.C 1.105 (changed +25 -16)
Updated OSPRay 2.x renderer error/status callbacks for OSPRay 2.2.0
* src/OSPRay2Renderer.C 1.23 (changed +10 -5)
Updates for SSE 4.1 detection from Tachyon threads lib.
Assist with runtime reqs for Intel RT libs.
* src/WKFThreads.h 1.14 (changed +12 -11)
* src/WKFThreads.C 1.21 (changed +3 -2)
When _CONDA_ROOT is detected, VMD will use it to locate Python 3.7 libs.
* configure 1.1497 (changed +19 -9)
 2020-07-10johnsUpdated the ANARI renderer for the latest API in version 58abf849.
This update adds the device parameter to all APIs, and corrects the
device release behavior. Basic testing was done with the OSPRay 2.x
pass-through device.
* src/ANARIRenderer.h 1.2 (changed +4 -3)
* src/ANARIRenderer.C 1.2 (changed +197 -194)
 2020-07-08johnsExplicitly clear stack allocated string buffers.
* src/vmd.C 1.106 (changed +6 -5)
* src/cmd_render.C 1.49 (changed +2 -2)
* src/cmd_parallel.C 1.35 (changed +4 -4)
* src/cmd_mol.C 1.137 (changed +7 -7)
* src/cmd_display.C 1.79 (changed +5 -5)
* src/VolMapCreateILS.C 1.172 (changed +3 -3)
* src/VolMapCreateILS.C 1.171 (changed +3 -3)
* src/VolMapCreate.C 1.126 (changed +9 -9)
* src/TclTextInterp.C 1.136 (changed +3 -3)
* src/SpatialSearch.C 1.26 (changed +2 -2)
* src/NanoShaperInterface.C 1.16 (changed +2 -2)
* src/MolBrowser.C 1.44 (changed +5 -3)
* src/MeasureSymmetry.C 1.67 (changed +15 -15)
* src/MSMSInterface.C 1.57 (changed +3 -3)
* src/Inform.C 1.45 (changed +7 -7)
* src/GraphicsFltkReps.h 1.139 (changed +3 -3)
* src/GraphicsFltkMenu.C 1.164 (changed +4 -4)
* src/GeometryMol.C 1.59 (changed +4 -4)
* src/GeometryFltkMenu.C 1.63 (changed +6 -6)
* src/FileChooserFltkMenu.C 1.57 (changed +3 -3)
* src/DrawMolItemVolume.C 1.180 (changed +2 -2)
* src/ColorFltkMenu.C 1.35 (changed +1 -1)
* src/BondSearch.C 1.77 (changed +2 -2)
* src/Axes.C 1.75 (changed +2 -2)
* src/AtomColor.C 1.108 (changed +3 -2)
Propagated unification of multi-frame and single-frame I/O code paths back
to the QCP code.
* src/CUDAMeasureQCP.cu 1.36 (changed +32 -41)
 2020-07-07johnsAdded runtime override of frame/file distribution strategy for
GDS I/O benchmarking.
* src/CUDABench.cu 1.40 (changed +41 -9)
 2020-07-06johnsContinued cleanup of vmdbench GDS I/O benchmarking code.
* src/CUDABench.cu 1.38 (changed +7 -11)
Ensure counts of residues/fragments/etc are initialized to zero since
the current colvars code lacks safety checks for existence or
initialization of atomic coordinates, structure analysis results, etc.
* src/BaseMolecule.C 1.275 (changed +11 -1)
Pretty up comments in tubearray rep
* src/DrawMolItem.C 1.370 (changed +2 -2)
Unified common parts of single- and multi-frame trajectory I/O offset and size
calculations to streamline the code and improve readability.
* src/CUDABench.cu 1.39 (changed +37 -41)
 2020-07-03johnsAdded __restrict__ keyword to QCP inner product kernel parameters
to prevent compiler assumed pointer aliasing.
* src/CUDAMeasureQCP.cu 1.35 (changed +30 -14)
Incorporated GPU-Direct Storage benchmarking loops into the 'vmdbench'
commands. Currently performance data are only printed on the console
and are not yet emitted as script-accessible output. Needs a little
more cleanup since it was originally situated within the CUDA QCP
algorithm for testing and verification of GDS performance early on.
* src/cmd_vmdbench.C 1.27 (changed +73 -1)
* src/CUDAKernels.h 1.64 (changed +9 -1)
* src/CUDABench.cu 1.37 (changed +489 -1)
 2020-07-01johnsAn initial implementation of a VMD FileRenderer subclass for the first
prototype Khronos ANARI rendering interface. Ongoing revisions to
the interface will require significant revisions until the ANARI
standard is finalized.
* src/ANARIRenderer.h 1.1 (added +454 -0)
* src/ANARIRenderer.C 1.1 (added +2855 -0)
* src/ANARIDisplayDevice.h 1.1 (added +167 -0)
* src/ANARIDisplayDevice.C 1.1 (added +658 -0)
Declare trimesh_c4u_n3b_v3f() normal parameters explicitly as signed char
since some compilers (ARM, POWER) default to unsigned types for char
when not declared explicitly.
* src/X3DDisplayDevice.h 1.17 (changed +2 -2)
* src/X3DDisplayDevice.C 1.49 (changed +4 -2)
* src/WavefrontDisplayDevice.h 1.18 (changed +2 -2)
* src/WavefrontDisplayDevice.C 1.32 (changed +3 -2)
* src/Vrml2DisplayDevice.h 1.31 (changed +2 -2)
* src/Vrml2DisplayDevice.C 1.47 (changed +3 -2)
* src/TachyonDisplayDevice.h 1.51 (changed +2 -2)
* src/TachyonDisplayDevice.C 1.132 (changed +4 -2)
* src/RenderManDisplayDevice.h 1.32 (changed +2 -2)
* src/RenderManDisplayDevice.C 1.62 (changed +3 -2)
* src/POV3DisplayDevice.h 1.50 (changed +2 -2)
* src/POV3DisplayDevice.C 1.129 (changed +2 -2)
Eliminated old GPU-Direct Storage alpha APIs that have been superceded
in subsequent beta releases.
* src/CUDAMeasureQCP.cu 1.34 (changed +1 -25)
Enable use of __restrict__ for current CUDA revs.
* src/CUDAQuickSurf.cu 1.91 (changed +2 -2)
* src/CUDAMarchingCubes.cu 1.39 (changed +3 -3)
Enable use of __restrict__ in MDFF CUDA kernel parameters.
* src/CUDAMDFF.cu 1.82 (changed +31 -31)
Moved ANARI FileRenderer initialization prior to OptiX 6.x initialization
to prevent conflicts with ANARI back-end OpenGL/EGL context creation
performed within the main VMD thread. This should become unnecessary
beginning with OptiX 7.x.
* src/FileRenderList.C 1.103 (changed +22 -16)
Updated header location for GDS beta 0.7.1
* src/CUDAMeasureQCP.cu 1.33 (changed +3 -2)
 2020-06-28johnsAdded linux.amd64.gds build target for record keeping
* Makefile 1.126 (changed +5 -1)
 2020-06-26johnsCorrected placement of __restrict__ keyword for OptiX
hardware triangle degeneracy safety check hwtri_test_calc_Ngeom()
* src/OptiXRenderer.C 1.371 (changed +2 -2)
Updated linux.arm64.egl with LIBTACHYON
* Makefile 1.125 (changed +2 -2)
 2020-06-25johnsAdded linux.arm64.egl target for ORNL Wombat and similar systems
* Makefile 1.124 (changed +6 -1)
Added runtime checks for ARM64 NVML shared library installation locations
* src/CUDAWrapNVML.cu 1.9 (changed +4 -2)
Free OptiX GPU device list returned from device_list().
* src/OptiXRenderer.C 1.370 (changed +2 -1)
 2020-06-24johnsCommented out "ka" material property currently ignored by the OBJ material.
* src/OSPRay2Renderer.C 1.22 (changed +4 -2)
Corrected type enums passed to ospSetParam() for several data items
and for materials.
* src/OSPRay2Renderer.C 1.19 (changed +6 -6)
Eliminated detailed timers from OSPRay 2.x rendering loop.
* src/OSPRay2Renderer.C 1.21 (changed +1 -6)
Updated OSPRay 2.x renderer to use the 'pathtracer' renderer by default
until such time as the 'scivis' renderer implements lighting and material
properties completely.
* src/OSPRay2Renderer.C 1.20 (changed +42 -21)
 2020-06-23johnsAdded ANARI renderer to the UIs when available.
* src/FileRenderList.C 1.102 (changed +25 -1)
Corrected OSPRay 2.x camera parameter assignments in interactive renderer.
* src/OSPRay2Renderer.C 1.17 (changed +4 -4)
Ensure use of correct OSP_DATA parameter to ospSetParam() calls that
set geometry buffers.
* src/OSPRay2Renderer.C 1.18 (changed +14 -14)
 2020-06-19johnsChanged NVML wrapper to try locating both libnvidia-ml.so as well
as libnvidia-ml.so.1, since some container images are missing the standard
symlinks to the .so.xxx versions.
* src/CUDAWrapNVML.cu 1.8 (changed +9 -5)
Hardened the grid search routines to ensure graceful error handling
in cases where an atomic coordinate takes on the value of NaN, causing
grid bounds and other calculations to yield unusable results.
* src/SpatialSearch.C 1.25 (changed +25 -10)
 2020-06-17johnsHardened QuickSurf against NaN-valued atomic coordinates by checking
the results of the bounding box and grid size determination and
terminating early if bogus grid sizes or bounding coordinates are found.
* src/QuickSurf.C 1.123 (changed +16 -4)
 2020-06-16johnsEscaped underline character in PLUMED docs URL.
* doc/ug_colvars.tex 1.20 (changed +1 -1)
Updated to colvars version 4036bfd947763ec015b3150e22624213341548a0
* src/colvar_geometricpath.h 1.1 (added +265 -0)
* doc/ug_colvars_macros.tex 1.9 (changed +0 -7)
* doc/ug_colvars.tex 1.19 (changed +1571 -411)
* doc/ug_colvars.bib 1.7 (changed +94 -20)
 2020-06-12johnsCorrected a filename string leak in VMDTempFile class used for
NanoShaper and MSMS.
* src/NanoShaperInterface.C 1.15 (changed +2 -1)
* src/MSMSInterface.C 1.56 (changed +2 -1)
Cranked version
* configure 1.1496 (changed +1 -1)
Updated to colvars version 4036bfd947763ec015b3150e22624213341548a0
* src/colvarvalue.h 1.11 (changed +1 -1)
* src/colvarvalue.C 1.12 (changed +1 -1)
* src/colvartypes.h 1.11 (changed +2 -2)
* src/colvartypes.C 1.10 (changed +3 -3)
* src/colvarscript_commands_colvar.h 1.1 (added +244 -0)
* src/colvarscript_commands_colvar.C 1.1 (added +54 -0)
* src/colvarscript_commands_bias.h 1.1 (added +178 -0)
* src/colvarscript_commands_bias.C 1.1 (added +54 -0)
* src/colvarscript_commands.h 1.1 (added +412 -0)
* src/colvarscript_commands.C 1.1 (added +70 -0)
* src/colvarscript.h 1.12 (changed +267 -182)
* src/colvarscript.C 1.23 (changed +405 -522)
* src/colvars_version.h 1.13 (changed +1 -8)
* src/colvars_files.pl 1.4 (changed +18 -0)
* src/colvarproxy_volmaps.h 1.1 (added +81 -0)
* src/colvarproxy_volmaps.C 1.1 (added +86 -0)
* src/colvarproxy_vmd_version.h 1.10 (changed +1 -8)
* src/colvarproxy_vmd.h 1.15 (changed +83 -113)
* src/colvarproxy_vmd.C 1.19 (changed +143 -111)
* src/colvarproxy_tcl.h 1.1 (added +69 -0)
* src/colvarproxy_tcl.C 1.1 (added +165 -0)
* src/colvarproxy_replicas.C 1.1 (added +61 -0)
* src/colvarproxy.h 1.19 (changed +144 -80)
* src/colvarproxy.C 1.9 (changed +229 -253)
* src/colvarparse.h 1.11 (changed +29 -28)
* src/colvarparse.C 1.14 (changed +99 -9)
* src/colvarparams.h 1.1 (added +71 -0)
* src/colvarparams.C 1.1 (added +116 -0)
* src/colvarmodule.h 1.28 (changed +32 -34)
* src/colvarmodule.C 1.26 (changed +366 -292)
* src/colvargrid.h 1.19 (changed +48 -26)
* src/colvargrid.C 1.10 (changed +4 -2)
* src/colvardeps.h 1.11 (changed +41 -7)
* src/colvardeps.C 1.15 (changed +8 -6)
* src/colvarcomp_volmaps.C 1.1 (added +65 -0)
* src/colvarcomp_rotations.C 1.11 (changed +6 -31)
* src/colvarcomp_protein.C 1.12 (changed +7 -5)
* src/colvarcomp_gpath.C 1.1 (added +946 -0)
* src/colvarcomp_distances.C 1.20 (changed +85 -57)
* src/colvarcomp_coordnums.C 1.12 (changed +60 -122)
* src/colvarcomp_apath.C 1.1 (added +197 -0)
* src/colvarcomp_angles.C 1.11 (changed +11 -17)
* src/colvarcomp.h 1.14 (changed +337 -26)
* src/colvarcomp.C 1.17 (changed +109 -25)
* src/colvarbias_restraint.h 1.11 (changed +6 -9)
* src/colvarbias_restraint.C 1.17 (changed +12 -78)
* src/colvarbias_meta.h 1.12 (changed +41 -85)
* src/colvarbias_meta.C 1.18 (changed +417 -289)
* src/colvarbias_histogram.h 1.6 (changed +1 -1)
* src/colvarbias_histogram.C 1.11 (changed +17 -13)
* src/colvarbias_alb.h 1.6 (changed +1 -1)
* src/colvarbias_alb.C 1.15 (changed +10 -6)
* src/colvarbias_abf.h 1.9 (changed +12 -6)
* src/colvarbias_abf.C 1.21 (changed +176 -119)
* src/colvarbias.h 1.14 (changed +42 -15)
* src/colvarbias.C 1.18 (changed +201 -50)
* src/colvaratoms.h 1.13 (changed +7 -1)
* src/colvaratoms.C 1.21 (changed +64 -41)
* src/colvar_arithmeticpath.h 1.1 (added +134 -0)
* src/colvar_UIestimator.h 1.7 (changed +3 -8)
* src/colvar.h 1.16 (changed +63 -33)
* src/colvar.C 1.27 (changed +298 -106)
 2020-06-11johnsCorrected conditional compilation tests for RTX triangle geometry
destruction code path, and added destruction handling for a loose
geometrytrianglesgroup object.
* src/OptiXRenderer.C 1.368 (changed +10 -1)
Cranked version
* configure 1.1495 (changed +1 -1)
Ensure initialization of page-aligned I/O flags in CoorPluginData,
and correctly set the page alignment flag to indicate byte-aligned
rather than page-aligned I/O for molfile plugins that don't implement
page alignment APIs.
* src/CoorPluginData.C 1.34 (changed +6 -1)
Localized scope of intermediate variables used for scanning
CUDA NVLink P2P connectivity and topology determination during startup.
* src/CUDAAccel.C 1.69 (changed +3 -2)
Silence OptiX shared library loading errors in cases where CUDA is also
unavailable. Going forward with OptiX 7, CUDA becomes a prerequisite,
so there's no point in emitting an OptiX-specific error if CUDA is also
unavailable.
* src/OptiXRenderer.C 1.369 (changed +8 -4)
 2020-06-10johnsDisabled the use of OptiX RTX-specific AS build optimization that frees the
incoming vertex/index buffers during AS builds. Performance
has been observed to suffer during tight rendering loops after a few
tens of iterations.
Conditional compilation now triggers the use of either the
rtGeometryTrianglesSetBuildFlags(..., RT_GEOMETRY_BUILD_FLAG_RELEASE_BUFFERS)
or VMD's own buffer deallocation management.
The new code defaults to manual buffer deallocation, which has a much
more repeatable performance over thousands of iterations.
Corrected a missing call to destroy the RTX triangle-specific
acceleration structure.
* src/OptiXRenderer.C 1.367 (changed +42 -1)
 2020-06-06johnsUpdated OSPRay 2.x error/status callbacks and log levels,
commented out material parameters unsupported by current 'scivis'
renderer, etc.
* src/OSPRay2Renderer.C 1.16 (changed +20 -5)
 2020-06-05johnsChanged OSPRay 2.x renderer to use ospNewSharedData() instead of
ospNewSharedData1D().
* src/OSPRay2Renderer.C 1.13 (changed +17 -17)
Eliminated remnants of old ospSetObjectAsData() APIs, and replaced
ospSetObject() helper with direct call to ospSetParam().
* src/OSPRay2Renderer.C 1.14 (changed +4 -16)
Replaced calls to OSPRay 2.x helper/wrapper functions with direct calls
to ospSetParam(), and eliminated inclusion of ospray_util.h
* src/OSPRay2Renderer.C 1.15 (changed +68 -50)
 2020-06-04johnsAdded build configuration for ANARI renderer implementation.
* configure 1.1494 (changed +46 -0)
Continued streamlining of OSPRay renderers.
* src/OSPRayRenderer.C 1.78 (changed +1 -10)
* src/OSPRay2Renderer.C 1.11 (changed +1 -11)
Corrected warning about out-of-range maxdepth parameter.
* src/OSPRayRenderer.C 1.79 (changed +2 -2)
Eliminated shaderpath member since current OSPRay rendering back-ends
aren't using it. If/when we have OSPRay extension modules this may
need to be revived.
* src/OSPRayRenderer.h 1.29 (changed +1 -2)
* src/OSPRayRenderer.C 1.76 (changed +1 -22)
* src/OSPRay2Renderer.h 1.5 (changed +1 -2)
* src/OSPRay2Renderer.C 1.10 (changed +1 -22)
Eliminated slim context management methods not needed for OSPRay 1.x.
* src/OSPRayRenderer.h 1.30 (changed +2 -3)
* src/OSPRayRenderer.C 1.77 (changed +35 -53)
Eliminated slim context management methods not needed for OSPRay 2.x.
* src/OSPRay2Renderer.h 1.4 (changed +2 -4)
* src/OSPRay2Renderer.C 1.9 (changed +45 -62)
Ongoing cleanup of OSPRay 2.x renderer back-end. Updated scivis
renderer parameter strings for changes from v1.x to v2.x API.
Eliminated scene epsilon since it has been eliminated in OSPRay 2.x.
Updated console status messages regarding shadow rendering since
OSPRay 2.x has no way to render scenes without shadows presently.
* src/OSPRay2Renderer.C 1.12 (changed +20 -28)
 2020-06-02johnsEliminated stray cylinder indexing code left from prior test rev.
* src/OSPRay2Renderer.C 1.8 (changed +1 -3)
Made a placeholder cylinder implementation with creative abuse of
the OSPRay 2.x "curve" geometry. Unfortunately, while the OSP_LINEAR
type works for generating cylindrical spans from pairs of consecutive
control points, when combined with the OSP_ROUND curve type, OSPRay
inserts spheres at the ends when they are not wanted.
* src/OSPRay2Renderer.h 1.3 (changed +3 -2)
* src/OSPRay2Renderer.C 1.6 (changed +25 -43)
Misc cleanup and updates to OSPRay2Renderer, with an attempt at using
the OSPRay "curve" primitive as a cylinder stand-in.
* src/OSPRay2Renderer.h 1.2 (changed +8 -9)
* src/OSPRay2Renderer.C 1.5 (changed +65 -50)
Moved the OSPRay error callback immediately following context creation.
* src/OSPRay2Renderer.C 1.7 (changed +4 -4)
 2020-06-01johnsAdded direct implementation of ospSetObjectAsData() equivalents for
potential use later in ANARI prototyping.
* src/OSPRay2Renderer.C 1.3 (changed +13 -1)
Added early draft implementation of OSPRay 2.x renderer.
OSPRay versions 2.1.1 and earlier are deficient for molecular graphics
due to the lack of per-sphere colors, lack of cylinder geometry, and
a few others minor issues. Hopefully these can be addressed in
subsequent versions, allowing this early draft implementation to be
turned into something truly usable.
* src/OSPRay2Renderer.h 1.1 (added +444 -0)
* src/OSPRay2Renderer.C 1.1 (added +2763 -0)
Favor calling ospSetParam() rather than ospSetObject() wrapper.
It might be desirable to cut the use of the various wrappers altogether
and use ospSetParam() everywhere.
* src/OSPRay2Renderer.C 1.2 (changed +10 -10)
Found that OSPRay 2.x allows color-per-primitive (and material-per-prim)
by setting properties on the containing GeometricModel object.
* src/OSPRay2Renderer.C 1.4 (changed +9 -7)
OSPRay versions of 2.1.1 and earlier lack cylinder primitives, so
VMD has to use the fall-back geometry path for cylinders for the time being.
* src/OSPRay2DisplayDevice.h 1.2 (changed +4 -0)
* src/OSPRay2DisplayDevice.C 1.2 (changed +11 -3)
 2020-05-30johnsAdded OSPRay 2.x build configuration support.
* configure 1.1492 (changed +35 -2)
Added conditional compilation and registration of OSPRay 2.x renderer.
* src/FileRenderList.C 1.101 (changed +27 -2)
Added first version of OSPRay 2.x DisplayDevice subclass.
* src/OSPRay2DisplayDevice.h 1.1 (added +164 -0)
* src/OSPRay2DisplayDevice.C 1.1 (added +651 -0)
Updated the configure script to properly handle OSPRay w/ MacOS X.
* configure 1.1493 (changed +54 -19)
 2020-05-29johnsAdded Tcl bindings to allow user control over the distance_epsilon
parameter for the Fruchterman-Reingold implementation. For reference
and precision experiments, added a less optimized version of the
force calculations via conditional compilation.
* src/TclGraphLayout.C 1.4 (changed +11 -2)
* src/GraphLayout.h 1.3 (changed +3 -2)
* src/GraphLayout.C 1.4 (changed +45 -3)
Added include of utilities.h to take care of linking the right
sincosf() math routines on MacOS X.
* src/GraphLayout.C 1.6 (changed +2 -1)
Allow user-generated weight matrix to be passed in with optional
-weights parameter, currently only supporting fully-connected graphs
needed for clustering analysis.
* src/TclGraphLayout.C 1.2 (changed +50 -70)
Apply linear temperature scale factor after applying quadratic curve.
* src/GraphLayout.C 1.3 (changed +4 -4)
Continued cleanup of F-R graph layout implementation, and added
Tcl bindings to override default area, K scaling factor, and temperature
scaling factor.
* src/TclGraphLayout.C 1.3 (changed +36 -12)
* src/GraphLayout.h 1.2 (changed +3 -3)
* src/GraphLayout.C 1.2 (changed +17 -11)
Prevent division-by-zero for coincident points.
* src/GraphLayout.C 1.5 (changed +3 -3)
 2020-05-28johnsA basic implementation of a variation of the Fruchterman-Reingold
graph layout algorithm, initially intended for interactive visualization of
results from molecular dynamics clustering analysis. The modified
algorithm accepts a weight matrix, and has special case efficient
handling for fully-connected graphs arising from clustering analysis
with implicit rather than explicit edge connectivity.
* src/GraphLayout.h 1.1 (added +66 -0)
* src/GraphLayout.C 1.1 (added +319 -0)
Added Tcl bindings for graph layout calculations.
* src/TclCommands.h 1.57 (changed +4 -1)
Added Tcl bindings for graph layout commands.
* src/tcl_commands.C 1.57 (changed +4 -1)
Added graph layout class and commands to the build.
* configure 1.1491 (changed +6 -6)
Added graph layout commands used for plotting clustering analysis results.
* src/TclGraphLayout.C 1.1 (added +190 -0)
 2020-05-26johnsDrop support for the use of NVTX v2 found in older versions
of CUDA prior to CUDA 10.0
* src/ProfileHooks.h 1.23 (changed +3 -2)
 2020-05-25johnsAdded fallback pure-Tcl version of the built-in "lmap" command for
Tcl versions prior to 8.6 that lack it.
* src/TclTextInterp.C 1.135 (changed +10 -1)
Added further conditional compilation and source comments for the
the latest GDS beta.
* src/CUDAMeasureQCP.cu 1.32 (changed +8 -2)
Updated the GPU-Direct Storage test code for beta API 0.7.
* src/CUDAMeasureQCP.cu 1.31 (changed +24 -3)
 2020-05-24johnsAdded cell_volume() and integral() methods per Giacomo's patch,
for improved simulation analysis.
* src/VolumetricData.h 1.53 (changed +6 -1)
* src/VolumetricData.C 1.64 (changed +19 -1)
Added docs for the new cellaxes, volume, integral, and mean suboptions
to the voltools command.
* doc/ug_text_ui.tex 1.241 (changed +6 -2)
Added double precision version of cell_axes() to facilitate a
double precision implementation of cell_volume().
* src/VolumetricData.h 1.54 (changed +3 -2)
* src/VolumetricData.C 1.65 (changed +38 -4)
Added voltool subcommands to obtain the cell axes, volume, and integral
per Giacomo's patch.
* src/TclVoltool.C 1.8 (changed +57 -3)
Finished revision of cell_volume();
* src/VolumetricData.C 1.67 (changed +4 -1)
Misc cleanup of linenoise and tecla line editor constructor implementations
* src/TclTextInterp.C 1.134 (changed +16 -15)
Updated integral implementation for other function signature changes.
* src/VolumetricData.C 1.66 (changed +2 -3)
linenoise-char-at-a-time
2020-05-22johnsAdded rudimentary line editing support using tecla, a very
featureful library that supports more customizability and
incidentally implements fully non-blocking character-at-a-time
I/O with special TTY handling routines to set and reset
raw TTY modes. It also has caller-provided context pointers
in its callback APIs and is designed to allow it to be driven
by an external event loop like VMD's.
* src/TclTextInterp.h 1.49 (changed +6 -1)
* src/TclTextInterp.C 1.130 (changed +67 -15)
Added skeleton of tecla command completion callback
* src/TclTextInterp.C 1.131 (changed +21 -0)
Changed the default behavior of VMD such that if 'rlwrap' was detected
and used externally, any built-in line editor(s) are automatically disabled,
without the need to enumerate each one independently.
* bin/vmd.sh 1.22 (changed +3 -5)
* bin/vmd.csh 1.111 (changed +3 -4)
Completdd the command completion callback for Tecla command line editing.
* src/TclTextInterp.C 1.132 (changed +22 -9)
Eliminate spurious compiler warnings from certain GCC versions by
moving the temporary buffer onto the stack.
* src/Inform.h 1.33 (changed +2 -3)
* src/Inform.C 1.44 (changed +7 -2)
Eliminate warning in verbose console output/debug code for video streaming.
* src/VideoStream.C 1.37 (changed +2 -2)
Further modifications were made to the linenoise Unix TTY handling code
to allow VMD to control TTY buffer flushes when switching between raw and
cooked TTY mode. This is required so that VMD can switch to raw mode
for character-at-a-time input, so that linenoise doesn't have
blocking behavior that prevents the VMD main loop from free-running.
With these changes, VMD free runs except when in actual command editing.
Correct handling of VMD console output is made more complex by entry
and return from raw TTY mode, but it is a much more usable scenario
for the end user.
* src/linenoise.h 1.3 (changed +14 -1)
* src/linenoise.c 1.3 (changed +20 -10)
* src/TclTextInterp.C 1.129 (changed +28 -17)
Use forward declaration to eliminate type conversion hack, since the
object is a pointer anyway.
* src/TclTextInterp.h 1.50 (changed +3 -2)
* src/TclTextInterp.C 1.133 (changed +5 -5)
Wrap unused VMDApp pointer with conditional compilation until it's needed.
* src/cmd_profile.C 1.6 (changed +2 -2)
linenoise-line-at-a-time
2020-05-21johnsAdded a new function to auto-generate a complete list of potential
tab-completion strings for use in interactive line editing.
The function uses Tcl introspection to fetch the current command list
in the global namespace, and filters out special commands such as those
associated with one-time Tk GUI registration operations that shouldn't
be matched.
* src/TclTextInterp.C 1.127 (changed +38 -1)
Additionally set environment variable VMDRLWRAPINUSE so VMD can emit
more informative startup messages when internal line editing is auto-disabled.
* bin/vmd.sh 1.21 (changed +6 -1)
* bin/vmd.csh 1.110 (changed +4 -2)
Eliminated disused state variables that were previously required to
support remote rendering and compositing using the VCA APIs.
* src/OptiXRenderer.C 1.366 (changed +3 -9)
Emit startup messages to indicate when internal console command line editing
is enabled or disabled, and whether by user or by virtue of external rlwrap
usage.
* src/TclTextInterp.C 1.126 (changed +16 -8)
Implemented runtime-generated command completion lists for
VMD's Tcl bindings through Tcl introspection on the list
of commands and procs in the global namespace.
Subsequent list filtering is used to eliminate candidates such as
Tk GUI registration procs that are only called once during startup,
and are not intended to be called by the user.
Modified linenoise from the standard distribution by adding
user context parameters for each of the callbacks, so that
the caller can pass in runtime-generated lists of command
completion strings without the use of global variables or
other undesirable methods.
* src/linenoise.h 1.2 (changed +13 -7)
* src/linenoise.c 1.2 (changed +19 -7)
* src/TclTextInterp.h 1.48 (changed +7 -3)
* src/TclTextInterp.C 1.128 (changed +116 -63)
 2020-05-20johnsAdded comment about command history handling
* src/TclTextInterp.C 1.122 (changed +5 -3)
Added minimalistic 'linenoise' line editing as an optional
built-in VMD line editing component.
* src/linenoise.h 1.1 (added +84 -0)
* src/linenoise.c 1.1 (added +1234 -0)
Added support for optionally built-in linenoise line editor
* configure 1.1490 (changed +18 -0)
Allow users to disable the autodetection and use of rlwrap by checking
for the existence of a VMDNORLWRAP environment variable.
* bin/vmd.sh 1.20 (changed +21 -16)
* bin/vmd.csh 1.109 (changed +13 -8)
Eliminated old Tk 8.4.x code path for creating image objects.
* src/cmd_render.C 1.48 (changed +2 -6)
Eliminated stray tab
* src/PythonTextInterp.C 1.75 (changed +3 -2)
Eliminated use of old long-deprecated Tcl_Write() APIs, and similarly
anachronistic code paths.
* src/TclTextInterp.C 1.121 (changed +4 -22)
Further updates to formalize interactive command line editing with 'linenoise'
* src/TclTextInterp.h 1.47 (changed +3 -2)
* src/TclTextInterp.C 1.124 (changed +45 -37)
Initial preliminary support for built-in command line editing similar
to GNU readline, but based off of the BSD-licensed 'linenoise' library,
which is a clean, minimalistic library providing just the core line editing
features most VMD users want/expect, with support for all of the mainstream
OS versions and terminals. For Windows and/or better UTF-8 support,
we may need to look at the 'linenoise-ng' fork.
* src/TclTextInterp.C 1.123 (changed +58 -2)
Integrated interactive command line editing via 'linenoise' into the
pre-existing Tcl command processing loop, re-enabling lockouts for
non-TTY console, MPI, and other special cases, along with runtime user
override and an appropriate console startup info message.
* src/TclTextInterp.C 1.125 (changed +36 -52)
Updated source comments to clarify the expectations for volumetric
processing routines best included in the VolumetricData class
(fully-general support for non-orthorhombic volumes with non-uniform
spacing along the three axes), vs. those that only support orthorhombic
volumes with uniform grid spacing on all three axes, and task-specific
functions (e.g. for MDFF), which are included in the Voltools class.
* src/VolumetricData.h 1.52 (changed +12 -6)
* src/Voltool.h 1.11 (changed +10 -5)
 2020-05-19johnsMisc auditing and cleanup of "measure volinterior", eliminated per-voxel
division by explicitly multiplying by reciprocal.
* src/MeasureVolInterior.C 1.16 (changed +12 -8)
 2020-05-17johnsAdded initial Python bindings for qcp_rmsdmat
* src/py_atomsel.C 1.47 (changed +45 -1)
Correct python qcp_rmsdmat call.
* src/py_atomsel.C 1.48 (changed +5 -4)
Corrected self-RMSD values since they are currently included in the output.
* src/MeasureQCP.C 1.34 (changed +3 -3)
Other commits are hidden...

* on non binary files only
Created by cvschangelogbuilder 2.3 (build 1.76)