diff --git a/xmrstak/backend/amd/amd_gpu/gpu.cpp b/xmrstak/backend/amd/amd_gpu/gpu.cpp index 8de8d7b3ad14bb913f6e58a0f47a39f17b84afc2..a439e71e18407d04c5492b0c41d4617fcaa5abff 100644 --- a/xmrstak/backend/amd/amd_gpu/gpu.cpp +++ b/xmrstak/backend/amd/amd_gpu/gpu.cpp @@ -334,6 +334,12 @@ size_t InitOpenCLGpu(cl_context opencl_ctx, GpuContext* ctx, const char* source_ */ options += " -DOPENCL_DRIVER_MAJOR=" + std::to_string(std::stoi(openCLDriverVer.data()) / 100); + uint32_t isWindowsOs = 0; +#ifdef _WIN32 + isWindowsOs = 1; +#endif + options += " -DIS_WINDOWS_OS=" + std::to_string(isWindowsOs); + if(miner_algo == cryptonight_gpu) options += " -cl-fp32-correctly-rounded-divide-sqrt"; diff --git a/xmrstak/backend/amd/amd_gpu/opencl/cryptonight.cl b/xmrstak/backend/amd/amd_gpu/opencl/cryptonight.cl index 4b1016acfe86197315d5d53e09b9a0e1c1f48387..0e08d00a70373a7657068ab148812768e5df6e21 100644 --- a/xmrstak/backend/amd/amd_gpu/opencl/cryptonight.cl +++ b/xmrstak/backend/amd/amd_gpu/opencl/cryptonight.cl @@ -1366,7 +1366,7 @@ __kernel void Groestl(__global ulong *states, __global uint *BranchBuf, __global states += 25 * BranchBuf[idx]; ulong State[8] = { 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0x0001000000000000UL }; -#if defined(__clang__) && !defined(__NV_CL_C_VERSION) +#if defined(__clang__) && !defined(__NV_CL_C_VERSION) && (IS_WINDOWS_OS != 1) // on ROCM we need volatile for AMD RX5xx cards to avoid invalid shares volatile #endif