<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
Hi Lothian,
<div class="">Thanks for testing out out driver!</div>
<div class=""><span style="color: rgb(36, 41, 46); font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class="">Officially we recommend you to stick to GCC5 for now, however, we do have a fix for the constexpr issue
 mentioned below that just didn’t make it to this first release.</span></div>
<div class="">According to your diff, are you using ICC?</div>
<div class="">Could you let us know the compiler version as well as your distro?</div>
<div class=""><br class="">
</div>
<div class="">Thanks.</div>
<div class="">Best Regards,</div>
<div class="">David<br class="">
<div><br class="">
<blockquote type="cite" class="">
<div class="">On Dec 22, 2017, at 9:48 PM, Mike Lothian <<a href="mailto:mike@fireburn.co.uk" class="">mike@fireburn.co.uk</a>> wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div dir="ltr" class="">Congratulations on getting this out the door
<div class=""><br class="">
</div>
<div class="">It didn't compile for me without these changes:</div>
<div class=""><br class="">
</div>
<div class="">In pal:</div>
<div class=""><br class="">
</div>
<div class="">
<div class="">diff --git a/src/util/math.cpp b/src/util/math.cpp</div>
<div class="">index 46e9ede..3af4259 100644</div>
<div class="">--- a/src/util/math.cpp</div>
<div class="">+++ b/src/util/math.cpp</div>
<div class="">@@ -54,7 +54,7 @@ static uint32 Float32ToFloatN(float f, const NBitFloatInfo& info);</div>
<div class=""> static float FloatNToFloat32(uint32 fBits, const NBitFloatInfo& info);</div>
<div class=""><br class="">
</div>
<div class=""> // Initialize the descriptors for various N-bit floating point representations:</div>
<div class="">-static constexpr NBitFloatInfo Float16Info =</div>
<div class="">+static NBitFloatInfo Float16Info =</div>
<div class=""> {</div>
<div class="">     16,                                                       // numBits</div>
<div class="">     10,                                                       // numFracBits</div>
<div class="">@@ -72,7 +72,7 @@ static constexpr NBitFloatInfo Float16Info =</div>
<div class="">     (23 - 10),                                                // fracBitsDiff</div>
<div class=""> };</div>
<div class=""><br class="">
</div>
<div class="">-static constexpr NBitFloatInfo Float11Info =</div>
<div class="">+static NBitFloatInfo Float11Info =</div>
<div class=""> {</div>
<div class="">     11,                                                       // numBits</div>
<div class="">     6,                                                        // numFracBits</div>
<div class="">@@ -90,7 +90,7 @@ static constexpr NBitFloatInfo Float11Info =</div>
<div class="">     23 - 6,                                                   // fracBitsDiff</div>
<div class=""> };</div>
<div class=""><br class="">
</div>
<div class="">-static constexpr NBitFloatInfo Float10Info =</div>
<div class="">+static NBitFloatInfo Float10Info =</div>
<div class=""> {</div>
<div class="">     10,                                                       // numBits</div>
<div class="">     5,                                                        // numFracBits</div>
</div>
<div class=""><br class="">
</div>
<div class="">In xgl:</div>
<div class=""><br class="">
</div>
<div class="">
<div class="">diff --git a/icd/CMakeLists.txt b/icd/CMakeLists.txt</div>
<div class="">index 4e4d669..5006184 100644</div>
<div class="">--- a/icd/CMakeLists.txt</div>
<div class="">+++ b/icd/CMakeLists.txt</div>
<div class="">@@ -503,16 +503,16 @@ if (UNIX)</div>
<div class=""><br class="">
</div>
<div class="">     target_link_libraries(xgl PRIVATE c stdc++ ${CMAKE_DL_LIBS} pthread)</div>
<div class=""><br class="">
</div>
<div class="">-    if(NOT ICD_USE_GCC)</div>
<div class="">-        message(WARNING "Intel ICC untested in CMake.")</div>
<div class="">-        target_link_libraries(xgl PRIVATE -fabi-version=0 -static-intel)</div>
<div class="">-    endif()</div>
<div class="">+    #if(NOT ICD_USE_GCC)</div>
<div class="">+    #    message(WARNING "Intel ICC untested in CMake.")</div>
<div class="">+    #    target_link_libraries(xgl PRIVATE -fabi-version=0 -static-intel)</div>
<div class="">+    #endif()</div>
<div class=""><br class="">
</div>
<div class="">     if(CMAKE_BUILD_TYPE_RELEASE)</div>
<div class="">         if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")</div>
<div class="">             execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)</div>
<div class="">             if (GCC_VERSION VERSION_GREATER 5.3 OR GCC_VERSION VERSION_EQUAL 5.3)</div>
<div class="">-                target_link_libraries(xgl PRIVATE -flto=4  -fuse-linker-plugin -Wno-odr)</div>
<div class="">+                target_link_libraries(xgl PRIVATE -Wno-odr)</div>
<div class="">                 message(WARNING "LTO enabled for Linking")</div>
<div class="">             endif()</div>
<div class="">         endif()</div>
<div class="">@@ -530,17 +530,17 @@ if (UNIX)</div>
<div class=""><br class="">
</div>
<div class="">     # CMAKE-TODO: What is whole-archive used for?</div>
<div class="">     #target_link_libraries(xgl -Wl,--whole-archive ${ICD_LIBS} -Wl,--no-whole-archive)</div>
<div class="">-    if(CMAKE_BUILD_TYPE_RELEASE)</div>
<div class="">-        execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)</div>
<div class="">-        if (GCC_VERSION VERSION_GREATER 5.3 OR GCC_VERSION VERSION_EQUAL 5.3)</div>
<div class="">-            target_link_libraries(xgl PRIVATE -Wl,--whole-archive ${PROJECT_BINARY_DIR}/pal/src/libpal.a -Wl,--no-whole-archive)</div>
<div class="">-            target_link_libraries(xgl PUBLIC -Wl,--whole-archive ${PROJECT_BINARY_DIR}/pal/metrohash/libmetrohash.a -Wl,--no-whole-archive)</div>
<div class="">-            target_link_libraries(xgl PUBLIC -Wl,--whole-archive ${PROJECT_BINARY_DIR}/pal/gpuopen/libgpuopen.a -Wl,--no-whole-archive)</div>
<div class="">-            target_link_libraries(xgl PUBLIC -Wl,--whole-archive ${PROJECT_BINARY_DIR}/pal/vam/libvam.a -Wl,--no-whole-archive)</div>
<div class="">-            target_link_libraries(xgl PUBLIC -Wl,--whole-archive ${PROJECT_BINARY_DIR}/pal/addrlib/libaddrlib.a -Wl,--no-whole-archive)</div>
<div class="">-            target_link_libraries(xgl PUBLIC -Wl,--whole-archive ${PROJECT_BINARY_DIR}/pal/jemalloc/libjemalloc.a -Wl,--no-whole-archive)</div>
<div class="">-        endif()</div>
<div class="">-    endif()</div>
<div class="">+    #if(CMAKE_BUILD_TYPE_RELEASE)</div>
<div class="">+    #    execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)</div>
<div class="">+    #    if (GCC_VERSION VERSION_GREATER 5.3 OR GCC_VERSION VERSION_EQUAL 5.3)</div>
<div class="">+    #        target_link_libraries(xgl PRIVATE -Wl,--whole-archive ${PROJECT_BINARY_DIR}/pal/src/libpal.a -Wl,--no-whole-archive)</div>
<div class="">+    #        target_link_libraries(xgl PUBLIC -Wl,--whole-archive ${PROJECT_BINARY_DIR}/pal/metrohash/libmetrohash.a -Wl,--no-whole-archive)</div>
<div class="">+    #        target_link_libraries(xgl PUBLIC -Wl,--whole-archive ${PROJECT_BINARY_DIR}/pal/gpuopen/libgpuopen.a -Wl,--no-whole-archive)</div>
<div class="">+    #        target_link_libraries(xgl PUBLIC -Wl,--whole-archive ${PROJECT_BINARY_DIR}/pal/vam/libvam.a -Wl,--no-whole-archive)</div>
<div class="">+    #        target_link_libraries(xgl PUBLIC -Wl,--whole-archive ${PROJECT_BINARY_DIR}/pal/addrlib/libaddrlib.a -Wl,--no-whole-archive)</div>
<div class="">+    #        target_link_libraries(xgl PUBLIC -Wl,--whole-archive ${PROJECT_BINARY_DIR}/pal/jemalloc/libjemalloc.a -Wl,--no-whole-archive)</div>
<div class="">+    #    endif()</div>
<div class="">+    #endif()</div>
<div class=""><br class="">
</div>
<div class="">     #${ICD_TARGET}.so${SO_VERSION_NUMBER} : ${filter-out -Wl%,$(LLLIBS})</div>
<div class="">
<div class=""><br class="">
</div>
<div class=""><br class="">
</div>
<div class="">diff --git a/icd/api/llpc/util/llpcDebug.cpp b/icd/api/llpc/util/llpcDebug.cpp</div>
<div class="">index 1273cd6..847786e 100644</div>
<div class="">--- a/icd/api/llpc/util/llpcDebug.cpp</div>
<div class="">+++ b/icd/api/llpc/util/llpcDebug.cpp</div>
<div class="">@@ -113,7 +113,7 @@ bool EnableErrs()</div>
<div class=""> // Translates enum "ResourceMappingNodeType" to string and output to ostream.</div>
<div class=""> raw_ostream& operator<<(</div>
<div class="">     raw_ostream&                       out,   // [out] Output stream</div>
<div class="">-    enum class ResourceMappingNodeType type)  // Resource map node type</div>
<div class="">+    enum ResourceMappingNodeType type)  // Resource map node type</div>
<div class=""> {</div>
<div class="">     const char* pString = nullptr;</div>
<div class="">     switch (type)</div>
</div>
</div>
<div class=""><br class="">
</div>
<div class=""><br class="">
</div>
</div>
</div>
</blockquote>
</div>
<br class="">
</div>
</body>
</html>