summaryrefslogtreecommitdiff
path: root/media-gfx/renderdoc/files/renderdoc-1.29-r2-system-glslang.patch
diff options
context:
space:
mode:
Diffstat (limited to 'media-gfx/renderdoc/files/renderdoc-1.29-r2-system-glslang.patch')
-rw-r--r--media-gfx/renderdoc/files/renderdoc-1.29-r2-system-glslang.patch268
1 files changed, 268 insertions, 0 deletions
diff --git a/media-gfx/renderdoc/files/renderdoc-1.29-r2-system-glslang.patch b/media-gfx/renderdoc/files/renderdoc-1.29-r2-system-glslang.patch
new file mode 100644
index 000000000000..287917feb549
--- /dev/null
+++ b/media-gfx/renderdoc/files/renderdoc-1.29-r2-system-glslang.patch
@@ -0,0 +1,268 @@
+From d889c250f9e500c84f34533398e82aa9e5d5a0ae Mon Sep 17 00:00:00 2001
+From: Matthew Smith <matthew@gentoo.org>
+Date: Thu, 2 Nov 2023 18:43:42 +0000
+Subject: [PATCH] system glslang
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -383,7 +383,7 @@
+ endif()
+
+ if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-strict-aliasing")
++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-strict-aliasing")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden -fvisibility-inlines-hidden")
+ if(ENABLE_GGP)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -gline-tables-only -fno-omit-frame-pointer")
+@@ -469,6 +469,17 @@ elseif(UNIX)
+ endif()
+ endif()
+
++# glslang package does not export a -config.cmake file.
++option(GLSLANG_TARGET_DIR "Absolute path to glslangTargets.cmake directory")
++include("${GLSLANG_TARGET_DIR}/OSDependentTargets.cmake")
++include("${GLSLANG_TARGET_DIR}/OGLCompilerTargets.cmake")
++include("${GLSLANG_TARGET_DIR}/HLSLTargets.cmake")
++include("${GLSLANG_TARGET_DIR}/glslangTargets.cmake")
++include("${GLSLANG_TARGET_DIR}/SPIRVTargets.cmake")
++if(NOT TARGET glslang OR NOT TARGET SPIRV)
++ message(FATAL_ERROR "glslang or SPIRV target not found")
++endif()
++
+ add_subdirectory(renderdoc)
+
+ # these variables are handled within the CMakeLists.txt in qrenderdoc,
+--- a/renderdoc/CMakeLists.txt
++++ b/renderdoc/CMakeLists.txt
+@@ -604,7 +604,9 @@ endif()
+ add_library(renderdoc SHARED ${renderdoc_objects})
+ target_compile_definitions(renderdoc ${RDOC_DEFINITIONS})
+ target_include_directories(renderdoc ${RDOC_INCLUDES})
+-target_link_libraries(renderdoc ${RDOC_LIBRARIES})
++target_link_libraries(renderdoc ${RDOC_LIBRARIES} glslang glslang-default-resource-limits SPIRV)
++# Newer versions of glslang require C++17 for std::variant
++set_target_properties(renderdoc PROPERTIES CXX_STANDARD 17 CXX_STANDARD_REQUIRED ON)
+
+ add_dependencies(renderdoc renderdoc_libentry)
+
+--- a/renderdoc/data/glsl_shaders.cpp
++++ b/renderdoc/data/glsl_shaders.cpp
+@@ -26,8 +26,8 @@
+ #include "common/common.h"
+ #include "common/formatting.h"
+ #include "driver/shaders/spirv/glslang_compile.h"
+-#include "glslang/glslang/Public/ResourceLimits.h"
+-#include "glslang/glslang/Public/ShaderLang.h"
++#include <glslang/Public/ResourceLimits.h>
++#include <glslang/Public/ShaderLang.h>
+ #include "os/os_specific.h"
+
+ #define GLSL_HEADERS(HEADER) \
+--- a/renderdoc/driver/gl/gl_shader_refl.cpp
++++ b/renderdoc/driver/gl/gl_shader_refl.cpp
+@@ -26,8 +26,8 @@
+ #include <algorithm>
+ #include <functional>
+ #include "driver/shaders/spirv/glslang_compile.h"
+-#include "glslang/glslang/Public/ResourceLimits.h"
+-#include "glslang/glslang/Public/ShaderLang.h"
++#include <glslang/Public/ResourceLimits.h>
++#include <glslang/Public/ShaderLang.h>
+ #include "gl_driver.h"
+
+ template <>
+--- a/renderdoc/driver/shaders/spirv/CMakeLists.txt
++++ b/renderdoc/driver/shaders/spirv/CMakeLists.txt
+@@ -1,98 +1,3 @@
+-set(glslang_dir ${RDOC_SOURCE_DIR}/3rdparty/glslang)
+-set(glslang_sources
+- ${glslang_dir}/OGLCompilersDLL/InitializeDll.cpp
+- ${glslang_dir}/OGLCompilersDLL/InitializeDll.h
+- ${glslang_dir}/SPIRV/GlslangToSpv.cpp
+- ${glslang_dir}/SPIRV/GlslangToSpv.h
+- ${glslang_dir}/SPIRV/GLSL.std.450.h
+- ${glslang_dir}/SPIRV/GLSL.ext.ARM.h
+- ${glslang_dir}/SPIRV/GLSL.ext.AMD.h
+- ${glslang_dir}/SPIRV/GLSL.ext.EXT.h
+- ${glslang_dir}/SPIRV/GLSL.ext.KHR.h
+- ${glslang_dir}/SPIRV/GLSL.ext.NV.h
+- ${glslang_dir}/SPIRV/NonSemanticDebugPrintf.h
+- ${glslang_dir}/SPIRV/NonSemanticShaderDebugInfo100.h
+- ${glslang_dir}/SPIRV/hex_float.h
+- ${glslang_dir}/SPIRV/InReadableOrder.cpp
+- ${glslang_dir}/SPIRV/Logger.cpp
+- ${glslang_dir}/SPIRV/Logger.h
+- ${glslang_dir}/SPIRV/SpvBuilder.cpp
+- ${glslang_dir}/SPIRV/SpvBuilder.h
+- ${glslang_dir}/SPIRV/SpvTools.cpp
+- ${glslang_dir}/SPIRV/SpvTools.h
+- ${glslang_dir}/SPIRV/SpvPostProcess.cpp
+- ${glslang_dir}/SPIRV/spvIR.h
+- ${glslang_dir}/glslang/GenericCodeGen/CodeGen.cpp
+- ${glslang_dir}/glslang/GenericCodeGen/Link.cpp
+- ${glslang_dir}/glslang/Include/arrays.h
+- ${glslang_dir}/glslang/Include/BaseTypes.h
+- ${glslang_dir}/glslang/Include/Common.h
+- ${glslang_dir}/glslang/Include/ConstantUnion.h
+- ${glslang_dir}/glslang/Include/InfoSink.h
+- ${glslang_dir}/glslang/Include/InitializeGlobals.h
+- ${glslang_dir}/glslang/Include/intermediate.h
+- ${glslang_dir}/glslang/Include/PoolAlloc.h
+- ${glslang_dir}/glslang/Include/ResourceLimits.h
+- ${glslang_dir}/glslang/Include/SpirvIntrinsics.h
+- ${glslang_dir}/glslang/Include/revision.h
+- ${glslang_dir}/glslang/Include/ShHandle.h
+- ${glslang_dir}/glslang/Include/Types.h
+- ${glslang_dir}/glslang/MachineIndependent/Constant.cpp
+- ${glslang_dir}/glslang/MachineIndependent/glslang_tab.cpp
+- ${glslang_dir}/glslang/MachineIndependent/glslang_tab.cpp.h
+- ${glslang_dir}/glslang/MachineIndependent/gl_types.h
+- ${glslang_dir}/glslang/MachineIndependent/iomapper.cpp
+- ${glslang_dir}/glslang/MachineIndependent/iomapper.h
+- ${glslang_dir}/glslang/MachineIndependent/gl_types.h
+- ${glslang_dir}/glslang/MachineIndependent/InfoSink.cpp
+- ${glslang_dir}/glslang/MachineIndependent/Initialize.cpp
+- ${glslang_dir}/glslang/MachineIndependent/Initialize.h
+- ${glslang_dir}/glslang/MachineIndependent/Intermediate.cpp
+- ${glslang_dir}/glslang/MachineIndependent/intermOut.cpp
+- ${glslang_dir}/glslang/MachineIndependent/IntermTraverse.cpp
+- ${glslang_dir}/glslang/MachineIndependent/limits.cpp
+- ${glslang_dir}/glslang/MachineIndependent/linkValidate.cpp
+- ${glslang_dir}/glslang/MachineIndependent/LiveTraverser.h
+- ${glslang_dir}/glslang/MachineIndependent/localintermediate.h
+- ${glslang_dir}/glslang/MachineIndependent/parseConst.cpp
+- ${glslang_dir}/glslang/MachineIndependent/ParseContextBase.cpp
+- ${glslang_dir}/glslang/MachineIndependent/ParseHelper.cpp
+- ${glslang_dir}/glslang/MachineIndependent/ParseHelper.h
+- ${glslang_dir}/glslang/MachineIndependent/PoolAlloc.cpp
+- ${glslang_dir}/glslang/MachineIndependent/propagateNoContraction.cpp
+- ${glslang_dir}/glslang/MachineIndependent/propagateNoContraction.h
+- ${glslang_dir}/glslang/MachineIndependent/preprocessor/PpAtom.cpp
+- ${glslang_dir}/glslang/MachineIndependent/preprocessor/PpContext.cpp
+- ${glslang_dir}/glslang/MachineIndependent/preprocessor/PpContext.h
+- ${glslang_dir}/glslang/MachineIndependent/preprocessor/Pp.cpp
+- ${glslang_dir}/glslang/MachineIndependent/preprocessor/PpScanner.cpp
+- ${glslang_dir}/glslang/MachineIndependent/preprocessor/PpTokens.cpp
+- ${glslang_dir}/glslang/MachineIndependent/preprocessor/PpTokens.h
+- ${glslang_dir}/glslang/MachineIndependent/reflection.cpp
+- ${glslang_dir}/glslang/MachineIndependent/reflection.h
+- ${glslang_dir}/glslang/MachineIndependent/RemoveTree.cpp
+- ${glslang_dir}/glslang/MachineIndependent/RemoveTree.h
+- ${glslang_dir}/glslang/MachineIndependent/ScanContext.h
+- ${glslang_dir}/glslang/MachineIndependent/Scan.cpp
+- ${glslang_dir}/glslang/MachineIndependent/Scan.h
+- ${glslang_dir}/glslang/MachineIndependent/ShaderLang.cpp
+- ${glslang_dir}/glslang/MachineIndependent/SpirvIntrinsics.cpp
+- ${glslang_dir}/glslang/MachineIndependent/SymbolTable.cpp
+- ${glslang_dir}/glslang/MachineIndependent/SymbolTable.h
+- ${glslang_dir}/glslang/MachineIndependent/Versions.cpp
+- ${glslang_dir}/glslang/MachineIndependent/Versions.h
+- ${glslang_dir}/glslang/MachineIndependent/attribute.cpp
+- ${glslang_dir}/glslang/MachineIndependent/attribute.h
+- ${glslang_dir}/glslang/OSDependent/osinclude.h
+- ${glslang_dir}/glslang/ResourceLimits/ResourceLimits.cpp
+- ${glslang_dir}/glslang/Public/ShaderLang.h
+- ${glslang_dir}/glslang/Public/ResourceLimits.h)
+-
+-if(UNIX)
+- list(APPEND glslang_sources
+- ${glslang_dir}/glslang/OSDependent/Unix/ossource.cpp)
+-endif()
+-
+ set(sources
+ glslang_compile.cpp
+ glslang_compile.h
+@@ -115,38 +20,20 @@ set(sources
+ spirv_processor.h
+ spirv_disassemble.cpp
+ spirv_stringise.cpp
+- var_dispatch_helpers.h
+- ${glslang_sources})
++ var_dispatch_helpers.h)
+
+ add_definitions(-DAMD_EXTENSIONS)
+ add_definitions(-DNV_EXTENSIONS)
+
+-set_property(SOURCE ${glslang_sources}
+- PROPERTY COMPILE_FLAGS "-Wno-ignored-qualifiers -Wno-strict-aliasing -Wno-unreachable-code-break")
+-
+-# GCC 7.0 and above needs -Wno-implicit-fallthrough
+-if(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 6.9)
+- set_property(SOURCE ${glslang_sources}
+- APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-implicit-fallthrough")
+-endif()
+-
+ if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+- set_property(SOURCE ${glslang_sources}
+- APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-unknown-warning-option -Wno-shadow -Wno-shorten-64-to-32")
+-
+ set_property(SOURCE
+ spirv_debug.cpp
+ spirv_debug_glsl450.cpp
+ spirv_debug_setup.cpp
+ spirv_processor.cpp
+ APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-shadow -Wno-shorten-64-to-32")
+-
+- if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 9.9)
+- set_property(SOURCE ${glslang_dir}/glslang/MachineIndependent/iomapper.cpp
+- APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-deprecated-copy")
+- endif()
+ endif()
+
+ add_library(rdoc_spirv OBJECT ${sources})
+ target_compile_definitions(rdoc_spirv ${RDOC_DEFINITIONS})
+-target_include_directories(rdoc_spirv ${RDOC_INCLUDES} ${glslang_dir})
++target_include_directories(rdoc_spirv ${RDOC_INCLUDES})
+--- a/renderdoc/driver/shaders/spirv/glslang_compile.cpp
++++ b/renderdoc/driver/shaders/spirv/glslang_compile.cpp
+@@ -29,9 +29,9 @@
+ #undef min
+ #undef max
+
+-#include "glslang/glslang/Include/Types.h"
+-#include "glslang/glslang/Public/ResourceLimits.h"
+-#include "glslang/glslang/Public/ShaderLang.h"
++#include <glslang/Public/ResourceLimits.h>
++#include <glslang/Include/Types.h>
++#include <glslang/Public/ShaderLang.h>
+
+ static bool glslang_inited = false;
+ rdcarray<glslang::TShader *> *allocatedShaders = NULL;
+--- a/renderdoc/driver/shaders/spirv/spirv_compile.cpp
++++ b/renderdoc/driver/shaders/spirv/spirv_compile.cpp
+@@ -31,9 +31,9 @@
+ #undef min
+ #undef max
+
+-#include "glslang/SPIRV/GlslangToSpv.h"
+-#include "glslang/glslang/Public/ResourceLimits.h"
+-#include "glslang/glslang/Public/ShaderLang.h"
++#include <glslang/Public/ResourceLimits.h>
++#include <glslang/SPIRV/GlslangToSpv.h>
++#include <glslang/Public/ShaderLang.h>
+
+ rdcstr rdcspv::Compile(const rdcspv::CompilationSettings &settings, const rdcarray<rdcstr> &sources,
+ rdcarray<uint32_t> &spirv)
+--- a/qrenderdoc/Code/pyrenderdoc/CMakeLists.txt
++++ b/qrenderdoc/Code/pyrenderdoc/CMakeLists.txt
+@@ -1,11 +1,3 @@
+-# Build as C++14 for the python bindings template-fu
+-if (CMAKE_VERSION VERSION_LESS "3.1")
+- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
+-else ()
+- set (CMAKE_CXX_STANDARD 14)
+- set (CMAKE_CXX_STANDARD_REQUIRED ON)
+-endif ()
+-
+ # include paths for qrenderdoc, the internal renderdoc API, and Python
+ set(MODULE_INCLUDES
+ PRIVATE ${CMAKE_SOURCE_DIR}/qrenderdoc
+@@ -82,3 +74,5 @@
+ # Make sure we build after the wrappers are generated
+ add_dependencies(_renderdoc swig-bindings)
+ add_dependencies(_qrenderdoc swig-bindings)
++
++set_target_properties(_renderdoc _qrenderdoc PROPERTIES CXX_STANDARD 14 CXX_STANDARD_REQUIRED ON)
+--
+2.42.0
+