Cryptonight OpenCL: fix for long input data
This commit is contained in:
parent
e0eed7d5d6
commit
bd8cf54a0b
6 changed files with 700 additions and 704 deletions
|
@ -122,10 +122,16 @@ void xmrig::OclCnRunner::set(const Job &job, uint8_t *blob)
|
|||
throw std::length_error("job size too big");
|
||||
}
|
||||
|
||||
blob[job.size()] = 0x01;
|
||||
memset(blob + job.size() + 1, 0, Job::kMaxBlobSize - job.size() - 1);
|
||||
const int inlen = static_cast<int>(job.size() + 136 - (job.size() % 136));
|
||||
|
||||
enqueueWriteBuffer(m_input, CL_TRUE, 0, Job::kMaxBlobSize, blob);
|
||||
blob[job.size()] = 0x01;
|
||||
memset(blob + job.size() + 1, 0, inlen - job.size() - 1);
|
||||
|
||||
blob[inlen - 1] |= 0x80;
|
||||
|
||||
enqueueWriteBuffer(m_input, CL_TRUE, 0, inlen, blob);
|
||||
|
||||
m_cn0->setArg(1, sizeof(int), &inlen);
|
||||
|
||||
if (m_algorithm == Algorithm::CN_R && m_height != job.height()) {
|
||||
delete m_cn1;
|
||||
|
@ -152,7 +158,7 @@ void xmrig::OclCnRunner::build()
|
|||
OclBaseRunner::build();
|
||||
|
||||
m_cn0 = new Cn0Kernel(m_program);
|
||||
m_cn0->setArgs(m_input, m_scratchpads, m_states, m_intensity);
|
||||
m_cn0->setArgs(m_input, 0, m_scratchpads, m_states, m_intensity);
|
||||
|
||||
m_cn2 = new Cn2Kernel(m_program);
|
||||
m_cn2->setArgs(m_scratchpads, m_states, m_branches, m_intensity);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue