Commit Graph

15 Commits

Author SHA1 Message Date
mfeemster
7c856c929c --Bug fixes
-Really fix locking of affine scale.

--Code changes
 -Remove dependency projects from the solution. Move to a project design where they are built once via command line and stored in a /Deps folder.
  --Because of this, libpng is built as a static lib instead of a dll because that's what its command line makefile supports.
  --Remove libpng16.dll from Wix installer.
 -Remove all configs except for debug and release.
 -Remove all platforms except for x64.
 -Add #define __TBB_NO_IMPLICIT_LINKAGE 1 to prevent tbb from locking for tbb_debug.lib by default on debug builds.
 -Put Ember.rc in a filter folder in the project.
 -Place pragma warning disable statements in PCH files rather than in projects. This makes it easier when using Qt Creator.
 -Move all resource files to the MSVC folder.
 -Set all targets in QtCreator project to their lowercase names to be more *nix friendly. Set -l link statements to use these new lowercase names for ember and embercl.
 -Rework projects to favor shadow builds.
 -Remove the symlinks.sh file and all references to it. It was never needed. Instead, just specify multiple include and link paths in the .pro files.
 -Change WIN32 to _WIN32.
 -Fix a few code warnings.
2016-03-01 17:26:45 -08:00
mfeemster
ccd4ea8d05 Manual merge 2016-01-12 20:51:13 -08:00
luyuju151
02261e6e76 modify Qt projects for building with Qt Creator (windows)
add build guide using Qt Creator and MSVC2013
2016-01-04 21:45:40 +08:00
Gambhiro
fa5e6188ee squashed linux packaging commits
Squashed commit of the following:

commit e7261977580bfd08d08717c27732eb0b0f534bb2
Author: Gambhiro <gambhiro.bhikkhu.85@gmail.com>
Date:   Tue Dec 8 11:25:00 2015 +0000

    build signed source package

commit e652848b5e2d5dadfe1143282af204c13f8db418
Author: Gambhiro <gambhiro.bhikkhu.85@gmail.com>
Date:   Sun Dec 6 12:51:42 2015 +0000

    linux packaging helper script

commit 0c8bf8fcea9d62692c3e973a277c9014b9ef636b
Author: Gambhiro <gambhiro.bhikkhu.85@gmail.com>
Date:   Sat Dec 5 21:38:37 2015 +0000

    changelog

commit d6c6815d3a59779e03119c0546f01c778188c918
Author: Gambhiro <gambhiro.bhikkhu.85@gmail.com>
Date:   Sat Dec 5 21:37:32 2015 +0000

    now it's all qmake

commit c37673a0d747134766bf9a1c3a898bbb9e416ed6
Author: Gambhiro <gambhiro.bhikkhu.85@gmail.com>
Date:   Sat Dec 5 08:46:27 2015 +0000

    don't symlink in manual makefile

commit 2593da2401cbb5b83ea8ec188a3450f52595186e
Author: Gambhiro <gambhiro.bhikkhu.85@gmail.com>
Date:   Thu Dec 3 16:53:31 2015 +0000

    postfix the version with an 'a'

commit 03d4bdde55d428354d8a8ebe4827ff191162bcb1
Author: Gambhiro <gambhiro.bhikkhu.85@gmail.com>
Date:   Thu Dec 3 14:55:33 2015 +0000

    use MAKE_OPTS env if set

commit 6f7847c7c0e3eb32ec14e60736a4e2a7b5175a7c
Author: Gambhiro <gambhiro.bhikkhu.85@gmail.com>
Date:   Thu Dec 3 14:36:21 2015 +0000

    also install dark theme, build only amd64 for now

commit e36d863b3101d4440816e08b9af704e89316d2e9
Author: Gambhiro <gambhiro.bhikkhu.85@gmail.com>
Date:   Wed Dec 2 18:01:42 2015 +0000

    rules.dh7

commit 0e35f2ddf3b70eaf0040fcac6453d79c1a9571c8
Author: Gambhiro <gambhiro.bhikkhu.85@gmail.com>
Date:   Wed Dec 2 17:57:57 2015 +0000

    deps

commit 492b4ae7aa41374bf89cd8accf82d5ab0283a5f9
Author: Gambhiro <gambhiro.bhikkhu.85@gmail.com>
Date:   Wed Dec 2 10:40:04 2015 +0000

    typo

commit 6f0ed09a37849323f220d9aa50ac7c6bd3d411cb
Author: Gambhiro <gambhiro.bhikkhu.85@gmail.com>
Date:   Wed Dec 2 10:37:55 2015 +0000

    deps and version

commit 82f2fd07b6703d5699926c297dee25a59111acb9
Author: Gambhiro <gambhiro.bhikkhu.85@gmail.com>
Date:   Wed Dec 2 09:50:00 2015 +0000

    rev logic

commit e5d33b62236e0b33653fa79d82274e157cb26bc2
Author: Gambhiro <gambhiro.bhikkhu.85@gmail.com>
Date:   Wed Dec 2 09:17:50 2015 +0000

    create bin and libdir

commit 84153860e6861a43ffc0f1073d462f2452f7e7c4
Author: Gambhiro <gambhiro.bhikkhu.85@gmail.com>
Date:   Wed Dec 2 08:48:23 2015 +0000

    support prefix

commit a5da29a15a15fc130ef1147ed495d86238e7a2f3
Author: Gambhiro <gambhiro.bhikkhu.85@gmail.com>
Date:   Wed Dec 2 08:45:52 2015 +0000

    support DESTDIR

commit da1be8b940fb3e51632ed4a35b6afe7defe17848
Author: Gambhiro <gambhiro.bhikkhu.85@gmail.com>
Date:   Tue Dec 1 21:06:01 2015 +0000

    rev clean logic

commit 738c78a93b159d27fc5c00361bb621cd864ac224
Author: Gambhiro <gambhiro.bhikkhu.85@gmail.com>
Date:   Tue Dec 1 20:59:34 2015 +0000

    better make clean

commit 2bf382412e573cd93c8a744b374196d5ea59c218
Author: Gambhiro <gambhiro.bhikkhu.85@gmail.com>
Date:   Tue Dec 1 20:44:48 2015 +0000

    debian folder

commit af420ef5d98744315fa526f0d072197b00b1af28
Author: Gambhiro <gambhiro.bhikkhu.85@gmail.com>
Date:   Tue Dec 1 18:18:51 2015 +0000

    make clean ./Bin too

commit 6d0243a10dac725251ea566ad717ff9b4fd0eea2
Author: Gambhiro <gambhiro.bhikkhu.85@gmail.com>
Date:   Tue Dec 1 17:56:31 2015 +0000

    lowercase

commit 41b4eaef6d9adbbb8ec00a9a15c20498f300924e
Author: Gambhiro <gambhiro.bhikkhu.85@gmail.com>
Date:   Tue Dec 1 17:34:21 2015 +0000

    configure and Makefile
2015-12-08 11:49:19 +00:00
mfeemster
5e82167155 Linux build. 2015-11-22 17:03:11 -08:00
mfeemster
018ba26b5f --User changes
-Add support for multiple GPU devices.
  --These options are present in the command line and in Fractorium.
 -Change scheme of specifying devices from platform,device to just total device index.
  --Single number on the command line.
  --Change from combo boxes for device selection to a table of all devices in Fractorium.
 -Temporal samples defaults to 100 instead of 1000 which was needless overkill.

--Bug fixes
 -EmberAnimate, EmberRender, FractoriumSettings, FinalRenderDialog: Fix wrong order of arguments to Clamp() when assigning thread priority.
 -VariationsDC.h: Fix NVidia OpenCL compilation error in DCTriangleVariation.
 -FractoriumXformsColor.cpp: Checking for null pixmap pointer is not enough, must also check if the underlying buffer is null via call to QPixmap::isNull().

--Code changes
 -Ember.h: Add case for FLAME_MOTION_NONE and default in ApplyFlameMotion().
 -EmberMotion.h: Call base constructor.
 -EmberPch.h: #pragma once only on Windows.
 -EmberToXml.h:
  --Handle different types of exceptions.
  --Add default cases to ToString().
 -Isaac.h: Remove unused variable in constructor.
 -Point.h: Call base constructor in Color().
 -Renderer.h/cpp:
  --Add bool to Alloc() to only allocate memory for the histogram. Needed for multi-GPU.
  --Make CoordMap() return a const ref, not a pointer.
 -SheepTools.h:
  --Use 64-bit types like the rest of the code already does.
  --Fix some comment misspellings.
 -Timing.h: Make BeginTime(), EndTime(), ElapsedTime() and Format() be const functions.
 -Utils.h:
  --Add new functions Equal() and Split().
  --Handle more exception types in ReadFile().
  --Get rid of most legacy blending of C and C++ argument parsing.
 -XmlToEmber.h:
  --Get rid of most legacy blending of C and C++ code from flam3.
  --Remove some unused variables.
 -EmberAnimate:
  --Support multi-GPU processing that alternates full frames between devices.
  --Use OpenCLInfo instead of OpenCLWrapper for --openclinfo option.
  --Remove bucketT template parameter, and hard code float in its place.
  --If a render fails, exit since there is no point in continuing an animation with a missing frame.
  --Pass variables to threaded save better, which most likely fixes a very subtle bug that existed before.
  --Remove some unused variables.
 -EmberGenome, EmberRender:
  --Support multi-GPU processing that alternates full frames between devices.
  --Use OpenCLInfo instead of OpenCLWrapper for --openclinfo option.
  --Remove bucketT template parameter, and hard code float in its place.
 -EmberRender:
  --Support multi-GPU processing that alternates full frames between devices.
  --Use OpenCLInfo instead of OpenCLWrapper for --openclinfo option.
  --Remove bucketT template parameter, and hard code float in its place.
  --Only print values when not rendering with OpenCL, since they're always 0 in that case.
 -EmberCLPch.h:
  --#pragma once only on Windows.
  --#include <atomic>.
 -IterOpenCLKernelCreator.h: Add new kernel for summing two histograms. This is needed for multi-GPU.
 -OpenCLWrapper.h:
  --Move all OpenCL info related code into its own class OpenCLInfo.
  --Add members to cache the values of global memory size and max allocation size.
 -RendererCL.h/cpp:
  --Redesign to accomodate multi-GPU.
  --Constructor now takes a vector of devices.
  --Remove DumpErrorReport() function, it's handled in the base.
  --ClearBuffer(), ReadPoints(), WritePoints(), ReadHist() and WriteHist() now optionally take a device index as a parameter.
  --MakeDmap() override and m_DmapCL member removed because it no longer applies since the histogram is always float since the last commit.
  --Add new function SumDeviceHist() to sum histograms from two devices by first copying to a temporary on the host, then a temporary on the device, then summing.
  --m_Calls member removed, as it's now per-device.
  --OpenCLWrapper removed.
  --m_Seeds member is now a vector of vector of seeds, to accomodate a separate and different array of seeds for each device.
  --Added member m_Devices, a vector of unique_ptr of RendererCLDevice.
 -EmberCommon.h
  --Added Devices() function to convert from a vector of device indices to a vector of platform,device indices.
  --Changed CreateRenderer() to accept a vector of devices to create a single RendererCL which will split work across multiple devices.
  --Added CreateRenderers() function to accept a vector of devices to create multiple RendererCL, each which will render on a single device.
  --Add more comments to some existing functions.
 -EmberCommonPch.h: #pragma once only on Windows.
 -EmberOptions.h:
  --Remove --platform option, it's just sequential device number now with the --device option.
  --Make --out be OPT_USE_RENDER instead of OPT_RENDER_ANIM since it's an error condition when animating. It makes no sense to write all frames to a single image.
  --Add Devices() function to parse comma separated --device option string and return a vector of device indices.
  --Make int and uint types be 64-bit, so intmax_t and size_t.
  --Make better use of macros.
 -JpegUtils.h: Make string parameters to WriteJpeg() and WritePng() be const ref.
 -All project files: Turn off buffer security check option in Visual Studio (/Gs-)
 -deployment.pri: Remove the line OTHER_FILES +=, it's pointless and was causing problems.
 -Ember.pro, EmberCL.pro: Add CONFIG += plugin, otherwise it wouldn't link.
 -EmberCL.pro: Add new files for multi-GPU support.
 -build_all.sh: use -j4 and QMAKE=${QMAKE:/usr/bin/qmake}
 -shared_settings.pri:
  -Add version string.
  -Remove old DESTDIR definitions.
  -Add the following lines or else nothing would build:
   CONFIG(release, debug|release) {
    CONFIG += warn_off
    DESTDIR = ../../../Bin/release
   }

   CONFIG(debug, debug|release) {
    DESTDIR = ../../../Bin/debug
   }

   QMAKE_POST_LINK += $$quote(cp --update ../../../Data/flam3-palettes.xml $${DESTDIR}$$escape_expand(\n\t))
   LIBS += -L/usr/lib -lpthread
 -AboutDialog.ui: Another futile attempt to make it look correct on Linux.
 -FinalRenderDialog.h/cpp:
  --Add support for multi-GPU.
  --Change from combo boxes for device selection to a table of all devices.
  --Ensure device selection makes sense.
  --Remove "FinalRender" prefix of various function names, it's implied given the context.
 -FinalRenderEmberController.h/cpp:
  --Add support for multi-GPU.
  --Change m_FinishedImageCount to be atomic.
  --Move CancelRender() from the base to FinalRenderEmberController<T>.
  --Refactor RenderComplete() to omit any progress related functionality or image saving since it can be potentially ran in a thread.
  --Consolidate setting various renderer fields into SyncGuiToRenderer().
 -Fractorium.cpp: Allow for resizing of the options dialog to show the entire device table.
 -FractoriumCommon.h: Add various functions to handle a table showing the available OpenCL devices on the system.
 -FractoriumEmberController.h/cpp: Remove m_FinalImageIndex, it's no longer needed.
 -FractoriumRender.cpp: Scale the interactive sub batch count and quality by the number of devices used.
 -FractoriumSettings.h/cpp:
  --Temporal samples defaults to 100 instead of 1000 which was needless overkill.
  --Add multi-GPU support, remove old device,platform pair.
 -FractoriumToolbar.cpp: Disable OpenCL toolbar button if there are no devices present on the system.
 -FractoriumOptionsDialog.h/cpp:
  --Add support for multi-GPU.
  --Consolidate more assignments in DataToGui().
  --Enable/disable CPU/OpenCL items in response to OpenCL checkbox event.
 -Misc: Convert almost everything to size_t for unsigned, intmax_t for signed.
2015-09-12 18:33:45 -07:00
Simon Detheridge
fd5e177df7 Fix output directory in qt projects to be relative to the repository
Conflicts:
	Builds/QtCreator/build_all.sh
2015-07-29 12:42:22 +01:00
Simon Detheridge
254bf89469 Refactor .pro files to keep shared settings all in one place 2015-01-26 17:17:51 +00:00
Simon Detheridge
5a610601af Don't strip symbols on osx release build
This avoids clang error in release mode: atom not found in symbolIndex(__ZN7EmberNs11EmberReport23StaticErrorReportStringERKNSt3__16vectorINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS6_IS8_EEEE) for architecture x86_64
2015-01-26 16:01:10 +00:00
Simon Detheridge
3c4dc80342 Fix pro file for EmberCL on osx 2015-01-14 10:36:18 +00:00
mfeemster
3cf6141e27 Derive from QOpenGLWidget instead of QGLWidget.
Derive from QOpenGLWidget instead of QGLWidget.
More commits to follow.
2015-01-01 07:17:05 -08:00
mfeemster
9502ae57ab Linux. 2014-12-14 20:25:46 -08:00
mfeemster
f32eaadd3d Linux/Windows sync. 2014-12-11 15:13:26 -08:00
mfeemster
a9ecb6a78e More linux work. 2014-12-10 21:50:15 -08:00
mfeemster
9947cd1c84 More Linux work, getting started with QtCreator. 2014-12-08 02:18:16 -08:00