From 3d1ac04e4f27e2cd77f19d059501e2cbf48440b5 Mon Sep 17 00:00:00 2001 From: Chris Hesik Date: Fri, 24 Apr 2026 12:19:57 -0400 Subject: [PATCH 1/5] Add GitHub Actions CI workflow Build RadeonMemoryVisualizer and RmvBackendTest on Windows (VS 2022) and Ubuntu 24.04 for pushes to master and PRs targeting master. Run backend tests against samples/sample_trace.rmv. Add build status badge to README. Co-Authored-By: Claude Sonnet 4 --- .github/workflows/build.yml | 107 ++++++++++++++++++++++++++++++++++++ README.md | 2 + 2 files changed, 109 insertions(+) create mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..3cdd3e9 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,107 @@ +name: Build + +on: + push: + branches: [master] + pull_request: + branches: [master] + +jobs: + build: + name: ${{ matrix.os-name }} + runs-on: ${{ matrix.runner }} + strategy: + fail-fast: false + matrix: + include: + - runner: windows-latest + os-name: Windows + qt-arch: win64_msvc2019_64 + - runner: ubuntu-24.04 + os-name: Ubuntu + + steps: + - uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.11' + + - name: Install Qt (Windows) + if: runner.os == 'Windows' + uses: jurplel/install-qt-action@v4 + with: + version: '6.7.0' + arch: ${{ matrix.qt-arch }} + dir: 'C:\Qt' + cache: true + + - name: Install Qt (Ubuntu) + if: runner.os == 'Linux' + uses: jurplel/install-qt-action@v4 + with: + version: '6.7.0' + arch: linux_gcc_64 + dir: '${{ github.workspace }}/Qt' + cache: true + + - name: Install Linux dependencies + if: runner.os == 'Linux' + run: | + sudo apt-get update -q + sudo apt-get install -y \ + cmake \ + build-essential \ + chrpath \ + patchelf \ + libxcb-xinerama0 \ + libxcb-cursor-dev \ + mesa-common-dev \ + libglu1-mesa-dev \ + libgl1-mesa-dev \ + libx11-xcb-dev \ + libxkbcommon-x11-dev + + - name: Pre-build (Windows) + if: runner.os == 'Windows' + shell: cmd + run: | + cd build + python pre_build.py --vs 2022 --qt 6.7.0 --qt-root C:\Qt + + - name: Pre-build (Ubuntu) + if: runner.os == 'Linux' + run: | + cd build + python3 pre_build.py --qt 6.7.0 --qt-root "${{ github.workspace }}/Qt" + + - name: Build Release (Windows) + if: runner.os == 'Windows' + shell: cmd + run: | + cmake --build build\win\vs2022 --config Release --target RadeonMemoryVisualizer RmvBackendTest --parallel %NUMBER_OF_PROCESSORS% + + - name: Build Release (Ubuntu) + if: runner.os == 'Linux' + run: | + cmake --build build/linux/make/release --target RadeonMemoryVisualizer RmvBackendTest --parallel $(nproc) + + - name: Build Debug tests (Windows) + if: runner.os == 'Windows' + shell: cmd + run: | + cmake --build build\win\vs2022 --config Debug --target RmvBackendTest --parallel %NUMBER_OF_PROCESSORS% + + - name: Build Debug tests (Ubuntu) + if: runner.os == 'Linux' + run: | + cmake --build build/linux/make/debug --target RmvBackendTest --parallel $(nproc) + + - name: Run tests (Windows) + if: runner.os == 'Windows' + run: build\win\debug\RmvBackendTest-d.exe --rmv samples\sample_trace.rmv + + - name: Run tests (Ubuntu) + if: runner.os == 'Linux' + run: build/linux/debug/RmvBackendTest-d --rmv samples/sample_trace.rmv diff --git a/README.md b/README.md index 8adb1d6..499e14d 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # Radeon™ Memory Visualizer +[![Build](https://github.com/GPUOpen-Tools/radeon_memory_visualizer/actions/workflows/build.yml/badge.svg)](https://github.com/GPUOpen-Tools/radeon_memory_visualizer/actions/workflows/build.yml) + The Radeon Memory Visualizer (RMV) is a software tool that will allow users to analyze video memory usage on AMD Radeon GPUs. RMV will reveal detailed information regarding an application’s video memory consumption and access patterns. This will allow users to understand how memory is being leveraged and open the door to new optimization opportunities. ## Getting Started From fb353e496abc13e7ef9ab6273a9bd36d01d28053 Mon Sep 17 00:00:00 2001 From: Chris Hesik Date: Fri, 24 Apr 2026 12:41:23 -0400 Subject: [PATCH 2/5] Fix Qt install path so pre_build.py can locate Qt jurplel/install-qt-action adds an extra Qt/ subdirectory to the configured dir, so passing dir: 'C:\Qt' or '/Qt' resulted in Qt landing at C:\Qt\Qt\6.7.0 / /Qt/Qt/6.7.0, which pre_build.py's --qt-root search couldn't find. Drop the extra Qt/ suffix from dir so the action's added subdirectory is the one --qt-root points at. Co-Authored-By: Claude Sonnet 4 --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3cdd3e9..20ede81 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -34,7 +34,7 @@ jobs: with: version: '6.7.0' arch: ${{ matrix.qt-arch }} - dir: 'C:\Qt' + dir: 'C:\' cache: true - name: Install Qt (Ubuntu) @@ -43,7 +43,7 @@ jobs: with: version: '6.7.0' arch: linux_gcc_64 - dir: '${{ github.workspace }}/Qt' + dir: '${{ github.workspace }}' cache: true - name: Install Linux dependencies From 3dc0f080db4d25a4e42f03a09858237cca744817 Mon Sep 17 00:00:00 2001 From: Chris Hesik Date: Fri, 24 Apr 2026 12:47:58 -0400 Subject: [PATCH 3/5] Install Qt Wayland module and wayland system libs on Ubuntu devtools_qt_helper.cmake requires the Qt6::WaylandClient component, which install-qt-action does not include with Qt Base. Add the qtwayland Qt module and the libwayland-dev system package so the required client/server/cursor/egl libs resolve. Co-Authored-By: Claude Sonnet 4 --- .github/workflows/build.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 20ede81..83bc460 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -44,6 +44,7 @@ jobs: version: '6.7.0' arch: linux_gcc_64 dir: '${{ github.workspace }}' + modules: 'qtwayland' cache: true - name: Install Linux dependencies @@ -61,7 +62,8 @@ jobs: libglu1-mesa-dev \ libgl1-mesa-dev \ libx11-xcb-dev \ - libxkbcommon-x11-dev + libxkbcommon-x11-dev \ + libwayland-dev - name: Pre-build (Windows) if: runner.os == 'Windows' From fe8e144baeb1f90b7925ba0fce336a0fcf3c383d Mon Sep 17 00:00:00 2001 From: Chris Hesik Date: Fri, 24 Apr 2026 12:58:33 -0400 Subject: [PATCH 4/5] Use qtwaylandcompositor as the aqt module name aqt does not expose 'qtwayland' as a module identifier for Qt 6.7.0; both the compositor and client libraries ship in a single module named qtwaylandcompositor, which is what provides Qt6WaylandClient. Co-Authored-By: Claude Sonnet 4 --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 83bc460..80f0b17 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -44,7 +44,7 @@ jobs: version: '6.7.0' arch: linux_gcc_64 dir: '${{ github.workspace }}' - modules: 'qtwayland' + modules: 'qtwaylandcompositor' cache: true - name: Install Linux dependencies From 6919ce361ce4cd92a91f12301685e04657cce71b Mon Sep 17 00:00:00 2001 From: Chris Hesik Date: Fri, 24 Apr 2026 13:12:02 -0400 Subject: [PATCH 5/5] Bump checkout and setup-python to Node.js 24-native versions actions/checkout@v4 and actions/setup-python@v5 run on Node.js 20, which GitHub deprecates June 2, 2026 and removes September 16, 2026. Use the v5 / v6 majors so we never see the deprecation warning. Co-Authored-By: Claude Sonnet 4 --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 80f0b17..3e87067 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -21,10 +21,10 @@ jobs: os-name: Ubuntu steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Set up Python - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: '3.11'