You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
GPUPerfAPI no longer uses git submodules to reference dependent repositories. Instead, you need to follow these instructions in
11
-
order to clone and update any dependent repositories.
12
-
13
8
#### Prerequisites
14
-
* Python 3.x, which can be installed from https://www.python.org/.
15
-
* CMake 3.19 and newer.
16
-
* For Windows, this can be downloaded from https://cmake.org/download/.
17
-
* For Linux, this can be installed using:
9
+
* Python 3.6 or newer which can be installed from https://www.python.org/.
10
+
* Vulkan SDK (optional)
11
+
* CMake 3.25 and newer which can be installed from https://cmake.org/download/ or your package manager.
12
+
* On Windows, this can also be installed using:
13
+
*`winget install cmake`
14
+
* On Linux, this can also be installed using:
18
15
*`sudo apt-get install cmake`
19
16
* To build the documentation:
20
17
* Install Sphinx:
@@ -24,75 +21,100 @@ order to clone and update any dependent repositories.
24
21
* Install spelling checker (optional)
25
22
*`pip install pyenchant`
26
23
*`pip install sphinxcontrib-spelling`
27
-
***Note:** Be sure to add Python scripts to PATH in order to build documentation from prebuild scripts.
28
-
29
-
#### Instructions
30
-
* Simply execute the [pre_build.py](build/pre_build.py) Python script located in the GPA directory:
31
-
*`python build/pre_build.py`
32
-
* This script will clone any dependent repositories that are not present on the system. If any of the dependent repositories are already
33
-
present on the system, this script will instead do a "git pull" on those repositories to ensure that they are up to date. Please re-run
34
-
this script everytime you pull new changes from GPA repository.
35
-
***Note:** For GPA 3.3 and newer, if you are updating an existing clone of the GPA repo from a GPA release prior to 3.3, you will first need to delete the Common/Lib/Ext/GoogleTest directory. Starting with GPA 3.3, GPA is now using a fork of the official GoogleTest repo. Failure to remove this directory will lead to Git errors when running [pre_build.py](build/pre_build.py) or [fetch_dependencies.py](scripts/fetch_dependencies.py).
36
-
***Note:** For GPA 3.11 and newer, the Common/ directory has been removed, and the external/Lib/Ext/GoogleTest will first need to be deleted instead.
37
-
* This script will also download and execute the Vulkan SDK installer.
38
-
* On Windows, running the installer may require elevation. If you've previously installed the required Vulkan version, fetch_dependencies.py will simply copy the files from the default installation location into the correct place into the GPUPerfAPI directory tree.
39
-
* fetch_dependencies.py is set up to install the version of the Vulkan SDK which was used during development. If you want to use a newer version of the SDK, the following file will need to be updated:
* By default the build will expect the Vulkan SDK to be found in a directory pointed to by the `VULKAN_SDK` environment variable. This environment variable is automatically set by the Windows SDK installer, but you may need to set it manually after running the Linux SDK installer. The Linux SDK includes a script called `setup-env.sh` to aid in setting this environment variable:
42
-
*`source ~/VulkanSDK/1.0.68.0/setup-env.sh` (adjust PATH as necessary)
43
-
* This script also executes CMake to generate all required files to build GPA.
44
-
* If you want to generate all CMake build files without trying to clone/pull dependent repos, you can add "--nofetch" to the [pre_build.py](build/pre_build.py) command line.
45
-
* Additional switches that can be used with the [pre_build.py](build/pre_build.py) script:
46
-
*`--vs=[2015,2017,2019,2022]`: Specify the Visual Studio version for which to generate projects. Default is 2022.
47
-
*`--config=[debug,release]`: Specify the config for which to generate makefiles. Default is both. A specific config can only be specified on Linux. On Windows, both configs are always supported by the generated VS solution and project files.
48
-
*`--platform=[x86,x64]`: Specify the platform for which to generate build files. Default is both.
49
-
*`--clean`: Deletes CMakeBuild directory and regenerates all build files from scratch
50
-
*`--skipdx11`: Does not generate build files for DX11 version of GPA (Windows only)
51
-
*`--skipdx12`: Does not generate build files for DX12 version of GPA (Windows only)
52
-
*`--skipvulkan`: Does not generate build files for Vulkan version of GPA
53
-
*`--skipopengl`: Does not generate build files for OpenGL version of GPA
54
-
*`--skipopencl`: Does not generate build files for OpenCL version of GPA
55
-
*`--skiptests`: Does not generate build files for unit tests
56
-
*`--skipdocs`: Does not generate build files for documentation
57
-
*`--skipexamples`: Does not generate build files for GPA examples
58
-
*`--cmakecmd="CMD"`: Override the "cmake" command with "CMD"
24
+
***Note:** Be sure to add Python scripts to PATH in order to build documentation from pre_build scripts.
59
25
60
26
## Windows Build Information
27
+
The Windows projects each include a .rc file that embeds the VERSIONINFO resource into the final binary.
61
28
62
29
##### Prerequisites
63
-
* Microsoft Visual Studio 2022
30
+
* Microsoft Visual Studio 2022 (17.13.5)
64
31
* Within the Visual Studio Installer, the following workloads:
65
32
* Desktop development with C++
66
33
* Within the Visual Studio Installer, the following individual components:
67
34
* Windows 11 SDK (10.0.22621.0)
68
35
* MSVC v143 - VS 2022 C++ x64/x86 build tools (latest)
69
36
* C++ CMake tools for Windows
70
-
* C++ Clang Compiler for Windows (15.0.1)
71
-
* .NET Framework 4.6.2-4.8.1 SDKs and targeting packs
37
+
* C++ Clang Compiler for Windows (19.1.1)
38
+
* .NET SDK
39
+
* .NET 8.0 Runtime (Long Term Support)
72
40
* C# and Visual Basic
73
41
* C# and Visual Basic Roslyn compilers
74
42
75
-
##### Build Instructions
76
-
* Load build\win\vs2022_x64\GPUPerfAPI-x64.sln into Visual Studio to build the 64-bit version of GPA.
77
-
* Load build\win\vs2022_x86\GPUPerfAPI-x86.sln into Visual Studio to build the 32-bit version of GPA.
78
-
* After a successful build, the GPUPerfAPI binaries can be found in `gpu_performance_api\build\output\(configuration)` (e.g. gpu_performance_api\build\output\debug_x64).
79
-
80
-
#### Additional Information
81
-
* The Windows projects each include a .rc file that embeds the VERSIONINFO resource into the final binary. Internally within AMD, a Jenkins build system will dynamically update.
82
-
the build number. The version and build numbers can be manually updated by modifying the [gpa_version.h](source/gpu_perf_api_common/gpa_version.h) file.
83
-
84
43
## Linux Build Information
85
44
86
45
##### Prerequisites
87
46
* Install the Mesa common development package:
88
47
*`sudo apt-get install mesa-common-dev`
89
48
90
-
##### Build Instructions
91
-
* Execute "make" in the build/linux/make_debug_x64 to build the 64-bit debug version of GPA.
92
-
* Execute "make" in the build/linux/make_release_x64 to build the 64-bit release version of GPA.
93
-
* After a successful build, the GPUPerfAPI binaries can be found in `gpu_performance_api/build/output/$(Configuration)` (e.g. gpu_performance_api/build/output/debug_x64).
49
+
#### Instructions (pre_build.py)
50
+
51
+
GPA utilizes a python script pre_build.py to help users configure/setup the CMake build.
52
+
```sh
53
+
python build/pre_build.py --help
54
+
```
55
+
56
+
Additional switches that can be used with the pre_build.py script:
57
+
--vs=[2022]: Specify the Visual Studio version for which to generate projects. Default is 2022.
58
+
--config=[debug,release]: Specify the config for which to generate makefiles. Default is both. A specific config can only be specified on Linux. On Windows, both configs are always supported by the generated VS solution and project files.
59
+
--clean: Delete cmake-generated directories created by this script
60
+
--skipdx11: Does not generate build files for DX11 version of GPA (Windows only)
61
+
--skipdx12: Does not generate build files for DX12 version of GPA (Windows only)
62
+
--skipvulkan: Does not generate build files for Vulkan version of GPA
63
+
--skipopengl: Does not generate build files for OpenGL version of GPA
64
+
--skiptests: Does not generate build files for unit tests
65
+
--skipdocs: Does not generate build files for documentation
66
+
--skipexamples: Does not generate build files for GPA examples
67
+
--cmakecmd="CMD": Override the "cmake" command with "CMD"
68
+
69
+
By default the project will not build the generated CMake project (Although you can with `--build`).
70
+
71
+
On Windows
72
+
73
+
* Load build\win\vs2022_x64\GPUPerfAPI-x64.sln into Visual Studio to build the 64-bit version of GPA.
74
+
* After a successful build, the GPUPerfAPI binaries can be found in gpu_performance_api\build\output\(configuration) (e.g. gpu_performance_api\build\output\debug_x64).
75
+
76
+
You can use CMake to open the solution from the command line:
77
+
```sh
78
+
cmake --open build/win/vs2022_x64/
79
+
```
80
+
81
+
On Linux
82
+
83
+
* Execute `make` in the build/linux/make_debug_x64 to build the 64-bit debug version of GPA.
84
+
* Execute `make` in the build/linux/make_release_x64 to build the 64-bit release version of GPA.
85
+
* After a successful build, the GPUPerfAPI binaries can be found in gpu_performance_api/build/output/$(Configuration) (e.g. gpu_performance_api/build/output/debug_x64).
86
+
87
+
#### Instructions (CMake)
88
+
89
+
You can also use CMake directly:
90
+
91
+
On Windows
92
+
93
+
Assuming you use `Visual Studio` which is the default `generator` on Windows
94
+
95
+
```sh
96
+
cmake -S . -B build/win/
97
+
cmake --build build/win/ --config Debug
98
+
```
99
+
100
+
On Linux
101
+
102
+
Assuming you use `Unix Makefiles` which is the default `generator` on Windows
- You may want to configure with `-Dskipdocs=ON` if you don't want to add python scripts to your PATH.
111
+
- You may want to configure with `-Dskipcsharp=ON` if you don't want to download C# development tools.
112
+
- CMake 3.30+ brings drastic performance improvements to FetchContent highly recommended for developers.
94
113
95
114
## PublicCounterCompiler Tool
115
+
116
+
NOTE: The PublicCounterCompiler Tool requires using the `Visual Studio` generator due to `C#` usage!
117
+
96
118
The PublicCounterCompiler Tool is a C# utility that will generate C++ code to define the public (or derived) counters.
97
119
It takes as input text files contained in the [public_counter_compiler_input_files](source/public_counter_compiler_input_files) directory and
98
120
outputs files in the [gpu_perf_api_counter_generator](source/auto_generated/gpu_perf_api_counter_generator), [gpu_perf_api_unit_tests](source/auto_generated/gpu_perf_api_unit_tests)
Copy file name to clipboardExpand all lines: NOTICES.txt
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -80,7 +80,7 @@ License Text
80
80
This program is freely distributable without licensing fees and is provided without guarantee or warrantee expressed or implied. This program is -not- in the public domain.
81
81
82
82
83
-
google-googletest v1.8 (Apache-2.0)
83
+
google-googletest v1.16 (Apache-2.0)
84
84
Copyright 2009 Neal Norwitz All Rights Reserved.
85
85
Portions Copyright 2009 Google Inc. All Rights Reserved.
86
86
Apache License
@@ -121,7 +121,7 @@ Unless required by applicable law or agreed to in writing, software distributed
121
121
See the License for the specific language governing permissions and limitations under the License.
122
122
123
123
124
-
google-googletest v1.8.1 (BSD-3-Clause)
124
+
google-googletest v1.16.0 (BSD-3-Clause)
125
125
Copyright 2008, Google Inc.
126
126
All rights reserved.
127
127
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
0 commit comments