mirror of
https://bitbucket.org/mfeemster/fractorium.git
synced 2025-01-21 21:20:07 -05:00
47b6614c8a
-Fix improper usage of rand() in cpow2, cpow3, hypertile1, hypertile3D1, hypertile3D2, juliac, juliaq. -Fix program crashing during density filtering on some Nvidia cards. -hypertile3D1 was wrong. -Parsing phoenix_julia when coming from Apophysis was wrong. -Density filtering was freezing on certain Nvidia cards. --Code changes -Optimize juliac, npolar. -Add a new function Crand() which behaves like the legacy C rand() which returns an integer between 0 and 32766, inclusive. -Use RandBit() in some places. -Remove Zeps() from vignette, it's not needed. -Restructure OpenCL code for density filtering such that it does not hang after being compiled on some Nvidia cards, such as the gtx 1660. Remove barriers from conditionals where possible.
67 lines
1.7 KiB
C++
Executable File
67 lines
1.7 KiB
C++
Executable File
#ifdef _WIN32
|
|
#pragma once
|
|
#endif
|
|
|
|
/// <summary>
|
|
/// Precompiled header file. Place all system includes here with appropriate #defines for different operating systems and compilers.
|
|
/// </summary>
|
|
|
|
#define NOMINMAX
|
|
#define WIN32_LEAN_AND_MEAN//Exclude rarely-used stuff from Windows headers.
|
|
#define _USE_MATH_DEFINES
|
|
//#define CL_USE_DEPRECATED_OPENCL_1_2_APIS 1
|
|
|
|
#include "Timing.h"
|
|
#include "Renderer.h"
|
|
|
|
#if defined(_WIN32)
|
|
#pragma warning(disable : 4251; disable : 4661; disable : 4100)
|
|
#include <windows.h>
|
|
#include <SDKDDKVer.h>
|
|
#include "GL/gl.h"
|
|
#elif defined(__APPLE__)
|
|
#include <OpenGL/gl.h>
|
|
#else
|
|
#include "GL/glx.h"
|
|
#endif
|
|
|
|
#include <utility>
|
|
#include <CL/cl.hpp>
|
|
#include <algorithm>
|
|
#include <atomic>
|
|
#include <cstdio>
|
|
#include <cstdlib>
|
|
#include <fstream>
|
|
#include <iostream>
|
|
#include <set>
|
|
#include <string>
|
|
#include <iterator>
|
|
#include <time.h>
|
|
#include <unordered_map>
|
|
|
|
#ifdef _WIN32
|
|
#if defined(BUILDING_EMBERCL)
|
|
#define EMBERCL_API __declspec(dllexport)
|
|
#else
|
|
#define EMBERCL_API __declspec(dllimport)
|
|
#endif
|
|
#else
|
|
#define EMBERCL_API
|
|
#endif
|
|
|
|
using namespace std;
|
|
using namespace EmberNs;
|
|
//#define TEST_CL 1
|
|
//#define TEST_CL_BUFFERS 1
|
|
|
|
//This special define is made to fix buggy OpenCL compilers on Mac.
|
|
//Rendering is much slower there for unknown reasons. Michel traced it down
|
|
//to the consec variable which keeps track of how many tries are needed to compute
|
|
//a point which is not a bad value. Strangely, keeping this as a local variable
|
|
//is slower than keeping it as an element in a global array.
|
|
//This is counterintuitive, and lends further weight to the idea that OpenCL on Mac
|
|
//is horribly broken.
|
|
#ifdef __APPLE__
|
|
#define KNL_USE_GLOBAL_CONSEC
|
|
#endif
|