diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..3e87067 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,109 @@ +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@v5 + + - name: Set up Python + uses: actions/setup-python@v6 + 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:\' + 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 }}' + modules: 'qtwaylandcompositor' + 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 \ + libwayland-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