瀏覽代碼

Fix compilation with MinGW. Some AMD fixes

Panagiotis Christopoulos Charitos 8 年之前
父節點
當前提交
d7884f1e03

+ 10 - 10
CMakeLists.txt

@@ -106,8 +106,16 @@ set(CXX_FLAGS "")
 set(COMPILER_FLAGS "")
 set(COMPILER_FLAGS "")
 set(LINKER_FLAGS "")
 set(LINKER_FLAGS "")
 
 
+add_definitions(-D_NEWTON_STATIC_LIB -D_CUSTOM_JOINTS_STATIC_LIB -D_POSIX_VER)
+if(MINGW)
+	add_definitions(-D_MINGW_64_VER) # Newton wants that
+endif()
+add_definitions(-DGLEW_NO_GLU)
+add_definitions(-DSPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS)
+add_definitions(-DANKI_BUILD)
+
 # When building AnKi define this special flag
 # When building AnKi define this special flag
-set(COMPILER_FLAGS "${COMPILER_FLAGS} -DANKI_BUILD -fPIC ")
+set(COMPILER_FLAGS "${COMPILER_FLAGS} -fPIC ")
 
 
 if(NOT ANKI_CPU_ADDR_SPACE STREQUAL "0")
 if(NOT ANKI_CPU_ADDR_SPACE STREQUAL "0")
 	set(LINKER_FLAGS "${LINKER_FLAGS} -m${ANKI_CPU_ADDR_SPACE} ")
 	set(LINKER_FLAGS "${LINKER_FLAGS} -m${ANKI_CPU_ADDR_SPACE} ")
@@ -138,9 +146,6 @@ if(ANKI_STRIP)
 	set(COMPILER_FLAGS "${COMPILER_FLAGS} -s ")
 	set(COMPILER_FLAGS "${COMPILER_FLAGS} -s ")
 endif()
 endif()
 
 
-add_definitions(-DGLEW_NO_GLU)
-add_definitions(-DSPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS)
-
 if(${CMAKE_BUILD_TYPE} STREQUAL "Release")
 if(${CMAKE_BUILD_TYPE} STREQUAL "Release")
 	set(COMPILER_FLAGS "${COMPILER_FLAGS} -O3 -DNDEBUG ")
 	set(COMPILER_FLAGS "${COMPILER_FLAGS} -O3 -DNDEBUG ")
 
 
@@ -177,7 +182,7 @@ message("++ Lib install dir: ${LIB_INSTALL_DIR}")
 ################################################################################
 ################################################################################
 # Thirdparty                                                                   #
 # Thirdparty                                                                   #
 ################################################################################
 ################################################################################
-set(ANKI_EXTERN_SUB_DIRS tinyxml2 lua z)
+set(ANKI_EXTERN_SUB_DIRS tinyxml2 lua z newton)
 
 
 if((LINUX OR MACOS OR WINDOWS) AND GL)
 if((LINUX OR MACOS OR WINDOWS) AND GL)
 	set(ANKI_EXTERN_SUB_DIRS ${ANKI_EXTERN_SUB_DIRS} GLEW)
 	set(ANKI_EXTERN_SUB_DIRS ${ANKI_EXTERN_SUB_DIRS} GLEW)
@@ -204,11 +209,6 @@ else()
 	set(SDL2_INCLUDE_DIRS "")
 	set(SDL2_INCLUDE_DIRS "")
 endif()
 endif()
 
 
-# Newton
-message("++ Configuring Newton")
-add_subdirectory(thirdparty/newton)
-message("++ End configuring Newton")
-
 # freetype
 # freetype
 message("++ Configuring freetype")
 message("++ Configuring freetype")
 add_subdirectory(thirdparty/freetype)
 add_subdirectory(thirdparty/freetype)

+ 1 - 1
shaders/Pps.frag.glsl

@@ -150,7 +150,7 @@ void main()
 	out_color = colorGrading(out_color);
 	out_color = colorGrading(out_color);
 
 
 #if BLUE_NOISE
 #if BLUE_NOISE
-	vec3 blueNoise = texture(u_blueNoise, vec3(FB_SIZE / vec2(64.0) * uv, u_blueNoiseLayerPad3.x), 0.0).rgb;
+	vec3 blueNoise = textureLod(u_blueNoise, vec3(FB_SIZE / vec2(64.0) * uv, u_blueNoiseLayerPad3.x), 0.0).rgb;
 	blueNoise = blueNoise * 2.0 - 1.0;
 	blueNoise = blueNoise * 2.0 - 1.0;
 	blueNoise = sign(blueNoise) * (1.0 - sqrt(1.0 - abs(blueNoise)));
 	blueNoise = sign(blueNoise) * (1.0 - sqrt(1.0 - abs(blueNoise)));
 
 

+ 7 - 1
src/anki/gr/common/Misc.cpp

@@ -38,7 +38,13 @@ void logShaderErrorCode(const CString& error, const CString& source, GenericMemo
 		prettySrc.append(tmp);
 		prettySrc.append(tmp);
 	}
 	}
 
 
-	ANKI_LOGE("Shader compilation failed:\n%s\n%s\n%s\n%s", padding, &error[0], padding, &prettySrc[0]);
+	ANKI_LOGE("Shader compilation failed:\n%s\n%s\n%s\n%s\n%s\n%s",
+		padding,
+		&error[0],
+		padding,
+		&prettySrc[0],
+		padding,
+		&error[0]);
 }
 }
 
 
 Bool textureInitInfoValid(const TextureInitInfo& inf)
 Bool textureInitInfoValid(const TextureInitInfo& inf)

+ 4 - 0
src/anki/gr/gl/GlState.cpp

@@ -105,6 +105,10 @@ void GlState::initRenderThread()
 	{
 	{
 		m_gpu = GpuVendor::NVIDIA;
 		m_gpu = GpuVendor::NVIDIA;
 	}
 	}
+	else if(glstr.find("AMD") != CString::NPOS || glstr.find("ATI") != CString::NPOS)
+	{
+		m_gpu = GpuVendor::AMD;
+	}
 	ANKI_GL_LOGI("GPU vendor is %s", &GPU_VENDOR_STR[m_gpu][0]);
 	ANKI_GL_LOGI("GPU vendor is %s", &GPU_VENDOR_STR[m_gpu][0]);
 
 
 // Enable debug messages
 // Enable debug messages

+ 1 - 1
src/anki/gr/gl/RenderingThread.cpp

@@ -150,7 +150,7 @@ void RenderingThread::prepare()
 	// Ignore the first error
 	// Ignore the first error
 	glGetError();
 	glGetError();
 
 
-	ANKI_GL_LOGI("OpenGL async thread started: OpenGL version %s, GLSL version %s",
+	ANKI_GL_LOGI("OpenGL async thread started: OpenGL version \"%s\", GLSL version \"%s\"",
 		reinterpret_cast<const char*>(glGetString(GL_VERSION)),
 		reinterpret_cast<const char*>(glGetString(GL_VERSION)),
 		reinterpret_cast<const char*>(glGetString(GL_SHADING_LANGUAGE_VERSION)));
 		reinterpret_cast<const char*>(glGetString(GL_SHADING_LANGUAGE_VERSION)));
 
 

+ 1 - 1
src/anki/physics/CMakeLists.txt

@@ -2,5 +2,5 @@ file(GLOB ANKI_PHYS_SOURCES *.cpp)
 file(GLOB ANKI_PHYS_HEADERS *.h)
 file(GLOB ANKI_PHYS_HEADERS *.h)
 
 
 add_library(ankiphysics ${ANKI_PHYS_SOURCES} ${ANKI_PHYS_HEADERS})
 add_library(ankiphysics ${ANKI_PHYS_SOURCES} ${ANKI_PHYS_HEADERS})
-target_link_libraries(ankiphysics NewtonStatic dCustomJoints dContainers dMath)
+target_link_libraries(ankiphysics ankinewton)
 
 

+ 1 - 1
src/anki/renderer/Pps.cpp

@@ -112,7 +112,7 @@ Error Pps::run(RenderingContext& ctx)
 				"#define SMAA_ENABLED 1\n"
 				"#define SMAA_ENABLED 1\n"
 				"#define SMAA_RT_METRICS vec4(%f, %f, %f, %f)\n"
 				"#define SMAA_RT_METRICS vec4(%f, %f, %f, %f)\n"
 				"#define SMAA_PRESET_%s\n"
 				"#define SMAA_PRESET_%s\n"
-				"#define FB_SIZE vec2(%uf, %uf)\n",
+				"#define FB_SIZE vec2(float(%u), float(%u))\n",
 				true,
 				true,
 				m_sharpenEnabled,
 				m_sharpenEnabled,
 				m_r->getWidth(),
 				m_r->getWidth(),

+ 1 - 1
src/anki/script/LuaBinder.h

@@ -80,7 +80,7 @@ public:
 	}
 	}
 
 
 private:
 private:
-	static constexpr U64 GC_MASK = 1ul << 63ul;
+	static constexpr U64 GC_MASK = U64(1) << U64(63);
 
 
 	I64 m_sig = 0; ///< Signature to identify the user data.
 	I64 m_sig = 0; ///< Signature to identify the user data.
 
 

+ 1 - 1
thirdparty

@@ -1 +1 @@
-Subproject commit db8b921bac34e1971d59bf390cbbb502410f143b
+Subproject commit 7d364659cff8f251b38a1cf2d0c0f7b77e0f35e3