RandomX dataset specific code moved into OclSharedData class.

This commit is contained in:
XMRig
2019-09-30 06:59:44 +07:00
parent f4943b77f3
commit 77eecdd2c2
16 changed files with 90 additions and 173 deletions

View File

@@ -30,9 +30,16 @@
#include <mutex>
using cl_context = struct _cl_context *;
using cl_mem = struct _cl_mem *;
namespace xmrig {
class Job;
class OclSharedData
{
public:
@@ -40,11 +47,17 @@ public:
uint64_t adjustDelay(size_t id);
uint64_t resumeDelay(size_t id);
void release();
void setResumeCounter(uint32_t value);
void setRunTime(uint64_t time);
inline OclSharedData &operator++() { ++m_threads; return *this; }
# ifdef XMRIG_ALGO_RANDOMX
cl_mem dataset() const;
void createDataset(cl_context ctx, const Job &job, bool host);
# endif
private:
double m_averageRunTime = 0.0;
double m_threshold = 0.95;
@@ -52,12 +65,13 @@ private:
std::mutex m_mutex;
uint32_t m_resumeCounter = 0;
uint64_t m_timestamp = 0;
# ifdef XMRIG_ALGO_RANDOMX
cl_mem m_dataset = nullptr;
# endif
};
using OclSharedDataPtr = std::shared_ptr<OclSharedData>;
} /* namespace xmrig */