Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v1.0 Release #122

Open
wants to merge 133 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
133 commits
Select commit Hold shift + click to select a range
039134d
Remove old FastSIMD
Auburn Jun 12, 2022
4d95b02
Latest FastSIMD
Auburn Jun 13, 2022
dc54753
Convert build list for nuFastSIMD
Auburn Jun 18, 2022
57c4a35
Basics working with new FastSIMD
Auburn Jul 8, 2022
926f419
Merge pull request #95 from Auburn/master
Auburn Jul 12, 2022
1359d80
Support FastSIMD object libraries
Auburn Jul 15, 2022
a423c54
Rename SIMD level references
Auburn Jul 17, 2022
c5b862c
More FastSIMD conversion of nodes
Auburn Jul 27, 2022
2bd8070
Convert more nodes to nuFastSIMD
Auburn Aug 27, 2022
fcd6a0e
Coherent gradient nodse working
Auburn Sep 3, 2022
134c6f0
All nodes now functional
Auburn Sep 4, 2022
671452a
Temp fix for benchmarking
Auburn Sep 4, 2022
7d6807d
Fix benchmark naming
Auburn Sep 4, 2022
6d69f45
Latest FastSIMD, GCC fixes
Auburn Sep 5, 2022
879b479
Small optimisation to GetGradient
Auburn Sep 6, 2022
da0fc5c
Support new FastSIMD cmake library function
Auburn Sep 9, 2022
74a24f0
Make reference id direct pointer to atomic ref count
Auburn Oct 30, 2022
1856157
Update to latest FastSIMD
Auburn Mar 5, 2023
420029d
Avoid race condition in CPUMaxSIMDLevel()
Auburn Apr 15, 2023
db92c55
Switch to linear memory allocator for SmartNodes
Auburn Apr 16, 2023
46a7a3b
Move generator reference inside internal class to remove std from header
Auburn Apr 17, 2023
4f728fc
Free empty pools if there are 2 or more empty
Auburn Apr 17, 2023
cdc8149
Merge master
Auburn Apr 17, 2023
ff33d6f
Fix hover strings truncating last character
Auburn Apr 17, 2023
7f163ef
Don't try to format non-literal strings
Auburn Apr 17, 2023
f6cb106
Update to latest FastSIMD
Auburn Jul 8, 2023
1e01839
Update to latest FastSIMD
Auburn Jul 14, 2023
6c4552a
Merge latest FastSIMD changes
Auburn Jul 15, 2023
da22618
Merge remote-tracking branch 'origin/master' into MemoryPoolRework
Auburn Jul 15, 2023
2dafed8
Merge branch master and MemoryPoolRework into NewFastSIMD
Auburn Jul 16, 2023
7893aa6
Merge branch 'master' into NewFastSIMD
Auburn Jul 17, 2023
706f777
Fix tuple include for clang
Auburn Jul 17, 2023
fda2ea6
Latest FastSIMD
Auburn Jul 17, 2023
e0d33d2
NewFastSIMD bench all feature sets
Auburn Jul 17, 2023
c859147
Double sized registers
Auburn Jul 18, 2023
f3f33ca
Double Sized Registers Fix compile
Auburn Jul 18, 2023
6c7846c
Use generated FastNoise compiled feature sets array for NoiseTool and…
Auburn Jul 19, 2023
5aa5e1f
GetGradientDotFancy AVX2 optimisation
Auburn Jul 19, 2023
cecbf71
Bump Scalar register size to 4
Auburn Jul 19, 2023
b2d63ba
Fixup and enable AVX512
Auburn Jul 19, 2023
c93db4a
Test disable VECTORCALL
Auburn Jul 20, 2023
7622629
Enable vectorcall for MSVC and Clang
Auburn Jul 20, 2023
627aa80
Remove ZeroUpper asm generation
Auburn Jul 20, 2023
b195868
Latest FastSIMD regcall on ClangCl
Auburn Jul 22, 2023
e4a22dd
Update FastSIMD with ARM support
Auburn Jul 26, 2023
4f5c040
Mark nodes as final
Auburn Jul 27, 2023
5b00227
Use ScaledGenerator base class for coherent noise nodess
Auburn Oct 19, 2023
e4abb29
Updated base64 encoding to compress consecutive As
Auburn Oct 23, 2023
26c3d6e
Update demo node trees for new scaling generators
Auburn Oct 23, 2023
cf7a2ec
Rename NoiseTool to Node Visualiser
Auburn Oct 24, 2023
2ca53fa
Rename Node Visualiser to Node Editor
Auburn Oct 25, 2023
871f564
Remove frequency param from GenUniformGrid functions
Auburn Oct 28, 2023
6ca6d14
Update Corrade/Magnum
Auburn Oct 28, 2023
e7d934b
Don't invert scale in node editor settings
Auburn Nov 8, 2023
975ac14
Don't delete node when pressing delete in text entry
Auburn Nov 8, 2023
1591273
Add Abs node, convert remap node to hybrid inputs
Auburn Nov 8, 2023
182201d
Metadata node value UI drag speed setting
Auburn Nov 8, 2023
28f70df
PositionOutput rename Set to SetAxis
Auburn Nov 11, 2023
b5188a4
Fix GenPositionArray reading past the end of the input arrays
Auburn Nov 11, 2023
37f2347
Small OpenSimplex2S optimisation
Auburn Nov 25, 2023
85f5543
File rejig
Auburn Dec 5, 2023
197b578
Fix InvSqrt causing nans
Auburn Dec 22, 2023
cd48b8a
Use BitShiftRightZeroExtend in cellular hashes to avoid & op
Auburn Jan 9, 2024
55ef187
Add zooming support to the node graph editor
Auburn Feb 4, 2024
93e2c04
Update node editor dependencies
Auburn Feb 5, 2024
82f296d
Update imnodes to fix gcc and msvc
Auburn Feb 5, 2024
c4881c0
Update ignore
Auburn Feb 6, 2024
056a310
Merge branch 'master' into NewFastSIMD
Auburn Feb 6, 2024
2bbf382
Editor IPC and detachable node graph window (#131)
Auburn Feb 13, 2024
be647f5
Merge branch 'NewFastSIMD' of https://github.com/Auburn/FastNoise2 in…
Auburn Feb 13, 2024
4d6375c
Keep selected node when detaching node graph
Auburn Feb 13, 2024
0049bd0
Shared memory code tidy
Auburn Mar 7, 2024
c31c80c
Fix MSVC warnings
Auburn Mar 10, 2024
b6fd955
Initial DMC meshing
Auburn Mar 11, 2024
6e99c0a
Fix derivative calculations for dmc mesh normals
Auburn Mar 12, 2024
306f9bc
Fix last few MSVC warnings
Auburn Mar 12, 2024
e8a2675
Updated mesh lighting
Auburn Mar 12, 2024
3de2b29
Default to DMC meshing
Auburn Mar 14, 2024
1ddab1e
Merge branch 'dmc' into NewFastSIMD
Auburn Mar 14, 2024
222a170
More accurate min/max Y with DMC meshing
Auburn Mar 14, 2024
32a1013
Basic generators metadata descriptions
Auburn Mar 28, 2024
c96c636
More customisable Fade node, blend node descriptions
Auburn Apr 4, 2024
f345b60
x86 zeroupper on public function exit
Auburn Apr 6, 2024
86f9cc8
Correct no zero upper args
Auburn Apr 6, 2024
11e368c
Better bounding for coord value lookup
Auburn Apr 6, 2024
a52ec75
Revert to faster coord value function
Auburn Apr 6, 2024
28f27cf
Smart node const correctness, remove shared_ptr config
Auburn Apr 13, 2024
d2aecea
Add native output bounding for various generator noise types
Auburn Apr 21, 2024
6410274
Fix warnings, and catch nan light
Auburn Apr 21, 2024
48f2407
Reduce metadata vector sizes
Auburn Apr 21, 2024
f4bdc32
Update demo node trees for new nodes
Auburn Apr 22, 2024
deee870
Better node editor slider drag speed
Auburn Apr 22, 2024
e58e732
Update FastSIMD for WASM support and Relaxed setting.
Auburn Apr 27, 2024
e65569b
Split Mac ARM and x86 CI builds
Auburn Apr 27, 2024
f9498a4
Fix BMP export not working on emscripten
Auburn Apr 28, 2024
f8fd6f8
TEST hybrid range inputs for ScalableGenerator
Auburn Apr 28, 2024
fe0fd43
Add Minkowski distance function
Auburn May 4, 2024
9df09c8
MinkowskiP defaults to 1.5
Auburn May 4, 2024
8797057
Revert "TEST hybrid range inputs for ScalableGenerator"
Auburn May 5, 2024
a1d5337
Add ability for custom node name formatting
Auburn May 7, 2024
4d557e8
Use custom vector type in metadata to avoid dll linker warnings due t…
Auburn May 9, 2024
000bffa
Fix benchmark build
Auburn May 9, 2024
53cfcd7
Explicitly instantiate the metadata vectors to avoid linker issues
Auburn May 9, 2024
ccd1d10
Convert nodeid to uint8
Auburn May 10, 2024
94a8aa3
DomainWarp Gradient calculate contribution per point to avoid lerp
Auburn May 18, 2024
4e36b8d
Change serialisation to cope with variables being added/removed from …
Auburn May 19, 2024
9fa777e
Switch domain warp fractal grouping
Auburn May 23, 2024
5ef9688
Domain warp normalise in fmulsub
Auburn May 23, 2024
49aabb9
Move node editor into its own tools folder
Auburn Jun 3, 2024
72aaf75
Fix demo node include
Auburn Jun 3, 2024
71c4c56
Github wiki generator tool
Auburn Jul 19, 2024
4918ee0
Update to latest FastSIMD
Auburn Aug 27, 2024
d731874
Merge branch 'refs/heads/master' into NewFastSIMD
Auburn Aug 27, 2024
d24cd37
Enable MacOS universal build
Auburn Aug 27, 2024
fbf6cae
Update CPM
Auburn Aug 27, 2024
8cb93ff
Don't CI newfastsimd twice
Auburn Aug 27, 2024
9096fa6
Fix Cpp11 include
Auburn Aug 27, 2024
0ba4ba6
Fix unix compile
Auburn Aug 27, 2024
35b1239
Fix unix compile
Auburn Aug 27, 2024
75eae50
Position output make offset hybrid, fix distance to point when using …
Auburn Aug 31, 2024
3651da8
C API doesn't new a smartnode instead it manually increments the node…
Auburn Aug 31, 2024
73d22bb
More node metadata descriptions
Auburn Sep 19, 2024
38e3e6a
Reorganised node groups, added modulus node
Auburn Dec 3, 2024
ca97e96
Simplex Rework + Domain Warp (#135)
KdotJPG Dec 3, 2024
93395f2
Fix compiler errors from simplex merge #135
Auburn Dec 3, 2024
04e3287
Remove unused variable
Auburn Dec 14, 2024
19a8184
update to upload-artifact@v4
Auburn Dec 14, 2024
57973f6
update benchmark
Auburn Dec 14, 2024
e257d4d
Don't zoom node editor when scrolling enums
Auburn Dec 15, 2024
9b07085
More node descriptions, fancier wiki generator
Auburn Dec 15, 2024
97fc7a0
Benchmark test previous gradient functions
Auburn Dec 16, 2024
4dda0e2
Small util function perf bumps
Auburn Dec 17, 2024
24f8977
Small bump for OrthogonalGradient 3D
Auburn Dec 17, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 3 additions & 8 deletions .github/workflows/benchmark.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ on:
push:
branches:
- 'master'
- 'NewFastSIMD'
paths-ignore:
- 'NoiseTool/**'
- '.github/**'
Expand Down Expand Up @@ -36,13 +37,13 @@ jobs:
uses: actions/checkout@v3

- name: 'CMake Configure'
run: cmake -S ${{ github.workspace }} -B ${{ github.workspace }}/build -DCMAKE_BUILD_TYPE=Release -DFASTNOISE2_NOISETOOL=OFF -DFASTNOISE2_TESTS=ON ${{ matrix.cmake_options }}
run: cmake -S ${{ github.workspace }} -B ${{ github.workspace }}/build -DCMAKE_BUILD_TYPE=Release -DFASTNOISE2_TOOLS=OFF -DFASTNOISE2_TESTS=ON ${{ matrix.cmake_options }}

- name: 'CMake Build'
run: cmake --build ${{ github.workspace }}/build --config Release --target FastNoiseBenchmark --parallel 4

- name: 'Upload artifact'
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.name }}-benchmark-bin
path: ${{ github.workspace }}/build/Release/bin/
Expand Down Expand Up @@ -73,9 +74,3 @@ jobs:
repository: Auburn/FastNoise2Benchmarking
event-type: benchmark
client-payload: '{"ref": "${{ github.ref }}", "sha": "${{ github.sha }}", "runid": "${{ github.run_id }}", "name": "${{ matrix.name }}", "msg": "${{ steps.message-format.outputs.value }}"}'

benchmarkbin-complete:
runs-on: ubuntu-latest
needs: benchmark-matrix
steps:
- run: echo benchmarkbin-complete
78 changes: 11 additions & 67 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ name: CI
on:
workflow_dispatch:
push:
branches: [master,NewFastSIMD]
branches: [master]
pull_request:
branches: [master,NewFastSIMD]
release:
Expand Down Expand Up @@ -36,13 +36,11 @@ jobs:
name: Linux64-Clang
cmake_options: -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
- os: macos-13
target: x86_64-apple-darwin
name: MacOSx86_64-Clang
cmake_options: -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
- os: macos-14
target: aarch64-apple-darwin
name: MacOSaarch64-Clang
name: MacOS64-Clang
cmake_options: -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
- os: macos-latest
name: MacOSARM64-Clang
cmake_options: -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64"

steps:
- name: 'Install OpenGL & xorg'
Expand All @@ -55,20 +53,20 @@ jobs:
uses: actions/checkout@v3

- name: 'CMake Build Debug'
run: cmake -S ${{ github.workspace }} -B ${{ github.workspace }}/debug -DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/install/FastNoise2" -DFASTNOISE2_NOISETOOL=OFF -DFASTNOISE2_TESTS=OFF ${{ matrix.cmake_options }}

run: cmake -S ${{ github.workspace }} -B ${{ github.workspace }}/debug -DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/install/FastNoise2" -DFASTNOISE2_TOOLS=OFF -DFASTNOISE2_TESTS=OFF ${{ matrix.cmake_options }}
- name: 'CMake Install Debug'
run: cmake --build ${{ github.workspace }}/debug --config Debug --target install --parallel 4

- name: 'CMake Build Release'
run: cmake -S ${{ github.workspace }} -B ${{ github.workspace }}/release -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/install/FastNoise2" -DFASTNOISE2_NOISETOOL=ON -DFASTNOISE2_TESTS=ON ${{ matrix.cmake_options }}

run: cmake -S ${{ github.workspace }} -B ${{ github.workspace }}/release -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/install/FastNoise2" -DFASTNOISE2_TOOLS=ON -DFASTNOISE2_TESTS=ON ${{ matrix.cmake_options }}
- name: 'CMake Install Release'
run: cmake --build ${{ github.workspace }}/release --config Release --target install --parallel 4

- if: runner.os != 'Windows'
run: chmod +x ${{ github.workspace }}/install/FastNoise2/bin/NoiseTool

run: chmod +x ${{ github.workspace }}/install/FastNoise2/bin/NodeEditor
- name: 'Upload artifact'
uses: actions/upload-artifact@v3
with:
Expand All @@ -91,57 +89,3 @@ jobs:
file: ${{ github.workspace }}/${{ matrix.name }}.zip
asset_name: FastNoise2-${{ github.event.release.tag_name }}-${{ matrix.name }}.zip
tag: ${{ github.ref }}

macos-universal:
if: ${{ always() }}
needs: [ ci-matrix ]
name: macos Universal Build
runs-on: macos-latest
outputs:
matrix: ${{ steps.matrix.outputs.matrix }}
steps:
- name: 'Download artifact'
uses: actions/download-artifact@v3
with:
name: MacOSaarch64-Clang
path: MacOSaarch64-Clang
- name: 'Download artifact'
uses: actions/download-artifact@v3
with:
name: MacOSx86_64-Clang
path: MacOSx86_64-Clang
- name: 'Create Universal Binary'
run: |
mkdir -p universal/FastNoise2/lib universal/FastNoise2/bin
lipo -create \
-output universal/FastNoise2/lib/libFastNoise.dylib \
MacOSaarch64-Clang/FastNoise2/lib/libFastNoise.dylib \
MacOSx86_64-Clang/FastNoise2/lib/libFastNoise.dylib
lipo -create \
-output universal/FastNoise2/bin/NoiseTool \
MacOSaarch64-Clang/FastNoise2/bin/NoiseTool \
MacOSx86_64-Clang/FastNoise2/bin/NoiseTool
chmod +x universal/FastNoise2/bin/NoiseTool

- name: 'Upload artifact'
uses: actions/upload-artifact@v3
with:
name: MacOSUniversal-Clang
path: ${{ github.workspace }}/universal/

- name: 'Zip artifacts'
if: github.event_name == 'release'
uses: papeloto/action-zip@v1
with:
files: universal/
recursive: true
dest: MacOSUniversal-Clang.zip

- name: 'Upload release artifacts'
if: github.event_name == 'release'
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ${{ github.workspace }}/MacOSUniversal-Clang.zip
asset_name: FastNoise2-${{ github.event.release.tag_name }}-MacOSUniversal-Clang.zip
tag: ${{ github.ref }}
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,9 @@
*.out
*.app
/.vs*
/.idea
/out
/cmake-build*
/build
/enc_temp_folder
/cpm-cache
Expand Down
44 changes: 12 additions & 32 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,35 +1,9 @@
# CMakeList.txt : CMake project for FastNoise2
cmake_minimum_required(VERSION 3.7.1)

project(FastNoise2 VERSION 0.10.0)
project(FastNoise2 VERSION 0.9.4)
set(CMAKE_CXX_STANDARD 17)

message("FastNoise2 Arch: ${CMAKE_SYSTEM_PROCESSOR}")

if(CMAKE_SYSTEM_PROCESSOR MATCHES armv7)

set(FASTSIMD_COMPILE_ARMV7 true)
set(FASTSIMD_COMPILE_ARM true)
set(FASTSIMD_COMPILE_HAVE_NEON true)

elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL aarch64)

set(FASTSIMD_COMPILE_AARCH64 true)
set(FASTSIMD_COMPILE_ARM true)
set(FASTSIMD_COMPILE_HAVE_NEON true)

elseif(CMAKE_SYSTEM_PROCESSOR MATCHES arm64)

set(FASTSIMD_COMPILE_ARM true)
set(FASTSIMD_COMPILE_HAVE_NEON true)

elseif(CMAKE_SYSTEM_PROCESSOR MATCHES arm)

set(FASTSIMD_COMPILE_ARM true)

endif()


# determine whether this is a standalone project or included by other projects
if (NOT DEFINED FASTNOISE2_STANDALONE_PROJECT)
if (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
Expand All @@ -42,8 +16,11 @@ endif()
# Build DLL
#set(BUILD_SHARED_LIBS ON)

option(FASTNOISE2_NOISETOOL "Build NoiseTool application" ${FASTNOISE2_STANDALONE_PROJECT})
option(FASTNOISE2_TOOLS "Build \"Node Editor\" executable" ${FASTNOISE2_STANDALONE_PROJECT})
option(FASTNOISE2_TESTS "Build tests" OFF)
option(FASTNOISE2_UTILITY "Build utility tools" OFF)

option(FASTNOISE2_STRICT_FP "Enable strict floating point calculations to ensure output from different SIMD feature sets match EXACTLY" OFF)

if(MSVC)
#setup pdb target location
Expand All @@ -62,18 +39,21 @@ endif()
include(GNUInstallDirs)
set(install_targets "")

include(cmake/CPM.cmake)
add_subdirectory(src)

if(FASTNOISE2_NOISETOOL)
include(cmake/CPM.cmake)
add_subdirectory(NoiseTool)
if(FASTNOISE2_TOOLS)
add_subdirectory(tools)
endif()

if(FASTNOISE2_TESTS)
include(cmake/CPM.cmake)
add_subdirectory(tests)
endif()

if(FASTNOISE2_UTILITY)
add_subdirectory(util)
endif()


#Install -----------------------------------------------------------

Expand Down
24 changes: 12 additions & 12 deletions CMakePresets.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
"version": 3,
"configurePresets": [
{
"name": "noisetool",
"displayName": "NoiseTool",
"name": "tools",
"displayName": "Tools",
"generator": "Ninja Multi-Config",
"binaryDir": "${sourceDir}/out/build/${presetName}",
"installDir": "${sourceDir}/out/install/${presetName}",
Expand All @@ -21,9 +21,9 @@
{
"name": "minimal",
"displayName": "Minimal",
"inherits": "noisetool",
"inherits": "tools",
"cacheVariables": {
"FASTNOISE2_NOISETOOL": {
"FASTNOISE2_TOOLS": {
"value": "False",
"type": "BOOL"
},
Expand All @@ -36,9 +36,9 @@
{
"name": "all",
"displayName": "All",
"inherits": "noisetool",
"inherits": "tools",
"cacheVariables": {
"FASTNOISE2_NOISETOOL": {
"FASTNOISE2_TOOLS": {
"value": "True",
"type": "BOOL"
},
Expand All @@ -51,14 +51,14 @@
],
"buildPresets": [
{
"name": "noisetool-debug",
"displayName": "NoiseTool Debug",
"configurePreset": "noisetool"
"name": "tools-debug",
"displayName": "tools Debug",
"configurePreset": "tools"
},
{
"name": "noisetool-release",
"displayName": "NoiseTool Release",
"configurePreset": "noisetool",
"name": "tools-release",
"displayName": "tools Release",
"configurePreset": "tools",
"configuration": "Release"
},
{
Expand Down
7 changes: 0 additions & 7 deletions NoiseTool/DemoNodeTrees.inl

This file was deleted.

Loading
Loading