diff --git a/src/backend/opencl/generators/ocl_generic_rx_generator.cpp b/src/backend/opencl/generators/ocl_generic_rx_generator.cpp index 350e9e53..022f489c 100644 --- a/src/backend/opencl/generators/ocl_generic_rx_generator.cpp +++ b/src/backend/opencl/generators/ocl_generic_rx_generator.cpp @@ -28,6 +28,7 @@ #include "backend/opencl/wrappers/OclDevice.h" #include "crypto/common/Algorithm.h" #include "crypto/randomx/randomx.h" +#include "crypto/rx/RxAlgo.h" namespace xmrig { @@ -40,27 +41,8 @@ bool ocl_generic_rx_generator(const OclDevice &device, const Algorithm &algorith } const size_t mem = device.globalMemSize(); - - RandomX_ConfigurationBase* config = nullptr; - - switch (algorithm) { - case Algorithm::RX_0: - config = &RandomX_MoneroConfig; - break; - - case Algorithm::RX_LOKI: - config = &RandomX_LokiConfig; - break; - - case Algorithm::RX_WOW: - config = &RandomX_WowneroConfig; - break; - - default: - return false; - } - - bool gcnAsm = false; + auto config = RxAlgo::base(algorithm); + bool gcnAsm = false; switch (device.type()) { case OclDevice::Baffin: @@ -70,6 +52,9 @@ bool ocl_generic_rx_generator(const OclDevice &device, const Algorithm &algorith case OclDevice::Vega_20: gcnAsm = true; break; + + default: + break; } // Must have space for dataset, scratchpads and 128 MB of free memory diff --git a/src/crypto/rx/RxAlgo.cpp b/src/crypto/rx/RxAlgo.cpp index 4aed2b3c..4fb16c74 100644 --- a/src/crypto/rx/RxAlgo.cpp +++ b/src/crypto/rx/RxAlgo.cpp @@ -37,7 +37,7 @@ xmrig::Algorithm::Id xmrig::RxAlgo::apply(Algorithm::Id algorithm) } -RandomX_ConfigurationBase *xmrig::RxAlgo::base(Algorithm::Id algorithm) +const RandomX_ConfigurationBase *xmrig::RxAlgo::base(Algorithm::Id algorithm) { switch (algorithm) { case Algorithm::RX_WOW: diff --git a/src/crypto/rx/RxAlgo.h b/src/crypto/rx/RxAlgo.h index 3d838950..00c44ece 100644 --- a/src/crypto/rx/RxAlgo.h +++ b/src/crypto/rx/RxAlgo.h @@ -46,7 +46,7 @@ class RxAlgo { public: static Algorithm::Id apply(Algorithm::Id algorithm); - static RandomX_ConfigurationBase *base(Algorithm::Id algorithm); + static const RandomX_ConfigurationBase *base(Algorithm::Id algorithm); static uint32_t programCount(Algorithm::Id algorithm); static uint32_t programIterations(Algorithm::Id algorithm); static uint32_t programSize(Algorithm::Id algorithm);