diff options
author | Norbert Preining <norbert@preining.info> | 2022-01-23 03:01:14 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2022-01-23 03:01:14 +0000 |
commit | 47551fbf494bf778f45c78692a0ff17d771b96d7 (patch) | |
tree | 1f44a26e32c56c992ec9a362455a7cc1dff71091 /graphics/asymptote | |
parent | 26bfc07f2b7829213356de43cf5b81c3ba99e338 (diff) |
CTAN sync 202201230301
Diffstat (limited to 'graphics/asymptote')
25 files changed, 264 insertions, 235 deletions
diff --git a/graphics/asymptote/ChangeLog b/graphics/asymptote/ChangeLog index 2e15aeafd5..540e7d229d 100644 --- a/graphics/asymptote/ChangeLog +++ b/graphics/asymptote/ChangeLog @@ -1,3 +1,33 @@ +commit c98c63886b06ac0650c0b25304cb0bae9118a92a +Author: John Bowman <bowman@ualberta.ca> +Date: Fri Jan 21 20:48:27 2022 -0700 + + Fix URL. + +commit edc40f1726014f5ea0ce464db4ae70457241cd46 +Author: John Bowman <bowman@ualberta.ca> +Date: Fri Jan 21 16:56:39 2022 -0700 + + Remove unused code. + +commit 037e520058d53f5dd02c06b41c656cb65e255e92 +Author: John Bowman <bowman@ualberta.ca> +Date: Fri Jan 21 16:50:46 2022 -0700 + + Fix buffer overflow in partialsum.glsl; improve workload distibution. + +commit 868ff0b61fb439d4ce6334aec4b4ea49a32ad9bf +Author: John Bowman <bowman@ualberta.ca> +Date: Thu Jan 20 21:34:53 2022 -0700 + + Optimize postsum shader. + +commit 1c6eb60c92a8f25623d6b074f4ab3dcf84d0401d +Author: John Bowman <bowman@ualberta.ca> +Date: Wed Jan 19 23:53:29 2022 -0700 + + Increment version to 2.77. + commit ea218793876b65bbd50a842ede9fd003dcd90978 Author: John Bowman <bowman@ualberta.ca> Date: Wed Jan 19 21:56:54 2022 -0700 diff --git a/graphics/asymptote/ReleaseNotes b/graphics/asymptote/ReleaseNotes index a7218ffcdb..f15268436c 100644 --- a/graphics/asymptote/ReleaseNotes +++ b/graphics/asymptote/ReleaseNotes @@ -1,3 +1,8 @@ +Release Notes for Version 2.77 + +A buffer overflow in the partialsum transparency shader was fixed; +the workload distribution over the GPU processors was improved. + Release Notes for Version 2.76 WebGL and V3D bounds were fixed, along with the WebGL zoom and viewportshift. diff --git a/graphics/asymptote/asy-keywords.el b/graphics/asymptote/asy-keywords.el index 07280aeae7..2dc861712f 100644 --- a/graphics/asymptote/asy-keywords.el +++ b/graphics/asymptote/asy-keywords.el @@ -2,7 +2,7 @@ ;; This file is automatically generated by asy-list.pl. ;; Changes will be overwritten. ;; -(defvar asy-keywords-version "2.76") +(defvar asy-keywords-version "2.77") (defvar asy-keyword-name '( and controls tension atleast curl if else while for do return break continue struct typedef new access import unravel from include quote static public private restricted this explicit true false null cycle newframe operator )) diff --git a/graphics/asymptote/asymptote.spec b/graphics/asymptote/asymptote.spec index e0e4ec2b58..93658f3634 100644 --- a/graphics/asymptote/asymptote.spec +++ b/graphics/asymptote/asymptote.spec @@ -3,7 +3,7 @@ %global __python %{__python3} Name: asymptote -Version: 2.76 +Version: 2.77 Release: 1%{?dist} Summary: Descriptive vector graphics language diff --git a/graphics/asymptote/base/shaders/partialsum.glsl b/graphics/asymptote/base/shaders/partialsum.glsl index 0506965c23..4b04a01dae 100644 --- a/graphics/asymptote/base/shaders/partialsum.glsl +++ b/graphics/asymptote/base/shaders/partialsum.glsl @@ -1,7 +1,6 @@ layout(local_size_x=PROCESSORS) in; uniform uint elements; -uniform uint steps; layout(binding=0, std430) buffer sumBuffer { @@ -15,11 +14,6 @@ layout(binding=1, std430) buffer offsetBuffer shared uint sharedData[PROCESSORS]; -uint ceilquotient(uint a, uint b) -{ - return (a+b-1u)/b; -} - void main(void) { uint id=gl_LocalInvocationID.x; @@ -30,25 +24,25 @@ void main(void) uint index=id << 1u; sharedData[index+1u] += sharedData[index]; barrier(); - uint step; - for(step=1u; step < steps-1u; step++) { + for(uint step=1u; step < STEPSM1; step++) { uint mask=(1u << step)-1u; uint index=((id >> step) << (step+1u))+mask; uint windex=index+(id&mask)+1u; sharedData[windex] += sharedData[index]; barrier(); } - uint mask=(1u << step)-1u; - index=((id >> step) << steps)+mask; + uint mask=(1u << STEPSM1)-1u; + index=((id >> STEPSM1) << (STEPSM1+1u))+mask; uint windex=index+(id&mask)+1u; if(windex < PROCESSORS) sharedData[windex] += sharedData[index]; barrier(); - uint m=ceilquotient(elements,PROCESSORS); - - if(id+1u < PROCESSORS) - offset[m*(id+1u)] += sharedData[id]; - else + uint id1=id+1u; + if(id1 < PROCESSORS) { + uint m=elements/PROCESSORS; + uint row=m*id1+min(id1,elements-m*PROCESSORS); + offset[row] += sharedData[id]; + } else sum[0]=sharedData[id]; // Store fragment size in sum[0] } diff --git a/graphics/asymptote/base/shaders/postsum.glsl b/graphics/asymptote/base/shaders/postsum.glsl index 9a2afaf845..999fe5fdf3 100644 --- a/graphics/asymptote/base/shaders/postsum.glsl +++ b/graphics/asymptote/base/shaders/postsum.glsl @@ -7,24 +7,24 @@ layout(binding=1, std430) buffer offsetBuffer uint offset[]; }; -uint ceilquotient(uint a, uint b) -{ - return (a+b-1u)/b; -} - void main(void) { uint id=gl_GlobalInvocationID.x; - uint m=ceilquotient(elements,gl_NumWorkGroups.x); - uint row=m*id; - uint col=min(m,elements-row); - uint stop=row+col-1u; + uint m=elements/gl_NumWorkGroups.x; + uint r=elements-m*gl_NumWorkGroups.x; + uint row,stop; + if(id < r) { + row=m*id+id; + stop=row+m+1; + } else { + row=m*id+r; + stop=row+m; + } - uint curr=offset[row]; - for(uint i=row; i < stop; ++i) { - uint next=offset[i+1u]; - curr += next; - offset[i+1u]=curr; + uint Sum=offset[row]; + for(uint i=row+1u; i < stop; ++i) { + Sum += offset[i]; + offset[i]=Sum; } } diff --git a/graphics/asymptote/base/shaders/presum.glsl b/graphics/asymptote/base/shaders/presum.glsl index 0bcb02c91d..f2311c6756 100644 --- a/graphics/asymptote/base/shaders/presum.glsl +++ b/graphics/asymptote/base/shaders/presum.glsl @@ -12,19 +12,20 @@ layout(binding=1, std430) buffer offsetBuffer uint offset[]; }; -uint ceilquotient(uint a, uint b) -{ - return (a+b-1u)/b; -} - void main(void) { uint id=gl_GlobalInvocationID.x; - uint m=ceilquotient(elements,gl_NumWorkGroups.x); - uint row=m*id; - uint col=min(m,elements-row); - uint stop=row+col; + uint m=elements/gl_NumWorkGroups.x; + uint r=elements-m*gl_NumWorkGroups.x; + uint row,stop; + if(id < r) { + row=m*id+id; + stop=row+m+1; + } else { + row=m*id+r; + stop=row+m; + } uint Sum=offset[row]; for(uint i=row+1u; i < stop; ++i) diff --git a/graphics/asymptote/base/v3dheadertypes.asy b/graphics/asymptote/base/v3dheadertypes.asy index 3243fb3f4d..1932d23d8b 100644 --- a/graphics/asymptote/base/v3dheadertypes.asy +++ b/graphics/asymptote/base/v3dheadertypes.asy @@ -1,6 +1,6 @@ // Enum class for v3dheadertypes // AUTO-GENERATED from v3dheadertypes.csv -// Generated at 2022-01-19 22:30:10.732250 +// Generated at 2022-01-21 20:50:28.286711 struct v3dheadertypes { diff --git a/graphics/asymptote/base/v3dtypes.asy b/graphics/asymptote/base/v3dtypes.asy index 12e2d58c28..f885de3c75 100644 --- a/graphics/asymptote/base/v3dtypes.asy +++ b/graphics/asymptote/base/v3dtypes.asy @@ -1,6 +1,6 @@ // Enum class for v3dtypes // AUTO-GENERATED from v3dtypes.csv -// Generated at 2022-01-19 22:30:10.647049 +// Generated at 2022-01-21 20:50:28.223119 struct v3dtypes { diff --git a/graphics/asymptote/configure b/graphics/asymptote/configure index 3e5c10ec22..7c08d55f3c 100755 --- a/graphics/asymptote/configure +++ b/graphics/asymptote/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for Asymptote 2.76. +# Generated by GNU Autoconf 2.69 for Asymptote 2.77. # # Report bugs to <https://github.com/vectorgraphics/asymptote/issues>. # @@ -581,8 +581,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Asymptote' PACKAGE_TARNAME='asymptote' -PACKAGE_VERSION='2.76' -PACKAGE_STRING='Asymptote 2.76' +PACKAGE_VERSION='2.77' +PACKAGE_STRING='Asymptote 2.77' PACKAGE_BUGREPORT='https://github.com/vectorgraphics/asymptote/issues' PACKAGE_URL='' @@ -1304,7 +1304,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Asymptote 2.76 to adapt to many kinds of systems. +\`configure' configures Asymptote 2.77 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1370,7 +1370,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Asymptote 2.76:";; + short | recursive ) echo "Configuration of Asymptote 2.77:";; esac cat <<\_ACEOF @@ -1489,7 +1489,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Asymptote configure 2.76 +Asymptote configure 2.77 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2075,7 +2075,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Asymptote $as_me 2.76, which was +It was created by Asymptote $as_me 2.77, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -9478,7 +9478,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Asymptote $as_me 2.76, which was +This file was extended by Asymptote $as_me 2.77, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -9540,7 +9540,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -Asymptote config.status 2.76 +Asymptote config.status 2.77 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/graphics/asymptote/configure.ac b/graphics/asymptote/configure.ac index e3dfb83654..d80d5eab15 100644 --- a/graphics/asymptote/configure.ac +++ b/graphics/asymptote/configure.ac @@ -3,7 +3,7 @@ # this file. AC_PREREQ(2) -AC_INIT([Asymptote],[2.76],[https://github.com/vectorgraphics/asymptote/issues]) +AC_INIT([Asymptote],[2.77],[https://github.com/vectorgraphics/asymptote/issues]) VERSION=$PACKAGE_VERSION AC_SUBST(VERSION) m4_include([ax_pthread.m4]) diff --git a/graphics/asymptote/doc/CAD.pdf b/graphics/asymptote/doc/CAD.pdf Binary files differindex 63e01c6df6..95ab3553ce 100644 --- a/graphics/asymptote/doc/CAD.pdf +++ b/graphics/asymptote/doc/CAD.pdf diff --git a/graphics/asymptote/doc/FAQ/asy-faq.info b/graphics/asymptote/doc/FAQ/asy-faq.info index e519904581..b6a0a4b61b 100644 --- a/graphics/asymptote/doc/FAQ/asy-faq.info +++ b/graphics/asymptote/doc/FAQ/asy-faq.info @@ -10,7 +10,7 @@ END-INFO-DIR-ENTRY File: asy-faq.info, Node: Top, Next: Question 1.1, Up: (dir) ASYMPTOTE FREQUENTLY ASKED QUESTIONS - 2022-01-20 + 2022-01-22 This is the list of Frequently Asked Questions about Asymptote (asy). diff --git a/graphics/asymptote/doc/TeXShopAndAsymptote.pdf b/graphics/asymptote/doc/TeXShopAndAsymptote.pdf Binary files differindex b601e97f16..f87f1cbd59 100644 --- a/graphics/asymptote/doc/TeXShopAndAsymptote.pdf +++ b/graphics/asymptote/doc/TeXShopAndAsymptote.pdf diff --git a/graphics/asymptote/doc/asy-latex.pdf b/graphics/asymptote/doc/asy-latex.pdf Binary files differindex 2df02469c3..0a9d7213e8 100644 --- a/graphics/asymptote/doc/asy-latex.pdf +++ b/graphics/asymptote/doc/asy-latex.pdf diff --git a/graphics/asymptote/doc/asyRefCard.pdf b/graphics/asymptote/doc/asyRefCard.pdf Binary files differindex df72b19764..568707af8f 100644 --- a/graphics/asymptote/doc/asyRefCard.pdf +++ b/graphics/asymptote/doc/asyRefCard.pdf diff --git a/graphics/asymptote/doc/asymptote.pdf b/graphics/asymptote/doc/asymptote.pdf Binary files differindex 23be992f8d..b634439021 100644 --- a/graphics/asymptote/doc/asymptote.pdf +++ b/graphics/asymptote/doc/asymptote.pdf diff --git a/graphics/asymptote/doc/asymptote.texi b/graphics/asymptote/doc/asymptote.texi index bb30445c20..2d5e355ec4 100644 --- a/graphics/asymptote/doc/asymptote.texi +++ b/graphics/asymptote/doc/asymptote.texi @@ -11,7 +11,7 @@ This file documents @code{Asymptote}, version @value{VERSION}. @url{https://asymptote.sourceforge.io} -Copyright @copyright{} 2004-21 Andy Hammerlindl, John Bowman, and Tom Prince. +Copyright @copyright{} 2004-22 Andy Hammerlindl, John Bowman, and Tom Prince. @quotation Permission is granted to copy, distribute and/or modify this document @@ -193,11 +193,11 @@ provides a mathematical coordinate-based framework for technical drawing. Labels and equations are typeset with @code{LaTeX}, for overall document consistency, yielding the same high-quality level of typesetting that @code{LaTeX} provides for scientific text. By default it produces -@code{PostScript} output, but it can also generate @code{PDF}, -@code{SVG}, @code{WebGL}, @code{V3D}, @code{PRC}, and any format that the -@code{ImageMagick} package can produce. You can even try it out in your -Web browser without installing it, using the @code{Asymptote Web -Application} +@code{PostScript} output, but it can also generate @code{OpenGL}, @code{PDF}, +@code{SVG}, @code{WebGL}, @code{V3D}, and @code{PRC} vector graphics, +along with any format that the @code{ImageMagick} package can +produce. You can even try it out in your Web browser without +installing it, using the @code{Asymptote Web Application} @url{http://asymptote.ualberta.ca} @@ -10111,9 +10111,7 @@ Jacob Skitsko, Joseph Chaumont, and Oliver Cheng. Pedram Emami developed the @code{Asymptote Web Application} hosted at @url{http://asymptote.ualberta.ca}: -@url{https://github.com/vectorgraphics/asymptote-http-server} - - +@url{https://github.com/vectorgraphics/asymptoteWebApplication} @node Index, , Credits, Top @unnumbered Index diff --git a/graphics/asymptote/doc/png/asymptote.info b/graphics/asymptote/doc/png/asymptote.info index 4482fbb1ff..d7efd36889 100644 --- a/graphics/asymptote/doc/png/asymptote.info +++ b/graphics/asymptote/doc/png/asymptote.info @@ -1,11 +1,11 @@ This is asymptote.info, produced by makeinfo version 6.7 from asymptote.texi. -This file documents 'Asymptote', version 2.76. +This file documents 'Asymptote', version 2.77. <https://asymptote.sourceforge.io> - Copyright (C) 2004-21 Andy Hammerlindl, John Bowman, and Tom Prince. + Copyright (C) 2004-22 Andy Hammerlindl, John Bowman, and Tom Prince. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Lesser General Public License @@ -22,11 +22,11 @@ File: asymptote.info, Node: Top, Next: Description, Prev: (dir), Up: (dir) Asymptote ********* -This file documents 'Asymptote', version 2.76. +This file documents 'Asymptote', version 2.77. <https://asymptote.sourceforge.io> - Copyright (C) 2004-21 Andy Hammerlindl, John Bowman, and Tom Prince. + Copyright (C) 2004-22 Andy Hammerlindl, John Bowman, and Tom Prince. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Lesser General Public License @@ -176,10 +176,11 @@ provides a mathematical coordinate-based framework for technical drawing. Labels and equations are typeset with 'LaTeX', for overall document consistency, yielding the same high-quality level of typesetting that 'LaTeX' provides for scientific text. By default it -produces 'PostScript' output, but it can also generate 'PDF', 'SVG', -'WebGL', 'V3D', 'PRC', and any format that the 'ImageMagick' package can -produce. You can even try it out in your Web browser without installing -it, using the 'Asymptote Web Application' +produces 'PostScript' output, but it can also generate 'OpenGL', 'PDF', +'SVG', 'WebGL', 'V3D', and 'PRC' vector graphics, along with any format +that the 'ImageMagick' package can produce. You can even try it out in +your Web browser without installing it, using the 'Asymptote Web +Application' <http://asymptote.ualberta.ca> @@ -8869,7 +8870,7 @@ Stefan Knorr, Supakorn "Jamie" Rassameemasmuang, Jacob Skitsko, Joseph Chaumont, and Oliver Cheng. Pedram Emami developed the 'Asymptote Web Application' hosted at <http://asymptote.ualberta.ca>: - <https://github.com/vectorgraphics/asymptote-http-server> + <https://github.com/vectorgraphics/asymptoteWebApplication> File: asymptote.info, Node: Index, Prev: Credits, Up: Top @@ -10048,7 +10049,7 @@ Index * quadraticroots: Arrays. (line 322) * quadraticroots <1>: Arrays. (line 327) * quarticroots: math. (line 22) -* quick reference: Description. (line 91) +* quick reference: Description. (line 92) * quit: Drawing in interactive mode. (line 11) * quit <1>: Interactive mode. (line 54) @@ -10082,7 +10083,7 @@ Index * realmult: Data types. (line 100) * rectangle: flowchart. (line 34) * recursion: Functions. (line 100) -* reference: Description. (line 91) +* reference: Description. (line 92) * reflect: Transforms. (line 42) * Relative: label. (line 50) * Relative <1>: label. (line 60) @@ -10509,151 +10510,151 @@ Index Tag Table: Node: Top570 Node: Description7317 -Node: Installation11527 -Node: UNIX binary distributions12573 -Node: MacOS X binary distributions13696 -Node: Microsoft Windows14284 -Node: Configuring15492 -Node: Search paths20105 -Node: Compiling from UNIX source21113 -Node: Editing modes24264 -Node: Git26686 -Node: Uninstall27193 -Node: Tutorial27539 -Node: Drawing in batch mode28386 -Node: Drawing in interactive mode29262 -Node: Figure size30294 -Node: Labels31889 -Node: Paths32717 -Ref: unitcircle33333 -Node: Drawing commands35231 -Node: draw37039 -Ref: arrows38221 -Node: fill43736 -Ref: gradient shading44782 -Node: clip49396 -Node: label50145 -Ref: Label50745 -Node: Bezier curves56602 -Node: Programming60502 -Ref: array iteration62255 -Node: Data types62422 -Ref: format73190 -Node: Paths and guides77636 -Ref: circle77890 -Ref: extension87590 -Node: Pens94400 -Ref: fillrule102091 -Ref: basealign102995 -Ref: transparency106677 -Ref: makepen110271 -Ref: overwrite111155 -Node: Transforms112369 -Node: Frames and pictures114308 -Ref: envelope115466 -Ref: size116559 -Ref: unitsize117546 -Ref: shipout118619 -Ref: filltype120970 -Ref: add124383 -Ref: add about125325 -Ref: tex128355 -Node: Files129250 -Ref: cd130307 -Ref: scroll135209 -Node: Variable initializers138127 -Node: Structures140844 -Node: Operators148417 -Node: Arithmetic & logical148731 -Node: Self & prefix operators151101 -Node: User-defined operators151895 -Node: Implicit scaling152808 -Node: Functions153371 -Ref: stack overflow156488 -Node: Default arguments156770 -Node: Named arguments157526 -Node: Rest arguments160096 -Node: Mathematical functions163217 -Node: Arrays167874 -Ref: sort175313 -Ref: tridiagonal178224 -Ref: solve179455 -Node: Slices183595 -Node: Casts187503 -Node: Import189773 -Node: Static195343 -Node: LaTeX usage198229 -Node: Base modules204743 -Node: plain207220 -Node: simplex207894 -Node: math208167 -Node: interpolate210834 -Node: geometry211113 -Node: trembling211707 -Node: stats211976 -Node: patterns212235 -Node: markers212470 -Node: map214328 -Node: tree214752 -Node: binarytree214932 -Node: drawtree215599 -Node: syzygy215800 -Node: feynman216074 -Node: roundedpath216348 -Node: animation216630 -Ref: animate217051 -Node: embed218163 -Node: slide219117 -Node: MetaPost219448 -Node: babel220164 -Node: labelpath220396 -Node: labelpath3221216 -Node: annotate221527 -Node: CAD221997 -Node: graph222307 -Ref: ticks229466 -Ref: pathmarkers243188 -Ref: marker243658 -Ref: markuniform244012 -Ref: errorbars245871 -Ref: automatic scaling251000 -Node: palette262710 -Ref: images262828 -Ref: image267124 -Ref: logimage267645 -Ref: penimage268751 -Ref: penfunctionimage269014 -Node: three269786 -Ref: PostScript3D300086 -Node: obj301824 -Node: graph3302073 -Ref: GaussianSurface307355 -Node: grid3308505 -Node: solids309290 -Node: tube310282 -Node: flowchart312512 -Node: contour317155 -Node: contour3323663 -Node: smoothcontour3323975 -Node: slopefield325694 -Node: ode327183 -Node: Options327440 -Ref: configuration file334935 -Ref: settings334935 -Ref: texengines336199 -Ref: convert336199 -Node: Interactive mode339642 -Ref: history341791 -Node: GUI343094 -Node: GUI installation343644 -Node: GUI usage344377 -Node: Command-Line Interface345440 -Node: Language server protocol346882 -Node: PostScript to Asymptote348307 -Node: Help349085 -Node: Debugger350759 -Node: Credits352515 -Node: Index353738 +Node: Installation11564 +Node: UNIX binary distributions12610 +Node: MacOS X binary distributions13733 +Node: Microsoft Windows14321 +Node: Configuring15529 +Node: Search paths20142 +Node: Compiling from UNIX source21150 +Node: Editing modes24301 +Node: Git26723 +Node: Uninstall27230 +Node: Tutorial27576 +Node: Drawing in batch mode28423 +Node: Drawing in interactive mode29299 +Node: Figure size30331 +Node: Labels31926 +Node: Paths32754 +Ref: unitcircle33370 +Node: Drawing commands35268 +Node: draw37076 +Ref: arrows38258 +Node: fill43773 +Ref: gradient shading44819 +Node: clip49433 +Node: label50182 +Ref: Label50782 +Node: Bezier curves56639 +Node: Programming60539 +Ref: array iteration62292 +Node: Data types62459 +Ref: format73227 +Node: Paths and guides77673 +Ref: circle77927 +Ref: extension87627 +Node: Pens94437 +Ref: fillrule102128 +Ref: basealign103032 +Ref: transparency106714 +Ref: makepen110308 +Ref: overwrite111192 +Node: Transforms112406 +Node: Frames and pictures114345 +Ref: envelope115503 +Ref: size116596 +Ref: unitsize117583 +Ref: shipout118656 +Ref: filltype121007 +Ref: add124420 +Ref: add about125362 +Ref: tex128392 +Node: Files129287 +Ref: cd130344 +Ref: scroll135246 +Node: Variable initializers138164 +Node: Structures140881 +Node: Operators148454 +Node: Arithmetic & logical148768 +Node: Self & prefix operators151138 +Node: User-defined operators151932 +Node: Implicit scaling152845 +Node: Functions153408 +Ref: stack overflow156525 +Node: Default arguments156807 +Node: Named arguments157563 +Node: Rest arguments160133 +Node: Mathematical functions163254 +Node: Arrays167911 +Ref: sort175350 +Ref: tridiagonal178261 +Ref: solve179492 +Node: Slices183632 +Node: Casts187540 +Node: Import189810 +Node: Static195380 +Node: LaTeX usage198266 +Node: Base modules204780 +Node: plain207257 +Node: simplex207931 +Node: math208204 +Node: interpolate210871 +Node: geometry211150 +Node: trembling211744 +Node: stats212013 +Node: patterns212272 +Node: markers212507 +Node: map214365 +Node: tree214789 +Node: binarytree214969 +Node: drawtree215636 +Node: syzygy215837 +Node: feynman216111 +Node: roundedpath216385 +Node: animation216667 +Ref: animate217088 +Node: embed218200 +Node: slide219154 +Node: MetaPost219485 +Node: babel220201 +Node: labelpath220433 +Node: labelpath3221253 +Node: annotate221564 +Node: CAD222034 +Node: graph222344 +Ref: ticks229503 +Ref: pathmarkers243225 +Ref: marker243695 +Ref: markuniform244049 +Ref: errorbars245908 +Ref: automatic scaling251037 +Node: palette262747 +Ref: images262865 +Ref: image267161 +Ref: logimage267682 +Ref: penimage268788 +Ref: penfunctionimage269051 +Node: three269823 +Ref: PostScript3D300123 +Node: obj301861 +Node: graph3302110 +Ref: GaussianSurface307392 +Node: grid3308542 +Node: solids309327 +Node: tube310319 +Node: flowchart312549 +Node: contour317192 +Node: contour3323700 +Node: smoothcontour3324012 +Node: slopefield325731 +Node: ode327220 +Node: Options327477 +Ref: configuration file334972 +Ref: settings334972 +Ref: texengines336236 +Ref: convert336236 +Node: Interactive mode339679 +Ref: history341828 +Node: GUI343131 +Node: GUI installation343681 +Node: GUI usage344414 +Node: Command-Line Interface345477 +Node: Language server protocol346919 +Node: PostScript to Asymptote348344 +Node: Help349122 +Node: Debugger350796 +Node: Credits352552 +Node: Index353777 End Tag Table diff --git a/graphics/asymptote/glrender.cc b/graphics/asymptote/glrender.cc index 091b635016..80484a3150 100644 --- a/graphics/asymptote/glrender.cc +++ b/graphics/asymptote/glrender.cc @@ -153,7 +153,6 @@ extern void exitHandler(int); namespace gl { GLint processors; -GLint steps; bool outlinemode=false; bool ibl=false; @@ -517,6 +516,12 @@ void noShaders() exit(-1); } +// Return ceil(log2(n)) where n is a 32 bit unsigned integer. +uint32_t ceillog2(uint32_t n) +{ + return 32-CLZ(n-1); +} + void initShaders() { Nlights=nlights == 0 ? 0 : max(Nlights,nlights); @@ -556,13 +561,17 @@ void initShaders() } else { camp::preSumShader=rc; - ostringstream s; + ostringstream s,S; s << "PROCESSORS " << processors << "u" << endl; shaderParams.push_back(s.str().c_str()); + + S << "STEPSM1 " << ceillog2(processors)-1 << "u" << endl; + shaderParams.push_back(S.str().c_str()); shaders[0]=ShaderfileModePair(partial.c_str(),GL_COMPUTE_SHADER); camp::partialSumShader=compileAndLinkShader(shaders,shaderParams, true,true); shaderParams.pop_back(); + shaderParams.pop_back(); shaders[0]=ShaderfileModePair(post.c_str(),GL_COMPUTE_SHADER); camp::postSumShader=compileAndLinkShader(shaders,shaderParams,true,true); @@ -1757,12 +1766,6 @@ void init_osmesa() #endif /* HAVE_GL */ -// Return ceil(log2(n)) where n is a 32 bit unsigned integer. -uint32_t ceillog2(uint32_t n) -{ - return 32-CLZ(n-1); -} - // angle=0 means orthographic. void glrender(const string& prefix, const picture *pic, const string& format, double width, double height, double angle, double zoom, @@ -2036,8 +2039,6 @@ void glrender(const string& prefix, const picture *pic, const string& format, glGetIntegerv(GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS,&processors); if(processors <= 1) GPUindexing=false; - else - steps=ceillog2(processors); } Maxmaterials=val/sizeof(Material); @@ -2197,7 +2198,7 @@ void refreshBuffers() if(initSSBO) { glBindBuffer(GL_SHADER_STORAGE_BUFFER,camp::offsetBuffer); - glBufferData(GL_SHADER_STORAGE_BUFFER,(1+pixels)*sizeof(GLuint),NULL, + glBufferData(GL_SHADER_STORAGE_BUFFER,pixels*sizeof(GLuint),NULL, GL_DYNAMIC_DRAW); glBindBufferBase(GL_SHADER_STORAGE_BUFFER,1,camp::offsetBuffer); glClearBufferData(GL_SHADER_STORAGE_BUFFER,GL_R8UI,GL_RED_INTEGER, @@ -2250,7 +2251,6 @@ void refreshBuffers() glUseProgram(partialSumShader); glUniform1ui(glGetUniformLocation(partialSumShader,"elements"),pixels); - glUniform1ui(glGetUniformLocation(partialSumShader,"steps"),gl::steps); glMemoryBarrier(GL_SHADER_STORAGE_BARRIER_BIT); glDispatchCompute(1,1,1); diff --git a/graphics/asymptote/revision.cc b/graphics/asymptote/revision.cc index 6a2022db3c..477862d5b2 100644 --- a/graphics/asymptote/revision.cc +++ b/graphics/asymptote/revision.cc @@ -1,2 +1,2 @@ -const char *REVISION="2.76"; +const char *REVISION="2.77"; const char *AsyGLVersion="1.01"; diff --git a/graphics/asymptote/v3dheadertypes.h b/graphics/asymptote/v3dheadertypes.h index c3b66d5e13..8e0ed7bd73 100644 --- a/graphics/asymptote/v3dheadertypes.h +++ b/graphics/asymptote/v3dheadertypes.h @@ -1,6 +1,6 @@ // Enum class for v3dheadertypes // AUTO-GENERATED from v3dheadertypes.csv -// Generated at 2022-01-19 22:28:57.698357 +// Generated at 2022-01-21 20:49:12.292026 namespace camp { diff --git a/graphics/asymptote/v3dheadertypes.py b/graphics/asymptote/v3dheadertypes.py index 83422c2fb9..d2f27b84ca 100644 --- a/graphics/asymptote/v3dheadertypes.py +++ b/graphics/asymptote/v3dheadertypes.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # Enum class for v3dheadertypes """ AUTO-GENERATED from v3dheadertypes.csv """ -# Generated at 2022-01-19 22:30:10.805644 +# Generated at 2022-01-21 20:50:28.429065 class v3dheadertypes: v3dheadertypes_canvasWidth=1 diff --git a/graphics/asymptote/v3dtypes.h b/graphics/asymptote/v3dtypes.h index dbe67e17f1..26dfb11b45 100644 --- a/graphics/asymptote/v3dtypes.h +++ b/graphics/asymptote/v3dtypes.h @@ -1,6 +1,6 @@ // Enum class for v3dtypes // AUTO-GENERATED from v3dtypes.csv -// Generated at 2022-01-19 22:28:57.697646 +// Generated at 2022-01-21 20:49:12.280193 namespace camp { diff --git a/graphics/asymptote/v3dtypes.py b/graphics/asymptote/v3dtypes.py index 7bd72105b4..aa2a89a75c 100644 --- a/graphics/asymptote/v3dtypes.py +++ b/graphics/asymptote/v3dtypes.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # Enum class for v3dtypes """ AUTO-GENERATED from v3dtypes.csv """ -# Generated at 2022-01-19 22:30:10.808545 +# Generated at 2022-01-21 20:50:28.352135 class v3dtypes: v3dtypes_material=1 |