From 761f90b5b9becc95acbe422367ec0cef3d8f312e Mon Sep 17 00:00:00 2001 From: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com> Date: Fri, 3 Sep 2021 18:27:45 -0700 Subject: [PATCH] Find file for renderdoc and better wiring Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com> --- .../Findrenderdoc.cmake} | 8 +++++++- .../Platform/Linux/renderdoc_linux.cmake} | 2 +- .../Platform/Windows/renderdoc_windows.cmake} | 2 +- Gems/Atom/RHI/CMakeLists.txt | 2 ++ Gems/Atom/RHI/Code/CMakeLists.txt | 11 +++-------- .../Android/AtomRHITests_traits_android.cmake | 1 + .../Linux/AtomRHITests_traits_linux.cmake | 6 ++++++ .../Code/Platform/Linux/renderdoc_linux.cmake | 18 ------------------ .../Linux/renderdoc_support_linux.cmake | 14 -------------- .../Platform/Mac/AtomRHITests_traits_mac.cmake | 1 + .../Windows/AtomRHITests_traits_windows.cmake | 6 ++++++ .../Windows/renderdoc_support_windows.cmake | 14 -------------- .../Platform/Windows/renderdoc_windows.cmake | 18 ------------------ .../Platform/iOS/AtomRHITests_traits_ios.cmake | 1 + 14 files changed, 29 insertions(+), 75 deletions(-) rename Gems/Atom/RHI/{Code/Platform/Mac/renderdoc_support_mac.cmake => 3rdParty/Findrenderdoc.cmake} (55%) rename Gems/Atom/RHI/{Code/Platform/iOS/renderdoc_support_ios.cmake => 3rdParty/Platform/Linux/renderdoc_linux.cmake} (76%) rename Gems/Atom/RHI/{Code/Platform/Android/renderdoc_support_android.cmake => 3rdParty/Platform/Windows/renderdoc_windows.cmake} (76%) delete mode 100644 Gems/Atom/RHI/Code/Platform/Linux/renderdoc_linux.cmake delete mode 100644 Gems/Atom/RHI/Code/Platform/Linux/renderdoc_support_linux.cmake delete mode 100644 Gems/Atom/RHI/Code/Platform/Windows/renderdoc_support_windows.cmake delete mode 100644 Gems/Atom/RHI/Code/Platform/Windows/renderdoc_windows.cmake diff --git a/Gems/Atom/RHI/Code/Platform/Mac/renderdoc_support_mac.cmake b/Gems/Atom/RHI/3rdParty/Findrenderdoc.cmake similarity index 55% rename from Gems/Atom/RHI/Code/Platform/Mac/renderdoc_support_mac.cmake rename to Gems/Atom/RHI/3rdParty/Findrenderdoc.cmake index 97090b9144..7b7c312169 100644 --- a/Gems/Atom/RHI/Code/Platform/Mac/renderdoc_support_mac.cmake +++ b/Gems/Atom/RHI/3rdParty/Findrenderdoc.cmake @@ -6,4 +6,10 @@ # # -set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED FALSE) +ly_add_external_target( + NAME renderdoc + 3RDPARTY_ROOT_DIRECTORY "${LY_RENDERDOC_PATH}" + VERSION + INCLUDE_DIRECTORIES . + COMPILE_DEFINITIONS USE_RENDER_DOC +) diff --git a/Gems/Atom/RHI/Code/Platform/iOS/renderdoc_support_ios.cmake b/Gems/Atom/RHI/3rdParty/Platform/Linux/renderdoc_linux.cmake similarity index 76% rename from Gems/Atom/RHI/Code/Platform/iOS/renderdoc_support_ios.cmake rename to Gems/Atom/RHI/3rdParty/Platform/Linux/renderdoc_linux.cmake index 97090b9144..a74d250901 100644 --- a/Gems/Atom/RHI/Code/Platform/iOS/renderdoc_support_ios.cmake +++ b/Gems/Atom/RHI/3rdParty/Platform/Linux/renderdoc_linux.cmake @@ -6,4 +6,4 @@ # # -set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED FALSE) +set(RENDERDOC_RUNTIME_DEPENDENCIES "${BASE_PATH}/librenderdoc.so") diff --git a/Gems/Atom/RHI/Code/Platform/Android/renderdoc_support_android.cmake b/Gems/Atom/RHI/3rdParty/Platform/Windows/renderdoc_windows.cmake similarity index 76% rename from Gems/Atom/RHI/Code/Platform/Android/renderdoc_support_android.cmake rename to Gems/Atom/RHI/3rdParty/Platform/Windows/renderdoc_windows.cmake index 97090b9144..559863ca07 100644 --- a/Gems/Atom/RHI/Code/Platform/Android/renderdoc_support_android.cmake +++ b/Gems/Atom/RHI/3rdParty/Platform/Windows/renderdoc_windows.cmake @@ -6,4 +6,4 @@ # # -set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED FALSE) +set(RENDERDOC_RUNTIME_DEPENDENCIES "${BASE_PATH}/renderdoc.dll") diff --git a/Gems/Atom/RHI/CMakeLists.txt b/Gems/Atom/RHI/CMakeLists.txt index 28a3e1ad7d..074f6acfd7 100644 --- a/Gems/Atom/RHI/CMakeLists.txt +++ b/Gems/Atom/RHI/CMakeLists.txt @@ -6,6 +6,8 @@ # # +ly_add_external_target_path(${CMAKE_CURRENT_LIST_DIR}/3rdParty) + add_subdirectory(Code) add_subdirectory(DX12) add_subdirectory(Metal) diff --git a/Gems/Atom/RHI/Code/CMakeLists.txt b/Gems/Atom/RHI/Code/CMakeLists.txt index a70786a9e0..879fc7d2ce 100644 --- a/Gems/Atom/RHI/Code/CMakeLists.txt +++ b/Gems/Atom/RHI/Code/CMakeLists.txt @@ -11,15 +11,10 @@ ly_get_list_relative_pal_filename(pal_source_dir ${CMAKE_CURRENT_LIST_DIR}/Sourc include(${pal_dir}/AtomRHITests_traits_${PAL_PLATFORM_NAME_LOWERCASE}.cmake) -include(${CMAKE_CURRENT_SOURCE_DIR}/${pal_dir}/renderdoc_support_${PAL_PLATFORM_NAME_LOWERCASE}.cmake) if(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED) set(LY_RENDERDOC_ENABLED OFF CACHE BOOL "Enable RenderDoc integration. Use LY_RENDERDOC_PATH to specific the path to RenderDoc.") if(LY_RENDERDOC_ENABLED) - include(${CMAKE_CURRENT_SOURCE_DIR}/${pal_dir}/renderdoc_${PAL_PLATFORM_NAME_LOWERCASE}.cmake) - if(PAL_TRAIT_BUILD_RENDERDOC_ENABLED) - message(STATUS "Renderdoc found, adding as runtime dependency") - set(RENDERDOC_DEFINE USE_RENDERDOC) - endif() + set(RENDERDOC_DEPENDENCY 3rdParty::renderdoc) endif() endif() @@ -58,11 +53,11 @@ ly_add_target( AZ::AzCore AZ::AzFramework Gem::Atom_RHI.Reflect + PUBLIC + ${RENDERDOC_DEPENDENCY} COMPILE_DEFINITIONS PUBLIC ${RENDERDOC_DEFINE} - RUNTIME_DEPENDENCIES - ${RENDERDOC_RUNTIME_DEPENDENCIES} ) ly_add_target( diff --git a/Gems/Atom/RHI/Code/Platform/Android/AtomRHITests_traits_android.cmake b/Gems/Atom/RHI/Code/Platform/Android/AtomRHITests_traits_android.cmake index 1aeb95c7b1..5b77ec1593 100644 --- a/Gems/Atom/RHI/Code/Platform/Android/AtomRHITests_traits_android.cmake +++ b/Gems/Atom/RHI/Code/Platform/Android/AtomRHITests_traits_android.cmake @@ -8,3 +8,4 @@ set(ATOM_RHI_TRAIT_BUILD_SUPPORTS_TEST FALSE) set(ATOM_RHI_TRAIT_BUILD_SUPPORTS_EDIT FALSE) +set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED FALSE) diff --git a/Gems/Atom/RHI/Code/Platform/Linux/AtomRHITests_traits_linux.cmake b/Gems/Atom/RHI/Code/Platform/Linux/AtomRHITests_traits_linux.cmake index 64d44f1648..5379a47e49 100644 --- a/Gems/Atom/RHI/Code/Platform/Linux/AtomRHITests_traits_linux.cmake +++ b/Gems/Atom/RHI/Code/Platform/Linux/AtomRHITests_traits_linux.cmake @@ -8,3 +8,9 @@ set(ATOM_RHI_TRAIT_BUILD_SUPPORTS_TEST FALSE) set(ATOM_RHI_TRAIT_BUILD_SUPPORTS_EDIT TRUE) +if(LY_MONOLITHIC_GAME) + set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED FALSE) +else() + set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED TRUE) +endif() +set(LY_RENDERDOC_PATH "/usr/local" CACHE PATH "Path to RenderDoc.") diff --git a/Gems/Atom/RHI/Code/Platform/Linux/renderdoc_linux.cmake b/Gems/Atom/RHI/Code/Platform/Linux/renderdoc_linux.cmake deleted file mode 100644 index aae720eb0f..0000000000 --- a/Gems/Atom/RHI/Code/Platform/Linux/renderdoc_linux.cmake +++ /dev/null @@ -1,18 +0,0 @@ -# -# Copyright (c) Contributors to the Open 3D Engine Project. -# For complete copyright and license terms please see the LICENSE at the root of this distribution. -# -# SPDX-License-Identifier: Apache-2.0 OR MIT -# -# - -set(PAL_TRAIT_BUILD_RENDERDOC_ENABLED FALSE) -set(LY_RENDERDOC_PATH "/usr/local" CACHE PATH "Path to RenderDoc.") - -# Normalize file path -file(TO_CMAKE_PATH "${LY_RENDERDOC_PATH}" LY_RENDERDOC_PATH) - -if(EXISTS "${LY_RENDERDOC_PATH}/librenderdoc.so") - set(RENDERDOC_RUNTIME_DEPENDENCIES "${RENDERDOC_PATH}/librenderdoc.so") - set(PAL_TRAIT_BUILD_RENDERDOC_ENABLED TRUE) -endif() diff --git a/Gems/Atom/RHI/Code/Platform/Linux/renderdoc_support_linux.cmake b/Gems/Atom/RHI/Code/Platform/Linux/renderdoc_support_linux.cmake deleted file mode 100644 index 449593c791..0000000000 --- a/Gems/Atom/RHI/Code/Platform/Linux/renderdoc_support_linux.cmake +++ /dev/null @@ -1,14 +0,0 @@ -# -# Copyright (c) Contributors to the Open 3D Engine Project. -# For complete copyright and license terms please see the LICENSE at the root of this distribution. -# -# SPDX-License-Identifier: Apache-2.0 OR MIT -# -# - -# Prevent bundling the renderdoc dll with a packaged title -if(LY_MONOLITHIC_GAME) - set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED FALSE) -else() - set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED TRUE) -endif() diff --git a/Gems/Atom/RHI/Code/Platform/Mac/AtomRHITests_traits_mac.cmake b/Gems/Atom/RHI/Code/Platform/Mac/AtomRHITests_traits_mac.cmake index a5f701c3cf..419331db3b 100644 --- a/Gems/Atom/RHI/Code/Platform/Mac/AtomRHITests_traits_mac.cmake +++ b/Gems/Atom/RHI/Code/Platform/Mac/AtomRHITests_traits_mac.cmake @@ -8,3 +8,4 @@ set(ATOM_RHI_TRAIT_BUILD_SUPPORTS_TEST TRUE) set(ATOM_RHI_TRAIT_BUILD_SUPPORTS_EDIT TRUE) +set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED FALSE) diff --git a/Gems/Atom/RHI/Code/Platform/Windows/AtomRHITests_traits_windows.cmake b/Gems/Atom/RHI/Code/Platform/Windows/AtomRHITests_traits_windows.cmake index a5f701c3cf..78a4c4c069 100644 --- a/Gems/Atom/RHI/Code/Platform/Windows/AtomRHITests_traits_windows.cmake +++ b/Gems/Atom/RHI/Code/Platform/Windows/AtomRHITests_traits_windows.cmake @@ -8,3 +8,9 @@ set(ATOM_RHI_TRAIT_BUILD_SUPPORTS_TEST TRUE) set(ATOM_RHI_TRAIT_BUILD_SUPPORTS_EDIT TRUE) +if(LY_MONOLITHIC_GAME) + set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED FALSE) +else() + set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED TRUE) +endif() +set(LY_RENDERDOC_PATH "$ENV{PROGRAMFILES}/RenderDoc" CACHE PATH "Path to RenderDoc.") diff --git a/Gems/Atom/RHI/Code/Platform/Windows/renderdoc_support_windows.cmake b/Gems/Atom/RHI/Code/Platform/Windows/renderdoc_support_windows.cmake deleted file mode 100644 index 449593c791..0000000000 --- a/Gems/Atom/RHI/Code/Platform/Windows/renderdoc_support_windows.cmake +++ /dev/null @@ -1,14 +0,0 @@ -# -# Copyright (c) Contributors to the Open 3D Engine Project. -# For complete copyright and license terms please see the LICENSE at the root of this distribution. -# -# SPDX-License-Identifier: Apache-2.0 OR MIT -# -# - -# Prevent bundling the renderdoc dll with a packaged title -if(LY_MONOLITHIC_GAME) - set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED FALSE) -else() - set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED TRUE) -endif() diff --git a/Gems/Atom/RHI/Code/Platform/Windows/renderdoc_windows.cmake b/Gems/Atom/RHI/Code/Platform/Windows/renderdoc_windows.cmake deleted file mode 100644 index 2d3c2c039f..0000000000 --- a/Gems/Atom/RHI/Code/Platform/Windows/renderdoc_windows.cmake +++ /dev/null @@ -1,18 +0,0 @@ -# -# Copyright (c) Contributors to the Open 3D Engine Project. -# For complete copyright and license terms please see the LICENSE at the root of this distribution. -# -# SPDX-License-Identifier: Apache-2.0 OR MIT -# -# - -set(PAL_TRAIT_BUILD_RENDERDOC_ENABLED FALSE) -set(LY_RENDERDOC_PATH "$ENV{PROGRAMFILES}/RenderDoc" CACHE PATH "Path to RenderDoc.") - -# Normalize file path -file(TO_CMAKE_PATH "${LY_RENDERDOC_PATH}" LY_RENDERDOC_PATH) - -if(EXISTS "${LY_RENDERDOC_PATH}/renderdoc.dll") - set(RENDERDOC_RUNTIME_DEPENDENCIES "${RENDERDOC_PATH}/renderdoc.dll") - set(PAL_TRAIT_BUILD_RENDERDOC_ENABLED TRUE) -endif() diff --git a/Gems/Atom/RHI/Code/Platform/iOS/AtomRHITests_traits_ios.cmake b/Gems/Atom/RHI/Code/Platform/iOS/AtomRHITests_traits_ios.cmake index 1aeb95c7b1..5b77ec1593 100644 --- a/Gems/Atom/RHI/Code/Platform/iOS/AtomRHITests_traits_ios.cmake +++ b/Gems/Atom/RHI/Code/Platform/iOS/AtomRHITests_traits_ios.cmake @@ -8,3 +8,4 @@ set(ATOM_RHI_TRAIT_BUILD_SUPPORTS_TEST FALSE) set(ATOM_RHI_TRAIT_BUILD_SUPPORTS_EDIT FALSE) +set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED FALSE)