Skip to content

Commit

Permalink
GPA 3.15 updates
Browse files Browse the repository at this point in the history
  • Loading branch information
eelliott-amd committed Dec 6, 2023
1 parent f2082fd commit 6226526
Show file tree
Hide file tree
Showing 212 changed files with 10,013 additions and 9,653 deletions.
2 changes: 1 addition & 1 deletion BUILD.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ this script everytime you pull new changes from GPA repository.
* Desktop development with C++
* Within the Visual Studio Installer, the following individual components:
* Windows 11 SDK (10.0.22621.0)
* MSVC v143 - VS 2022 C++ x74/x86 build tools (latest)
* MSVC v143 - VS 2022 C++ x64/x86 build tools (latest)
* C++ CMake tools for Windows
* C++ Clang Compiler for Windows (15.0.1)
* .NET Framework 4.6.2-4.8.1 SDKs and targeting packs
Expand Down
4 changes: 2 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
## Copyright (c) 2018 Advanced Micro Devices, Inc. All rights reserved.
cmake_minimum_required(VERSION 3.5.1)
## Copyright (c) 2023 Advanced Micro Devices, Inc. All rights reserved.
cmake_minimum_required(VERSION 3.10)

set(DEPTH "./")

Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion NOTICES.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
DO NOT TRANSLATE OR LOCALIZE


Third-Party Notices Report for GPUPerfAPI v3.14
Third-Party Notices Report for GPUPerfAPI v3.15



Expand Down
23 changes: 8 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,21 +31,13 @@ Prebuilt binaries can be downloaded from the Releases page: https://github.com/G
* Provides access to some raw hardware counters. See [Raw Hardware Counters](#raw-hardware-counters) for more information.

## What's New
### Version 3.14 (09/21/2023)
* Added support for AMD Radeon RX 7700 XT and AMD Radeon RX 7800 XT graphics cards.
* Added support for additional AMD Radeon 700M Series devices.
* Added counters back to Gfx9, Gfx10, Gfx103, and Gfx11 hardware generations. These restored counters are listed below by group:
* Timing: TessellatorBusy, TessellatorBusyCycles, VsGsBusy, VsGsBusyCycles, VsGsTime, PreTessellationBusy, PreTessellationBusyCycles, PreTessellationTime, PostTessellationBusy, PostTessellationBusyCycles, PostTessellationTime
* VertexGeometry: VsGsVerticesIn, VsGsPrimsIn, GSVerticesOut
* PreTessellation: PreTessVerticesIn
* PostTessellation: PostTessPrimsOut
* PrimitiveAssembly: PrimitivesIn
* TextureUnit: TexTriFilteringPct, TexTriFilteringCount, NoTexTriFilteringCount, TexVolFilteringPct, TexVolFilteringCount, NoTexVolFilteringCount
* New counters added:
* MemoryCache: L0TagConflictReadStalledCycles, L0TagConflictWriteStalledCycles, L0TagConflictAtomicStalledCycles
* Changed to Visual Studio 2022 as the default build environment on Windows (previously Visual Studio 2019).
* Added improved support for multi-GPU systems.
* Removed code related to software counters on non-AMD hardware.
### Version 3.15 (12/06/2023)
* Updated minimum CMake version to 3.10 from 3.05.
* Updated equation for MemUnitBusyCycles.
* Updated description of LocalVidMemBytes.
* Renamed *.inc files to .hpp files.
* Reduced size of static buffer when logging messages to avoid compiler warning.
* Fixed an issue on some variant hardware that would prevent enabling certain hardware counters when kGpaOpenContextExposeHardwareCountersBit was specified to GpaOpenContext() by always generating asic-specific counters.

## System Requirements
* An AMD Radeon GPU or APU based on Graphics IP version 8 and newer.
Expand Down Expand Up @@ -108,6 +100,7 @@ It was discovered that the improvements introduced in Vega, RDNA, and RDNA2 arch
There are some counters that are returning unexpected results on specific hardware with certain APIs.
* AMD Radeon RX 6700M, DX11: CSLDSBankConflict and CSLDSBankConflictCycles may consistently report as much as 30x higher than expected.
* AMD Radeon RX 480, DX12: CulledPrims and PSPixelsOut may inconsistently report higher than expected.
* VsGsVerticesIn is incorrectly reporting zero when using Vulkan on Linux for some hardware.

### Counter Validation Errors in D3D12ColorCube Sample App
Due to the extensive counter validation now being done in the D3D12ColorCube sample application, and some expected variation in nondeterministic counters across a wide range of systems, the sample app may report errors on some systems. Likewise, some counters are marked as known issues and we are investigating the underlying causes of the inconsistent results.
Expand Down
10 changes: 10 additions & 0 deletions ReleaseNotes.md → RELEASE_NOTES.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
# GPU Performance API Release Notes
---
# Version 3.15 (12/06/2023)
* Updated minimum CMake version to 3.10 from 3.05.
* Updated equation for MemUnitBusyCycles.
* Updated description of LocalVidMemBytes.
* Renamed *.inc files to .hpp files.
* Reduced size of static buffer when logging messages to avoid compiler warning.
* Fixed an issue on some variant hardware that would prevent enabling certain hardware counters when kGpaOpenContextExposeHardwareCountersBit was specified to GpaOpenContext() by always generating asic-specific counters.
* Known Issues:
* VsGsVerticesIn is incorrectly reporting zero when using Vulkan on Linux for some hardware.

## Version 3.14 (09/21/2023)
* Added support for AMD Radeon RX 7700 XT and AMD Radeon RX 7800 XT graphics cards.
* Added support for additional AMD Radeon 700M Series devices.
Expand Down
4 changes: 2 additions & 2 deletions build/cmake_modules/android.cmake
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
## Copyright (c) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
cmake_minimum_required(VERSION 3.5.1)
## Copyright (c) 2019-2023 Advanced Micro Devices, Inc. All rights reserved.
cmake_minimum_required(VERSION 3.10)

if (NOT DEFINED ENV{ANDROID_SDK})
message(FATAL_ERROR "ANDROID_SDK is not defined")
Expand Down
2 changes: 1 addition & 1 deletion build/cmake_modules/build_flags.cmake
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
## Copyright (c) 2018-2023 Advanced Micro Devices, Inc. All rights reserved.
cmake_minimum_required(VERSION 3.5.1)
cmake_minimum_required(VERSION 3.10)

## GPA has only Debug and Release
set(CMAKE_CONFIGURATION_TYPES Debug Release)
Expand Down
4 changes: 2 additions & 2 deletions build/cmake_modules/clang_utils.cmake
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
## Copyright (c) 2021 Advanced Micro Devices, Inc. All rights reserved.
cmake_minimum_required(VERSION 3.5.1)
## Copyright (c) 2023 Advanced Micro Devices, Inc. All rights reserved.
cmake_minimum_required(VERSION 3.10)

find_program(CLANG_FORMAT clang-format DOC "Clang format executable")
find_program(CLANG_TIDY clang-tidy DOC "Clang tidy executable")
Expand Down
2 changes: 1 addition & 1 deletion build/cmake_modules/defs.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.19)

## Define the GPA version
set(GPA_MAJOR_VERSION 3)
set(GPA_MINOR_VERSION 14)
set(GPA_MINOR_VERSION 15)
set(GPA_UPDATE_VERSION 0)

if(NOT DEFINED GPA_BUILD_NUMBER)
Expand Down
2 changes: 1 addition & 1 deletion build/cmake_modules/gpa_version.cmake
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
## Copyright (c) 2020-2022 Advanced Micro Devices, Inc. All rights reserved.
cmake_minimum_required(VERSION 3.5.1)
cmake_minimum_required(VERSION 3.10)

include(${CMAKE_CURRENT_LIST_DIR}/defs.cmake)

Expand Down
4 changes: 2 additions & 2 deletions build/cmake_modules/gpa_vulkan.cmake
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
## Copyright (c) 2018-2019 Advanced Micro Devices, Inc. All rights reserved.
cmake_minimum_required(VERSION 3.7.2)
## Copyright (c) 2018-2023 Advanced Micro Devices, Inc. All rights reserved.
cmake_minimum_required(VERSION 3.10)

if(${GPA_ALL_OPEN_SOURCE})
find_package(Vulkan REQUIRED)
Expand Down
4 changes: 2 additions & 2 deletions build/cmake_modules/targets.cmake
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
## Copyright (c) 2018-2020 Advanced Micro Devices, Inc. All rights reserved.
cmake_minimum_required(VERSION 3.5.1)
## Copyright (c) 2018-2023 Advanced Micro Devices, Inc. All rights reserved.
cmake_minimum_required(VERSION 3.10)

## GPA has only Debug and Release
set(CMAKE_CONFIGURATION_TYPES Debug Release)
Expand Down
4 changes: 2 additions & 2 deletions build/cmake_modules/utils.cmake
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
## Copyright (c) 2018 Advanced Micro Devices, Inc. All rights reserved.
cmake_minimum_required(VERSION 3.5.1)
## Copyright (c) 2023 Advanced Micro Devices, Inc. All rights reserved.
cmake_minimum_required(VERSION 3.10)

include(${GPA_CMAKE_MODULES_DIR}/clang_utils.cmake)

Expand Down
6 changes: 3 additions & 3 deletions build/cmake_modules/win_resource_compile.cmake
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
## Copyright (c) 2018-2020 Advanced Micro Devices, Inc. All rights reserved.
cmake_minimum_required(VERSION 3.5.1)
cmake_minimum_required(VERSION 3.10)

if(WIN32)
include(${CMAKE_COMMON_LIB_GLOBAL_EXT_WINDOWS_SDK})

set(RESOURCE_COMPILER_COMMAND_ARG /I\"${WINDOWS_SDK_UM}\" /I\"${WINDOWS_SDK_SHARED}\" /I\"${GPA_SRC_COMMON}/\" /D AMDT_PROJECT_SUFFIX=\"${AMDTPlatformSuffix}$<$<CONFIG:DEBUG>:-d>\" /D AMDT_PROJECT_SUFFIX_W=L\"-d\" /D \"_DEBUG\" /l\"0x0409\" /nologo /fo \"${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_INTDIR}/${RESOURCE_FILE_NAME}.res\" \"${CMAKE_CURRENT_SOURCE_DIR}/${RESOURCE_FILE_NAME}.rc\")
set(RESOURCE_COMPILER_COMMAND_ARG /I\"${WINDOWS_SDK_UM}\" /I\"${WINDOWS_SDK_SHARED}\" /I\"${GPA_SRC_COMMON}/\" /D AMDT_PROJECT_SUFFIX=\"${AMDTPlatformSuffix}$<$<CONFIG:DEBUG>:-d>\" /D AMDT_PROJECT_SUFFIX_W=L\"-d\" $<$<CONFIG:Debug>:/D_DEBUG> /l\"0x0409\" /nologo /fo \"${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_INTDIR}/${RESOURCE_FILE_NAME}.res\" \"${CMAKE_CURRENT_SOURCE_DIR}/${RESOURCE_FILE_NAME}.rc\")
add_custom_command(TARGET ${GPA_PROJECT_NAME} PRE_LINK
COMMAND rc ${RESOURCE_COMPILER_COMMAND_ARG}
COMMENT "Compiling resource file ${RESOURCE_FILE_NAME}.rc")

set_property(TARGET ${GPA_PROJECT_NAME} PROPERTY LINK_FLAGS \"${CMAKE_CURRENT_BINARY_DIR}/${RESOURCE_FILE_NAME}.res\")
endif()
endif()
2 changes: 1 addition & 1 deletion docs/doxygen/DoxyfilePublic
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ PROJECT_NAME = "GPU Perf API"
# This could be handy for archiving the generated documentation or
# if some version control system is used.

PROJECT_NUMBER = 3.14
PROJECT_NUMBER = 3.15

# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
# base path where the generated documentation will be put.
Expand Down
2 changes: 1 addition & 1 deletion docs/sphinx/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
## Copyright (c) 2018-2023 Advanced Micro Devices, Inc. All rights reserved.
cmake_minimum_required(VERSION 3.5.1)
cmake_minimum_required(VERSION 3.10)

set(DEPTH "../")

Expand Down
6 changes: 3 additions & 3 deletions docs/sphinx/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,16 +61,16 @@
# built documents.
#
# The short X.Y version.
version = u'3.14'
version = u'3.15'
# The full version, including alpha/beta/rc tags.
release = u'3.14'
release = u'3.15'

# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
#
# This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases.
language = None
language = 'en'

# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
Expand Down
2 changes: 1 addition & 1 deletion docs/sphinx/source/graphics_counter_tables_gfx103.rst
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,7 @@ GlobalMemory Group
"MemUnitStalledCycles", "Cycles", "Number of GPU cycles the memory unit is stalled."
"WriteUnitStalled", "Percentage", "The percentage of GPUTime the Write unit is stalled. Value range: 0% to 100% (bad)."
"WriteUnitStalledCycles", "Cycles", "Number of GPU cycles the Write unit is stalled."
"LocalVidMemBytes", "Bytes", "Number of bytes read from or written to local video memory"
"LocalVidMemBytes", "Bytes", "Number of bytes read from or written to the Infinity Cache (if available) or local video memory"
"PcieBytes", "Bytes", "Number of bytes sent and received over the PCIe bus"

RayTracing Group
Expand Down
2 changes: 1 addition & 1 deletion docs/sphinx/source/graphics_counter_tables_gfx11.rst
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,7 @@ GlobalMemory Group
"MemUnitStalledCycles", "Cycles", "Number of GPU cycles the memory unit is stalled."
"WriteUnitStalled", "Percentage", "The percentage of GPUTime the Write unit is stalled. Value range: 0% to 100% (bad)."
"WriteUnitStalledCycles", "Cycles", "Number of GPU cycles the Write unit is stalled."
"LocalVidMemBytes", "Bytes", "Number of bytes read from or written to local video memory"
"LocalVidMemBytes", "Bytes", "Number of bytes read from or written to the Infinity Cache (if available) or local video memory"
"PcieBytes", "Bytes", "Number of bytes sent and received over the PCIe bus"

RayTracing Group
Expand Down
9 changes: 6 additions & 3 deletions include/gpu_performance_api/gpu_perf_api_counters.h
Original file line number Diff line number Diff line change
Expand Up @@ -241,15 +241,18 @@ typedef GpaStatus (*GpaCounterLibGetFuncTablePtrType)(void*);
///
/// @param [in] api the api whose available counters are requested.
/// @param [in] gpa_counter_context_hardware_info counter context hardware info.
/// @param [in] context_flags Flags used to initialize the context. Should be a combination of GPA_OpenContext_Bits.
/// @param [in] generate_asic_specific_counters Flag that indicates whether the counters should be ASIC specific, if available.
/// @param [in] context_flags Flags used to initialize the context. Should be a combination of GpaOpenContextBits.
/// @param [in] generate_asic_specific_counters_deprecated No longer supported, only acceptable value is 1 (true).
/// @param [out] gpa_virtual_context Unique identifier of the opened virtual context.
///
/// @return The GPA result status of the operation. kGpaStatusOk is returned if the operation is successful.
/// @retval kGpaStatusErrorNullPointer If the supplied gpa_virtual_context is a nullptr.
/// @retval kGpaStatusErrorInvalidParameter If any value other than 1 (true) is passed in for generate_asic_specific_counters_deprecated,
/// or if the context_flags specified would result in zero counters being exposed.
GPU_PERF_API_COUNTERS_DECL GpaStatus GpaCounterLibOpenCounterContext(GpaApiType api,
GpaCounterContextHardwareInfo gpa_counter_context_hardware_info,
GpaOpenContextFlags context_flags,
GpaUInt8 generate_asic_specific_counters,
GpaUInt8 generate_asic_specific_counters_deprecated,
GpaCounterContext* gpa_virtual_context);

/// typedef for GpaCounterLibOpenCounterContext function pointer.
Expand Down
2 changes: 1 addition & 1 deletion include/gpu_performance_api/gpu_perf_api_function_types.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//==============================================================================
// Copyright (c) 2010-2023 Advanced Micro Devices, Inc. All rights reserved.
// Copyright (c) 2010-2022 Advanced Micro Devices, Inc. All rights reserved.
/// @author AMD Developer Tools Team
/// @file
/// @brief This file defines function types to make it easier to dynamically load
Expand Down
4 changes: 2 additions & 2 deletions scripts/dependencies_map.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@
"appsdk" : ["external/Lib/AMD/APPSDK", "55a6940ebc963daec69152314a1bb94943287d4c"],
"opengl" : ["external/Lib/Ext/OpenGL", "792c2291a4443ebef17ca5a7e3e24a1f854f0d1d"],
"windows_kits" : ["external/Lib/Ext/Windows-Kits", "51845a3771122a9dc1406b8617e9a67d9a2f55b6"],
"googletest" : ["external/Lib/Ext/GoogleTest", "542e057c6c5bf45454b43764b881397b71164d62"],
"googletest" : ["external/Lib/Ext/GoogleTest", "191f9336bc9212b5f5410ab663176f685cafed2a"],
# Src.
"adl_util" : ["external/Src/ADLUtil", "d62c94514326775c83fc129bb89d299c8749ebd1"],
"device_info" : ["external/Src/DeviceInfo", "8c2adcc8136dab662a58e93ead3027ee68e318c6"],
"device_info" : ["external/Src/DeviceInfo", "190ec95f2ce1d715231f2ee5e17a65217fc59f6c"],
"dynamic_library_module" : ["external/Src/DynamicLibraryModule", "e6451ce26b8509cf724c7cf5d007878791143a58"],
"tsingleton" : ["external/Src/TSingleton", "02e8fa7d98f33cdbd0e1f77d1a8a403a32e35882"],
}
Expand Down
2 changes: 1 addition & 1 deletion scripts/gpa_packaging.py
Original file line number Diff line number Diff line change
Expand Up @@ -251,7 +251,7 @@ def __init__(self):
_gpa_binaries.append("GPUPerfAPICL")

_other_files=["NOTICES.txt",
"LICENSE"]
"LICENSE.txt"]

_version_file="source/gpu_perf_api_common/gpa_version.h"
_major_version=0
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
## Copyright (c) 2023 Advanced Micro Devices, Inc. All rights reserved.
cmake_minimum_required(VERSION 3.5.1)
cmake_minimum_required(VERSION 3.10)

set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(HW_COUNTER_HEADERS
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
## Copyright (c) 2023 Advanced Micro Devices, Inc. All rights reserved.
cmake_minimum_required(VERSION 3.5.1)
cmake_minimum_required(VERSION 3.10)

set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(HW_COUNTER_HEADERS_CL
Expand Down
Loading

0 comments on commit 6226526

Please sign in to comment.