mirror of
https://bitbucket.org/mfeemster/fractorium.git
synced 2025-06-30 21:36:33 -04:00
Bug fixes:
--Disallow the use of synth when randomly generating xforms if the user has an Nvidia device present on their system. Code changes: --Use some CPU defines in CL code. --Change curves color scaling buffer to be 2^16 per channel instead of 2^17 which was probably overkill. --Code in RendererClDevice::Init() to detect Nvidia was wrong even thought it technically worked.
This commit is contained in:
@ -53,14 +53,31 @@ void Fractorium::InitMenusUI()
|
||||
template <typename T>
|
||||
void FractoriumEmberController<T>::NewFlock(size_t count)
|
||||
{
|
||||
bool nv = false;
|
||||
Ember<T> ember;
|
||||
StopAllPreviewRenderers();
|
||||
m_EmberFile.Clear();
|
||||
m_EmberFile.m_Filename = EmberFile<T>::DefaultFilename();
|
||||
vector<eVariationId> filteredVariations;
|
||||
vector<eVariationId>& filteredVariationsRef = m_FilteredVariations;
|
||||
auto& deviceNames = OpenCLInfo::Instance()->AllDeviceNames();
|
||||
|
||||
for (auto& dev : deviceNames)
|
||||
if (Find(ToLower(dev), "nvidia"))
|
||||
nv = true;
|
||||
|
||||
if (nv)//Nvidia cannot handle synth. It takes over a minute to compile and uses about 4GB of memory.
|
||||
{
|
||||
filteredVariations = m_FilteredVariations;
|
||||
filteredVariationsRef = filteredVariations;
|
||||
std::remove(filteredVariations.begin(), filteredVariations.end(), eVariationId::VAR_SYNTH);
|
||||
std::remove(filteredVariations.begin(), filteredVariations.end(), eVariationId::VAR_PRE_SYNTH);
|
||||
std::remove(filteredVariations.begin(), filteredVariations.end(), eVariationId::VAR_POST_SYNTH);
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < count; i++)
|
||||
{
|
||||
m_SheepTools->Random(ember, m_FilteredVariations, static_cast<intmax_t>(QTIsaac<ISAAC_SIZE, ISAAC_INT>::LockedFrand<T>(-2, 2)), 0, MAX_CL_VARS);
|
||||
m_SheepTools->Random(ember, filteredVariationsRef, static_cast<intmax_t>(QTIsaac<ISAAC_SIZE, ISAAC_INT>::LockedFrand<T>(-2, 2)), 0, MAX_CL_VARS);
|
||||
ParamsToEmber(ember);
|
||||
ember.m_Index = i;
|
||||
ember.m_Name = m_EmberFile.m_Filename.toStdString() + "_" + ToString(i + 1ULL).toStdString();
|
||||
|
Reference in New Issue
Block a user