diff --git a/common/cputypes.h b/common/cputypes.h index 8839f24ec..678f5792e 100644 --- a/common/cputypes.h +++ b/common/cputypes.h @@ -106,7 +106,9 @@ #if defined(_WIN64) #define CLIENT_OS OS_WIN64 #define CLIENT_OS_NAME "Win64" - #if defined(_M_AMD64) + #if defined(OPENCL) + #define CLIENT_CPU CPU_OPENCL + #elif defined(_M_AMD64) #define CLIENT_CPU CPU_AMD64 #elif defined(_M_IA64) #define CLIENT_CPU CPU_IA64 diff --git a/common/problem.cpp b/common/problem.cpp index 2cda68d5c..728956762 100644 --- a/common/problem.cpp +++ b/common/problem.cpp @@ -86,8 +86,7 @@ static unsigned int __problem_counter = 0; */ /* ------------------------------------------------------------------- */ - -#if (SIZEOF_LONG == 8) /* SIZEOF_LONG is defined in cputypes.h */ +#if (SIZEOF_LONG == 8 || (CLIENT_OS == OS_WIN64 && CLIENT_CPU == CPU_OPENCL)) /* SIZEOF_LONG is defined in cputypes.h */ # include "pack8.h" #else # include "pack4.h" diff --git a/makefile.vc b/makefile.vc index 257e85911..78567dee2 100644 --- a/makefile.vc +++ b/makefile.vc @@ -7,7 +7,8 @@ #PROCESSOR_ARCHITECTURE = AMD64 #PROCESSOR_ARCHITECTURE = cuda #PROCESSOR_ARCHITECTURE = ATI_STREAM -#PROCESSOR_ARCHITECTURE = OPENCL +#PROCESSOR_ARCHITECTURE = OPENCL32 +#PROCESSOR_ARCHITECTURE = OPENCL64 #PROCESSOR_ARCHITECTURE = arm BASENAME = dnetc @@ -62,12 +63,18 @@ OPTS_M_PLAT = IX86 CHIPSRCPATH = plat #CHIPSRCPATH = plat/$(PROCESSOR_ARCHITECTURE) ZIPSUFFIX = win32-x86-stream -!elseif "$(PROCESSOR_ARCHITECTURE)" == "OPENCL" +!elseif "$(PROCESSOR_ARCHITECTURE)" == "OPENCL32" HAVE_OGR_CORES = 0 OPTS_CC_CPU = OPTS_M_PLAT = IX86 CHIPSRCPATH = plat ZIPSUFFIX = win32-x86-opencl +!elseif "$(PROCESSOR_ARCHITECTURE)" == "OPENCL64" +HAVE_OGR_CORES = 0 +OPTS_CC_CPU = +OPTS_M_PLAT = AMD64 +CHIPSRCPATH = plat +ZIPSUFFIX = win64-amd64-opencl !elseif "$(PROCESSOR_ARCHITECTURE)" == "arm" HAVE_OGR_CORES = 0 OPTS_CC_CPU = /D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE=1 @@ -220,12 +227,18 @@ ZIPEXTRAS = $(ZIPEXTRAS) docs\readme.stream # OpenCL support -!if "$(PROCESSOR_ARCHITECTURE)" == "OPENCL" +!if "$(PROCESSOR_ARCHITECTURE)" == "OPENCL32" OPTS_MSVC = $(OPTS_MSVC) -I"$(OPENCLDIR)include" -Iplat\opencl -Iplat\x86 OPTS_LIBS = $(OPTS_LIBS) "$(OPENCLDIR)lib\x86\OpenCL.lib" ZIPEXTRAS = $(ZIPEXTRAS) docs\readme.opencl !endif +!if "$(PROCESSOR_ARCHITECTURE)" == "OPENCL64" +OPTS_MSVC = $(OPTS_MSVC) -I"$(OPENCLDIR)include" -Iplat\opencl -Iplat\amd64 +OPTS_LIBS = $(OPTS_LIBS) "$(OPENCLDIR)lib\x86_64\opencl.lib" +ZIPEXTRAS = $(ZIPEXTRAS) docs\readme.opencl +!endif + # -------------------------------------------- all: $(BASENAME).exe $(BASENAME).com $(BASENAME).scr @@ -406,7 +419,7 @@ RC5_72_OBJS = \ $(OUTPUTPATH)/adl.obj OPTS_MSVC = $(OPTS_MSVC) -DHAVE_RC5_72_CORES -DATI_STREAM -DDYN_TIMESLICE -!elseif "$(PROCESSOR_ARCHITECTURE)" == "OPENCL" +!elseif "$(PROCESSOR_ARCHITECTURE)" == "OPENCL32" || "$(PROCESSOR_ARCHITECTURE)" == "OPENCL64" RC5_72_OBJS = \ $(OUTPUTPATH)/ocl_info.obj \ $(OUTPUTPATH)/ocl_setup.obj \ @@ -599,7 +612,7 @@ $(VC_CHECK): {$(RC572SRCPATH)/stream}.cpp{$(OUTPUTPATH)}.obj:: cl -c $(OPTS_MSVC) -Ox -Fo$(OUTPUTPATH)\ $< -!elseif "$(PROCESSOR_ARCHITECTURE)" == "OPENCL" +!elseif "$(PROCESSOR_ARCHITECTURE)" == "OPENCL32" {$(CHIPSRCPATH)/x86}.asm{$(OUTPUTPATH)}.obj: nasmw -o $(@:/=\) -f win32 -i $(CHIPSRCPATH:/=\) $(**:/=\) @@ -613,6 +626,20 @@ $(VC_CHECK): {$(RC572SRCPATH)/opencl}.cpp{$(OUTPUTPATH)}.obj:: cl -c -O2 $(OPTS_MSVC) -Fo$(OUTPUTPATH)\ $< +!elseif "$(PROCESSOR_ARCHITECTURE)" == "OPENCL64" + +{$(CHIPSRCPATH)/amd64}.asm{$(OUTPUTPATH)}.obj: + nasmw -o $(@:/=\) -f win64 -i $(CHIPSRCPATH:/=\) $(**:/=\) + +{$(CHIPSRCPATH)/amd64}.cpp{$(OUTPUTPATH)}.obj:: + cl -c $(OPTS_MSVC) -Ox -Fo$(OUTPUTPATH)\ $< + +{$(CHIPSRCPATH)/opencl}.cpp{$(OUTPUTPATH)}.obj:: + cl -c $(OPTS_MSVC) -Ox -Fo$(OUTPUTPATH)\ $< + +{$(RC572SRCPATH)/opencl}.cpp{$(OUTPUTPATH)}.obj:: + cl -c -O2 $(OPTS_MSVC) -Fo$(OUTPUTPATH)\ $< + !elseif "$(PROCESSOR_ARCHITECTURE)" == "arm" {$(RC572SRCPATH)/arm}.asm{$(OUTPUTPATH)}.obj: