mirror of
https://bitbucket.org/mfeemster/fractorium.git
synced 2025-07-01 05:46:06 -04:00
--User changes
-Disable Start button in final render dialog when Pause is clicked. --Bug fixes -Rapidly changing spinner values was causing the OpenCL renderer to report a failure, when it was really just aborting. --Code changes -Renderers never internally set abort to true due to a failure. Abort is only set to true by the calling code.
This commit is contained in:
@ -37,7 +37,7 @@ static void sincos(float x, float* s, float* c)
|
||||
|
||||
namespace EmberNs
|
||||
{
|
||||
#define EMBER_VERSION "1.0.0.12"
|
||||
#define EMBER_VERSION "1.0.0.13"
|
||||
#define EPS6 T(1e-6)
|
||||
#define EPS std::numeric_limits<T>::epsilon()//Apoplugin.h uses -20, but it's more mathematically correct to do it this way.
|
||||
#define ISAAC_SIZE 4
|
||||
|
@ -528,8 +528,15 @@ eRenderStatus Renderer<T, bucketT>::Run(vector<v4F>& finalImage, double time, si
|
||||
sampleItersToDo = std::min<size_t>(sampleItersToDo, itersPerTemporalSample - m_LastIter);
|
||||
EmberStats stats = Iterate(sampleItersToDo, temporalSample);//The heavy work is done here.
|
||||
|
||||
//Abort does not indicate an error, it just means the process was interrupted, most likely by the user on the GUI.
|
||||
if (m_Abort)
|
||||
{
|
||||
success = eRenderStatus::RENDER_ABORT;
|
||||
goto Finish;
|
||||
}
|
||||
|
||||
//If no iters were executed, something went catastrophically wrong.
|
||||
if (stats.m_Iters == 0)
|
||||
if (!stats.m_Success && stats.m_Iters == 0)
|
||||
{
|
||||
AddToReport("Zero iterations ran, rendering failed, aborting.\n");
|
||||
success = eRenderStatus::RENDER_ERROR;
|
||||
@ -537,12 +544,6 @@ eRenderStatus Renderer<T, bucketT>::Run(vector<v4F>& finalImage, double time, si
|
||||
goto Finish;
|
||||
}
|
||||
|
||||
if (m_Abort)
|
||||
{
|
||||
success = eRenderStatus::RENDER_ABORT;
|
||||
goto Finish;
|
||||
}
|
||||
|
||||
//Accumulate stats whether this batch ran to completion or exited prematurely.
|
||||
m_LastIter += stats.m_Iters;//Sum of iter count of all threads, reset each temporal sample.
|
||||
m_Stats.m_Iters += stats.m_Iters;//Sum of iter count of all threads, cumulative from beginning to end.
|
||||
|
@ -61,6 +61,7 @@ public:
|
||||
|
||||
void Clear()
|
||||
{
|
||||
m_Success = true;
|
||||
m_Iters = 0;
|
||||
m_Badvals = 0;
|
||||
m_IterMs = 0;
|
||||
@ -69,6 +70,7 @@ public:
|
||||
|
||||
EmberStats& operator += (const EmberStats& stats)
|
||||
{
|
||||
m_Success &= stats.m_Success;
|
||||
m_Iters += stats.m_Iters;
|
||||
m_Badvals += stats.m_Badvals;
|
||||
m_IterMs += stats.m_IterMs;
|
||||
@ -76,6 +78,7 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
bool m_Success = true;
|
||||
size_t m_Iters, m_Badvals;
|
||||
double m_IterMs, m_RenderMs;
|
||||
};
|
||||
|
Reference in New Issue
Block a user