vk-gl-cts: Fix build with GCC 11

Add patches to fix with c++17
Forward port musl patch

Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Khem Raj 2021-04-29 16:42:03 -07:00
parent a31bb84e32
commit 7f0fced7c4
8 changed files with 189 additions and 60 deletions

View File

@ -1,28 +0,0 @@
From f9906a3a1b7f1ade7a6c4e1a8aa67cb3a5e663a9 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 3 Mar 2021 11:33:15 -0800
Subject: [PATCH] Do not error on uninitialized warnings
code in verifier.cc violates C/C++ aliasing rules so code should be
perhaps changed to use a union
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
external/amber/src/CMakeLists.txt | 1 +
1 file changed, 1 insertion(+)
diff --git a/external/amber/src/CMakeLists.txt b/external/amber/src/CMakeLists.txt
index 80a0df7..4323c81 100644
--- a/external/amber/src/CMakeLists.txt
+++ b/external/amber/src/CMakeLists.txt
@@ -133,6 +133,7 @@ elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
-Werror
-Wextra
-Wno-unknown-pragmas
+ -Wno-error=uninitialized
-Wpedantic
-pedantic-errors)
elseif(MSVC)
--
2.30.1

View File

@ -0,0 +1,88 @@
From aec0be857ed3faef8802c7fd61f3d7798a565108 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 29 Apr 2021 16:03:42 -0700
Subject: [PATCH] Include <limits> header for numeric_limits
Fixes
vulkancts/framework/vulkan/vkRayTracingUtil.hpp:116:32: error: 'numeric_limits' is not a member of 'std'
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
framework/vulkan/vkRayTracingUtil.hpp | 1 +
modules/vulkan/api/vktApiBufferTests.cpp | 1 +
modules/vulkan/spirv_assembly/vktSpvAsmNonSemanticInfoTests.cpp | 2 ++
3 files changed, 4 insertions(+)
--- a/framework/vulkan/vkRayTracingUtil.hpp
+++ b/framework/vulkan/vkRayTracingUtil.hpp
@@ -33,6 +33,7 @@
#include "tcuVector.hpp"
#include "tcuVectorType.hpp"
+#include <limits>
#include <vector>
namespace vk
--- a/modules/vulkan/api/vktApiBufferTests.cpp
+++ b/modules/vulkan/api/vktApiBufferTests.cpp
@@ -35,6 +35,7 @@
#include "tcuPlatform.hpp"
#include <algorithm>
+#include <limits>
namespace vkt
{
--- a/modules/vulkan/spirv_assembly/vktSpvAsmNonSemanticInfoTests.cpp
+++ b/modules/vulkan/spirv_assembly/vktSpvAsmNonSemanticInfoTests.cpp
@@ -28,6 +28,8 @@
#include "vktSpvAsmComputeShaderCase.hpp"
#include "vktSpvAsmGraphicsShaderTestUtil.hpp"
+#include <limits>
+
namespace vkt
{
namespace SpirVAssembly
--- a/modules/vulkan/memory/vktMemoryDeviceMemoryReportTests.cpp
+++ b/modules/vulkan/memory/vktMemoryDeviceMemoryReportTests.cpp
@@ -40,6 +40,7 @@
#include "deSharedPtr.hpp"
+#include <limits>
#include <set>
#include <vector>
--- a/modules/vulkan/draw/vktDrawDepthClampTests.cpp
+++ b/modules/vulkan/draw/vktDrawDepthClampTests.cpp
@@ -38,6 +38,7 @@
#include "vkQueryUtil.hpp"
#include "tcuTextureUtil.hpp"
+#include <limits>
#include <cmath>
namespace vkt
--- a/modules/vulkan/wsi/vktWsiFullScreenExclusiveTests.cpp
+++ b/modules/vulkan/wsi/vktWsiFullScreenExclusiveTests.cpp
@@ -39,6 +39,8 @@
#include "tcuPlatform.hpp"
#include "tcuCommandLine.hpp"
+#include <limits>
+
#if ( DE_OS == DE_OS_WIN32 )
#define NOMINMAX
#define WIN32_LEAN_AND_MEAN
--- a/modules/vulkan/synchronization/vktSynchronizationUtil.cpp
+++ b/modules/vulkan/synchronization/vktSynchronizationUtil.cpp
@@ -21,6 +21,7 @@
* \brief Synchronization tests utilities
*//*--------------------------------------------------------------------*/
+#include <limits>
#include "vktSynchronizationUtil.hpp"
#include "vkTypeUtil.hpp"
#include "vkCmdUtil.hpp"

View File

@ -0,0 +1,73 @@
From 9cd614dd5481a4fdf552effac4820f51a10092c7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mika=20V=C3=A4in=C3=B6l=C3=A4?=
<33728696+mvainola@users.noreply.github.com>
Date: Wed, 7 Apr 2021 13:12:17 +0300
Subject: [PATCH] Workaround for GCC 11 uninit variable warnings (#946)
Building Amber with GCC 11.0.1 produces some uninitialized variable
warnings. This commit works around them by replacing
reinterpret_cast with memcpy when type punning unsigned integers to
floats.
Upstream-Status: Backport [https://github.com/google/amber/commit/aa69a0ac23ea7f68dd32bbef210546a5d84c1734]
---
src/float16_helper.cc | 22 ++++++++++++++++------
1 file changed, 16 insertions(+), 6 deletions(-)
diff --git a/src/float16_helper.cc b/src/float16_helper.cc
index 617bd72..5cb35e7 100644
--- a/src/float16_helper.cc
+++ b/src/float16_helper.cc
@@ -15,6 +15,7 @@
#include "src/float16_helper.h"
#include <cassert>
+#include <cstring>
// Float10
// | 9 8 7 6 5 | 4 3 2 1 0 |
@@ -75,8 +76,11 @@ float HexFloat16ToFloat(const uint8_t* value) {
}
uint32_t hex = sign | exponent | mantissa;
- float* hex_float = reinterpret_cast<float*>(&hex);
- return *hex_float;
+ float hex_float;
+ static_assert((sizeof(uint32_t) == sizeof(float)),
+ "sizeof(uint32_t) != sizeof(float)");
+ memcpy(&hex_float, &hex, sizeof(float));
+ return hex_float;
}
// Convert float |value| whose size is 11 bits to 32 bits float
@@ -89,8 +93,11 @@ float HexFloat11ToFloat(const uint8_t* value) {
uint32_t mantissa = (static_cast<uint32_t>(value[0]) & 0x3f) << 17U;
uint32_t hex = exponent | mantissa;
- float* hex_float = reinterpret_cast<float*>(&hex);
- return *hex_float;
+ float hex_float;
+ static_assert((sizeof(uint32_t) == sizeof(float)),
+ "sizeof(uint32_t) != sizeof(float)");
+ memcpy(&hex_float, &hex, sizeof(float));
+ return hex_float;
}
// Convert float |value| whose size is 10 bits to 32 bits float
@@ -103,8 +110,11 @@ float HexFloat10ToFloat(const uint8_t* value) {
uint32_t mantissa = (static_cast<uint32_t>(value[0]) & 0x1f) << 18U;
uint32_t hex = exponent | mantissa;
- float* hex_float = reinterpret_cast<float*>(&hex);
- return *hex_float;
+ float hex_float;
+ static_assert((sizeof(uint32_t) == sizeof(float)),
+ "sizeof(uint32_t) != sizeof(float)");
+ memcpy(&hex_float, &hex, sizeof(float));
+ return hex_float;
}
} // namespace
--
2.31.1

View File

@ -1,7 +1,5 @@
Index: git/external/glslang/src/glslang/Include/PoolAlloc.h
===================================================================
--- git.orig/external/glslang/src/glslang/Include/PoolAlloc.h
+++ git/external/glslang/src/glslang/Include/PoolAlloc.h
--- a/external/glslang/src/glslang/Include/PoolAlloc.h
+++ b/external/glslang/src/glslang/Include/PoolAlloc.h
@@ -240,8 +240,9 @@ protected:
int numCalls; // just an interesting statistic

View File

@ -1,19 +1,15 @@
Index: git/framework/delibs/dethread/CMakeLists.txt
===================================================================
--- git.orig/framework/delibs/dethread/CMakeLists.txt
+++ git/framework/delibs/dethread/CMakeLists.txt
@@ -39,6 +39,7 @@ include_directories(
if (DE_OS_IS_UNIX)
add_definitions(-D_GNU_SOURCE)
--- a/framework/delibs/dethread/CMakeLists.txt
+++ b/framework/delibs/dethread/CMakeLists.txt
@@ -42,6 +42,7 @@ if (DE_OS_IS_UNIX)
add_definitions(-D__BSD_VISIBLE)
add_definitions(-D_XOPEN_SOURCE=600)
endif ()
+ add_definitions(-D_XOPEN_SOURCE=600)
set(DETHREAD_LIBS ${DETHREAD_LIBS} pthread)
endif ()
add_definitions(-D_GNU_SOURCE)
Index: git/framework/qphelper/CMakeLists.txt
===================================================================
--- git.orig/framework/qphelper/CMakeLists.txt
+++ git/framework/qphelper/CMakeLists.txt
set(DETHREAD_LIBS ${DETHREAD_LIBS} pthread)
--- a/framework/qphelper/CMakeLists.txt
+++ b/framework/qphelper/CMakeLists.txt
@@ -28,6 +28,7 @@ set(QPHELPER_LIBS
if (DE_OS_IS_UNIX OR DE_OS_IS_QNX)
# For vsnprintf()

View File

@ -22,6 +22,10 @@ REQUIRED_DISTRO_FEATURES += "opengl"
DEPENDS += "libpng zlib virtual/libgles2 virtual/egl"
SRC_URI += "file://0001-Workaround-for-GCC-11-uninit-variable-warnings-946.patch;patchdir=external/amber/src \
file://0001-Include-limits-header-for-numeric_limits.patch;patchdir=external/vulkancts \
"
SRC_URI_append_libc-musl = "\
file://fix-musl.patch \
"

View File

@ -1,16 +1,14 @@
DESCRIPTION = "OpenGL CTS"
require khronos-cts.inc
# opengl-es-cts-3.2.6.1
SRCREV_vk-gl-cts = "7e023f81b4fff54b558882fe739d7c959d0a02a8"
SRCREV_amber = "d26ee22dd7faab1845a531d410f7ec1db407402a"
SRCREV_glslang = "c538b5d796fb24dd418fdd650c7f76e56bcc3dd8"
SRCREV_spirv-headers = "e4322e3be589e1ddd44afb20ea842a977c1319b8"
SRCREV_spirv-tools = "1eb89172a82b436d8037e8a8c29c80f7e1f7df74"
# opengl-es-cts-3.2.7.0
SRCREV_vk-gl-cts = "7cba7113c40f2ff03573c8c2c90661b2249e04fa"
SRCREV_amber = "4d0115cccfcb3b73d20b6513b1c40748e6403c50"
SRCREV_glslang = "ffccefddfd9a02ec0c0b6dd04ef5e1042279c97f"
SRCREV_spirv-headers = "104ecc356c1bea4476320faca64440cd1df655a3"
SRCREV_spirv-tools = "cd590fa3341284cd6d1ee82366155786cfd44c96"
SRC_URI[renderdoc.sha256sum] = "e7b5f0aa5b1b0eadc63a1c624c0ca7f5af133aa857d6a4271b0ef3d0bdb6868e"
SRC_URI += "file://0001-Do-not-error-on-uninitialized-warnings.patch"
S = "${WORKDIR}/git"
do_install() {

View File

@ -1,12 +1,12 @@
DESCRIPTION = "Vulkan CTS"
require khronos-cts.inc
# vulkan-cts-1.2.3.2
SRCREV_vk-gl-cts = "5cd2240b60825fbbf6bd9ddda6af176ee3100c70"
SRCREV_amber = "a40bef4dba98d2d80b48e5a940d8574fbfceb197"
SRCREV_glslang = "b5f003d7a3ece37db45578a8a3140b370036fc64"
SRCREV_spirv-headers = "f8bf11a0253a32375c32cad92c841237b96696c0"
SRCREV_spirv-tools = "d2b486219495594f2e5d0e8d457fc234a3460b3b"
# vulkan-cts-1.2.6.0
SRCREV_vk-gl-cts = "2cab49df5ad25a2d0061152367a21c6da83ed097"
SRCREV_amber = "dabae26164714abf951c6815a2b4513260f7c6a4"
SRCREV_glslang = "5c4f421121c4d24aad23a507e630dc5dc6c92c7c"
SRCREV_spirv-headers = "faa570afbc91ac73d594d787486bcf8f2df1ace0"
SRCREV_spirv-tools = "f11f7434815838bbad349124767b258ce7df41f0"
SRC_URI[renderdoc.sha256sum] = "e7b5f0aa5b1b0eadc63a1c624c0ca7f5af133aa857d6a4271b0ef3d0bdb6868e"
S = "${WORKDIR}/git"