1
0
mirror of https://github.com/xmrig/xmrig.git synced 2025-12-25 13:42:54 -05:00

Fixed memory allocation on old low memory AMD GPUs.

This commit is contained in:
XMRig
2019-11-15 19:42:35 +07:00
parent 0497ab072b
commit f9bc3fb09b
3 changed files with 17 additions and 8 deletions

View File

@@ -40,12 +40,19 @@
constexpr size_t oneGiB = 1024 * 1024 * 1024;
cl_mem xmrig::OclSharedData::createBuffer(cl_context context, size_t size, size_t &offset)
cl_mem xmrig::OclSharedData::createBuffer(cl_context context, size_t size, size_t &offset, size_t limit)
{
std::lock_guard<std::mutex> lock(m_mutex);
offset += size * m_offset++;
size = std::max(size * m_threads, oneGiB);
const size_t pos = offset + (size * m_offset);
size = std::max(size * m_threads, oneGiB);
if (size > limit) {
return nullptr;
}
offset = pos;
++m_offset;
if (!m_buffer) {
m_buffer = OclLib::createBuffer(context, CL_MEM_READ_WRITE, size);

View File

@@ -45,7 +45,7 @@ class OclSharedData
public:
OclSharedData() = default;
cl_mem createBuffer(cl_context context, size_t size, size_t &offset);
cl_mem createBuffer(cl_context context, size_t size, size_t &offset, size_t limit);
uint64_t adjustDelay(size_t id);
uint64_t resumeDelay(size_t id);
void release();