From 79a2a28694d25d0b32f99fb89f0943978d0fef2e Mon Sep 17 00:00:00 2001 From: mfeemster Date: Sun, 17 Jan 2016 16:10:06 -0800 Subject: [PATCH] --0.9.9.3 Release --- .../Installer/FractoriumInstaller.wixproj | 2 +- Builds/MSVC/Installer/Product.wxs | 4 +- Builds/MSVC/VS2013/Ember.rc | Bin 4692 -> 4692 bytes Builds/MSVC/VS2013/EmberCL.rc | Bin 4718 -> 4718 bytes Data/Version History.txt | 49 ++++++++++++++++++ Source/Ember/EmberDefines.h | 2 +- Source/Ember/Variations06.h | 2 +- Source/Ember/VariationsDC.h | 2 +- Source/EmberAnimate/EmberAnimate.rc | 8 +-- Source/EmberGenome/EmberGenome.rc | 8 +-- Source/EmberRender/EmberRender.rc | 8 +-- Source/EmberTester/EmberTester.cpp | 22 ++++++-- Source/Fractorium/AboutDialog.ui | 2 +- Source/Fractorium/Fractorium.rc | Bin 4578 -> 4578 bytes 14 files changed, 86 insertions(+), 23 deletions(-) diff --git a/Builds/MSVC/Installer/FractoriumInstaller.wixproj b/Builds/MSVC/Installer/FractoriumInstaller.wixproj index 67ea487..04a648f 100644 --- a/Builds/MSVC/Installer/FractoriumInstaller.wixproj +++ b/Builds/MSVC/Installer/FractoriumInstaller.wixproj @@ -6,7 +6,7 @@ 3.7 {c8096c47-e358-438c-a520-146d46b0637d} 2.0 - Fractorium_Beta_0.9.9.2 + Fractorium_Beta_0.9.9.3 Package $(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets $(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets diff --git a/Builds/MSVC/Installer/Product.wxs b/Builds/MSVC/Installer/Product.wxs index cf148d1..59bba7f 100644 --- a/Builds/MSVC/Installer/Product.wxs +++ b/Builds/MSVC/Installer/Product.wxs @@ -1,6 +1,6 @@ - + @@ -13,7 +13,7 @@ - + ev^a#1 F1pxN75C#AM diff --git a/Builds/MSVC/VS2013/EmberCL.rc b/Builds/MSVC/VS2013/EmberCL.rc index 85e75670719a86a63c0f2a1afc6d863d133bdc74..9ad45212f10fca21509347bd5422237c89f23f7f 100644 GIT binary patch delta 46 wcmaE-@=j&LAr404$%i=%fuudBpI3Kt0M8djFjIVU44)7S0A)-KtN;K2 delta 46 wcmaE-@=j&LAr3~P$%i=%fuudBpI3Kt0M8djFjIVU44)7S0A%M4r~m)} diff --git a/Data/Version History.txt b/Data/Version History.txt index c2532cd..41b122a 100644 --- a/Data/Version History.txt +++ b/Data/Version History.txt @@ -1,3 +1,52 @@ +0.9.9.3 01/17/2016 +--User changes + -Add new variations: crackle, dc_perlin and post_smartcrop. + -Make default palette interp mode be linear instead of step. + -Make summary tab the selected one in the Info tab. + -Allow for highlight power of up to 10. It was previously limited to 2. + -Add the following modes to synth: + -MODE_SHIFTNSTRETCH 14 + -MODE_SHIFTTANGENT 15 + -MODE_XMIRROR 17 + -MODE_XYMIRROR 18 + -MODE_SPHERICAL2 19 + -Clamp synth_mode, synth_*_type and synth_*_layer to valid values. + +--Bug fixes + -Crash on linux when saving style due to null pointer in m_Theme variable. + -Omit duplicate entries in error reports. + -Properly report missing palette file in command line programs. + -Direct color calculations were wrong. + -Flattening was not applied to final xform. + -Fix "pure virtual function call" error on shutdown. + -Wrong point assignment in hexaplay3D, hexnix3D. + -Improper Z assignment in rblur. + -Fix inconsistency with original in circlecrop. + -synth was broken due to passing synth_mode to Interpolate, rather than synth_smooth. + -Changes in the xaos grid were not always being processed due to rounding. + -Long standing animation looping but that goes all the way back to flam3. + +--Code changes + -Qualify math function with std:: + -Allow for array precalc params in variations by adding a size member to the ParamWithName class. + -In IterOpenCLKernelCreator, memcpy precalc params instead of a direct assign since they can now be of variable length. + -Add new file VarFuncs to consolidate some functions that are common to multiple variations. This also contains texture data for crackle and dc_perlin. + -Place OpenCL versions of these functions in the FunctionMapper class in the EmberCL project. + -Add new Singleton class that uses CRTP, is thread safe, and deletes after the last reference goes away. This fixes the usual "delete after main()" problem with singletons that use the static local function variable pattern. + -Began saving files with AStyle autoformatter turned on. This will eventually touch all files as they are worked on. + -Add missing backslash to CUDA include and library paths for builds on Nvidia systems. + -Add missing gl.h include for Windows. + -Remove glew include paths from Fractorium, it's not used. + -Remove any Nvidia specific #defines and build targets, they are no longer needed with OpenCL 1.2. + -Fix bad paths on linux build. + -Convert all enums to class enum to be consistent with C++11 style. + -Convert some if/else statements in filter classes to case statements. + -Add overloaded stream operators to print various enums. + -Optimize crob, nBlur. + -Fix weird assignment statement in falloff3. + -Replace fabs() with std::abs(). + -General cleanup. + 0.9.9.2 11/22/2015 --User changes -Add a new dialog for editing QSS stylesheets. Allow for saving, reloading and setting styles as default. diff --git a/Source/Ember/EmberDefines.h b/Source/Ember/EmberDefines.h index 34bb770..77558f9 100644 --- a/Source/Ember/EmberDefines.h +++ b/Source/Ember/EmberDefines.h @@ -40,7 +40,7 @@ static void sincos(float x, float* s, float* c) namespace EmberNs { -#define EMBER_VERSION "0.9.9.2" +#define EMBER_VERSION "0.9.9.3" #define EPS6 T(1e-6) #define EPS std::numeric_limits::epsilon()//Apoplugin.h uses -20, but it's more mathematically correct to do it this way. #define ISAAC_SIZE 4 diff --git a/Source/Ember/Variations06.h b/Source/Ember/Variations06.h index 5d9669d..fb50af5 100644 --- a/Source/Ember/Variations06.h +++ b/Source/Ember/Variations06.h @@ -3918,7 +3918,7 @@ template class EMBER_API PostSmartcropVariation : public ParametricVariation { public: - PostSmartcropVariation(T weight = 1.0) : ParametricVariation("post_smartcrop", eVariationId::VAR_POST_SMARTCROP, weight, true) + PostSmartcropVariation(T weight = 1.0) : ParametricVariation("post_smartcrop", eVariationId::VAR_POST_SMARTCROP, weight) { m_AssignType = eVariationAssignType::ASSIGNTYPE_SET; m_VarType = eVariationType::VARTYPE_POST;//Very special usage, post only. diff --git a/Source/Ember/VariationsDC.h b/Source/Ember/VariationsDC.h index 476b27b..4375b4f 100644 --- a/Source/Ember/VariationsDC.h +++ b/Source/Ember/VariationsDC.h @@ -1249,7 +1249,7 @@ public: virtual vector OpenCLGlobalFuncNames() const override { - return vector { "Zeps", "SimplexNoise3D", "PerlinNoise3D" }; + return vector { "Zeps", "Sqr", "SimplexNoise3D", "PerlinNoise3D" }; } virtual vector OpenCLGlobalDataNames() const override diff --git a/Source/EmberAnimate/EmberAnimate.rc b/Source/EmberAnimate/EmberAnimate.rc index ff4f154..5f65a42 100644 --- a/Source/EmberAnimate/EmberAnimate.rc +++ b/Source/EmberAnimate/EmberAnimate.rc @@ -49,8 +49,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 0,9,9,2 - PRODUCTVERSION 0,9,9,2 + FILEVERSION 0,9,9,3 + PRODUCTVERSION 0,9,9,3 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -67,12 +67,12 @@ BEGIN BEGIN VALUE "CompanyName", "Open Source" VALUE "FileDescription", "Renders fractal flames as animations with motion blur" - VALUE "FileVersion", "0.9.9.2" + VALUE "FileVersion", "0.9.9.3" VALUE "InternalName", "EmberAnimate.exe" VALUE "LegalCopyright", "Copyright (C) Matt Feemster 2015, GPL v3" VALUE "OriginalFilename", "EmberAnimate.exe" VALUE "ProductName", "Ember Animate" - VALUE "ProductVersion", "0.9.9.2" + VALUE "ProductVersion", "0.9.9.3" END END BLOCK "VarFileInfo" diff --git a/Source/EmberGenome/EmberGenome.rc b/Source/EmberGenome/EmberGenome.rc index 0cb0868..2699a12 100644 --- a/Source/EmberGenome/EmberGenome.rc +++ b/Source/EmberGenome/EmberGenome.rc @@ -49,8 +49,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 0,9,9,2 - PRODUCTVERSION 0,9,9,2 + FILEVERSION 0,9,9,3 + PRODUCTVERSION 0,9,9,3 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -67,12 +67,12 @@ BEGIN BEGIN VALUE "CompanyName", "Open Source" VALUE "FileDescription", "Manipulates fractal flames parameter files" - VALUE "FileVersion", "0.9.9.2" + VALUE "FileVersion", "0.9.9.3" VALUE "InternalName", "EmberGenome.exe" VALUE "LegalCopyright", "Copyright (C) Matt Feemster 2015, GPL v3" VALUE "OriginalFilename", "EmberGenome.exe" VALUE "ProductName", "Ember Genome" - VALUE "ProductVersion", "0.9.9.2" + VALUE "ProductVersion", "0.9.9.3" END END BLOCK "VarFileInfo" diff --git a/Source/EmberRender/EmberRender.rc b/Source/EmberRender/EmberRender.rc index 8196e23..212060f 100644 --- a/Source/EmberRender/EmberRender.rc +++ b/Source/EmberRender/EmberRender.rc @@ -49,8 +49,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 0,9,9,2 - PRODUCTVERSION 0,9,9,2 + FILEVERSION 0,9,9,3 + PRODUCTVERSION 0,9,9,3 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -67,12 +67,12 @@ BEGIN BEGIN VALUE "CompanyName", "Open Source" VALUE "FileDescription", "Renders fractal flames as single images" - VALUE "FileVersion", "0.9.9.2" + VALUE "FileVersion", "0.9.9.3" VALUE "InternalName", "EmberRender.exe" VALUE "LegalCopyright", "Copyright (C) Matt Feemster 2015, GPL v3" VALUE "OriginalFilename", "EmberRender.exe" VALUE "ProductName", "Ember Render" - VALUE "ProductVersion", "0.9.9.2" + VALUE "ProductVersion", "0.9.9.3" END END BLOCK "VarFileInfo" diff --git a/Source/EmberTester/EmberTester.cpp b/Source/EmberTester/EmberTester.cpp index 4d19eeb..8816ce1 100644 --- a/Source/EmberTester/EmberTester.cpp +++ b/Source/EmberTester/EmberTester.cpp @@ -1495,6 +1495,15 @@ bool TestAllVarsCLBuild(size_t platform, size_t device, bool printSuccess = true { renderer.SetEmber(it); + if (platform != 0 && + ((it.GetXform(0)->GetVariationById(eVariationId::VAR_SYNTH) != nullptr) ||//Nvidia OpenCL driver crashes when building too many synths. + (it.GetXform(0)->GetVariationById(eVariationId::VAR_PRE_SYNTH) != nullptr) || + (it.GetXform(0)->GetVariationById(eVariationId::VAR_POST_SYNTH) != nullptr))) + { + cout << "Skipping synth.\n"; + continue; + } + if (renderer.BuildIterProgramForEmber()) { if (printSuccess) @@ -1954,6 +1963,8 @@ void DistribTester() } } +#define DO_NVIDIA 1 + int _tmain(int argc, _TCHAR* argv[]) { //int i; @@ -2152,16 +2163,17 @@ int _tmain(int argc, _TCHAR* argv[]) //t.Tic(); //TestCpuGpuResults(); //t.Toc("TestCpuGpuResults()"); - - //t.Tic(); - //b = TestAllVarsCLBuild(0, 0, true); - //t.Toc("TestAllVarsCLBuild()"); + t.Tic(); + b = TestAllVarsCLBuild(0, 0, true); + t.Toc("TestAllVarsCLBuild()"); if (b) { +#ifdef DO_NVIDIA t.Tic(); b = TestAllVarsCLBuild(1, 0, true); t.Toc("TestAllVarsCLBuild()"); +#endif } #ifdef DO_DOUBLE @@ -2177,9 +2189,11 @@ int _tmain(int argc, _TCHAR* argv[]) if (b) { +#ifdef DO_NVIDIA t.Tic(); TestAllVarsCLBuild(1, 0, true); t.Toc("TestAllVarsCLBuild()"); +#endif } } diff --git a/Source/Fractorium/AboutDialog.ui b/Source/Fractorium/AboutDialog.ui index cc16621..fdb0917 100644 --- a/Source/Fractorium/AboutDialog.ui +++ b/Source/Fractorium/AboutDialog.ui @@ -58,7 +58,7 @@ QFrame::NoFrame - <html><head/><body><p align="center"><br/>Fractorium 0.9.9.2 Beta</p><p align="center"><span style=" font-size:10pt;">A Qt-based fractal flame editor which uses a C++ re-write of the flam3 algorithm named Ember and a GPU capable version named EmberCL which implements a portion of the cuburn algorithm in OpenCL.</span></p><p align="center"><span style=" font-size:10pt;">Lead: Matt Feemster<br/>Contributors: Simon Detheridge</span></p></body></html> + <html><head/><body><p align="center"><br/>Fractorium 0.9.9.3 Beta</p><p align="center"><span style=" font-size:10pt;">A Qt-based fractal flame editor which uses a C++ re-write of the flam3 algorithm named Ember and a GPU capable version named EmberCL which implements a portion of the cuburn algorithm in OpenCL.</span></p><p align="center"><span style=" font-size:10pt;">Lead: Matt Feemster<br/>Contributors: Simon Detheridge</span></p></body></html> Qt::RichText diff --git a/Source/Fractorium/Fractorium.rc b/Source/Fractorium/Fractorium.rc index 92599dfead4ffca715fbac2f72eeaf102537f852..c7e6a4bc60003d903dd849633dbe4660d10fb0c4 100644 GIT binary patch delta 50 zcmaE){789&7YC#9WN!{bM&r%39PG?Mjv|-%TT@F+qejU*HvD0RU+^ B4Hf_Z delta 50 zcmaE){789&7YC!!WN!{bMx)KO9PG?Mjv|-%TT@F+qejU*HvD0RU*k B4H5tV