Skip to content

[DO NOT MERGE] Testing psdb ci - #6

Closed
jharryma wants to merge 7 commits into
developfrom
jharryma/ci-testing
Closed

jharryma wants to merge 7 commits into
developfrom
jharryma/ci-testing

Conversation

@jharryma

Copy link
Copy Markdown
Collaborator

No description provided.

systems-assistant Bot pushed a commit that referenced this pull request Aug 5, 2025
Adding Public Sync to ROCTracer

Co-authored-by: Ammar ELWazir <aelwazir@amd.com>
systems-assistant Bot pushed a commit that referenced this pull request Aug 5, 2025
* Provide rocprofiler_register_iterate_registration_info function

- stores the runtime arguments for later reference

* Fix compilation error

* Removed unused variable

* Store api tables in vector

* Update license

* Replace global_mutex usage with scoped_count

- in rocp_invoke_registrations

* Formatting

---------

Co-authored-by: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
systems-assistant Bot pushed a commit that referenced this pull request Aug 5, 2025
* Obey CMAKE_BUILD_TYPE

Obey CMAKE_BUILD_TYPE when it is passed on the command line. Previous
behavior remains:

Debug by default
ROCRTST_BLD_TYPE can set build type

* External CI: change trigger from amd-master to amd-mainline

* Added gfx94x and gfx11xx  IDs to enumerator (#5)

* Use idomatic approach to extending CMAKE_MODULE_PATH. (#7)

There are many reasons why there may already be a CMAKE_MODULE_PATH defined.
The idiomatic way to extend it in a project is via list(APPEND).

ROCm/rocminfo#97 submitted by @stellaraccident

Co-authored-by: Stella Laurenzo <Stella.Laurenzo@amd.com>

* Added release trigger for further releases

* Fix for typo in ISA_TO_ID table (#6)

Change-Id: Id0720988fb01079a3ca6f3287dc743d93db4fd0f

* Remove WSL checks for displaying UUID and BDFID

Signed-off-by: lyndonli <Lyndon.Li@amd.com>

* Added KWS check for amd-mainline (#9)

---------

Signed-off-by: lyndonli <Lyndon.Li@amd.com>
Co-authored-by: benrichard-amd <ben.richard@amd.com>
Co-authored-by: Su, Daniel <Daniel.Su@amd.com>
Co-authored-by: Stella Laurenzo <Stella.Laurenzo@amd.com>
Co-authored-by: Mallya, Ameya Keshava <AmeyaKeshava.Mallya@amd.com>
Co-authored-by: Yat Sin, David <David.YatSin@amd.com>
Co-authored-by: lyndonli <Lyndon.Li@amd.com>
jayhawk-commits pushed a commit that referenced this pull request Aug 5, 2025
* Provide rocprofiler_register_iterate_registration_info function

- stores the runtime arguments for later reference

* Fix compilation error

* Removed unused variable

* Store api tables in vector

* Update license

* Replace global_mutex usage with scoped_count

- in rocp_invoke_registrations

* Formatting

---------

Co-authored-by: Jonathan R. Madsen <jonathanrmadsen@gmail.com>

[ROCm/rocprofiler-register commit: fc71235]
jayhawk-commits pushed a commit that referenced this pull request Aug 5, 2025
Adding Public Sync to ROCTracer

Co-authored-by: Ammar ELWazir <aelwazir@amd.com>

[ROCm/roctracer commit: 5d6d089]
ammallya pushed a commit that referenced this pull request Aug 6, 2025
[ROCm/rocprofiler-systems commit: c16f578]
@rahulc-gh rahulc-gh closed this Aug 6, 2025
@rahulc-gh rahulc-gh reopened this Aug 6, 2025
systems-assistant Bot pushed a commit that referenced this pull request Aug 10, 2025
Change-Id: Ieda106374eb066cd22ddd1194a9f9b1352c26d16
xuchen-amd pushed a commit that referenced this pull request Aug 10, 2025
fix typo in hipBatchMemOpParamsTocudaBatchMemOpParams
jayhawk-commits pushed a commit that referenced this pull request Aug 11, 2025
Change-Id: Id0720988fb01079a3ca6f3287dc743d93db4fd0f


[ROCm/rocminfo commit: ac6000d]
jayhawk-commits pushed a commit that referenced this pull request Aug 11, 2025
* Obey CMAKE_BUILD_TYPE

Obey CMAKE_BUILD_TYPE when it is passed on the command line. Previous
behavior remains:

Debug by default
ROCRTST_BLD_TYPE can set build type

* External CI: change trigger from amd-master to amd-mainline

* Added gfx94x and gfx11xx  IDs to enumerator (#5)

* Use idomatic approach to extending CMAKE_MODULE_PATH. (#7)

There are many reasons why there may already be a CMAKE_MODULE_PATH defined.
The idiomatic way to extend it in a project is via list(APPEND).

ROCm/rocminfo#97 submitted by @stellaraccident

Co-authored-by: Stella Laurenzo <Stella.Laurenzo@amd.com>

* Added release trigger for further releases

* Fix for typo in ISA_TO_ID table (#6)

Change-Id: Id0720988fb01079a3ca6f3287dc743d93db4fd0f

* Remove WSL checks for displaying UUID and BDFID

Signed-off-by: lyndonli <Lyndon.Li@amd.com>

* Added KWS check for amd-mainline (#9)

---------

Signed-off-by: lyndonli <Lyndon.Li@amd.com>
Co-authored-by: benrichard-amd <ben.richard@amd.com>
Co-authored-by: Su, Daniel <Daniel.Su@amd.com>
Co-authored-by: Stella Laurenzo <Stella.Laurenzo@amd.com>
Co-authored-by: Mallya, Ameya Keshava <AmeyaKeshava.Mallya@amd.com>
Co-authored-by: Yat Sin, David <David.YatSin@amd.com>
Co-authored-by: lyndonli <Lyndon.Li@amd.com>

[ROCm/rocminfo commit: aec5d6f]
jayhawk-commits pushed a commit that referenced this pull request Aug 11, 2025
jayhawk-commits pushed a commit that referenced this pull request Aug 18, 2025
Change-Id: Ieda106374eb066cd22ddd1194a9f9b1352c26d16

[ROCm/hip-tests commit: 7bc6eda]
@jharryma
jharryma requested a review from a team as a code owner October 1, 2025 15:54
ApoKalipse-V added a commit that referenced this pull request Apr 23, 2026
commit b3aabb45064e63ec721f13a48146c0fe76d76c02
Author: alexxu-amd <159800977+alexxu-amd@users.noreply.github.com>
Date:   Thu Apr 23 10:23:25 2026 -0400

    [rocr-debug-agent] Correct .readthedocs path for monorepo migration (#5340)

    ## Motivation

    .readthedocs.yml contains outdated path.

    ## Technical Details

    Correct the path to match monorepo setup.

    ## JIRA ID

    <!-- If applicable, mention the JIRA ID resolved by this PR (Example:
    Resolves SWDEV-12345). -->
    <!-- Do not post any JIRA links here. -->

    ## Test Plan

    <!-- Explain any relevant testing done to verify this PR. -->

    ## Test Result

    <!-- Briefly summarize test outcomes. -->

    ## Submission Checklist

    - [ ] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

commit b5cd2c0530096f57e56cf2bebdfe2b7a7d09c060
Author: jamessiddeley-amd <James.Siddeley@amd.com>
Date:   Thu Apr 23 10:10:59 2026 -0400

    [rocprof-compute] Removed --exit-zero from ruff formatting workflow (#5308)

    ## Motivation

    The formatting workflow uses`ruff check . --fix --exit-zero`.

    This PR drops `--exit-zero` from the ruff CI step so the workflow
    actually fails on lint errors that aren't auto fixable instead of
    silently passing them

    ## Technical Details

    N/A
    ## JIRA ID

    N/A

    ## Test Plan

    N/A

    ## Test Result

    N/A

    ## Submission Checklist

    - [x] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

    ---------

    Co-authored-by: Vignesh Edithal <Vignesh.Edithal@amd.com>

commit 8508fd9b5e9a42a39929eabfc5d4b5e12c90f92a
Author: Ammar ELWazir <ammar.elwazir@amd.com>
Date:   Thu Apr 23 09:04:20 2026 -0500

    feat(perfxpert): consolidate agentic redesign and validation stack (#4576)

    ## Summary

    This PR is the consolidation point for the current
    `experimental/python/perfxpert` stack. It is no longer just the original
    rename branch: it now carries the agentic redesign, provider/runtime
    hardening, launcher/backend integration, parity/regression coverage, and
    the docs/media refresh on top of the `ROCInsight` -> `PerfXpert` rename.

    ## Scope

    In scope:
    - `experimental/python/perfxpert/**`

    Explicitly out of scope for this PR:
    - `.github/**`
    - CI/workflow-only changes (handled separately)

    ## Design / Feature Areas

    ### 1. Rename + package surface
    - rename from `rocinsight` to `perfxpert`
    - updated package/import/CLI/env-var/doc branding
    - preserved the Python and CLI entry surfaces under the new package name

    ### 2. Agentic analysis stack
    - layered agent hierarchy with Root, Analysis, Recommendation,
    Correctness, and specialist agents
    - shared agent brain across batch `perfxpert analyze`, Python API, MCP,
    and interactive launcher flows
    - fence-sliced prompt layering retained across the hierarchy

    ### 3. Provider + runtime hardening
    - provider registry/config loading and public provider surface fixes
    - typed provider error taxonomy and provider routing cleanup
    - fallback-chain support in the runtime session layer
    - recursion-guard and gate-cascade fixes carried forward into the
    consolidated branch

    ### 4. Launcher + backend integration
    - multi-backend `perfxpert-code` surface (`opencode`, `claude`, `codex`,
    `gemini`)
    - MCP registration + staged prompt wiring for backend adapters
    - source-checkout preference for the locally built patched `opencode`
    binary before bundled/PATH fallbacks
    - bundled build script now tolerates Bun lockfile-format churn by
    retrying without `--frozen-lockfile`

    ### 5. CLI + user workflows
    - top-level `init`, `diff`, `ci`, `doctor`, `providers`, and analyze
    flows present on the consolidated branch
    - source-only, trace-only, and combined analyze paths preserved
    - diff/CI/reporting surfaces merged into the same branch state

    ### 6. Validation / safety stack
    - parity fixtures and parity harness added to the branch
    - red-team and regression-gate coverage retained
    - exit-dashboard and audit-gate docs/tests carried into the consolidated
    branch
    - MCP registry/tool exposure checks preserved

    ### 7. Docs / schemas / media
    - guide and architecture docs updated to reflect the live product
    surface
    - refreshed guide GIF set carried on the branch
    - schema/version docs updated with the additive JSON formatter evolution
    - stale unsupported examples removed or rewritten to match the actual
    CLI/runtime surface

    ## Current Validation On Branch

    Focused validation completed on the live branch state:

    - `214 passed` on the shared runtime / CLI / MCP / setup / docs /
    launcher slice
    - `25 passed` on the launcher + setup-build + docs-links slice
    - local patched `opencode` build completed successfully from the pinned
    submodule
    - source-checkout launcher resolution now prefers the locally built
    patched binary:
    -
    `/tmp/rocm-systems-pr4576-consolidated/experimental/python/perfxpert/opencode/packages/opencode/dist/opencode-linux-x64/bin/opencode`

    Representative commands run on this branch state:

    ```bash
    PYTHONPATH=experimental/python/perfxpert pytest -q \
      experimental/python/perfxpert/tests/test_agents/test_runtime.py \
      experimental/python/perfxpert/tests/test_agents/test_framework.py \
      experimental/python/perfxpert/tests/test_cli/test_analyze_args.py \
      experimental/python/perfxpert/tests/test_cli/test_provider_error_surface.py \
      experimental/python/perfxpert/tests/test_cli/test_backend_dispatch.py \
      experimental/python/perfxpert/tests/test_cli/test_launcher_subcommands.py \
      experimental/python/perfxpert/tests/test_tools/test_agents/test_mcp_registry_has_agent_tools.py \
      experimental/python/perfxpert/tests/test_integration/test_cli_dispatch.py \
      experimental/python/perfxpert/tests/test_setup/test_setup_build.py \
      experimental/python/perfxpert/tests/test_integration/test_docs_links.py \
      experimental/python/perfxpert/tests/test_tools/test_opencode_launcher.py
    ```

    ```bash
    PYTHONPATH=experimental/python/perfxpert pytest -q \
      experimental/python/perfxpert/tests/test_tools/test_opencode_launcher.py \
      experimental/python/perfxpert/tests/test_setup/test_setup_build.py \
      experimental/python/perfxpert/tests/test_integration/test_docs_links.py
    ```

    ## Notes

    - This PR description is intentionally scoped to the consolidated
    `perfxpert` branch state, not the original rename-only PR.
    - `.github` changes are intentionally excluded from this PR.
    - Final ROCm/manual parity validation and the remaining doc/spec
    closeout continue on top of this branch.

commit e7d104593dabd87674c40e5fc2f6cb0d87e46d8f
Author: Aurelien Bouteiller <abouteil@amd.com>
Date:   Thu Apr 23 09:53:32 2026 -0400

    [rocshmem] rocgdb debugging scripts (#5122)

    ## Motivation

    Improve debugability of deadlocked rocshmem application by providing
    rocgdb scripting that analyzes live deadlocked processes and summarizes
    and groups wavefront backtraces and highlight wavefronts that are stuck
    in a rocshmem api.

    ## Technical Details

    Use python scripting to drive rocgdb, add a small script to ease
    attaching and summarizing for multiprocesses.

    ## JIRA ID

    AIROCSHMEM-377

    ## Test Plan

    * [x] Ran the debug script on the pr-provided deadlock example
    * [x] Ran the debug script on a modified functional test that deadlocks
    intentionally, witnessed wg groupings
    * [x] Ran the debug script on modified deepep that deadlocks
    intentionally, witnessed wg groupings in a useful way

    ## Submission Checklist

    - [ ] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

    ---------

    Signed-off-by: Aurelien Bouteiller <abouteil@amd.com>
    Signed-off-by: Aurelien Bouteiller <aurelien.bouteiller@amd.com>
    Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

commit d192aa1e21d1f220d0c3eb06c5730a3d75f0b81f
Author: marantic-amd <marantic@amd.com>
Date:   Thu Apr 23 15:16:09 2026 +0200

    [rocprofiler-systems] Adapt CPU metrics to PMC collector approach (#4612)

    ## Motivation

    - Add CPU metrics collector with policy-based PMC architecture
    - Replace the legacy cpu_freq module with a new CPU collector that
    follows the same policy-based design as the GPU and NIC collectors. The
    CPU collector integrates into the unified PMC sampler via
    collector_slice, sampling per-CPU frequency, load, and process-level
    metrics.

    ## Technical Details

    - New components:
    - procfs driver: reads /proc/stat, /proc/cpuinfo, getrusage() with
    persistent FDs and zero-copy parsing for minimal overhead
      - procfs provider: lightweight wrapper with factory pattern for DI
      - CPU device: manages per-CPU state with delta-based load computation
    - CPU traits: adapts base::collector for single-device multi-core model
      - CPU cache/perfetto policies: trace cache and Perfetto output
    - Mock driver and 17 unit tests covering init, freq, load, process
    metrics, filtered CPU sets, and repeated sampling

    - Integration:
      - Added to g_collector_slices alongside GPU/NIC in pmc::sampler
      - New ROCPROFSYS_CATEGORY_CPU_LOAD category for Perfetto traces
      - Renamed cpu_freq_sample to cpu_pmc_sample in trace cache (0x0007)
    - Updated perfetto_processor and rocpd_processor to handle CPU load
    deserialization and emit per-CPU counter tracks
    - Pause support: cache_policy emits zero entries for all monitored CPUs
    when metrics are empty (pause path)

    - Removed:
      - library/cpu_freq.cpp, cpu_freq.hpp
      - library/components/cpu_freq.cpp, cpu_freq.hpp
      - cpu_freq instance block from process_sampler.cpp

    ## JIRA ID

    - AIPROFSYST-224
    - AIPROFSYST-79

    ## Test Plan

    - Added additional unit tests to the feature
    - Tested with existing test suite

    ## Test Result

    - All test passed

    ## Submission Checklist

    - [x] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

commit 34bef1e6accfef4c5a3e01542b638229a09eb7a1
Author: accauble <accauble@users.noreply.github.com>
Date:   Thu Apr 23 09:03:54 2026 -0400

    [rocjitsu] Add pre-commit hook to check for clang-format in rocjitsu files (#5311)

    ## Motivation

    I keep forgetting to run the clang_format.sh script so I'm adding a
    pre-commit hook that rocjitsu developers can install to check if they
    need to run the script.

    ## Technical Details

    Heavily commented because I used claude and I have never written a
    git-hook. Adding two basic scripts:

    -- A script to "install" the hook in rocm-systems. Only need to do this
    once per clone.
    -- The hook: checks staged files to see if they are formatted correctly.
    If not, halts the commit and tells the user what went wrong.

    ## JIRA ID

    None

    ## Test Plan

    Tested:
    1. Installation script works as expected
    2. Checked that a poorly-formatted staged file was caught by the hook
    3. Checked that a well-formatted staged file is allowed
    4. Checked that a poorly-formatted cpp file outside the rocjitsu
    directory doesn't get caught by the hook

    ## Test Result

    They work!

    ## Submission Checklist

    - [ ] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

    ---------

    Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
    Co-authored-by: Rosa, Ada <arosa@amd.com>

commit 35534db977d5e5cbdd5ec88b7bd8b586ea2077a1
Author: Milan Radosavljevic <milan.radosavljevic@amd.com>
Date:   Thu Apr 23 13:09:43 2026 +0200

    [rocprofiler-systems] Restructure unit tests to improve test isolation (#4853)

    ## Motivation
    Unit tests hang under Thread Sanitizer (TSan) due to a deadlock during
    atexit static destruction. The thread_deleter calls
    rocprofsys_finalize_hidden() which logs via spdlog, triggering a TSan
    race report whose symbolizer deadlocks on its own slot lock while
    closing a file descriptor. This causes the sanitizer CI workflow to time
    out.

    ## Technical Details

    Root cause: unit test executable was including
    `rocprofsys-object-library` which pulled `library.cpp`. with
    `library.cpp` static variables were included which should trigger
    `ensure_finalization(true)`. `ensure_finalization(true)` was calling
    `thread_deleter`. Unit test should include only isolated code, where
    this is breaking this rule.

    ## JIRA ID

    <!-- If applicable, mention the JIRA ID resolved by this PR (Example:
    Resolves SWDEV-12345). -->
    <!-- Do not post any JIRA links here. -->

    ## Test Plan

    <!-- Explain any relevant testing done to verify this PR. -->
    - Run full unit test suite: ./bin/rocprof-sys-unit-tests — all 480 tests
    pass
    - Run logger fork/stress tests under TSan — no deadlock
    - Verify rocprofiler-systems-object-library is not linked into the test
    binary-

    ## Test Result
    All unit tests pass under TSan without hanging during atexit. The test
    binary no longer links library.cpp's static initializers, preventing
    thread_data instantiation and thread_deleter finalization entirely.

    ## Submission Checklist

    - [ ] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

commit 783707e8cb0a210e78d1723542c42b61eb95f63d
Author: Jonathan L'Work <113400649+Jonathan03ant@users.noreply.github.com>
Date:   Thu Apr 23 06:17:30 2026 -0400

    [rocprofiler-sdk]: Fix crash on iGPUs without PMC support #148 (#5294)

commit f89f4135b732c7bb83b6d25363160a847762e000
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Wed Apr 22 17:22:29 2026 +0000

    Bump cryptography in /projects/rocr-debug-agent/docs/sphinx

    Bumps [cryptography](https://github.com/pyca/cryptography) from 46.0.6 to 46.0.7.
    - [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
    - [Commits](https://github.com/pyca/cryptography/compare/46.0.6...46.0.7)

    ---
    updated-dependencies:
    - dependency-name: cryptography
      dependency-version: 46.0.7
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>

commit 7321d441181f08e8c53f48e7b580f8dd2434a73d
Author: cfallows-amd <Carrie.Fallows@amd.com>
Date:   Wed Apr 22 22:12:49 2026 -0400

    [rocprofiler-compute] Bugfix for memchart Matrix Ops value (#5310)

    ## Motivation

    Fix Matrix Ops value pickup in memcharts- was trying to read for MFMA
    but recent roof updates have converted it to general matrix operations
    label which forced it to N/A value.

    ## Technical Details

    Change MFMA metric title to Matrix Ops to reflect db entry.
    Only affects CDNA memcharts

    ## JIRA ID

    AIPROFCOMP-559

    ## Test Plan

    Manual testing on MI350 system - profiled rocflop and occupancy samples
    to test for workload that captures # of MFMA ops, and workload that has
    0 MFMA ops, respectively.

    Also regenerated hashes.

    ## Test Result

    CLI analysis for block 3 shows Matrix Ops reflecting accurate MFMA
    values:
    <img width="1485" height="653" alt="Screenshot 2026-04-22 165029"
    src="https://github.com/user-attachments/assets/2b3d8d59-e038-4a1a-bdac-0db98bd94da1"
    />
    <img width="1448" height="645" alt="Screenshot 2026-04-22 165104"
    src="https://github.com/user-attachments/assets/1c8423e0-4af8-44c8-b9d7-3a3203f39900"
    />

    GUI mode also reflects these changes to the value outputs, no N/A.

    ## Submission Checklist

    - [X] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

    ---------

    Signed-off-by: Carrie Fallows <Carrie.Fallows@amd.com>

commit 4a65e8d0efcdcd584778d8b5d86d25563891afad
Author: Dmitrii <dmitrii.galantsev@amd.com>
Date:   Wed Apr 22 20:01:57 2026 -0500

    [RDC] Fix embedded profiler by loading librdc_rocp.so with RTLD_GLOBAL (#3922)

    rocprofiler-sdk discovers tools by searching for rocprofiler_configure
    in the global symbol namespace during hsa_init(). librdc_rocp.so was
    loaded with RTLD_LAZY (implicit RTLD_LOCAL), hiding the symbol and
    silently preventing profiler counter collection in embedded mode.

commit cbfa12fb0ea9a8c39b9e0f3232f3e821e2ce239f
Author: marandje <marko.arandjelovic@amd.com>
Date:   Thu Apr 23 01:28:40 2026 +0200

    Fix false queue-idle detection for first unsignaled packet (#5073)

    ## Motivation

    - `Unit_hipGetProcAddress_MemoryApisMemset` is failing because
    `hipStreamSynchronize` may return before `hipMemset*Async` operation has
    actually completed when it is the only operation enqueued on the stream.

    ## Technical Details

    - If a single command is enqueued on a stream without an attached
    completion signal, `IsQueueIdle()` can incorrectly report the queue as
    idle. In the original logic, the write index starts at `0`, so an empty
    queue and a queue containing exactly one command at index `0` are
    indistinguishable.
    - When `hipStreamSynchronize` is called on stream A, the finish path may
    call `ReleaseAllHwQueues()`, which can release an idle hardware queue
    belonging to stream B. If stream B has only a single enqueued command
    without a completion signal, that queue can be released prematurely. A
    later synchronization on stream B may then reacquire a different queue
    that is already idle, causing `hipStreamSynchronize` to return too
    early.
    - `last_write_index_` and `last_packet_with_signal_index_` still starts
    counting from zero but are preinitialized with an invalid queue index.

    ## JIRA ID

    ROCM-20999

    ## Test Plan

    Run hip-tests.

    ## Test Result

    All hip-tests passed.

    ## Submission Checklist

    - [x] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

commit 4a47fe94289240c48cd005cf0499c71221d29a0c
Author: akolliasAMD <99202231+akolliasAMD@users.noreply.github.com>
Date:   Wed Apr 22 16:28:06 2026 -0600

    removed akolliasAMD from codeowners on rocSHMEM repo (#5250)

    ## Motivation

    Removing akolliasAMD from CODEOWNERS for team changes

    ## Test Plan

    No test needed

    ## Submission Checklist

    - [ ] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

commit c08c171dbb0d974eee4c42dc9e7709e2cb13cf56
Author: marandje <marko.arandjelovic@amd.com>
Date:   Thu Apr 23 00:18:39 2026 +0200

    Remove the queue from a set of active queues only when last enqueued command is cleared (#5193)

    ## Motivation

    Unit_hipMultiThreadStreams1_AsyncAsync fails when GPU_ENABLE_PAL=0. In
    HostQueue::finish(), lastEnqueueCommand_ is preserved, but the queue is
    still removed from activeQueues. When the next command is enqueued, the
    queue is not added back to activeQueues because lastEnqueueCommand_ is
    still non-null, which prevents the null stream from implicitly
    synchronizing with that queue.

    ## Technical Details

    This change removes the queue from the set of active queues only when
    last enqueued command is cleared.

    ## JIRA ID

    ROCM-20999

    ## Test Plan

    Run Unit_hipMultiThreadStreams1_AsyncAsync 100x.

    ## Test Result

    All iterations passed.

    ## Submission Checklist

    - [x] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

commit c74978d8d5f3c7f8732da86659f08acf71b9427f
Author: Sajina PK <sputhala@amd.com>
Date:   Wed Apr 22 18:14:48 2026 -0400

    [rocprof-systems]: Fix makeinfo build failures on systems without texinfo (#5131)

    ## Motivation

    Bundled `binutils` bfd build can invoke `makeinfo` to refresh GNU Info
    manuals. On images without `Texinfo`, that fails with `makeinfo: not
    found` even though we only need static libraries (libbfd, libiberty,
    etc.).

    ## Technical Details

    - Set `MAKEINFO` to a no-op (true, via `find_program`) in the configure
    environment for the timemory `binutils-external` and rocprofiler-systems
    `rocprofiler-systems-libiberty-build` ExternalProjects.
    - Pass `MAKEINFO=…` on the make command line so existing build trees and
    `CONFIGURE_HANDLED_BY_BUILD` flows still override the value baked into
    generated Makefiles.

    - [x] Merge the timemory update:
    https://github.com/ROCm/timemory/pull/30
    - [x] Once the timemory PR is merged update the submodule pointer to
    head of rocprofiler-systems branch

    ## JIRA ID

    ## Test Plan

    Manual test building `rocprofiler-systems` project.

    ## Test Result

    Pass

    ## Submission Checklist

    - [x] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

commit 4c8dc1a07aaec317ed9bf7da1f7854cac74da62a
Author: spolifroni-amd <Sandra.Polifroni@amd.com>
Date:   Wed Apr 22 16:55:44 2026 -0400

    [rocdecode, rocjpeg] added env var doc (#5247)

    ## Motivation
    rocdecode and rocjpeg both needed a list of env vars that affected their
    runtimes

commit 08cec46e16354c0b34a404acb5c3e94d8035695d
Author: Dmitrii <dmitrii.galantsev@amd.com>
Date:   Wed Apr 22 15:42:26 2026 -0500

    [ci] Use github-script instead of curl (#3424)

    ## Motivation

    Trying to manually sanitize PR strings is painful.
    Use github-script to handle it all for us.

    This should prevent issues like
    https://github.com/ROCm/rocm-systems/pull/3418#issuecomment-3937597408
    where double quotes broke the script.

    ## Test Plan

    - [ ] Make a PR with double quotes in the name and see if script breaks.
    - [x] Run the workflow via act to test syntax

    Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>

commit ef7520eccdbe4658a2864ac2ff78bfdb7a1a529c
Author: Scott Tsai <scottt.tw@gmail.com>
Date:   Thu Apr 23 04:32:28 2026 +0800

    Fix rocprofiler-sdk build on gcc 15 (#934)

    This PR fixes building rocprofiler-sdk on gcc 15 by updating two of its
    external submodules:
    * rocprofiler-sdk/external/yaml-cpp
    * rocprofiler-sdk//external/elfio
    to include `cstdint.h` where it needs them instead of implicitly through
    other C++ standard headers.

commit fc3df3bf950cc16c6bbddd95735e9b9ee4758835
Merge: 1c40b0c84e b5210bf473
Author: Zach Byrne <zbyrne@amd.com>
Date:   Wed Apr 22 14:07:44 2026 -0600

    [hipfile] Add io size, bandwidth, and latency stats broken down by gpu to ais-stats (#4991)

    [AIHIPFILE-159]
    HipFile stats stores counters in a series of buckets broken up by
    backend, IO operation, and IO size. This lets ais-stats show histograms
    for different IO sizes. Also enables stats collection by default.

commit 1c40b0c84e60006d154ec08710fd8e0c54fb3a09
Merge: eb5dee8755 5412a62035
Author: James Newling <james.newling@gmail.com>
Date:   Wed Apr 22 12:43:21 2026 -0700

    [RocJitsu] Basic CI workflow (#5216)

    Add basic CI that runs on free github runners.
    Builds in ~10 mins.
    Tests run in ~5 seconds.
    See 'Checks' to see what tests ran.

commit eb5dee875516bf2fd001a3781938036947fbdb66
Author: Adam Pryor <61172547+adam360x@users.noreply.github.com>
Date:   Wed Apr 22 13:38:00 2026 -0500

    [RDC] Use longer sampling window when using SIMD rocprof metric (#5251)

    ## Motivation

    SIMD util from rocprof needs a longer sampling window to give meaningful
    results

    ## Test

    Verified rocprof metrics behavior correctly with longer sampling window

    Signed-off-by: Adam360x <Adam.pryor@amd.com>

commit 8d566d526860fea2822d57e5084ffd14c65ac031
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Sat Mar 28 15:30:54 2026 +0000

    Bump cryptography in /projects/rocr-debug-agent/docs/sphinx

    Bumps [cryptography](https://github.com/pyca/cryptography) from 43.0.0 to 46.0.6.
    - [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
    - [Commits](https://github.com/pyca/cryptography/compare/43.0.0...46.0.6)

    ---
    updated-dependencies:
    - dependency-name: cryptography
      dependency-version: 46.0.6
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>

commit 07a818e54c4a7f1fd24dd851c98b51730627edf2
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Fri Apr 3 03:38:20 2026 +0000

    build(deps): bump pygments in /projects/rocr-debug-agent/docs/sphinx

    Bumps [pygments](https://github.com/pygments/pygments) from 2.18.0 to 2.20.0.
    - [Release notes](https://github.com/pygments/pygments/releases)
    - [Changelog](https://github.com/pygments/pygments/blob/master/CHANGES)
    - [Commits](https://github.com/pygments/pygments/compare/2.18.0...2.20.0)

    ---
    updated-dependencies:
    - dependency-name: pygments
      dependency-version: 2.20.0
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>

commit fb4aa4aac81f5f0099480ad35cf8b330ac8547b1
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Apr 7 07:38:17 2026 +0000

    Bump tornado in /projects/rocr-debug-agent/docs/sphinx

    Bumps [tornado](https://github.com/tornadoweb/tornado) from 6.4.2 to 6.5.5.
    - [Changelog](https://github.com/tornadoweb/tornado/blob/master/docs/releases.rst)
    - [Commits](https://github.com/tornadoweb/tornado/compare/v6.4.2...v6.5.5)

    ---
    updated-dependencies:
    - dependency-name: tornado
      dependency-version: 6.5.5
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>

commit f3cabf66b29ae140410bd432841d1a8833f50202
Author: Lancelot SIX <lancelot.six@amd.com>
Date:   Fri Apr 17 16:23:11 2026 +0100

    Cleanup unused arch.

commit cdbf9cb8ba938b1990afbd929170291df73b5856
Author: Lancelot SIX <lancelot.six@amd.com>
Date:   Fri Apr 17 16:20:15 2026 +0100

    gfx12: Fix writing to pseudo_state_priv

    I noticed that the debugger can't write the $state_priv register, writes
    are eventually skipped.

    It turns out this is because gfx12_architecture_t::write_pseudo_register
    fails to memcpy the value to the register.

    Fix this.

commit 1dd1c995a1181ecf8356d04846c35dccccbdb9d5
Author: Yiltan <ytemucin@amd.com>
Date:   Wed Apr 22 11:59:22 2026 -0400

    [rocshmem] Remove warnings: local memory global used by non-kernel function (#4948)

    ## Motivation

    In an effort to cleanup rocSHMEM, we are fixing the warnings. The
    specific warning this PR fixes is

    ```
    warning: <unknown>:0:0: in function xyz: local memory global used by non-kernel function
    ```

    ## Technical Details

    `__shared__` cannot be declared with in a `__device__` function

    ## JIRA ID

    AIROCSHMEM-332

commit c6708bf70c9a47954916551644ff38992c622010
Author: Siwei He <siweihe.eng@gmail.com>
Date:   Wed Apr 22 11:03:34 2026 -0400

    kfdtest: Use CopyDwordIsa in Ptrace test (#5233)

    Fix: Switch to CopyDwordIsa, which is simpler and appropriate for this
    test's purpose (testing ptrace access to invisible VRAM, not scratch
    memory). This avoids the scratch space conversion logic entirely.

    ## Motivation
    PtraceAccessInvisibleVram test failure due to change in
    ScratchCopyDwordIsa. This test is better using CopyDwordIsa

    ## Technical Details

    ## JIRA ID

    ROCM-23360
    ROCM-20237

    ## Test Plan

    Able to compile the test and pass the PtraceAccessInvisibleVram test.

    ## Test Result

    Test passed. Since this change only affects PtraceAccessInvisibleVram
    test. It's safe to test only this sub test case.

    ## Submission Checklist

    - [ ] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

commit 8821e322291b57fe68aa64891ccb836a77f9da77
Author: Edgar Gabriel <edgargabriel@users.noreply.github.com>
Date:   Wed Apr 22 09:51:45 2026 -0500

    [rocSHMEM] remove static amdsmi-loader instance (#5236)

    ## Motivation

    the constructor in a static amdsmi-loader instance tried to open the
    amdsmi lib and dlsym the functions used even if we do not compile with
    pod-detection. The static instance however not actually required.

    ## Test Result

    <!-- Briefly summarize test outcomes. -->

    ## Submission Checklist

    - [ ] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

commit 0b6b84f76d0e69c311b49a25b48bff0a8c3aa7ff
Author: Shadi Dashmiz <94885391+shadidashmiz@users.noreply.github.com>
Date:   Wed Apr 22 09:11:21 2026 -0400

    ROCM-20929 - fix hiptests issues (#5159)

    - check for proper peer enablement

    - remove constexpr evalution

    ## Motivation

    2 tests are failing due to error in the test code

    ## Technical Details

    Constexpr caused the block of code to not run so that p2p check was
    incomplete.
    Check if P2P is supported before testing the error code. If P2P isn't
    supported at all, skip the test.

    ## JIRA ID

    ROCM-20929

    ## Test Plan

    Hip test in the ticket

    ## Test Result

    PSDB - passed

    ## Submission Checklist

    - [x] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

    Signed-off-by: sdashmiz <shadi.dashmiz@amd.com>

commit 00238f6c365df815d616fa9c6928fe5d58a48cc6
Author: Aurelien Bouteiller <abouteil@amd.com>
Date:   Tue Apr 21 22:21:16 2026 -0400

    Workaround for the DIEExpression failure to build with Debug (#5205)

    RelWithDebInfo and Debug configurations fail to build with DIEExpression
    error on certain versions of hip/clang.

    THis is a workaround, a complete solution is pending on the compiler
    side of the house we should reconsider when this is deployed.

    ## Motivation

    Being able to debug is critical.

    ## Technical Details

    Disable expanded dwarf decorators, rely on normal dwarf.
    Also reenable -O0 in debug since that now also compiles.

    This disables some debug info but that cannot be avoided until the
    compiler gets updated.

    ## JIRA ID

    AIROCSHMEM-227

    ## Test Plan

    * [x] Build with debug
    * [x] can rocgdb the code without crashing rocgdb
    * [x] some debug info avail (not all, its not possible)

    ## Submission Checklist

    - [ ] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

commit 2ea2e50ea976340213f399bc7f6a7f6df0ff59d4
Author: jamessiddeley-amd <James.Siddeley@amd.com>
Date:   Tue Apr 21 21:57:42 2026 -0400

    [rocprof-compute] Move intermediate csv deprecation warning to 7.13 upcoming changes (#5255)

    ## Motivation

    Move deprecation warning out of 'Unreleased' section and move to changes
    to ROCm 7.13 upcoming changes section instead

    ## Technical Details

    No functional changes

    ## JIRA ID

    N/A

    ## Test Plan

    N/A

    ## Test Result

    N/A

    ## Submission Checklist

    - [x] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

commit 1140233ffee37996820dcfaa710273fd2061a331
Author: Mark Meserve <mark.meserve@amd.com>
Date:   Tue Apr 21 17:48:00 2026 -0500

    rocprofiler-sdk: attach: multiprocess support (#4804)

    - Adds the ability to attach to a process and all of its descendant
    processes in a single call
      - Adds rocattach_attach_tree and rocattach_detach_tree to rocattach
      - Adds --attach-children option to rocprofv3
        - Defaults to True
    - Adds test to verify attach tool loading through a process tree
    - Adds test to verify tool data through rocprofv3
    - Some logging and documentation cleanup

commit e4029c3fed5478c48a3f5c4c36924b19a8c093cd
Author: Aryan Salmanpour <aryan.salmanpour@amd.com>
Date:   Tue Apr 21 14:22:06 2026 -0700

    [rocjpeg][samples] - Add total wall time for jpeg decoding (#5206)

    ## Motivation

    This PR adds overall wall time for the jpegDecodePerf sample.

    ## Technical Details

    <!-- Explain the changes along with any relevant GitHub links. -->

    ## JIRA ID

    <!-- If applicable, mention the JIRA ID resolved by this PR (Example:
    Resolves SWDEV-12345). -->
    <!-- Do not post any JIRA links here. -->

    ## Test Plan

    <!-- Explain any relevant testing done to verify this PR. -->

    ## Test Result

    <!-- Briefly summarize test outcomes. -->

    ## Submission Checklist

    - [ ] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

commit bd00380ee6b9d90e17a7282b763ee7af22f18682
Author: Aryan Salmanpour <aryan.salmanpour@amd.com>
Date:   Tue Apr 21 14:17:51 2026 -0700

    [rocdecode][ctest] - Add option to enable extended ctest tests (#5004)

    ## Motivation

    Add a CMake option `ENABLE_EXTENDED_TESTS` to enable extended ctest
    tests for rcodecode.

    ## Technical Details

    <!-- Explain the changes along with any relevant GitHub links. -->

    ## JIRA ID

    <!-- If applicable, mention the JIRA ID resolved by this PR (Example:
    Resolves SWDEV-12345). -->
    <!-- Do not post any JIRA links here. -->

    ## Test Plan

    <!-- Explain any relevant testing done to verify this PR. -->

    ## Test Result

    <!-- Briefly summarize test outcomes. -->

    ## Submission Checklist

    - [ ] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

    ---------

    Co-authored-by: kiritigowda <kiritigowda@gmail.com>

commit c5245d48f55fbca612be4fc6fc1c5813ae559da4
Author: Benjamin Welton <Benjamin.Welton@amd.com>
Date:   Tue Apr 21 13:32:08 2026 -0700

    [rocprofiler-sdk] Add runtime guards to ROCP_* log macros (#5222)

    ## Summary
    - Add runtime log level checks to `ROCP_INFO`, `ROCP_WARNING`,
    `ROCP_ERROR` and their `_IF` variants
    - Prevents evaluation of stream arguments (including `fmt::format`
    calls) when the severity is below the configured minimum log level
    - Uses abseil's `LOG_IF` which internally short-circuits via a ternary
    pattern, ensuring zero argument evaluation overhead when logging is
    suppressed
    - `ROCP_TRACE` already guards via `VLOG_IS_ON`;
    `ROCP_FATAL`/`ROCP_DFATAL` are never suppressed

    ## Test plan
    - [ ] CI builds pass across all OS variants
    - [ ] Verify log output is unchanged at default log level (WARNING)
    - [ ] Verify no output from `ROCP_INFO`/`ROCP_WARNING` when
    `ROCP_LOG_LEVEL=error`

    🤖 Generated with [Claude Code](https://claude.com/claude-code)

    Co-authored-by: Claude Opus 4 <noreply@anthropic.com>

commit 5412a620359b09593cfd3e0b0959c7a1a443c56e
Author: James Newling <james.newling@gmail.com>
Date:   Mon Apr 20 21:37:22 2026 +0000

    add  libdrm-dev dep in CI

commit 8a03fbe617fa1f2441a08f772471824c2a0f9ffb
Author: James Newling <james.newling@gmail.com>
Date:   Mon Apr 20 21:32:11 2026 +0000

    add most basic of vanilla CIs

commit 58d180e1f39538c7bf724cf225aca18bef944297
Author: Maisam Arif <Maisam.Arif@amd.com>
Date:   Tue Apr 21 14:52:48 2026 -0500

    [AMD-SMI] Upgrade precommit workflow to have diff highlighting (#4534)

    Signed-off-by: Maisam Arif <Maisam.Arif@amd.com>

commit d9b2e09246116d69de08e8108df838b8f7f67324
Author: Darren Lao <Darren.Lao@amd.com>
Date:   Tue Apr 21 15:52:01 2026 -0400

    Fix amdsmi_pcie_info_t speed unit (#5245)

    Fixes https://github.com/ROCm/rocm-systems/issues/5200

    This is purely a documentation change, and corrects the units for
    `max_pcie_speed` to be in MT/s, which I confirmed is returned from:

    Signed-off-by: Maisam Arif <Maisam.Arif@amd.com>

commit 9fb1dff90e1d4bf73777d4eb93059a270a40a13d
Author: Avinash Kethineedi <avinash.kethineedi@amd.com>
Date:   Tue Apr 21 13:43:45 2026 -0500

    [rocSHMEM] Implement ROCSHMEM_TEAM_SHARED in all the backends (#4914)

    ## Motivation
    Implement the `ROCSHMEM_TEAM_SHARED` predefined team per the OpenSHMEM
    specification. TEAM_SHARED comprises all PEs sharing a common memory
    domain (same node), enabling node-scoped collective and point-to-point
    operations.

    ## Technical Details

    - Declare and define `ROCSHMEM_TEAM_SHARED` in host/device namespaces
    with device symbol copy support.
    - Add team_shared_ to TeamTracker with `NUM_RESERVED_TEAMS` so
    predefined teams don't consume user-creatable team slots.
    - Protect TEAM_SHARED from destruction in `rocshmem_team_destroy()`.
    - Implement `setup_team_shared()` in all three backends (IPC, RO, GDA).
    In RO and GDA, TEAM_SHARED is only created when IPC is enabled at
    compile-time and runtime; otherwise set to `ROCSHMEM_TEAM_INVALID`.
    - Update `team_ctx_infra_tester` to use runtime `ROCSHMEM_MAX_NUM_TEAMS`
    with dynamic sizing.
    - Add `TeamCtxSharedInfraTestType` (test 94) to validate
    `ROCSHMEM_TEAM_SHARED` PE identity, team size, and context creation on
    device. Gracefully skips when IPC is disabled.

    ## JIRA ID

    - AIROCSHMEM-355

    ## Test Plan

    - Run teamctxsharedinfra (test 94) with 2 ranks on the same node.
    - Run hipmodule_init test to verify symbol copy.
    - Verify graceful skip when IPC is disabled.

    ## Test Result

    - [x] Tested with IPC backend
    - [x] Tested with RO backend (IPC enabled)
    - [x] Tested with RO backend (IPC disabled, verifies graceful skip)
    - [x] Tested with GDA backend (IPC enabled)
    - [x] Tested with GDA backend (IPC disabled, verifies graceful skip)

commit a8eef4083e76a2b8a78221510023da85b88af144
Author: Jason Bonnell <166553723+jbonnell-amd@users.noreply.github.com>
Date:   Tue Apr 21 13:47:16 2026 -0400

    Update rocprofiler workflows to use latest actions with node 24 (#5231)

    ## Motivation

    <!-- Explain the purpose of this PR and the goals it aims to achieve.
    -->
    Noticed that older versions of Docker actions used Node 20, and Node 20
    actions are being deprecated in June.

    ## Technical Details

    <!-- Explain the changes along with any relevant GitHub links. -->
    - Update `rocprofiler-*` workflow files to use the latest versions of
    Docker and GitHub actions (moved to Node 24)
      - `docker/login-action` -> v4.1.0
      - `docker/metadata-action` -> v6.0.0
      - `docker/build-push-action` -> v7.1.0
      - `docker/setup-buildx-action` -> v4.0.0
      - `actions/checkout` -> v6
      - `actions/upload-artifact` -> v7
      - `nick-fields/retry` -> v4

    ## JIRA ID

    <!-- If applicable, mention the JIRA ID resolved by this PR (Example:
    Resolves SWDEV-12345). -->
    <!-- Do not post any JIRA links here. -->

    ## Test Plan

    <!-- Explain any relevant testing done to verify this PR. -->
    Ensure no regression issues with action updates, workflows pass

    ## Test Result

    <!-- Briefly summarize test outcomes. -->
    TBA

    ## Submission Checklist

    - [X] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

commit 774ff6e7eec8fb0e79aaab408191635857c8367e
Author: Victor Zhang <111778801+victzhan@users.noreply.github.com>
Date:   Tue Apr 21 13:06:25 2026 -0400

    [AIRUNTIME-1929] HIP memory stress test fixes and improvements (#4069)

    ## Motivation

    Fix instability and build issues in HIP memory stress tests.

    ## Technical Details

    - Fix grid-stride loop in `KrnlWth2MemTypes` kernel in
    `hipMallocManagedStress.cc`.
    - Fix resource leaks (`hipFree`, `hipStreamDestroy`) in `LaunchKrnl4`.
    - Re-initialize managed memory between prefetch iterations in
    `hipMemPrftchAsyncStressTst.cc`.
    - Fix `hold_memory` build: correct include and add missing link library.
    - Simplify `stress_test` custom target.
    - Add `hipMallocConcurrency.cc` to the build.

    ## JIRA ID

    AIRUNTIME-1929

    ## Test Plan

    Build and run `stress_test` target. Verify stress tests pass
    consistently.

    ## Test Result

    Pending

    ## Submission Checklist

    - [x] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

commit 9deaac2945c4ef2cb9ab787b40619f96849d41e5
Author: Victor Zhang <111778801+victzhan@users.noreply.github.com>
Date:   Tue Apr 21 13:05:17 2026 -0400

    ROCM-2903 - Default DEBUG_HIP_MEM_POOL_VMHEAP to IS_LINUX (#5139)

    ## Motivation

    rocBLAS graph tests hang on Windows 11 after sustained stream-ordered
    allocation / free / trim cycles (~500-1000 cycles in). The hang is in
    the VM heap path: awaitCompletion on the synchronous VirtualMapCommand
    blocks indefinitely with the GPU event never signaling, leaving the
    command stuck in CL_SUBMITTED.

    ## Technical Details

    Default DEBUG_HIP_MEM_POOL_VMHEAP to IS_LINUX so that allocations on
    Windows are routed through SvmBuffer::malloc / free instead of
    VirtualMapCommand. This is a temporary workaround until the ROCR/HSA
    backend becomes the default on Windows, which brings direct dispatch and
    avoids this path entirely.

    ## JIRA ID

    ROCM-2903

    ## Test Plan

    Run rocblas-test *graph* filter on Navi3x / Windows 11; verify the hang
    is resolved.

    ## Test Result

    Confirmed on W7900 (gfx1100) + Windows 11: PAL previously hung at
    trmv_graph_test_f32_r_U_N_N_128_2_1; with this change all 1637 graph
    tests pass.

    ## Submission Checklist

    - [ ] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

    ---------

    Co-authored-by: FirstName LastName (Public) <your_public_email@example.com>

commit 2ecbb87a314b60d7b992cb4f275714e8b09a6c9b
Author: Kian Cossettini <Kian.Cossettini@amd.com>
Date:   Tue Apr 21 13:01:22 2026 -0400

    [rocprofiler-systems] Install python dependencies at the Dockerfile level (#5197)

    ## Motivation

    <!-- Explain the purpose of this PR and the goals it aims to achieve.
    -->

    Part of https://github.com/ROCm/rocm-systems/pull/3962

    Make the dockerfiles install the requirements.txt.
    Drop support for python 3.6 and 3.7 (test suite requires python 3.8 and
    above)

    ## Technical Details

    <!-- Explain the changes along with any relevant GitHub links. -->

    Remove 3.6 and 3.7 from Dockerfiles and workflows.
    Install requirements.txt in Dockerfiles

    ## JIRA ID

    <!-- If applicable, mention the JIRA ID resolved by this PR (Example:
    Resolves SWDEV-12345). -->
    <!-- Do not post any JIRA links here. -->

    ## Test Plan

    <!-- Explain any relevant testing done to verify this PR. -->

    ## Test Result

    <!-- Briefly summarize test outcomes. -->

    ## Submission Checklist

    - [x] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

commit c54a0e85fa6727ce1ffdc5ccc3695af0950365d8
Author: Dmitrii <dmitrii.galantsev@amd.com>
Date:   Tue Apr 21 11:54:10 2026 -0500

    [RDC][AMD-SMI][ROCM-SMI] Drop POST_BUILD strip on shared libs (#5237)

    Defer stripping to packagers and TheRock's THEROCK_SPLIT_DEBUG_INFO.
    Fixes
    SONAME-symlink corruption under llvm-strip
    (https://github.com/ROCm/TheRock/issues/4640)

commit e22df2da076973fb0a347c868edd2beea7f1fb7d
Author: Venkateshwar Reddy Kandula <Venkateshwarreddy.Kandula@amd.com>
Date:   Tue Apr 21 11:17:29 2026 -0500

    [rocprofiler-sdk] Add reusable composite action rocprofiler-sdk CI (#5095)

    ## Motivation

    This PR introduces a reusable local composite GitHub Action to
    consolidate repeated “install ROCm + build dependencies” logic across
    rocprofiler-sdk workflows, aiming to reduce duplication and simplify
    maintenance.

    ## Technical Details

    - Added a new composite action: .github/actions/rocprofiler-sdk-util.
    - Updated rocprofiler-sdk workflows (docs, CI, CodeQL, code coverage) to
    call the composite action instead of inlining dependency build steps.
    - Added workflow env toggles to enable/disable building specific
    dependencies (ROCR, HIP/CLR, rocprofiler-register, aqlprofile,
    rocDecode, rocJPEG) and to control nightly ROCm installation.

    ## JIRA ID

    <!-- If applicable, mention the JIRA ID resolved by this PR (Example:
    Resolves SWDEV-12345). -->
    <!-- Do not post any JIRA links here. -->

    ## Test Plan

    CI checks

    ## Test Result

    Passing

    ## Submission Checklist

    - [x] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

    ---------

    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

commit 7a234bbaf6ba32af3b64aacdbe27eaaac8348823
Author: Aurelien Bouteiller <abouteil@amd.com>
Date:   Tue Apr 21 11:01:40 2026 -0400

    [rocSHMEM] Fix a warning when building config gda_ionic (#5218)

    ## Motivation

    Fix warnings

    ## Technical Details

    missing a [[maybe-unused]] in gda_ionic configuration.

    ## JIRA ID

    AIROCSHMEM-300

commit b44f6c789daaf102492bb3572005318599abd656
Author: German Andryeyev <56892148+gandryey@users.noreply.github.com>
Date:   Tue Apr 21 10:59:12 2026 -0400

    clr: Expose some HSA interfaces in hip dll (#4748)

    ## Motivation
    These calls are required to enable AQL profiler functionality on
    Windows.

    ## Technical Details
    Currently AQL profiler requires direct calls to ROCR interfaces

    ## JIRA ID
    OCM-1667

    ## Test Plan
    Aql profiler tests

    ## Test Result
    Passed

    ## Submission Checklist
    N/A

commit 1f21d5b1a5273a9237ab3594bb56ebf2e64f2fc4
Author: Jason Bonnell <166553723+jbonnell-amd@users.noreply.github.com>
Date:   Tue Apr 21 09:28:51 2026 -0400

    [rocprofiler-compute] Update git version in Ubuntu GHCR CI images (#5208)

    ## Motivation

    <!-- Explain the purpose of this PR and the goals it aims to achieve.
    -->
    #5144 adds some new submodules, and the current CI image is failing to
    clone the repo with the submodules due to 22.04 using an older version
    of git.

    ## Technical Details

    <!-- Explain the changes along with any relevant GitHub links. -->
    - Update `Dockerfile.ubuntu.ci` to include the git-core ppa repository
    so we can grab the latest version of git
    - Previous version installed was 2.34.1, which was the latest version
    available with default ubuntu 22.04 repos

    ## JIRA ID

    <!-- If applicable, mention the JIRA ID resolved by this PR (Example:
    Resolves SWDEV-12345). -->
    <!-- Do not post any JIRA links here. -->

    ## Test Plan

    <!-- Explain any relevant testing done to verify this PR. -->
    - Ensure Dockers build properly
    - Once merged, verify that the updated images are able to pass the
    checkout step in #5144 checks

    ## Test Result

    <!-- Briefly summarize test outcomes. -->
    TBA

    ## Submission Checklist

    - [X] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

commit 4753424bc943669bb2a67c29783717042b457f9c
Author: Alexey Sachkov <alexey.sachkov@amd.com>
Date:   Tue Apr 21 14:30:51 2026 +0200

    [CLR][NFC] Optimize tracking of active queues (#4945)

    ## Motivation

    Performance optimization of the runtime.

    ## Technical Details

    `std::unordered_set::[insert|erase]` allocate/deallocate memory which is
    an unnecessary action considerng that a list of all command queues which
    are present throughout an application lifetime is mostly stable, i.e.
    the assumption is made that HIP streams are not short-lived, but instead
    mostly span the whole application lifetime.

    ## JIRA ID

    N/A

    ## Test Plan

    N/A, this change is non-functional

    ## Test Result

    N/A, this change is non-functional

    ## Submission Checklist

    - [X] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

commit 019054fdb5070b663ba741b6f3c8e715d4816a87
Author: Aleksandar Djordjevic <aleksandar.djordjevic@amd.com>
Date:   Tue Apr 21 14:06:28 2026 +0200

    [rocprofiler-systems] filter VCN/JPEG sentinel values during metric collection (#5145)

    ## Motivation

    When only some VCN/JPEG engines are present on a GPU, the AMD SMI
    `vcn_activity`/`jpeg_activity` arrays contain `0xFFFF` sentinel values
    for absent engines. These sentinel values were being passed through to
    Perfetto and RocPD output as `65535`, appearing as bogus
    `device_vcn_activity_1`, `_2`, `_3` metrics.

commit b6285c0a549a85c825d5e00fd51b3fb79f42c71d
Author: Pedro Alves <pedro@palves.net>
Date:   Fri Apr 17 16:06:55 2026 +0100

    Add missing AMD_DBGAPI_EXPORT_DECORATOR fallback

    The AMD_DBGAPI_EXPORT_DECORATOR definition block is missing the
    fallback case.  Fix that.

    Change-Id: Idcc785b59a48b5cc17c64d4b70e534ba6e912eaf
    commit-id:8ab06a04

commit b1ac485c994985b67f1dd712693c81b614d0bf12
Author: Pedro Alves <pedro@palves.net>
Date:   Fri Apr 17 16:06:55 2026 +0100

    Fix building dbgapi as a static library

    Since 4bfddf5494 ("dbgapi/win32: __declspec(dllexport) instead of
    --version-script"), building dbgapi as a static library on Windows
    fails with errors such as:

     .../rocm-dbgapi/src/initialization.cpp:41:1: error: function 'amd_dbgapi_status_t amd_dbgapi_initialize(amd_dbgapi_callbacks_s*)' definition is marked dllimport
        41 | amd_dbgapi_initialize (struct amd_dbgapi_callbacks_s *callbacks)
           | ^~~~~~~~~~~~~~~~~~~~~

    The symbols end up "marked dllimport" because with:

     set_target_properties(amd-dbgapi PROPERTIES
       ...
       DEFINE_SYMBOL "AMD_DBGAPI_EXPORTS"
       ...

    ... DEFINE_SYMBOL is a CMake convenience that only applies when (and
    while) building a shared library.  When BUILD_SHARED_LIBS is OFF,
    DEFINE_SYMBOL does nothing.  So AMD_DBGAPI_EXPORTS ends up not defined
    in amd-dbgapi.h, which results in AMD_DBGAPI mapping to
    AMD_DBGAPI_IMPORT, here, in amd-dbgapi.h.in:

      #define AMD_DBGAPI AMD_DBGAPI_IMPORT

    AMD_DBGAPI_IMPORT in turn is unconditionally defined to
    __declspec(dllimport) on Windows.

    So there are two issues:

     - The dbgapi build itself is treated as importing symbols (as a
       consumer) instead of exporting them (as a producer).

     - The import/export decorations are applied even when dbgapi is built
       as a static library, where they should not be used at all.

    Fix this by teaching amd-dbgapi.h about whether dbgapi was built as a
    static or shared library.  Since the header is generated, define
    AMD_DBGAPI_STATIC_LIB (0 or 1) at configure time and use it to skip
    using import/export decorations.

    This also ensures that clients, including those which do not use CMake
    (e.g. GDB), automatically see consistent definitions without needing
    to know how dbgapi was built.

    Change-Id: I31c8c947791551cc4e20218826561c1d242f298d
    commit-id:12deacf2

commit e42ed4ca16c7713233161740b0a22d9c50fd2fba
Author: Luis Machado <luis.machado@amd.com>
Date:   Mon Apr 13 09:50:10 2026 -0500

    Add Python executable paths to all TheRock builds

    Configure shared and dist Python executables (3.10-3.14) for all build
    configurations to ensure consistent Python environment across CI builds.

    Also update the manylinux container hash to the latest.

    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

commit da8621629e24cabc4c92d43e2cbeb6cebc751c1c
Author: vstojilj <vstojilj@amd.com>
Date:   Tue Apr 21 10:56:59 2026 +0200

    Accept only valid device allocations for hipTexObjectCreate (#4814)

    ## Motivation

    Unit_TexObjectCreate_TypePitch2D_EdgeCases is failing on APUs when host
    pointer is passed to hipTexObjectCreate and it should fail with
    hipErrorInvalidValue.

    ## Technical Details

    Check if buffer retrieved by devptr is a valid allocation before
    creating tex object.

    ## JIRA ID

    Resolves AIRUNTIME-72.

    ## Test Plan

    Retest with Unit_TexObjectCreate_TypePitch2D_EdgeCases.

    ## Test Result

    test passes.

    ## Submission Checklist

    - [x] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

commit d4570465bfb80c34171815318ec822f1dbcc07be
Author: systems-assistant[bot] <221163467+systems-assistant[bot]@users.noreply.github.com>
Date:   Mon Apr 20 22:31:38 2026 -0700

    Update TheRock reference to (702d158) (#5117)

    Updated TheRock ref to `702d158` due to submodule bump

    update - Rename ccache presets as per therock pr
    https://github.com/ROCm/TheRock/pull/4402

    ---------

    Co-authored-by: therockbot <therockbot@amd.com>
    Co-authored-by: rahulc-gh <rahul.choudhary@amd.com>
    Co-authored-by: RahulC <168588218+rahulc-gh@users.noreply.github.com>

commit e5a46360d85ac27fc2d028a1f094eb0c9292ec59
Author: Shweta Khatri <shweta.khatri@amd.com>
Date:   Thu Apr 2 14:56:05 2026 -0400

    rocr: PC Sampling : Add reserved_wg field to PC sampling structs

    Add missing reserved_wg field to perf_sample_hosttrap_v1_t and
    perf_sample_snapshot_v1_t. This aligns with the profiler which
    expects chiplet at bits [10:8].

commit b768f127de8c219e1604615293aa68d6d2220e85
Author: Jeff Jiang <142832361+jeffqjiangNew@users.noreply.github.com>
Date:   Mon Apr 20 22:21:55 2026 -0400

    [rocDecode] Merge debug logging into the new logging mechanism. (#5210)

    ## Motivation

    This PR merges debug logging into the new logging mechanism.

    ## Technical Details

    - rocDecode debug message was a compile option.
    - Now debug logging can be enabled by setting env var ROCDEC_LOG_LEVEL
    to 4 . This helps issue triage on the release builds.

    ## JIRA ID

    <!-- If applicable, mention the JIRA ID resolved by this PR (Example:
    Resolves SWDEV-12345). -->
    <!-- Do not post any JIRA links here. -->

    ## Test Plan

    Run CTests and decode conformance tests to catch any regressions.
    Run rocdecdecode samples to verify user set output.

    ## Test Result
    All CTests and conformance tests pass. Example summary of the test
    results:

    CTests:
        Start 1: video_decodeRaw-HEVC
    1/6 Test #1: video_decodeRaw-HEVC .............   Passed    2.10 sec
        Start 2: video_decodeRaw-AVC
    2/6 Test #2: video_decodeRaw-AVC ..............   Passed    1.96 sec
        Start 3: video_decodeRaw-AV1
    3/6 Test #3: video_decodeRaw-AV1 ..............   Passed    2.03 sec
        Start 4: video_decodeRaw-VP9
    4/6 Test #4: video_decodeRaw-VP9 ..............   Passed    2.05 sec
        Start 5: rocdec_Decode-HEVC
    5/6 Test #5: rocdec_Decode-HEVC ...............   Passed    0.91 sec
        Start 6: rocDecode_Negative_API_Tests
    6/6 Test #6: rocDecode_Negative_API_Tests .....   Passed    0.73 sec

    Conformance tests:

    AVC conformance test:
    Conformance test completed on the 127 streams:

    The number of passing streams is 127
    The number of failing streams is 0
    The number of streams that did not finish decoding is 0

    HEVC conformance test:
    Conformance test completed on the 135 streams:

    The number of passing streams is 135
    The number of failing streams is 0
    The number of streams that did not finish decoding is 0

    AV1 conformance test:
    Conformance test completed on the 162 streams:

    The number of passing streams is 162
    The number of failing streams is 0
    The number of streams that did not finish decoding is 0

    VP9 conformance test:
    Conformance test completed on the 108 streams:

    The number of passing streams is 108
    The number of failing streams is 0
    The number of streams that did not finish decoding is 0

    <!-- Briefly summarize test outcomes. -->

    ## Submission Checklist

    - [ ] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

commit ff1db549b2d5061ff0026ee9933c0e83b5533fef
Author: koushikbillakanti-amd <koushik.billakanti@amd.com>
Date:   Mon Apr 20 21:06:48 2026 -0500

    Add NPU device type support (#4952)

    ## Motivation
    Add NPU device support to CUID so RyzenAI/amdxdna devices are
    discoverable and assigned unique identifiers.

    ## Technical Details
    Introduce CuidNpu class with discovery via accel, primary/derived CUID
    generation, PCI config space fingerprinting, and wire NPU through the
    daemon, CLI, device manager, and file serialization paths.

    Co-authored-by: Koushik Billakanti <kbillaka@amd.com>

commit 4e965940280c5b567d4ad36dc41418f6b2da8593
Author: Kian Cossettini <Kian.Cossettini@amd.com>
Date:   Mon Apr 20 18:12:14 2026 -0400

    [rocprofiler-systems] Improve troubleshooting messages for Dyninst errors (#4947)

    ## Motivation

    <!-- Explain the purpose of this PR and the goals it aims to achieve.
    -->
    During instrumentation, it is possible for Dyninst to fail to process
    certain sequences of instructions in a function. When this occurs, a
    vague error message would be printed.

    This PR adds more details to the error message and adds information to
    `instrumenting-rewriting-binary-applications.rst` to inform the user to
    exclude the problematic function/module/object in subsequent runs (which
    may prevent errors).

    With this PR:
    ```
    # Before
    Failed to transform trace 9105

    # After
    Failed to transform trace 9105 in function 'llvm::msgpack::Reader::read' in module '/opt/rocm-7.1.1/lib/llvm/lib/libomptarget.so.20.0git' in object 'libomptarget.so.20.0git' at address 0x7f4c3f179120
    ```

    ## Technical Details

    <!-- Explain the changes along with any relevant GitHub links. -->

    See the original issue: https://github.com/dyninst/dyninst/issues/2203

    Merge https://github.com/ROCm/dyninst/pull/13.
    Update submodule pointer to
    https://github.com/ROCm/dyninst/commit/77203e0b4f917aec534ac2717643c17838fded7e.

    Added `Failed to transform trace error` section to
    `projects/rocprofiler-systems/docs/how-to/instrumenting-rewriting-binary-application.rst`.

    ## JIRA ID

    <!-- If applicable, mention the JIRA ID resolved by this PR (Example:
    Resolves SWDEV-12345). -->
    <!-- Do not post any JIRA links here. -->

    ROCM-21219

    ## Test Plan

    <!-- Explain any relevant testing done to verify this PR. -->

    N/A

    ## Test Result

    <!-- Briefly summarize test outcomes. -->
    N/A
    ## Submission Checklist

    - [x] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

commit e0fa30b1465526e3255df950df5edc8dfd83b631
Author: Bindhiya Kanangot Balakrishnan <Bindhiya.KanangotBalakrishnan@amd.com>
Date:   Mon Apr 20 16:56:59 2026 -0500

    [ROCM-1553] GPU metrics v1.9 support with new attributes (#5125)

    [ROCM-1553] GPU metrics v1.9 support with new attributes

    Added support for updated dynamic GPU metrics version 1.9 by introducing
    new metric attributes based on latest amdgpu header.
    Updated python interface and CLI outputs for new gpu_metric fields.
    Unified CLI output for amdsmi metric. Updated Changelog.

    Signed-off-by: Bindhiya Kanangot Balakrishnan <Bindhiya.KanangotBalakrishnan@amd.com>

commit 6c571bb686712f9366fa8ee8646e48fdf25222c5
Author: Jeff Jiang <142832361+jeffqjiangNew@users.noreply.github.com>
Date:   Mon Apr 20 14:43:02 2026 -0400

    [rocDecode] Logging format in utility classes now matches RocDecLogger format. (#4997)

    ## Motivation

    Unify logging format in utility classes with core library logging
    format.

    ## Technical Details

    This PR unifies logging format in utility classes with core library
    logging format.
     - Logs from utility classes are now more informative.

    ## JIRA ID

    <!-- If applicable, mention the JIRA ID resolved by this PR (Example:
    Resolves SWDEV-12345). -->
    <!-- Do not post any JIRA links here. -->

    ## Test Plan

    Run CTests and decode conformance tests to catch any regressions.
    Run rocdecdecode samples to verify user set output.

    ## Test Result

    All CTests and conformance tests pass. Example summary of the test
    results:

    CTests:
    Start 1: video_decodeRaw-HEVC
    1/6 Test https://github.com/ROCm/rocm-systems/pull/1:
    video_decodeRaw-HEVC ............. Passed 1.96 sec
    Start 2: video_decodeRaw-AVC
    2/6 Test https://github.com/ROCm/rocm-systems/pull/2:
    video_decodeRaw-AVC .............. Passed 1.84 sec
    Start 3: video_decodeRaw-AV1
    3/6 Test https://github.com/ROCm/rocm-systems/pull/3:
    video_decodeRaw-AV1 .............. Passed 1.88 sec
    Start 4: video_decodeRaw-VP9
    4/6 Test https://github.com/ROCm/rocm-systems/pull/4:
    video_decodeRaw-VP9 .............. Passed 1.93 sec
    Start 5: rocdec_Decode-HEVC
    5/6 Test https://github.com/ROCm/rocm-systems/pull/5: rocdec_Decode-HEVC
    ............... Passed 0.85 sec
    Start 6: rocDecode_Negative_API_Tests
    6/6 Test https://github.com/ROCm/rocm-systems/pull/6:
    rocDecode_Negative_API_Tests ..... Passed 0.72 sec

    100% tests passed, 0 tests failed out of 6

    AVC conformance test:
    Conformance test completed on the 127 streams:

    The number of passing streams is 127
    The number of failing streams is 0
    The number of streams that did not finish decoding is 0

    HEVC conformance test:
    Conformance test completed on the 135 streams:

    The number of passing streams is 135
    The number of failing streams is 0
    The number of streams that did not finish decoding is 0

    AV1 conformance test:
    Conformance test completed on the 162 streams:

    The number of passing streams is 162
    The number of failing streams is 0
    The number of streams that did not finish decoding is 0

    VP9 conformance test:
    Conformance test completed on the 108 streams:

    The number of passing streams is 108
    The number of failing streams is 0
    The number of streams that did not finish decoding is 0

    ## Submission Checklist

    - [ ] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

    ---------

    Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>

commit 2e1eb97edb6d9b0545c2ce3f5e900131540da0c7
Author: Avinash Kethineedi <avinash.kethineedi@amd.com>
Date:   Mon Apr 20 13:27:03 2026 -0500

    [rocSHMEM] Add library metadata constants, version/name query APIs, and documentation (#5151)

    ## Motivation
    Add library metadata constants and version/name query APIs to rocSHMEM,
    aligning with the OpenSHMEM specification.

    ## Technical Details

    - Replace version parsing from the C++ header with a direct CMake
    variable and add backend/vendor string construction to CMakeLists.txt
    - Add vendor version, vendor string, and backend metadata to
    rocshmem_config.h and surface them in rocshmem_info output
    - Add ROCSHMEM_MAJOR_VERSION, ROCSHMEM_MINOR_VERSION,
    ROCSHMEM_MAX_NAME_LEN to rocshmem.hpp
    - Add host APIs: rocshmem_info_get_version, rocshmem_info_get_name,
    rocshmem_vendor_get_version_info
    - Update rocshmem_init_attr_test example to use the new query APIs
    - Add Sphinx documentation for library constants and query APIs
    - Templatize print_entry in build_info.cpp to support int arguments
    - Update docs/conf.py to read version from CMakeLists.txt
    - Add Linux build instructions and custom output directory usage to docs
    README

    ## JIRA ID

    - AIROCSHMEM-359

    ## Test Plan

    - Build with all backend configurations (GDA with IONIC/BNXT/MLX5, RO,
    IPC, and combinations) and verify rocshmem_info output shows the correct
    vendor string, version, and backend for each configuration
    - Run rocshmem_init_attr_test and verify version/name output on rank 0
    - Build the Sphinx documentation and verify the new library constants
    and query API pages render correctly

    ## Test Result

    - All backend configurations produce the expected vendor strings (e.g.
    `rocSHMEM_v3.3.0_GDA(IONIC/BNXT/MLX5)+RO+IPC` when compiled with all
    backends and NICs enabled)
    - rocshmem_info output displays correct version, vendor string, and
    backend metadata for all tested configurations
    - Sphinx documentation builds without warnings in the newly added
    sections; library constants and query API pages render correctly

commit b87cea434d77e56499835c54c01db8a5fa51f13b
Author: Sumanth Gavini <sumanth.gavini@amd.com>
Date:…
ApoKalipse-V added a commit that referenced this pull request Apr 28, 2026
commit b3aabb45064e63ec721f13a48146c0fe76d76c02
Author: alexxu-amd <159800977+alexxu-amd@users.noreply.github.com>
Date:   Thu Apr 23 10:23:25 2026 -0400

    [rocr-debug-agent] Correct .readthedocs path for monorepo migration (#5340)

    ## Motivation

    .readthedocs.yml contains outdated path.

    ## Technical Details

    Correct the path to match monorepo setup.

    ## JIRA ID

    <!-- If applicable, mention the JIRA ID resolved by this PR (Example:
    Resolves SWDEV-12345). -->
    <!-- Do not post any JIRA links here. -->

    ## Test Plan

    <!-- Explain any relevant testing done to verify this PR. -->

    ## Test Result

    <!-- Briefly summarize test outcomes. -->

    ## Submission Checklist

    - [ ] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

commit b5cd2c0530096f57e56cf2bebdfe2b7a7d09c060
Author: jamessiddeley-amd <James.Siddeley@amd.com>
Date:   Thu Apr 23 10:10:59 2026 -0400

    [rocprof-compute] Removed --exit-zero from ruff formatting workflow (#5308)

    ## Motivation

    The formatting workflow uses`ruff check . --fix --exit-zero`.

    This PR drops `--exit-zero` from the ruff CI step so the workflow
    actually fails on lint errors that aren't auto fixable instead of
    silently passing them

    ## Technical Details

    N/A
    ## JIRA ID

    N/A

    ## Test Plan

    N/A

    ## Test Result

    N/A

    ## Submission Checklist

    - [x] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

    ---------

    Co-authored-by: Vignesh Edithal <Vignesh.Edithal@amd.com>

commit 8508fd9b5e9a42a39929eabfc5d4b5e12c90f92a
Author: Ammar ELWazir <ammar.elwazir@amd.com>
Date:   Thu Apr 23 09:04:20 2026 -0500

    feat(perfxpert): consolidate agentic redesign and validation stack (#4576)

    ## Summary

    This PR is the consolidation point for the current
    `experimental/python/perfxpert` stack. It is no longer just the original
    rename branch: it now carries the agentic redesign, provider/runtime
    hardening, launcher/backend integration, parity/regression coverage, and
    the docs/media refresh on top of the `ROCInsight` -> `PerfXpert` rename.

    ## Scope

    In scope:
    - `experimental/python/perfxpert/**`

    Explicitly out of scope for this PR:
    - `.github/**`
    - CI/workflow-only changes (handled separately)

    ## Design / Feature Areas

    ### 1. Rename + package surface
    - rename from `rocinsight` to `perfxpert`
    - updated package/import/CLI/env-var/doc branding
    - preserved the Python and CLI entry surfaces under the new package name

    ### 2. Agentic analysis stack
    - layered agent hierarchy with Root, Analysis, Recommendation,
    Correctness, and specialist agents
    - shared agent brain across batch `perfxpert analyze`, Python API, MCP,
    and interactive launcher flows
    - fence-sliced prompt layering retained across the hierarchy

    ### 3. Provider + runtime hardening
    - provider registry/config loading and public provider surface fixes
    - typed provider error taxonomy and provider routing cleanup
    - fallback-chain support in the runtime session layer
    - recursion-guard and gate-cascade fixes carried forward into the
    consolidated branch

    ### 4. Launcher + backend integration
    - multi-backend `perfxpert-code` surface (`opencode`, `claude`, `codex`,
    `gemini`)
    - MCP registration + staged prompt wiring for backend adapters
    - source-checkout preference for the locally built patched `opencode`
    binary before bundled/PATH fallbacks
    - bundled build script now tolerates Bun lockfile-format churn by
    retrying without `--frozen-lockfile`

    ### 5. CLI + user workflows
    - top-level `init`, `diff`, `ci`, `doctor`, `providers`, and analyze
    flows present on the consolidated branch
    - source-only, trace-only, and combined analyze paths preserved
    - diff/CI/reporting surfaces merged into the same branch state

    ### 6. Validation / safety stack
    - parity fixtures and parity harness added to the branch
    - red-team and regression-gate coverage retained
    - exit-dashboard and audit-gate docs/tests carried into the consolidated
    branch
    - MCP registry/tool exposure checks preserved

    ### 7. Docs / schemas / media
    - guide and architecture docs updated to reflect the live product
    surface
    - refreshed guide GIF set carried on the branch
    - schema/version docs updated with the additive JSON formatter evolution
    - stale unsupported examples removed or rewritten to match the actual
    CLI/runtime surface

    ## Current Validation On Branch

    Focused validation completed on the live branch state:

    - `214 passed` on the shared runtime / CLI / MCP / setup / docs /
    launcher slice
    - `25 passed` on the launcher + setup-build + docs-links slice
    - local patched `opencode` build completed successfully from the pinned
    submodule
    - source-checkout launcher resolution now prefers the locally built
    patched binary:
    -
    `/tmp/rocm-systems-pr4576-consolidated/experimental/python/perfxpert/opencode/packages/opencode/dist/opencode-linux-x64/bin/opencode`

    Representative commands run on this branch state:

    ```bash
    PYTHONPATH=experimental/python/perfxpert pytest -q \
      experimental/python/perfxpert/tests/test_agents/test_runtime.py \
      experimental/python/perfxpert/tests/test_agents/test_framework.py \
      experimental/python/perfxpert/tests/test_cli/test_analyze_args.py \
      experimental/python/perfxpert/tests/test_cli/test_provider_error_surface.py \
      experimental/python/perfxpert/tests/test_cli/test_backend_dispatch.py \
      experimental/python/perfxpert/tests/test_cli/test_launcher_subcommands.py \
      experimental/python/perfxpert/tests/test_tools/test_agents/test_mcp_registry_has_agent_tools.py \
      experimental/python/perfxpert/tests/test_integration/test_cli_dispatch.py \
      experimental/python/perfxpert/tests/test_setup/test_setup_build.py \
      experimental/python/perfxpert/tests/test_integration/test_docs_links.py \
      experimental/python/perfxpert/tests/test_tools/test_opencode_launcher.py
    ```

    ```bash
    PYTHONPATH=experimental/python/perfxpert pytest -q \
      experimental/python/perfxpert/tests/test_tools/test_opencode_launcher.py \
      experimental/python/perfxpert/tests/test_setup/test_setup_build.py \
      experimental/python/perfxpert/tests/test_integration/test_docs_links.py
    ```

    ## Notes

    - This PR description is intentionally scoped to the consolidated
    `perfxpert` branch state, not the original rename-only PR.
    - `.github` changes are intentionally excluded from this PR.
    - Final ROCm/manual parity validation and the remaining doc/spec
    closeout continue on top of this branch.

commit e7d104593dabd87674c40e5fc2f6cb0d87e46d8f
Author: Aurelien Bouteiller <abouteil@amd.com>
Date:   Thu Apr 23 09:53:32 2026 -0400

    [rocshmem] rocgdb debugging scripts (#5122)

    ## Motivation

    Improve debugability of deadlocked rocshmem application by providing
    rocgdb scripting that analyzes live deadlocked processes and summarizes
    and groups wavefront backtraces and highlight wavefronts that are stuck
    in a rocshmem api.

    ## Technical Details

    Use python scripting to drive rocgdb, add a small script to ease
    attaching and summarizing for multiprocesses.

    ## JIRA ID

    AIROCSHMEM-377

    ## Test Plan

    * [x] Ran the debug script on the pr-provided deadlock example
    * [x] Ran the debug script on a modified functional test that deadlocks
    intentionally, witnessed wg groupings
    * [x] Ran the debug script on modified deepep that deadlocks
    intentionally, witnessed wg groupings in a useful way

    ## Submission Checklist

    - [ ] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

    ---------

    Signed-off-by: Aurelien Bouteiller <abouteil@amd.com>
    Signed-off-by: Aurelien Bouteiller <aurelien.bouteiller@amd.com>
    Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

commit d192aa1e21d1f220d0c3eb06c5730a3d75f0b81f
Author: marantic-amd <marantic@amd.com>
Date:   Thu Apr 23 15:16:09 2026 +0200

    [rocprofiler-systems] Adapt CPU metrics to PMC collector approach (#4612)

    ## Motivation

    - Add CPU metrics collector with policy-based PMC architecture
    - Replace the legacy cpu_freq module with a new CPU collector that
    follows the same policy-based design as the GPU and NIC collectors. The
    CPU collector integrates into the unified PMC sampler via
    collector_slice, sampling per-CPU frequency, load, and process-level
    metrics.

    ## Technical Details

    - New components:
    - procfs driver: reads /proc/stat, /proc/cpuinfo, getrusage() with
    persistent FDs and zero-copy parsing for minimal overhead
      - procfs provider: lightweight wrapper with factory pattern for DI
      - CPU device: manages per-CPU state with delta-based load computation
    - CPU traits: adapts base::collector for single-device multi-core model
      - CPU cache/perfetto policies: trace cache and Perfetto output
    - Mock driver and 17 unit tests covering init, freq, load, process
    metrics, filtered CPU sets, and repeated sampling

    - Integration:
      - Added to g_collector_slices alongside GPU/NIC in pmc::sampler
      - New ROCPROFSYS_CATEGORY_CPU_LOAD category for Perfetto traces
      - Renamed cpu_freq_sample to cpu_pmc_sample in trace cache (0x0007)
    - Updated perfetto_processor and rocpd_processor to handle CPU load
    deserialization and emit per-CPU counter tracks
    - Pause support: cache_policy emits zero entries for all monitored CPUs
    when metrics are empty (pause path)

    - Removed:
      - library/cpu_freq.cpp, cpu_freq.hpp
      - library/components/cpu_freq.cpp, cpu_freq.hpp
      - cpu_freq instance block from process_sampler.cpp

    ## JIRA ID

    - AIPROFSYST-224
    - AIPROFSYST-79

    ## Test Plan

    - Added additional unit tests to the feature
    - Tested with existing test suite

    ## Test Result

    - All test passed

    ## Submission Checklist

    - [x] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

commit 34bef1e6accfef4c5a3e01542b638229a09eb7a1
Author: accauble <accauble@users.noreply.github.com>
Date:   Thu Apr 23 09:03:54 2026 -0400

    [rocjitsu] Add pre-commit hook to check for clang-format in rocjitsu files (#5311)

    ## Motivation

    I keep forgetting to run the clang_format.sh script so I'm adding a
    pre-commit hook that rocjitsu developers can install to check if they
    need to run the script.

    ## Technical Details

    Heavily commented because I used claude and I have never written a
    git-hook. Adding two basic scripts:

    -- A script to "install" the hook in rocm-systems. Only need to do this
    once per clone.
    -- The hook: checks staged files to see if they are formatted correctly.
    If not, halts the commit and tells the user what went wrong.

    ## JIRA ID

    None

    ## Test Plan

    Tested:
    1. Installation script works as expected
    2. Checked that a poorly-formatted staged file was caught by the hook
    3. Checked that a well-formatted staged file is allowed
    4. Checked that a poorly-formatted cpp file outside the rocjitsu
    directory doesn't get caught by the hook

    ## Test Result

    They work!

    ## Submission Checklist

    - [ ] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

    ---------

    Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
    Co-authored-by: Rosa, Ada <arosa@amd.com>

commit 35534db977d5e5cbdd5ec88b7bd8b586ea2077a1
Author: Milan Radosavljevic <milan.radosavljevic@amd.com>
Date:   Thu Apr 23 13:09:43 2026 +0200

    [rocprofiler-systems] Restructure unit tests to improve test isolation (#4853)

    ## Motivation
    Unit tests hang under Thread Sanitizer (TSan) due to a deadlock during
    atexit static destruction. The thread_deleter calls
    rocprofsys_finalize_hidden() which logs via spdlog, triggering a TSan
    race report whose symbolizer deadlocks on its own slot lock while
    closing a file descriptor. This causes the sanitizer CI workflow to time
    out.

    ## Technical Details

    Root cause: unit test executable was including
    `rocprofsys-object-library` which pulled `library.cpp`. with
    `library.cpp` static variables were included which should trigger
    `ensure_finalization(true)`. `ensure_finalization(true)` was calling
    `thread_deleter`. Unit test should include only isolated code, where
    this is breaking this rule.

    ## JIRA ID

    <!-- If applicable, mention the JIRA ID resolved by this PR (Example:
    Resolves SWDEV-12345). -->
    <!-- Do not post any JIRA links here. -->

    ## Test Plan

    <!-- Explain any relevant testing done to verify this PR. -->
    - Run full unit test suite: ./bin/rocprof-sys-unit-tests — all 480 tests
    pass
    - Run logger fork/stress tests under TSan — no deadlock
    - Verify rocprofiler-systems-object-library is not linked into the test
    binary-

    ## Test Result
    All unit tests pass under TSan without hanging during atexit. The test
    binary no longer links library.cpp's static initializers, preventing
    thread_data instantiation and thread_deleter finalization entirely.

    ## Submission Checklist

    - [ ] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

commit 783707e8cb0a210e78d1723542c42b61eb95f63d
Author: Jonathan L'Work <113400649+Jonathan03ant@users.noreply.github.com>
Date:   Thu Apr 23 06:17:30 2026 -0400

    [rocprofiler-sdk]: Fix crash on iGPUs without PMC support #148 (#5294)

commit f89f4135b732c7bb83b6d25363160a847762e000
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Wed Apr 22 17:22:29 2026 +0000

    Bump cryptography in /projects/rocr-debug-agent/docs/sphinx

    Bumps [cryptography](https://github.com/pyca/cryptography) from 46.0.6 to 46.0.7.
    - [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
    - [Commits](https://github.com/pyca/cryptography/compare/46.0.6...46.0.7)

    ---
    updated-dependencies:
    - dependency-name: cryptography
      dependency-version: 46.0.7
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>

commit 7321d441181f08e8c53f48e7b580f8dd2434a73d
Author: cfallows-amd <Carrie.Fallows@amd.com>
Date:   Wed Apr 22 22:12:49 2026 -0400

    [rocprofiler-compute] Bugfix for memchart Matrix Ops value (#5310)

    ## Motivation

    Fix Matrix Ops value pickup in memcharts- was trying to read for MFMA
    but recent roof updates have converted it to general matrix operations
    label which forced it to N/A value.

    ## Technical Details

    Change MFMA metric title to Matrix Ops to reflect db entry.
    Only affects CDNA memcharts

    ## JIRA ID

    AIPROFCOMP-559

    ## Test Plan

    Manual testing on MI350 system - profiled rocflop and occupancy samples
    to test for workload that captures # of MFMA ops, and workload that has
    0 MFMA ops, respectively.

    Also regenerated hashes.

    ## Test Result

    CLI analysis for block 3 shows Matrix Ops reflecting accurate MFMA
    values:
    <img width="1485" height="653" alt="Screenshot 2026-04-22 165029"
    src="https://github.com/user-attachments/assets/2b3d8d59-e038-4a1a-bdac-0db98bd94da1"
    />
    <img width="1448" height="645" alt="Screenshot 2026-04-22 165104"
    src="https://github.com/user-attachments/assets/1c8423e0-4af8-44c8-b9d7-3a3203f39900"
    />

    GUI mode also reflects these changes to the value outputs, no N/A.

    ## Submission Checklist

    - [X] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

    ---------

    Signed-off-by: Carrie Fallows <Carrie.Fallows@amd.com>

commit 4a65e8d0efcdcd584778d8b5d86d25563891afad
Author: Dmitrii <dmitrii.galantsev@amd.com>
Date:   Wed Apr 22 20:01:57 2026 -0500

    [RDC] Fix embedded profiler by loading librdc_rocp.so with RTLD_GLOBAL (#3922)

    rocprofiler-sdk discovers tools by searching for rocprofiler_configure
    in the global symbol namespace during hsa_init(). librdc_rocp.so was
    loaded with RTLD_LAZY (implicit RTLD_LOCAL), hiding the symbol and
    silently preventing profiler counter collection in embedded mode.

commit cbfa12fb0ea9a8c39b9e0f3232f3e821e2ce239f
Author: marandje <marko.arandjelovic@amd.com>
Date:   Thu Apr 23 01:28:40 2026 +0200

    Fix false queue-idle detection for first unsignaled packet (#5073)

    ## Motivation

    - `Unit_hipGetProcAddress_MemoryApisMemset` is failing because
    `hipStreamSynchronize` may return before `hipMemset*Async` operation has
    actually completed when it is the only operation enqueued on the stream.

    ## Technical Details

    - If a single command is enqueued on a stream without an attached
    completion signal, `IsQueueIdle()` can incorrectly report the queue as
    idle. In the original logic, the write index starts at `0`, so an empty
    queue and a queue containing exactly one command at index `0` are
    indistinguishable.
    - When `hipStreamSynchronize` is called on stream A, the finish path may
    call `ReleaseAllHwQueues()`, which can release an idle hardware queue
    belonging to stream B. If stream B has only a single enqueued command
    without a completion signal, that queue can be released prematurely. A
    later synchronization on stream B may then reacquire a different queue
    that is already idle, causing `hipStreamSynchronize` to return too
    early.
    - `last_write_index_` and `last_packet_with_signal_index_` still starts
    counting from zero but are preinitialized with an invalid queue index.

    ## JIRA ID

    ROCM-20999

    ## Test Plan

    Run hip-tests.

    ## Test Result

    All hip-tests passed.

    ## Submission Checklist

    - [x] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

commit 4a47fe94289240c48cd005cf0499c71221d29a0c
Author: akolliasAMD <99202231+akolliasAMD@users.noreply.github.com>
Date:   Wed Apr 22 16:28:06 2026 -0600

    removed akolliasAMD from codeowners on rocSHMEM repo (#5250)

    ## Motivation

    Removing akolliasAMD from CODEOWNERS for team changes

    ## Test Plan

    No test needed

    ## Submission Checklist

    - [ ] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

commit c08c171dbb0d974eee4c42dc9e7709e2cb13cf56
Author: marandje <marko.arandjelovic@amd.com>
Date:   Thu Apr 23 00:18:39 2026 +0200

    Remove the queue from a set of active queues only when last enqueued command is cleared (#5193)

    ## Motivation

    Unit_hipMultiThreadStreams1_AsyncAsync fails when GPU_ENABLE_PAL=0. In
    HostQueue::finish(), lastEnqueueCommand_ is preserved, but the queue is
    still removed from activeQueues. When the next command is enqueued, the
    queue is not added back to activeQueues because lastEnqueueCommand_ is
    still non-null, which prevents the null stream from implicitly
    synchronizing with that queue.

    ## Technical Details

    This change removes the queue from the set of active queues only when
    last enqueued command is cleared.

    ## JIRA ID

    ROCM-20999

    ## Test Plan

    Run Unit_hipMultiThreadStreams1_AsyncAsync 100x.

    ## Test Result

    All iterations passed.

    ## Submission Checklist

    - [x] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

commit c74978d8d5f3c7f8732da86659f08acf71b9427f
Author: Sajina PK <sputhala@amd.com>
Date:   Wed Apr 22 18:14:48 2026 -0400

    [rocprof-systems]: Fix makeinfo build failures on systems without texinfo (#5131)

    ## Motivation

    Bundled `binutils` bfd build can invoke `makeinfo` to refresh GNU Info
    manuals. On images without `Texinfo`, that fails with `makeinfo: not
    found` even though we only need static libraries (libbfd, libiberty,
    etc.).

    ## Technical Details

    - Set `MAKEINFO` to a no-op (true, via `find_program`) in the configure
    environment for the timemory `binutils-external` and rocprofiler-systems
    `rocprofiler-systems-libiberty-build` ExternalProjects.
    - Pass `MAKEINFO=…` on the make command line so existing build trees and
    `CONFIGURE_HANDLED_BY_BUILD` flows still override the value baked into
    generated Makefiles.

    - [x] Merge the timemory update:
    https://github.com/ROCm/timemory/pull/30
    - [x] Once the timemory PR is merged update the submodule pointer to
    head of rocprofiler-systems branch

    ## JIRA ID

    ## Test Plan

    Manual test building `rocprofiler-systems` project.

    ## Test Result

    Pass

    ## Submission Checklist

    - [x] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

commit 4c8dc1a07aaec317ed9bf7da1f7854cac74da62a
Author: spolifroni-amd <Sandra.Polifroni@amd.com>
Date:   Wed Apr 22 16:55:44 2026 -0400

    [rocdecode, rocjpeg] added env var doc (#5247)

    ## Motivation
    rocdecode and rocjpeg both needed a list of env vars that affected their
    runtimes

commit 08cec46e16354c0b34a404acb5c3e94d8035695d
Author: Dmitrii <dmitrii.galantsev@amd.com>
Date:   Wed Apr 22 15:42:26 2026 -0500

    [ci] Use github-script instead of curl (#3424)

    ## Motivation

    Trying to manually sanitize PR strings is painful.
    Use github-script to handle it all for us.

    This should prevent issues like
    https://github.com/ROCm/rocm-systems/pull/3418#issuecomment-3937597408
    where double quotes broke the script.

    ## Test Plan

    - [ ] Make a PR with double quotes in the name and see if script breaks.
    - [x] Run the workflow via act to test syntax

    Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>

commit ef7520eccdbe4658a2864ac2ff78bfdb7a1a529c
Author: Scott Tsai <scottt.tw@gmail.com>
Date:   Thu Apr 23 04:32:28 2026 +0800

    Fix rocprofiler-sdk build on gcc 15 (#934)

    This PR fixes building rocprofiler-sdk on gcc 15 by updating two of its
    external submodules:
    * rocprofiler-sdk/external/yaml-cpp
    * rocprofiler-sdk//external/elfio
    to include `cstdint.h` where it needs them instead of implicitly through
    other C++ standard headers.

commit fc3df3bf950cc16c6bbddd95735e9b9ee4758835
Merge: 1c40b0c84e b5210bf473
Author: Zach Byrne <zbyrne@amd.com>
Date:   Wed Apr 22 14:07:44 2026 -0600

    [hipfile] Add io size, bandwidth, and latency stats broken down by gpu to ais-stats (#4991)

    [AIHIPFILE-159]
    HipFile stats stores counters in a series of buckets broken up by
    backend, IO operation, and IO size. This lets ais-stats show histograms
    for different IO sizes. Also enables stats collection by default.

commit 1c40b0c84e60006d154ec08710fd8e0c54fb3a09
Merge: eb5dee8755 5412a62035
Author: James Newling <james.newling@gmail.com>
Date:   Wed Apr 22 12:43:21 2026 -0700

    [RocJitsu] Basic CI workflow (#5216)

    Add basic CI that runs on free github runners.
    Builds in ~10 mins.
    Tests run in ~5 seconds.
    See 'Checks' to see what tests ran.

commit eb5dee875516bf2fd001a3781938036947fbdb66
Author: Adam Pryor <61172547+adam360x@users.noreply.github.com>
Date:   Wed Apr 22 13:38:00 2026 -0500

    [RDC] Use longer sampling window when using SIMD rocprof metric (#5251)

    ## Motivation

    SIMD util from rocprof needs a longer sampling window to give meaningful
    results

    ## Test

    Verified rocprof metrics behavior correctly with longer sampling window

    Signed-off-by: Adam360x <Adam.pryor@amd.com>

commit 8d566d526860fea2822d57e5084ffd14c65ac031
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Sat Mar 28 15:30:54 2026 +0000

    Bump cryptography in /projects/rocr-debug-agent/docs/sphinx

    Bumps [cryptography](https://github.com/pyca/cryptography) from 43.0.0 to 46.0.6.
    - [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
    - [Commits](https://github.com/pyca/cryptography/compare/43.0.0...46.0.6)

    ---
    updated-dependencies:
    - dependency-name: cryptography
      dependency-version: 46.0.6
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>

commit 07a818e54c4a7f1fd24dd851c98b51730627edf2
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Fri Apr 3 03:38:20 2026 +0000

    build(deps): bump pygments in /projects/rocr-debug-agent/docs/sphinx

    Bumps [pygments](https://github.com/pygments/pygments) from 2.18.0 to 2.20.0.
    - [Release notes](https://github.com/pygments/pygments/releases)
    - [Changelog](https://github.com/pygments/pygments/blob/master/CHANGES)
    - [Commits](https://github.com/pygments/pygments/compare/2.18.0...2.20.0)

    ---
    updated-dependencies:
    - dependency-name: pygments
      dependency-version: 2.20.0
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>

commit fb4aa4aac81f5f0099480ad35cf8b330ac8547b1
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Apr 7 07:38:17 2026 +0000

    Bump tornado in /projects/rocr-debug-agent/docs/sphinx

    Bumps [tornado](https://github.com/tornadoweb/tornado) from 6.4.2 to 6.5.5.
    - [Changelog](https://github.com/tornadoweb/tornado/blob/master/docs/releases.rst)
    - [Commits](https://github.com/tornadoweb/tornado/compare/v6.4.2...v6.5.5)

    ---
    updated-dependencies:
    - dependency-name: tornado
      dependency-version: 6.5.5
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>

commit f3cabf66b29ae140410bd432841d1a8833f50202
Author: Lancelot SIX <lancelot.six@amd.com>
Date:   Fri Apr 17 16:23:11 2026 +0100

    Cleanup unused arch.

commit cdbf9cb8ba938b1990afbd929170291df73b5856
Author: Lancelot SIX <lancelot.six@amd.com>
Date:   Fri Apr 17 16:20:15 2026 +0100

    gfx12: Fix writing to pseudo_state_priv

    I noticed that the debugger can't write the $state_priv register, writes
    are eventually skipped.

    It turns out this is because gfx12_architecture_t::write_pseudo_register
    fails to memcpy the value to the register.

    Fix this.

commit 1dd1c995a1181ecf8356d04846c35dccccbdb9d5
Author: Yiltan <ytemucin@amd.com>
Date:   Wed Apr 22 11:59:22 2026 -0400

    [rocshmem] Remove warnings: local memory global used by non-kernel function (#4948)

    ## Motivation

    In an effort to cleanup rocSHMEM, we are fixing the warnings. The
    specific warning this PR fixes is

    ```
    warning: <unknown>:0:0: in function xyz: local memory global used by non-kernel function
    ```

    ## Technical Details

    `__shared__` cannot be declared with in a `__device__` function

    ## JIRA ID

    AIROCSHMEM-332

commit c6708bf70c9a47954916551644ff38992c622010
Author: Siwei He <siweihe.eng@gmail.com>
Date:   Wed Apr 22 11:03:34 2026 -0400

    kfdtest: Use CopyDwordIsa in Ptrace test (#5233)

    Fix: Switch to CopyDwordIsa, which is simpler and appropriate for this
    test's purpose (testing ptrace access to invisible VRAM, not scratch
    memory). This avoids the scratch space conversion logic entirely.

    ## Motivation
    PtraceAccessInvisibleVram test failure due to change in
    ScratchCopyDwordIsa. This test is better using CopyDwordIsa

    ## Technical Details

    ## JIRA ID

    ROCM-23360
    ROCM-20237

    ## Test Plan

    Able to compile the test and pass the PtraceAccessInvisibleVram test.

    ## Test Result

    Test passed. Since this change only affects PtraceAccessInvisibleVram
    test. It's safe to test only this sub test case.

    ## Submission Checklist

    - [ ] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

commit 8821e322291b57fe68aa64891ccb836a77f9da77
Author: Edgar Gabriel <edgargabriel@users.noreply.github.com>
Date:   Wed Apr 22 09:51:45 2026 -0500

    [rocSHMEM] remove static amdsmi-loader instance (#5236)

    ## Motivation

    the constructor in a static amdsmi-loader instance tried to open the
    amdsmi lib and dlsym the functions used even if we do not compile with
    pod-detection. The static instance however not actually required.

    ## Test Result

    <!-- Briefly summarize test outcomes. -->

    ## Submission Checklist

    - [ ] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

commit 0b6b84f76d0e69c311b49a25b48bff0a8c3aa7ff
Author: Shadi Dashmiz <94885391+shadidashmiz@users.noreply.github.com>
Date:   Wed Apr 22 09:11:21 2026 -0400

    ROCM-20929 - fix hiptests issues (#5159)

    - check for proper peer enablement

    - remove constexpr evalution

    ## Motivation

    2 tests are failing due to error in the test code

    ## Technical Details

    Constexpr caused the block of code to not run so that p2p check was
    incomplete.
    Check if P2P is supported before testing the error code. If P2P isn't
    supported at all, skip the test.

    ## JIRA ID

    ROCM-20929

    ## Test Plan

    Hip test in the ticket

    ## Test Result

    PSDB - passed

    ## Submission Checklist

    - [x] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

    Signed-off-by: sdashmiz <shadi.dashmiz@amd.com>

commit 00238f6c365df815d616fa9c6928fe5d58a48cc6
Author: Aurelien Bouteiller <abouteil@amd.com>
Date:   Tue Apr 21 22:21:16 2026 -0400

    Workaround for the DIEExpression failure to build with Debug (#5205)

    RelWithDebInfo and Debug configurations fail to build with DIEExpression
    error on certain versions of hip/clang.

    THis is a workaround, a complete solution is pending on the compiler
    side of the house we should reconsider when this is deployed.

    ## Motivation

    Being able to debug is critical.

    ## Technical Details

    Disable expanded dwarf decorators, rely on normal dwarf.
    Also reenable -O0 in debug since that now also compiles.

    This disables some debug info but that cannot be avoided until the
    compiler gets updated.

    ## JIRA ID

    AIROCSHMEM-227

    ## Test Plan

    * [x] Build with debug
    * [x] can rocgdb the code without crashing rocgdb
    * [x] some debug info avail (not all, its not possible)

    ## Submission Checklist

    - [ ] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

commit 2ea2e50ea976340213f399bc7f6a7f6df0ff59d4
Author: jamessiddeley-amd <James.Siddeley@amd.com>
Date:   Tue Apr 21 21:57:42 2026 -0400

    [rocprof-compute] Move intermediate csv deprecation warning to 7.13 upcoming changes (#5255)

    ## Motivation

    Move deprecation warning out of 'Unreleased' section and move to changes
    to ROCm 7.13 upcoming changes section instead

    ## Technical Details

    No functional changes

    ## JIRA ID

    N/A

    ## Test Plan

    N/A

    ## Test Result

    N/A

    ## Submission Checklist

    - [x] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

commit 1140233ffee37996820dcfaa710273fd2061a331
Author: Mark Meserve <mark.meserve@amd.com>
Date:   Tue Apr 21 17:48:00 2026 -0500

    rocprofiler-sdk: attach: multiprocess support (#4804)

    - Adds the ability to attach to a process and all of its descendant
    processes in a single call
      - Adds rocattach_attach_tree and rocattach_detach_tree to rocattach
      - Adds --attach-children option to rocprofv3
        - Defaults to True
    - Adds test to verify attach tool loading through a process tree
    - Adds test to verify tool data through rocprofv3
    - Some logging and documentation cleanup

commit e4029c3fed5478c48a3f5c4c36924b19a8c093cd
Author: Aryan Salmanpour <aryan.salmanpour@amd.com>
Date:   Tue Apr 21 14:22:06 2026 -0700

    [rocjpeg][samples] - Add total wall time for jpeg decoding (#5206)

    ## Motivation

    This PR adds overall wall time for the jpegDecodePerf sample.

    ## Technical Details

    <!-- Explain the changes along with any relevant GitHub links. -->

    ## JIRA ID

    <!-- If applicable, mention the JIRA ID resolved by this PR (Example:
    Resolves SWDEV-12345). -->
    <!-- Do not post any JIRA links here. -->

    ## Test Plan

    <!-- Explain any relevant testing done to verify this PR. -->

    ## Test Result

    <!-- Briefly summarize test outcomes. -->

    ## Submission Checklist

    - [ ] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

commit bd00380ee6b9d90e17a7282b763ee7af22f18682
Author: Aryan Salmanpour <aryan.salmanpour@amd.com>
Date:   Tue Apr 21 14:17:51 2026 -0700

    [rocdecode][ctest] - Add option to enable extended ctest tests (#5004)

    ## Motivation

    Add a CMake option `ENABLE_EXTENDED_TESTS` to enable extended ctest
    tests for rcodecode.

    ## Technical Details

    <!-- Explain the changes along with any relevant GitHub links. -->

    ## JIRA ID

    <!-- If applicable, mention the JIRA ID resolved by this PR (Example:
    Resolves SWDEV-12345). -->
    <!-- Do not post any JIRA links here. -->

    ## Test Plan

    <!-- Explain any relevant testing done to verify this PR. -->

    ## Test Result

    <!-- Briefly summarize test outcomes. -->

    ## Submission Checklist

    - [ ] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

    ---------

    Co-authored-by: kiritigowda <kiritigowda@gmail.com>

commit c5245d48f55fbca612be4fc6fc1c5813ae559da4
Author: Benjamin Welton <Benjamin.Welton@amd.com>
Date:   Tue Apr 21 13:32:08 2026 -0700

    [rocprofiler-sdk] Add runtime guards to ROCP_* log macros (#5222)

    ## Summary
    - Add runtime log level checks to `ROCP_INFO`, `ROCP_WARNING`,
    `ROCP_ERROR` and their `_IF` variants
    - Prevents evaluation of stream arguments (including `fmt::format`
    calls) when the severity is below the configured minimum log level
    - Uses abseil's `LOG_IF` which internally short-circuits via a ternary
    pattern, ensuring zero argument evaluation overhead when logging is
    suppressed
    - `ROCP_TRACE` already guards via `VLOG_IS_ON`;
    `ROCP_FATAL`/`ROCP_DFATAL` are never suppressed

    ## Test plan
    - [ ] CI builds pass across all OS variants
    - [ ] Verify log output is unchanged at default log level (WARNING)
    - [ ] Verify no output from `ROCP_INFO`/`ROCP_WARNING` when
    `ROCP_LOG_LEVEL=error`

    🤖 Generated with [Claude Code](https://claude.com/claude-code)

    Co-authored-by: Claude Opus 4 <noreply@anthropic.com>

commit 5412a620359b09593cfd3e0b0959c7a1a443c56e
Author: James Newling <james.newling@gmail.com>
Date:   Mon Apr 20 21:37:22 2026 +0000

    add  libdrm-dev dep in CI

commit 8a03fbe617fa1f2441a08f772471824c2a0f9ffb
Author: James Newling <james.newling@gmail.com>
Date:   Mon Apr 20 21:32:11 2026 +0000

    add most basic of vanilla CIs

commit 58d180e1f39538c7bf724cf225aca18bef944297
Author: Maisam Arif <Maisam.Arif@amd.com>
Date:   Tue Apr 21 14:52:48 2026 -0500

    [AMD-SMI] Upgrade precommit workflow to have diff highlighting (#4534)

    Signed-off-by: Maisam Arif <Maisam.Arif@amd.com>

commit d9b2e09246116d69de08e8108df838b8f7f67324
Author: Darren Lao <Darren.Lao@amd.com>
Date:   Tue Apr 21 15:52:01 2026 -0400

    Fix amdsmi_pcie_info_t speed unit (#5245)

    Fixes https://github.com/ROCm/rocm-systems/issues/5200

    This is purely a documentation change, and corrects the units for
    `max_pcie_speed` to be in MT/s, which I confirmed is returned from:

    Signed-off-by: Maisam Arif <Maisam.Arif@amd.com>

commit 9fb1dff90e1d4bf73777d4eb93059a270a40a13d
Author: Avinash Kethineedi <avinash.kethineedi@amd.com>
Date:   Tue Apr 21 13:43:45 2026 -0500

    [rocSHMEM] Implement ROCSHMEM_TEAM_SHARED in all the backends (#4914)

    ## Motivation
    Implement the `ROCSHMEM_TEAM_SHARED` predefined team per the OpenSHMEM
    specification. TEAM_SHARED comprises all PEs sharing a common memory
    domain (same node), enabling node-scoped collective and point-to-point
    operations.

    ## Technical Details

    - Declare and define `ROCSHMEM_TEAM_SHARED` in host/device namespaces
    with device symbol copy support.
    - Add team_shared_ to TeamTracker with `NUM_RESERVED_TEAMS` so
    predefined teams don't consume user-creatable team slots.
    - Protect TEAM_SHARED from destruction in `rocshmem_team_destroy()`.
    - Implement `setup_team_shared()` in all three backends (IPC, RO, GDA).
    In RO and GDA, TEAM_SHARED is only created when IPC is enabled at
    compile-time and runtime; otherwise set to `ROCSHMEM_TEAM_INVALID`.
    - Update `team_ctx_infra_tester` to use runtime `ROCSHMEM_MAX_NUM_TEAMS`
    with dynamic sizing.
    - Add `TeamCtxSharedInfraTestType` (test 94) to validate
    `ROCSHMEM_TEAM_SHARED` PE identity, team size, and context creation on
    device. Gracefully skips when IPC is disabled.

    ## JIRA ID

    - AIROCSHMEM-355

    ## Test Plan

    - Run teamctxsharedinfra (test 94) with 2 ranks on the same node.
    - Run hipmodule_init test to verify symbol copy.
    - Verify graceful skip when IPC is disabled.

    ## Test Result

    - [x] Tested with IPC backend
    - [x] Tested with RO backend (IPC enabled)
    - [x] Tested with RO backend (IPC disabled, verifies graceful skip)
    - [x] Tested with GDA backend (IPC enabled)
    - [x] Tested with GDA backend (IPC disabled, verifies graceful skip)

commit a8eef4083e76a2b8a78221510023da85b88af144
Author: Jason Bonnell <166553723+jbonnell-amd@users.noreply.github.com>
Date:   Tue Apr 21 13:47:16 2026 -0400

    Update rocprofiler workflows to use latest actions with node 24 (#5231)

    ## Motivation

    <!-- Explain the purpose of this PR and the goals it aims to achieve.
    -->
    Noticed that older versions of Docker actions used Node 20, and Node 20
    actions are being deprecated in June.

    ## Technical Details

    <!-- Explain the changes along with any relevant GitHub links. -->
    - Update `rocprofiler-*` workflow files to use the latest versions of
    Docker and GitHub actions (moved to Node 24)
      - `docker/login-action` -> v4.1.0
      - `docker/metadata-action` -> v6.0.0
      - `docker/build-push-action` -> v7.1.0
      - `docker/setup-buildx-action` -> v4.0.0
      - `actions/checkout` -> v6
      - `actions/upload-artifact` -> v7
      - `nick-fields/retry` -> v4

    ## JIRA ID

    <!-- If applicable, mention the JIRA ID resolved by this PR (Example:
    Resolves SWDEV-12345). -->
    <!-- Do not post any JIRA links here. -->

    ## Test Plan

    <!-- Explain any relevant testing done to verify this PR. -->
    Ensure no regression issues with action updates, workflows pass

    ## Test Result

    <!-- Briefly summarize test outcomes. -->
    TBA

    ## Submission Checklist

    - [X] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

commit 774ff6e7eec8fb0e79aaab408191635857c8367e
Author: Victor Zhang <111778801+victzhan@users.noreply.github.com>
Date:   Tue Apr 21 13:06:25 2026 -0400

    [AIRUNTIME-1929] HIP memory stress test fixes and improvements (#4069)

    ## Motivation

    Fix instability and build issues in HIP memory stress tests.

    ## Technical Details

    - Fix grid-stride loop in `KrnlWth2MemTypes` kernel in
    `hipMallocManagedStress.cc`.
    - Fix resource leaks (`hipFree`, `hipStreamDestroy`) in `LaunchKrnl4`.
    - Re-initialize managed memory between prefetch iterations in
    `hipMemPrftchAsyncStressTst.cc`.
    - Fix `hold_memory` build: correct include and add missing link library.
    - Simplify `stress_test` custom target.
    - Add `hipMallocConcurrency.cc` to the build.

    ## JIRA ID

    AIRUNTIME-1929

    ## Test Plan

    Build and run `stress_test` target. Verify stress tests pass
    consistently.

    ## Test Result

    Pending

    ## Submission Checklist

    - [x] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

commit 9deaac2945c4ef2cb9ab787b40619f96849d41e5
Author: Victor Zhang <111778801+victzhan@users.noreply.github.com>
Date:   Tue Apr 21 13:05:17 2026 -0400

    ROCM-2903 - Default DEBUG_HIP_MEM_POOL_VMHEAP to IS_LINUX (#5139)

    ## Motivation

    rocBLAS graph tests hang on Windows 11 after sustained stream-ordered
    allocation / free / trim cycles (~500-1000 cycles in). The hang is in
    the VM heap path: awaitCompletion on the synchronous VirtualMapCommand
    blocks indefinitely with the GPU event never signaling, leaving the
    command stuck in CL_SUBMITTED.

    ## Technical Details

    Default DEBUG_HIP_MEM_POOL_VMHEAP to IS_LINUX so that allocations on
    Windows are routed through SvmBuffer::malloc / free instead of
    VirtualMapCommand. This is a temporary workaround until the ROCR/HSA
    backend becomes the default on Windows, which brings direct dispatch and
    avoids this path entirely.

    ## JIRA ID

    ROCM-2903

    ## Test Plan

    Run rocblas-test *graph* filter on Navi3x / Windows 11; verify the hang
    is resolved.

    ## Test Result

    Confirmed on W7900 (gfx1100) + Windows 11: PAL previously hung at
    trmv_graph_test_f32_r_U_N_N_128_2_1; with this change all 1637 graph
    tests pass.

    ## Submission Checklist

    - [ ] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

    ---------

    Co-authored-by: FirstName LastName (Public) <your_public_email@example.com>

commit 2ecbb87a314b60d7b992cb4f275714e8b09a6c9b
Author: Kian Cossettini <Kian.Cossettini@amd.com>
Date:   Tue Apr 21 13:01:22 2026 -0400

    [rocprofiler-systems] Install python dependencies at the Dockerfile level (#5197)

    ## Motivation

    <!-- Explain the purpose of this PR and the goals it aims to achieve.
    -->

    Part of https://github.com/ROCm/rocm-systems/pull/3962

    Make the dockerfiles install the requirements.txt.
    Drop support for python 3.6 and 3.7 (test suite requires python 3.8 and
    above)

    ## Technical Details

    <!-- Explain the changes along with any relevant GitHub links. -->

    Remove 3.6 and 3.7 from Dockerfiles and workflows.
    Install requirements.txt in Dockerfiles

    ## JIRA ID

    <!-- If applicable, mention the JIRA ID resolved by this PR (Example:
    Resolves SWDEV-12345). -->
    <!-- Do not post any JIRA links here. -->

    ## Test Plan

    <!-- Explain any relevant testing done to verify this PR. -->

    ## Test Result

    <!-- Briefly summarize test outcomes. -->

    ## Submission Checklist

    - [x] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

commit c54a0e85fa6727ce1ffdc5ccc3695af0950365d8
Author: Dmitrii <dmitrii.galantsev@amd.com>
Date:   Tue Apr 21 11:54:10 2026 -0500

    [RDC][AMD-SMI][ROCM-SMI] Drop POST_BUILD strip on shared libs (#5237)

    Defer stripping to packagers and TheRock's THEROCK_SPLIT_DEBUG_INFO.
    Fixes
    SONAME-symlink corruption under llvm-strip
    (https://github.com/ROCm/TheRock/issues/4640)

commit e22df2da076973fb0a347c868edd2beea7f1fb7d
Author: Venkateshwar Reddy Kandula <Venkateshwarreddy.Kandula@amd.com>
Date:   Tue Apr 21 11:17:29 2026 -0500

    [rocprofiler-sdk] Add reusable composite action rocprofiler-sdk CI (#5095)

    ## Motivation

    This PR introduces a reusable local composite GitHub Action to
    consolidate repeated “install ROCm + build dependencies” logic across
    rocprofiler-sdk workflows, aiming to reduce duplication and simplify
    maintenance.

    ## Technical Details

    - Added a new composite action: .github/actions/rocprofiler-sdk-util.
    - Updated rocprofiler-sdk workflows (docs, CI, CodeQL, code coverage) to
    call the composite action instead of inlining dependency build steps.
    - Added workflow env toggles to enable/disable building specific
    dependencies (ROCR, HIP/CLR, rocprofiler-register, aqlprofile,
    rocDecode, rocJPEG) and to control nightly ROCm installation.

    ## JIRA ID

    <!-- If applicable, mention the JIRA ID resolved by this PR (Example:
    Resolves SWDEV-12345). -->
    <!-- Do not post any JIRA links here. -->

    ## Test Plan

    CI checks

    ## Test Result

    Passing

    ## Submission Checklist

    - [x] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

    ---------

    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

commit 7a234bbaf6ba32af3b64aacdbe27eaaac8348823
Author: Aurelien Bouteiller <abouteil@amd.com>
Date:   Tue Apr 21 11:01:40 2026 -0400

    [rocSHMEM] Fix a warning when building config gda_ionic (#5218)

    ## Motivation

    Fix warnings

    ## Technical Details

    missing a [[maybe-unused]] in gda_ionic configuration.

    ## JIRA ID

    AIROCSHMEM-300

commit b44f6c789daaf102492bb3572005318599abd656
Author: German Andryeyev <56892148+gandryey@users.noreply.github.com>
Date:   Tue Apr 21 10:59:12 2026 -0400

    clr: Expose some HSA interfaces in hip dll (#4748)

    ## Motivation
    These calls are required to enable AQL profiler functionality on
    Windows.

    ## Technical Details
    Currently AQL profiler requires direct calls to ROCR interfaces

    ## JIRA ID
    OCM-1667

    ## Test Plan
    Aql profiler tests

    ## Test Result
    Passed

    ## Submission Checklist
    N/A

commit 1f21d5b1a5273a9237ab3594bb56ebf2e64f2fc4
Author: Jason Bonnell <166553723+jbonnell-amd@users.noreply.github.com>
Date:   Tue Apr 21 09:28:51 2026 -0400

    [rocprofiler-compute] Update git version in Ubuntu GHCR CI images (#5208)

    ## Motivation

    <!-- Explain the purpose of this PR and the goals it aims to achieve.
    -->
    #5144 adds some new submodules, and the current CI image is failing to
    clone the repo with the submodules due to 22.04 using an older version
    of git.

    ## Technical Details

    <!-- Explain the changes along with any relevant GitHub links. -->
    - Update `Dockerfile.ubuntu.ci` to include the git-core ppa repository
    so we can grab the latest version of git
    - Previous version installed was 2.34.1, which was the latest version
    available with default ubuntu 22.04 repos

    ## JIRA ID

    <!-- If applicable, mention the JIRA ID resolved by this PR (Example:
    Resolves SWDEV-12345). -->
    <!-- Do not post any JIRA links here. -->

    ## Test Plan

    <!-- Explain any relevant testing done to verify this PR. -->
    - Ensure Dockers build properly
    - Once merged, verify that the updated images are able to pass the
    checkout step in #5144 checks

    ## Test Result

    <!-- Briefly summarize test outcomes. -->
    TBA

    ## Submission Checklist

    - [X] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

commit 4753424bc943669bb2a67c29783717042b457f9c
Author: Alexey Sachkov <alexey.sachkov@amd.com>
Date:   Tue Apr 21 14:30:51 2026 +0200

    [CLR][NFC] Optimize tracking of active queues (#4945)

    ## Motivation

    Performance optimization of the runtime.

    ## Technical Details

    `std::unordered_set::[insert|erase]` allocate/deallocate memory which is
    an unnecessary action considerng that a list of all command queues which
    are present throughout an application lifetime is mostly stable, i.e.
    the assumption is made that HIP streams are not short-lived, but instead
    mostly span the whole application lifetime.

    ## JIRA ID

    N/A

    ## Test Plan

    N/A, this change is non-functional

    ## Test Result

    N/A, this change is non-functional

    ## Submission Checklist

    - [X] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

commit 019054fdb5070b663ba741b6f3c8e715d4816a87
Author: Aleksandar Djordjevic <aleksandar.djordjevic@amd.com>
Date:   Tue Apr 21 14:06:28 2026 +0200

    [rocprofiler-systems] filter VCN/JPEG sentinel values during metric collection (#5145)

    ## Motivation

    When only some VCN/JPEG engines are present on a GPU, the AMD SMI
    `vcn_activity`/`jpeg_activity` arrays contain `0xFFFF` sentinel values
    for absent engines. These sentinel values were being passed through to
    Perfetto and RocPD output as `65535`, appearing as bogus
    `device_vcn_activity_1`, `_2`, `_3` metrics.

commit b6285c0a549a85c825d5e00fd51b3fb79f42c71d
Author: Pedro Alves <pedro@palves.net>
Date:   Fri Apr 17 16:06:55 2026 +0100

    Add missing AMD_DBGAPI_EXPORT_DECORATOR fallback

    The AMD_DBGAPI_EXPORT_DECORATOR definition block is missing the
    fallback case.  Fix that.

    Change-Id: Idcc785b59a48b5cc17c64d4b70e534ba6e912eaf
    commit-id:8ab06a04

commit b1ac485c994985b67f1dd712693c81b614d0bf12
Author: Pedro Alves <pedro@palves.net>
Date:   Fri Apr 17 16:06:55 2026 +0100

    Fix building dbgapi as a static library

    Since 4bfddf5494 ("dbgapi/win32: __declspec(dllexport) instead of
    --version-script"), building dbgapi as a static library on Windows
    fails with errors such as:

     .../rocm-dbgapi/src/initialization.cpp:41:1: error: function 'amd_dbgapi_status_t amd_dbgapi_initialize(amd_dbgapi_callbacks_s*)' definition is marked dllimport
        41 | amd_dbgapi_initialize (struct amd_dbgapi_callbacks_s *callbacks)
           | ^~~~~~~~~~~~~~~~~~~~~

    The symbols end up "marked dllimport" because with:

     set_target_properties(amd-dbgapi PROPERTIES
       ...
       DEFINE_SYMBOL "AMD_DBGAPI_EXPORTS"
       ...

    ... DEFINE_SYMBOL is a CMake convenience that only applies when (and
    while) building a shared library.  When BUILD_SHARED_LIBS is OFF,
    DEFINE_SYMBOL does nothing.  So AMD_DBGAPI_EXPORTS ends up not defined
    in amd-dbgapi.h, which results in AMD_DBGAPI mapping to
    AMD_DBGAPI_IMPORT, here, in amd-dbgapi.h.in:

      #define AMD_DBGAPI AMD_DBGAPI_IMPORT

    AMD_DBGAPI_IMPORT in turn is unconditionally defined to
    __declspec(dllimport) on Windows.

    So there are two issues:

     - The dbgapi build itself is treated as importing symbols (as a
       consumer) instead of exporting them (as a producer).

     - The import/export decorations are applied even when dbgapi is built
       as a static library, where they should not be used at all.

    Fix this by teaching amd-dbgapi.h about whether dbgapi was built as a
    static or shared library.  Since the header is generated, define
    AMD_DBGAPI_STATIC_LIB (0 or 1) at configure time and use it to skip
    using import/export decorations.

    This also ensures that clients, including those which do not use CMake
    (e.g. GDB), automatically see consistent definitions without needing
    to know how dbgapi was built.

    Change-Id: I31c8c947791551cc4e20218826561c1d242f298d
    commit-id:12deacf2

commit e42ed4ca16c7713233161740b0a22d9c50fd2fba
Author: Luis Machado <luis.machado@amd.com>
Date:   Mon Apr 13 09:50:10 2026 -0500

    Add Python executable paths to all TheRock builds

    Configure shared and dist Python executables (3.10-3.14) for all build
    configurations to ensure consistent Python environment across CI builds.

    Also update the manylinux container hash to the latest.

    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

commit da8621629e24cabc4c92d43e2cbeb6cebc751c1c
Author: vstojilj <vstojilj@amd.com>
Date:   Tue Apr 21 10:56:59 2026 +0200

    Accept only valid device allocations for hipTexObjectCreate (#4814)

    ## Motivation

    Unit_TexObjectCreate_TypePitch2D_EdgeCases is failing on APUs when host
    pointer is passed to hipTexObjectCreate and it should fail with
    hipErrorInvalidValue.

    ## Technical Details

    Check if buffer retrieved by devptr is a valid allocation before
    creating tex object.

    ## JIRA ID

    Resolves AIRUNTIME-72.

    ## Test Plan

    Retest with Unit_TexObjectCreate_TypePitch2D_EdgeCases.

    ## Test Result

    test passes.

    ## Submission Checklist

    - [x] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

commit d4570465bfb80c34171815318ec822f1dbcc07be
Author: systems-assistant[bot] <221163467+systems-assistant[bot]@users.noreply.github.com>
Date:   Mon Apr 20 22:31:38 2026 -0700

    Update TheRock reference to (702d158) (#5117)

    Updated TheRock ref to `702d158` due to submodule bump

    update - Rename ccache presets as per therock pr
    https://github.com/ROCm/TheRock/pull/4402

    ---------

    Co-authored-by: therockbot <therockbot@amd.com>
    Co-authored-by: rahulc-gh <rahul.choudhary@amd.com>
    Co-authored-by: RahulC <168588218+rahulc-gh@users.noreply.github.com>

commit e5a46360d85ac27fc2d028a1f094eb0c9292ec59
Author: Shweta Khatri <shweta.khatri@amd.com>
Date:   Thu Apr 2 14:56:05 2026 -0400

    rocr: PC Sampling : Add reserved_wg field to PC sampling structs

    Add missing reserved_wg field to perf_sample_hosttrap_v1_t and
    perf_sample_snapshot_v1_t. This aligns with the profiler which
    expects chiplet at bits [10:8].

commit b768f127de8c219e1604615293aa68d6d2220e85
Author: Jeff Jiang <142832361+jeffqjiangNew@users.noreply.github.com>
Date:   Mon Apr 20 22:21:55 2026 -0400

    [rocDecode] Merge debug logging into the new logging mechanism. (#5210)

    ## Motivation

    This PR merges debug logging into the new logging mechanism.

    ## Technical Details

    - rocDecode debug message was a compile option.
    - Now debug logging can be enabled by setting env var ROCDEC_LOG_LEVEL
    to 4 . This helps issue triage on the release builds.

    ## JIRA ID

    <!-- If applicable, mention the JIRA ID resolved by this PR (Example:
    Resolves SWDEV-12345). -->
    <!-- Do not post any JIRA links here. -->

    ## Test Plan

    Run CTests and decode conformance tests to catch any regressions.
    Run rocdecdecode samples to verify user set output.

    ## Test Result
    All CTests and conformance tests pass. Example summary of the test
    results:

    CTests:
        Start 1: video_decodeRaw-HEVC
    1/6 Test #1: video_decodeRaw-HEVC .............   Passed    2.10 sec
        Start 2: video_decodeRaw-AVC
    2/6 Test #2: video_decodeRaw-AVC ..............   Passed    1.96 sec
        Start 3: video_decodeRaw-AV1
    3/6 Test #3: video_decodeRaw-AV1 ..............   Passed    2.03 sec
        Start 4: video_decodeRaw-VP9
    4/6 Test #4: video_decodeRaw-VP9 ..............   Passed    2.05 sec
        Start 5: rocdec_Decode-HEVC
    5/6 Test #5: rocdec_Decode-HEVC ...............   Passed    0.91 sec
        Start 6: rocDecode_Negative_API_Tests
    6/6 Test #6: rocDecode_Negative_API_Tests .....   Passed    0.73 sec

    Conformance tests:

    AVC conformance test:
    Conformance test completed on the 127 streams:

    The number of passing streams is 127
    The number of failing streams is 0
    The number of streams that did not finish decoding is 0

    HEVC conformance test:
    Conformance test completed on the 135 streams:

    The number of passing streams is 135
    The number of failing streams is 0
    The number of streams that did not finish decoding is 0

    AV1 conformance test:
    Conformance test completed on the 162 streams:

    The number of passing streams is 162
    The number of failing streams is 0
    The number of streams that did not finish decoding is 0

    VP9 conformance test:
    Conformance test completed on the 108 streams:

    The number of passing streams is 108
    The number of failing streams is 0
    The number of streams that did not finish decoding is 0

    <!-- Briefly summarize test outcomes. -->

    ## Submission Checklist

    - [ ] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

commit ff1db549b2d5061ff0026ee9933c0e83b5533fef
Author: koushikbillakanti-amd <koushik.billakanti@amd.com>
Date:   Mon Apr 20 21:06:48 2026 -0500

    Add NPU device type support (#4952)

    ## Motivation
    Add NPU device support to CUID so RyzenAI/amdxdna devices are
    discoverable and assigned unique identifiers.

    ## Technical Details
    Introduce CuidNpu class with discovery via accel, primary/derived CUID
    generation, PCI config space fingerprinting, and wire NPU through the
    daemon, CLI, device manager, and file serialization paths.

    Co-authored-by: Koushik Billakanti <kbillaka@amd.com>

commit 4e965940280c5b567d4ad36dc41418f6b2da8593
Author: Kian Cossettini <Kian.Cossettini@amd.com>
Date:   Mon Apr 20 18:12:14 2026 -0400

    [rocprofiler-systems] Improve troubleshooting messages for Dyninst errors (#4947)

    ## Motivation

    <!-- Explain the purpose of this PR and the goals it aims to achieve.
    -->
    During instrumentation, it is possible for Dyninst to fail to process
    certain sequences of instructions in a function. When this occurs, a
    vague error message would be printed.

    This PR adds more details to the error message and adds information to
    `instrumenting-rewriting-binary-applications.rst` to inform the user to
    exclude the problematic function/module/object in subsequent runs (which
    may prevent errors).

    With this PR:
    ```
    # Before
    Failed to transform trace 9105

    # After
    Failed to transform trace 9105 in function 'llvm::msgpack::Reader::read' in module '/opt/rocm-7.1.1/lib/llvm/lib/libomptarget.so.20.0git' in object 'libomptarget.so.20.0git' at address 0x7f4c3f179120
    ```

    ## Technical Details

    <!-- Explain the changes along with any relevant GitHub links. -->

    See the original issue: https://github.com/dyninst/dyninst/issues/2203

    Merge https://github.com/ROCm/dyninst/pull/13.
    Update submodule pointer to
    https://github.com/ROCm/dyninst/commit/77203e0b4f917aec534ac2717643c17838fded7e.

    Added `Failed to transform trace error` section to
    `projects/rocprofiler-systems/docs/how-to/instrumenting-rewriting-binary-application.rst`.

    ## JIRA ID

    <!-- If applicable, mention the JIRA ID resolved by this PR (Example:
    Resolves SWDEV-12345). -->
    <!-- Do not post any JIRA links here. -->

    ROCM-21219

    ## Test Plan

    <!-- Explain any relevant testing done to verify this PR. -->

    N/A

    ## Test Result

    <!-- Briefly summarize test outcomes. -->
    N/A
    ## Submission Checklist

    - [x] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

commit e0fa30b1465526e3255df950df5edc8dfd83b631
Author: Bindhiya Kanangot Balakrishnan <Bindhiya.KanangotBalakrishnan@amd.com>
Date:   Mon Apr 20 16:56:59 2026 -0500

    [ROCM-1553] GPU metrics v1.9 support with new attributes (#5125)

    [ROCM-1553] GPU metrics v1.9 support with new attributes

    Added support for updated dynamic GPU metrics version 1.9 by introducing
    new metric attributes based on latest amdgpu header.
    Updated python interface and CLI outputs for new gpu_metric fields.
    Unified CLI output for amdsmi metric. Updated Changelog.

    Signed-off-by: Bindhiya Kanangot Balakrishnan <Bindhiya.KanangotBalakrishnan@amd.com>

commit 6c571bb686712f9366fa8ee8646e48fdf25222c5
Author: Jeff Jiang <142832361+jeffqjiangNew@users.noreply.github.com>
Date:   Mon Apr 20 14:43:02 2026 -0400

    [rocDecode] Logging format in utility classes now matches RocDecLogger format. (#4997)

    ## Motivation

    Unify logging format in utility classes with core library logging
    format.

    ## Technical Details

    This PR unifies logging format in utility classes with core library
    logging format.
     - Logs from utility classes are now more informative.

    ## JIRA ID

    <!-- If applicable, mention the JIRA ID resolved by this PR (Example:
    Resolves SWDEV-12345). -->
    <!-- Do not post any JIRA links here. -->

    ## Test Plan

    Run CTests and decode conformance tests to catch any regressions.
    Run rocdecdecode samples to verify user set output.

    ## Test Result

    All CTests and conformance tests pass. Example summary of the test
    results:

    CTests:
    Start 1: video_decodeRaw-HEVC
    1/6 Test https://github.com/ROCm/rocm-systems/pull/1:
    video_decodeRaw-HEVC ............. Passed 1.96 sec
    Start 2: video_decodeRaw-AVC
    2/6 Test https://github.com/ROCm/rocm-systems/pull/2:
    video_decodeRaw-AVC .............. Passed 1.84 sec
    Start 3: video_decodeRaw-AV1
    3/6 Test https://github.com/ROCm/rocm-systems/pull/3:
    video_decodeRaw-AV1 .............. Passed 1.88 sec
    Start 4: video_decodeRaw-VP9
    4/6 Test https://github.com/ROCm/rocm-systems/pull/4:
    video_decodeRaw-VP9 .............. Passed 1.93 sec
    Start 5: rocdec_Decode-HEVC
    5/6 Test https://github.com/ROCm/rocm-systems/pull/5: rocdec_Decode-HEVC
    ............... Passed 0.85 sec
    Start 6: rocDecode_Negative_API_Tests
    6/6 Test https://github.com/ROCm/rocm-systems/pull/6:
    rocDecode_Negative_API_Tests ..... Passed 0.72 sec

    100% tests passed, 0 tests failed out of 6

    AVC conformance test:
    Conformance test completed on the 127 streams:

    The number of passing streams is 127
    The number of failing streams is 0
    The number of streams that did not finish decoding is 0

    HEVC conformance test:
    Conformance test completed on the 135 streams:

    The number of passing streams is 135
    The number of failing streams is 0
    The number of streams that did not finish decoding is 0

    AV1 conformance test:
    Conformance test completed on the 162 streams:

    The number of passing streams is 162
    The number of failing streams is 0
    The number of streams that did not finish decoding is 0

    VP9 conformance test:
    Conformance test completed on the 108 streams:

    The number of passing streams is 108
    The number of failing streams is 0
    The number of streams that did not finish decoding is 0

    ## Submission Checklist

    - [ ] Look over the contributing guidelines at
    https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

    ---------

    Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>

commit 2e1eb97edb6d9b0545c2ce3f5e900131540da0c7
Author: Avinash Kethineedi <avinash.kethineedi@amd.com>
Date:   Mon Apr 20 13:27:03 2026 -0500

    [rocSHMEM] Add library metadata constants, version/name query APIs, and documentation (#5151)

    ## Motivation
    Add library metadata constants and version/name query APIs to rocSHMEM,
    aligning with the OpenSHMEM specification.

    ## Technical Details

    - Replace version parsing from the C++ header with a direct CMake
    variable and add backend/vendor string construction to CMakeLists.txt
    - Add vendor version, vendor string, and backend metadata to
    rocshmem_config.h and surface them in rocshmem_info output
    - Add ROCSHMEM_MAJOR_VERSION, ROCSHMEM_MINOR_VERSION,
    ROCSHMEM_MAX_NAME_LEN to rocshmem.hpp
    - Add host APIs: rocshmem_info_get_version, rocshmem_info_get_name,
    rocshmem_vendor_get_version_info
    - Update rocshmem_init_attr_test example to use the new query APIs
    - Add Sphinx documentation for library constants and query APIs
    - Templatize print_entry in build_info.cpp to support int arguments
    - Update docs/conf.py to read version from CMakeLists.txt
    - Add Linux build instructions and custom output directory usage to docs
    README

    ## JIRA ID

    - AIROCSHMEM-359

    ## Test Plan

    - Build with all backend configurations (GDA with IONIC/BNXT/MLX5, RO,
    IPC, and combinations) and verify rocshmem_info output shows the correct
    vendor string, version, and backend for each configuration
    - Run rocshmem_init_attr_test and verify version/name output on rank 0
    - Build the Sphinx documentation and verify the new library constants
    and query API pages render correctly

    ## Test Result

    - All backend configurations produce the expected vendor strings (e.g.
    `rocSHMEM_v3.3.0_GDA(IONIC/BNXT/MLX5)+RO+IPC` when compiled with all
    backends and NICs enabled)
    - rocshmem_info output displays correct version, vendor string, and
    backend metadata for all tested configurations
    - Sphinx documentation builds without warnings in the newly added
    sections; library constants and query API pages render correctly

commit b87cea434d77e56499835c54c01db8a5fa51f13b
Author: Sumanth Gavini <sumanth.gavini@amd.com>
Date:…
rrawther added a commit that referenced this pull request May 13, 2026
…#6076)

## Motivation

Some of the comments were not correct

## Technical Details

Will be more clear for the user

## JIRA ID

<!-- If applicable, mention the JIRA ID resolved by this PR (Example:
Resolves SWDEV-12345). -->
<!-- Do not post any JIRA links here. -->

## Test Plan

CTest should pass

## Test Result

Test project /home/rajy/work/rocm-systems/projects/rocdecode/build
    Start 1: video_decodeRaw-HEVC
1/6 Test #1: video_decodeRaw-HEVC .............   Passed    2.67 sec
    Start 2: video_decodeRaw-AVC
2/6 Test #2: video_decodeRaw-AVC ..............   Passed    1.68 sec
    Start 3: video_decodeRaw-AV1
3/6 Test #3: video_decodeRaw-AV1 ..............   Passed    1.77 sec
    Start 4: video_decodeRaw-VP9
4/6 Test #4: video_decodeRaw-VP9 ..............   Passed    1.82 sec
    Start 5: rocdec_Decode-HEVC
5/6 Test #5: rocdec_Decode-HEVC ...............   Passed    0.72 sec
    Start 6: rocDecode_Negative_API_Tests
6/6 Test #6: rocDecode_Negative_API_Tests .....   Passed    0.53 sec

100% tests passed, 0 tests failed out of 6

## Submission Checklist

- [ ] Look over the contributing guidelines at
https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.
vlaindic added a commit that referenced this pull request May 18, 2026
Translation parser (#3, #6):
  Replace the residual ROCP_FATAL on wave_id mismatch in the GFX1250 V2/V4 and
  stochastic copySample paths with ROCP_ERROR + returning a value-initialized
  record so it is filtered by is_invalid_sample() instead of aborting the
  process. Drop the redundant std::memset() that followed value-initialization
  of the invalid-sample sentinel in the GFX9/GFX12/GFX1250 V2 and GFX1250 V4
  paths, and document the timestamp-zero invariant.

query_agent_configurations_v2 (#5):
  Replace the dead "sort preferred-method configs first" pass with the same
  PREFER semantics already implemented by configure_v2: if any preferred-method
  config exists, return only those; otherwise fall back to returning all
  configs. REQUIRE remains a hard filter.

Callback signature:
  Change rocprofiler_available_pc_sampling_configurations_v2_cb_t to deliver
  configurations as a const T** array of pointers, matching the convention used
  by rocprofiler_query_available_agents_cb_t. Update the only consumer
  (samples/pc_sampling_v2/pcs.cpp) accordingly.

Documentation (#7, #8):
  Remove the V5 reference (only V0-V4 exist today); expand the api_flags doc
  with PREFER/REQUIRE behavior for both query and configure entry points and
  add per-enumerator @var blocks; add an Example 4 to configure_v2 showing
  conflicting flags being rejected; mark configuration_v2_t as output-only;
  add per-flag filtering rules and three usage examples to query_v2's doc;
  expand _get_parse_func_for_record_kind's docstring to specify when nullptr
  is returned.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@vlaindic vlaindic mentioned this pull request May 18, 2026
1 task
vlaindic added a commit that referenced this pull request May 27, 2026
Translation parser (#3, #6):
  Replace the residual ROCP_FATAL on wave_id mismatch in the GFX1250 V2/V4 and
  stochastic copySample paths with ROCP_ERROR + returning a value-initialized
  record so it is filtered by is_invalid_sample() instead of aborting the
  process. Drop the redundant std::memset() that followed value-initialization
  of the invalid-sample sentinel in the GFX9/GFX12/GFX1250 V2 and GFX1250 V4
  paths, and document the timestamp-zero invariant.

query_agent_configurations_v2 (#5):
  Replace the dead "sort preferred-method configs first" pass with the same
  PREFER semantics already implemented by configure_v2: if any preferred-method
  config exists, return only those; otherwise fall back to returning all
  configs. REQUIRE remains a hard filter.

Callback signature:
  Change rocprofiler_available_pc_sampling_configurations_v2_cb_t to deliver
  configurations as a const T** array of pointers, matching the convention used
  by rocprofiler_query_available_agents_cb_t. Update the only consumer
  (samples/pc_sampling_v2/pcs.cpp) accordingly.

Documentation (#7, #8):
  Remove the V5 reference (only V0-V4 exist today); expand the api_flags doc
  with PREFER/REQUIRE behavior for both query and configure entry points and
  add per-enumerator @var blocks; add an Example 4 to configure_v2 showing
  conflicting flags being rejected; mark configuration_v2_t as output-only;
  add per-flag filtering rules and three usage examples to query_v2's doc;
  expand _get_parse_func_for_record_kind's docstring to specify when nullptr
  is returned.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
AryanSalmanpour added a commit that referenced this pull request Jun 10, 2026
…error diagnostics in parser (#7010)

## Motivation

This PR enhances rocJPEG logging by adding structured, offset-annotated
debug logging for each major JPEG marker (SOF0, DQT, DHT, SOS, EOI),
improves clarity of error messages for unsupported formats, and
explicitly rejects progressive JPEGs (SOF2).

sample output:

```
ROCJPEG_LOG_LEVEL=4 ./jpegdecode -i  ~/install/share/rocjpeg/images/mug_420.jpg 
Reading images from disk, please wait!
Using GPU device 0: AMD Radeon RX 7900 XT[gfx1100] on PCI bus 03:00.0
[3, Info] rocjpeg_api.cpp:123: 2274381572050 us: [pid:1740825 tid:1740825 hashid:0xbc0a7] rocJpegCreate( 0, 0, 0x7fff0596b718 ): entry ...
[3, Info] rocjpeg_decoder.cpp:81: 2274381572066 us: [pid:1740825 tid:1740825 hashid:0xbc0a7] InitializeDecoder(  ): entry ...
[3, Info] rocjpeg_decoder.cpp:50: 2274381572069 us: [pid:1740825 tid:1740825 hashid:0xbc0a7] InitHIP( 0 ): entry ...
[3, Info] rocjpeg_decoder.cpp:50: 2274381592272 us: [pid:1740825 tid:1740825 hashid:0xbc0a7] InitHIP( 0 ): exit (20203 us) ...
[3, Info] rocjpeg_vaapi_decoder.cpp:416: 2274381592356 us: [pid:1740825 tid:1740825 hashid:0xbc0a7] InitializeDecoder(): gpu_uuids_to_render_nodes_map_: {e0b64ad979bec1fd: 128}
[3, Info] rocjpeg_vaapi_decoder.cpp:417: 2274381592362 us: [pid:1740825 tid:1740825 hashid:0xbc0a7] InitializeDecoder(): Selected GPU UUID: e0b64ad979bec1fd
[3, Info] rocjpeg_vaapi_decoder.cpp:475: 2274381592366 us: [pid:1740825 tid:1740825 hashid:0xbc0a7] InitVAAPI(): Opening DRM node: /dev/dri/renderD128
[3, Info] rocjpeg_vaapi_decoder.cpp:500: 2274381593624 us: [pid:1740825 tid:1740825 hashid:0xbc0a7] InitVAAPI(): VA-API version 1.22
[3, Info] rocjpeg_vaapi_decoder.cpp:502: 2274381593634 us: [pid:1740825 tid:1740825 hashid:0xbc0a7] InitVAAPI(): VA-API vendor: Mesa Gallium driver 26.0.0-devel for AMD Radeon RX 7900 XT (radeonsi, navi31, , DRM 3.64, 6.17.0-23-generic)
[3, Info] rocjpeg_vaapi_decoder.cpp:504: 2274381593638 us: [pid:1740825 tid:1740825 hashid:0xbc0a7] InitVAAPI(): Trying to open /home/aryan/install/lib/rocm_sysdeps/lib/radeonsi_drv_video.so

[3, Info] rocjpeg_decoder.cpp:81: 2274381593728 us: [pid:1740825 tid:1740825 hashid:0xbc0a7] InitializeDecoder(  ): exit (21662 us) ...
[3, Info] rocjpeg_api.cpp:123: 2274381593732 us: [pid:1740825 tid:1740825 hashid:0xbc0a7] rocJpegCreate( 0, 0, 0x7fff0596b718 ): exit (21682 us) ...
[3, Info] rocjpeg_api.cpp:40: 2274381593735 us: [pid:1740825 tid:1740825 hashid:0xbc0a7] rocJpegStreamCreate( 0x7fff0596b710 ): entry ...
[3, Info] rocjpeg_api.cpp:40: 2274381593738 us: [pid:1740825 tid:1740825 hashid:0xbc0a7] rocJpegStreamCreate( 0x7fff0596b710 ): exit (3 us) ...
Input file name: /home/aryan/install/share/rocjpeg/images/mug_420.jpg
[3, Info] rocjpeg_api.cpp:75: 2274381594731 us: [pid:1740825 tid:1740825 hashid:0xbc0a7] rocJpegStreamParse( 0x70b1f41c4010, 2340067, 0x55f2ebfec840 ): entry ...
[3, Info] rocjpeg_parser.cpp:48: 2274381594734 us: [pid:1740825 tid:1740825 hashid:0xbc0a7] ParseJpegStream( 0x70b1f41c4010, 2340067 ): entry ...
[4, Debug] rocjpeg_parser.cpp:408: 2274381594759 us: [pid:1740825 tid:1740825 hashid:0xbc0a7] ParseDQT(): 
*** Marker: DQT (xFFDB) ***
  Define a Quantization Table.
  OFFSET: 0x00001296
  Table length = 67
  ----
  Precision=8 bits
  Destination ID=0 (Luminance)
    DQT, Row #0:   1   1   1   1   1   1   1   1
    DQT, Row #1:   1   1   1   1   1   1   1   1
    DQT, Row #2:   1   1   1   1   1   1   1   1
    DQT, Row #3:   1   1   1   1   1   1   1   1
    DQT, Row #4:   1   1   1   1   1   1   1   1
    DQT, Row #5:   1   1   1   1   1   1   1   1
    DQT, Row #6:   1   1   1   1   1   1   1   1
    DQT, Row #7:   1   1   1   1   1   1   1   1
    Approx quality factor = 100.00 (scaling=2.99 variance=6.13)
[4, Debug] rocjpeg_parser.cpp:408: 2274381594772 us: [pid:1740825 tid:1740825 hashid:0xbc0a7] ParseDQT(): 
*** Marker: DQT (xFFDB) ***
  Define a Quantization Table.
  OFFSET: 0x000012DB
  Table length = 67
  ----
  Precision=8 bits
  Destination ID=1 (Chrominance)
    DQT, Row #0:   1   1   1   1   1   1   1   1
    DQT, Row #1:   1   1   1   1   1   1   1   1
    DQT, Row #2:   1   1   1   1   1   1   1   1
    DQT, Row #3:   1   1   1   1   1   1   1   1
    DQT, Row #4:   1   1   1   1   1   1   1   1
    DQT, Row #5:   1   1   1   1   1   1   1   1
    DQT, Row #6:   1   1   1   1   1   1   1   1
    DQT, Row #7:   1   1   1   1   1   1   1   1
    Approx quality factor = 100.00 (scaling=1.54 variance=1.58)
[4, Debug] rocjpeg_parser.cpp:297: 2274381594790 us: [pid:1740825 tid:1740825 hashid:0xbc0a7] ParseSOF(): 
*** Marker: SOF0 (Baseline DCT) (xFFC0) ***
  OFFSET: 0x00001320
  Frame header length = 17
  Precision = 8
  Number of Lines = 2160
  Samples per Line = 3840
  Image Size = 3840 x 2160
  Chroma subsampling: 4:2:0
  Raw Image Orientation = Landscape
  Number of Img components = 3
    Component[1]: ID=0x01, Samp Fac=0x22 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Lum: Y)
    Component[2]: ID=0x02, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cb)
    Component[3]: ID=0x03, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cr)
[4, Debug] rocjpeg_parser.cpp:515: 2274381594802 us: [pid:1740825 tid:1740825 hashid:0xbc0a7] ParseDHT(): 
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
  OFFSET: 0x00001333
  Huffman table length = 31
  ----
  Destination ID = 0
  Class = 0 (DC / Lossless Table)
    Codes of length 01 bits (000 total): 
    Codes of length 02 bits (002 total): 03 04 
    Codes of length 03 bits (002 total): 01 02 
    Codes of length 04 bits (003 total): 00 05 06 
    Codes of length 05 bits (001 total): 07 
    Codes of length 06 bits (001 total): 08 
    Codes of length 07 bits (001 total): 09 
    Codes of length 08 bits (001 total): 0A 
    Codes of length 09 bits (001 total): 0B 
    Codes of length 0A bits (000 total): 
    Codes of length 11 bits (000 total): 
    Codes of length 12 bits (000 total): 
    Codes of length 13 bits (000 total): 
    Codes of length 14 bits (000 total): 
    Codes of length 15 bits (000 total): 
    Codes of length 16 bits (000 total): 
    Total number of codes: 012
[4, Debug] rocjpeg_parser.cpp:515: 2274381594816 us: [pid:1740825 tid:1740825 hashid:0xbc0a7] ParseDHT(): 
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
  OFFSET: 0x00001354
  Huffman table length = 91
  ----
  Destination ID = 0
  Class = 1 (AC Table)
    Codes of length 01 bits (000 total): 
    Codes of length 02 bits (002 total): 01 02 
    Codes of length 03 bits (001 total): 11 
    Codes of length 04 bits (002 total): 03 21 
    Codes of length 05 bits (004 total): 00 04 12 31 
    Codes of length 06 bits (003 total): 05 41 51 
    Codes of length 07 bits (005 total): 06 13 22 61 71 
    Codes of length 08 bits (005 total): 32 81 91 A1 D1 
    Codes of length 09 bits (005 total): 07 52 B1 C1 F0 
    Codes of length 0A bits (005 total): 08 14 23 42 E1 
    Codes of length 0B bits (005 total): 62 72 92 A2 D2 
    Codes of length 0C bits (007 total): 09 15 33 53 82 E2 F1 
    Codes of length 0D bits (002 total): 24 B2 
    Codes of length 0E bits (001 total): C2 
    Codes of length 0F bits (002 total): 16 43 
    Codes of length 10 bits (023 total): 93 63 D3 0A 17 25 73 A3 34 54 83 18 19 B3 26 27 
                                         44 F2 35 64 C3 E3 46 
    Total number of codes: 072
[4, Debug] rocjpeg_parser.cpp:515: 2274381594829 us: [pid:1740825 tid:1740825 hashid:0xbc0a7] ParseDHT(): 
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
  OFFSET: 0x000013B1
  Huffman table length = 29
  ----
  Destination ID = 1
  Class = 0 (DC / Lossless Table)
    Codes of length 01 bits (001 total): 00 
    Codes of length 02 bits (000 total): 
    Codes of length 03 bits (003 total): 01 02 03 
    Codes of length 04 bits (001 total): 04 
    Codes of length 05 bits (001 total): 05 
    Codes of length 06 bits (001 total): 06 
    Codes of length 07 bits (001 total): 07 
    Codes of length 08 bits (001 total): 08 
    Codes of length 09 bits (001 total): 09 
    Codes of length 0A bits (000 total): 
    Codes of length 11 bits (000 total): 
    Codes of length 12 bits (000 total): 
    Codes of length 13 bits (000 total): 
    Codes of length 14 bits (000 total): 
    Codes of length 15 bits (000 total): 
    Codes of length 16 bits (000 total): 
    Total number of codes: 010
[4, Debug] rocjpeg_parser.cpp:515: 2274381594842 us: [pid:1740825 tid:1740825 hashid:0xbc0a7] ParseDHT(): 
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
  OFFSET: 0x000013D0
  Huffman table length = 83
  ----
  Destination ID = 1
  Class = 1 (AC Table)
    Codes of length 01 bits (000 total): 
    Codes of length 02 bits (001 total): 01 
    Codes of length 03 bits (001 total): 11 
    Codes of length 04 bits (004 total): 00 02 21 61 
    Codes of length 05 bits (007 total): 03 31 41 51 71 91 F0 
    Codes of length 06 bits (006 total): 12 22 52 81 A1 D1 
    Codes of length 07 bits (004 total): 04 62 B1 E1 
    Codes of length 08 bits (005 total): 13 32 82 A2 C1 
    Codes of length 09 bits (004 total): 05 42 92 F1 
    Codes of length 0A bits (000 total): 
    Codes of length 11 bits (004 total): 06 14 23 72 
    Codes of length 0C bits (004 total): 07 33 53 B2 
    Codes of length 0D bits (005 total): 15 43 C2 D2 E2 
    Codes of length 0E bits (001 total): 16 
    Codes of length 0F bits (001 total): 63 
    Codes of length 10 bits (017 total): 93 24 34 54 08 73 83 17 18 44 A3 35 F2 25 74 B3 
                                         D3 
    Total number of codes: 064
[4, Debug] rocjpeg_parser.cpp:606: 2274381594856 us: [pid:1740825 tid:1740825 hashid:0xbc0a7] ParseSOS(): 
*** Marker: SOS (Start of Scan) (xFFDA) ***
  OFFSET: 0x00001425
  Scan header length = 12
  Number of img components = 3
    Component[1]: selector=0x01, table=0(DC),0(AC)
    Component[2]: selector=0x02, table=1(DC),1(AC)
    Component[3]: selector=0x03, table=1(DC),1(AC)
  Spectral selection = 0 .. 63
  Successive approximation = 0x00
[4, Debug] rocjpeg_parser.cpp:669: 2274381595378 us: [pid:1740825 tid:1740825 hashid:0xbc0a7] ParseEOI(): 
*** Marker: EOI (End of Image) (xFFD9) ***
  OFFSET: 0x0023B4E1
[3, Info] rocjpeg_parser.cpp:48: 2274381595383 us: [pid:1740825 tid:1740825 hashid:0xbc0a7] ParseJpegStream( 0x70b1f41c4010, 2340067 ): exit (649 us) ...
[3, Info] rocjpeg_api.cpp:75: 2274381595386 us: [pid:1740825 tid:1740825 hashid:0xbc0a7] rocJpegStreamParse( 0x70b1f41c4010, 2340067, 0x55f2ebfec840 ): exit (655 us) ...
[3, Info] rocjpeg_api.cpp:188: 2274381595393 us: [pid:1740825 tid:1740825 hashid:0xbc0a7] rocJpegGetImageInfo( 0x55f2ebf6dde0, 0x55f2ebfec840, 0x7fff0596b82a, 0x7fff0596b728, 0x7fff0596b810, 0x7fff0596b800 ): entry ...
[3, Info] rocjpeg_decoder.cpp:332: 2274381595397 us: [pid:1740825 tid:1740825 hashid:0xbc0a7] GetImageInfo( 0x55f2ebfec840, 0x7fff0596b82a, 0x7fff0596b728, 0x7fff0596b810, 0x7fff0596b800 ): entry ...
[3, Info] rocjpeg_decoder.cpp:332: 2274381595400 us: [pid:1740825 tid:1740825 hashid:0xbc0a7] GetImageInfo( 0x55f2ebfec840, 0x7fff0596b82a, 0x7fff0596b728, 0x7fff0596b810, 0x7fff0596b800 ): exit (3 us) ...
[3, Info] rocjpeg_api.cpp:188: 2274381595403 us: [pid:1740825 tid:1740825 hashid:0xbc0a7] rocJpegGetImageInfo( 0x55f2ebf6dde0, 0x55f2ebfec840, 0x7fff0596b82a, 0x7fff0596b728, 0x7fff0596b810, 0x7fff0596b800 ): exit (10 us) ...
Input image resolution: 3840x2160
Chroma subsampling: YUV 4:2:0
Decoding started, please wait! ... 
[3, Info] rocjpeg_api.cpp:222: 2274381595488 us: [pid:1740825 tid:1740825 hashid:0xbc0a7] rocJpegDecode( 0x55f2ebf6dde0, 0x55f2ebfec840, 0x7fff0596b6c0, 0x7fff0596b6e0 ): entry ...
[3, Info] rocjpeg_decoder.cpp:120: 2274381595492 us: [pid:1740825 tid:1740825 hashid:0xbc0a7] Decode( 0x55f2ebfec840, 0x7fff0596b6c0, 0x7fff0596b6e0 ): entry ...
[3, Info] rocjpeg_decoder.cpp:120: 2274381607931 us: [pid:1740825 tid:1740825 hashid:0xbc0a7] Decode( 0x55f2ebfec840, 0x7fff0596b6c0, 0x7fff0596b6e0 ): exit (12439 us) ...
[3, Info] rocjpeg_api.cpp:222: 2274381607937 us: [pid:1740825 tid:1740825 hashid:0xbc0a7] rocJpegDecode( 0x55f2ebf6dde0, 0x55f2ebfec840, 0x7fff0596b6c0, 0x7fff0596b6e0 ): exit (12449 us) ...
Average processing time per image (ms): 12.4542
Average images per sec: 80.2941
[3, Info] rocjpeg_api.cpp:154: 2274381608091 us: [pid:1740825 tid:1740825 hashid:0xbc0a7] rocJpegDestroy( 0x55f2ebf6dde0 ): entry ...
[3, Info] rocjpeg_api.cpp:154: 2274381610464 us: [pid:1740825 tid:1740825 hashid:0xbc0a7] rocJpegDestroy( 0x55f2ebf6dde0 ): exit (2373 us) ...
[3, Info] rocjpeg_api.cpp:99: 2274381610471 us: [pid:1740825 tid:1740825 hashid:0xbc0a7] rocJpegStreamDestroy( 0x55f2ebfec840 ): entry ...
[3, Info] rocjpeg_api.cpp:99: 2274381610474 us: [pid:1740825 tid:1740825 hashid:0xbc0a7] rocJpegStreamDestroy( 0x55f2ebfec840 ): exit (3 us) ...
Decoding completed!
```

## Technical Details

<!-- Explain the changes along with any relevant GitHub links. -->

## JIRA ID

<!-- If applicable, mention the JIRA ID resolved by this PR (Example:
Resolves SWDEV-12345). -->
<!-- Do not post any JIRA links here. -->

## Test Plan

<!-- Explain any relevant testing done to verify this PR. -->

## Test Result

<!-- Briefly summarize test outcomes. -->

## Submission Checklist

- [ ] Look over the contributing guidelines at
https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.
AryanSalmanpour pushed a commit that referenced this pull request Jun 26, 2026
## Motivation

The unit tests fails in an asan build currently, since `asan.so` is not
set in the LD_PRELOAD. This PR fixes that issue.

## Technical Details

Check for an ASAN environment first, and if enabled, finds the `asan.so`
in the environment and adds it to the LD_PRELOAD path

## JIRA ID

ROCM-26593

## Test Plan

Run ctests on regular build and ASAN

## Test Result

On a non ASAN build.
```
 lakshmi@kapu:~/work/rocdecode-test$ cmake $ROCM_PATH/share/rocdecode/test
-- The C compiler identification is Clang 23.0.0
-- The CXX compiler identification is Clang 23.0.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/llvm/bin/amdclang - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/llvm/bin/amdclang++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- rocdecode-test: rocdecode found with find_package(rocdecode QUIET)
--      rocdecode_INCLUDE_DIR -- /home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/include
--      rocdecode_LIB_DIR -- /home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib
--      rocdecode_LIBRARY -- /home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/librocdecode.so
--      rocdecode_FOUND -- 1
--      rocdecode_VERSION -- 1.8.0
--      rocdecode_VERSION_MAJOR -- 1
--      rocdecode_VERSION_MINOR -- 8
--      rocdecode_VERSION_PATCH -- 0
-- rocdecode-test: rocdecode-host found with find_package(rocdecode-host QUIET)
--      rocdecode-host_INCLUDE_DIR -- /home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/include
--      rocdecode-host_LIB_DIR -- /home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib
--      rocdecode-host_LIBRARY -- /home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/librocdecode-host.so
--      rocdecode-host_FOUND -- 1
--      rocdecode-host_VERSION -- 1.0.0
--      rocdecode-host_VERSION_MAJOR -- 1
--      rocdecode-host_VERSION_MINOR -- 0
--      rocdecode-host_VERSION_PATCH -- 0
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.2")
-- Checking for module 'libavcodec'
--   Found libavcodec, version 58.134.100
-- Checking for module 'libavformat'
--   Found libavformat, version 58.76.100
-- Checking for module 'libavutil'
--   Found libavutil, version 56.70.100
-- Using FFMPEG --
        Libraries:/usr/lib/x86_64-linux-gnu/libavcodec.so;/usr/lib/x86_64-linux-gnu/libavformat.so;/usr/lib/x86_64-linux-gnu/libavutil.so
        Includes:/usr/include/x86_64-linux-gnu
-- Configuring done
-- Generating done
-- Build files have been written to: /home/lakshmi/work/rocdecode-test
(rock_0408) lakshmi@kapu:~/work/rocdecode-test$ ctest -VV
UpdateCTestConfiguration  from :/home/lakshmi/work/rocdecode-test/DartConfiguration.tcl
Parse Config file:/home/lakshmi/work/rocdecode-test/DartConfiguration.tcl
UpdateCTestConfiguration  from :/home/lakshmi/work/rocdecode-test/DartConfiguration.tcl
Parse Config file:/home/lakshmi/work/rocdecode-test/DartConfiguration.tcl
Test project /home/lakshmi/work/rocdecode-test
Constructing a list of tests
Done constructing a list of tests
Updating test list for fixtures
Added 0 tests to meet fixture requirements
Checking test dependency graph...
Checking test dependency graph end
test 1
    Start 1: video_decodeRaw-HEVC

1: Test command: /usr/local/bin/ctest "--build-and-test" "/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/share/rocdecode/samples/videoDecodeRaw" "/home/lakshmi/work/rocdecode-test/videoDecodeRaw-HEVC" "--build-generator" "Unix Makefiles" "--test-command" "videodecoderaw" "-i" "/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/share/rocdecode/video/AMD_driving_virtual_20-H265.265"
1: Working Directory: /home/lakshmi/work/rocdecode-test
1: Environment variables:
1:  LD_PRELOAD=/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/rocm_sysdeps/lib/librocm_sysdeps_va.so.2:/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/rocm_sysdeps/lib/librocm_sysdeps_va-drm.so.2
1:  LIBVA_DRIVERS_PATH=/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/rocm_sysdeps/lib
1: Test timeout computed to be: 1500
1: Internal cmake changing into directory: /home/lakshmi/work/rocdecode-test/videoDecodeRaw-HEVC
1: ======== CMake output     ======
1: The C compiler identification is Clang 23.0.0
1: The CXX compiler identification is Clang 23.0.0
1: Detecting C compiler ABI info
1: Detecting C compiler ABI info - done
1: Check for working C compiler: /home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/llvm/bin/amdclang - skipped
1: Detecting C compile features
1: Detecting C compile features - done
1: Detecting CXX compiler ABI info
1: Detecting CXX compiler ABI info - done
1: Check for working CXX compiler: /home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/llvm/bin/amdclang++ - skipped
1: Detecting CXX compile features
1: Detecting CXX compile features - done
1: HIP: Using hipcc from relative path: /home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/bin/hipcc
1: Performing Test HIP_CLANG_SUPPORTS_PARALLEL_JOBS
1: Performing Test HIP_CLANG_SUPPORTS_PARALLEL_JOBS - Success
1: Configuring done
1: Generating done
1: Build files have been written to: /home/lakshmi/work/rocdecode-test/videoDecodeRaw-HEVC
1: ======== End CMake output ======
1: Change Dir: /home/lakshmi/work/rocdecode-test/videoDecodeRaw-HEVC
1:
1: Run Clean Command:/usr/bin/gmake -f Makefile clean
1:
1: Run Build Command(s):/usr/bin/gmake -f Makefile && [ 33%] Building CXX object CMakeFiles/videodecoderaw.dir/videodecoderaw.cpp.o
1: [ 66%] Building CXX object CMakeFiles/videodecoderaw.dir/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/share/rocdecode/utils/rocvideodecode/roc_video_dec.cpp.o
1: [100%] Linking CXX executable videodecoderaw
1: [100%] Built target videodecoderaw
1:
1: Running test command: "/home/lakshmi/work/rocdecode-test/videoDecodeRaw-HEVC/videodecoderaw" "-i" "/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/share/rocdecode/video/AMD_driving_virtual_20-H265.265"
1: info: Input file: AMD_driving_virtual_20-H265.265
1: info: Using built-in bitstream reader
1: info: Using GPU device 0 - AMD Radeon RX 7900 XT[gfx1100] on PCI bus 03:00.0
1: info: decoding started, please wait!
1: Input Video Information
1:      Codec        : H.265/HEVC
1:      Frame rate   : 30000/1001 = 29.97 fps
1:      Sequence     : Progressive
1:      Coded size   : [2048, 1024]
1:      Display area : [0, 0, 2048, 1024]
1:      Chroma       : YUV 420
1:      Bit depth    : 8
1: Video Decoding Params:
1:      Num Surfaces : 7
1:      Crop         : [0, 0, 2048, 1024]
1:      Resize       : 2048x1024
1:
1: info: Total pictures decoded: 601
1: info: Total frames output/displayed: 601
1: info: avg decoding time per picture: 1.02047 ms
1: info: avg decode FPS: 979.937
1: info: avg output/display time per frame: 1.02047 ms
1: info: avg output/display FPS: 979.937
1:
1/6 Test #1: video_decodeRaw-HEVC .............   Passed    3.91 sec
test 2
    Start 2: video_decodeRaw-AVC

2: Test command: /usr/local/bin/ctest "--build-and-test" "/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/share/rocdecode/samples/videoDecodeRaw" "/home/lakshmi/work/rocdecode-test/videoDecodeRaw-AVC" "--build-generator" "Unix Makefiles" "--test-command" "videodecoderaw" "-i" "/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/share/rocdecode/video/AMD_driving_virtual_20-H264.264"
2: Working Directory: /home/lakshmi/work/rocdecode-test
2: Environment variables:
2:  LD_PRELOAD=/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/rocm_sysdeps/lib/librocm_sysdeps_va.so.2:/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/rocm_sysdeps/lib/librocm_sysdeps_va-drm.so.2
2:  LIBVA_DRIVERS_PATH=/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/rocm_sysdeps/lib
2: Test timeout computed to be: 1500
2: Internal cmake changing into directory: /home/lakshmi/work/rocdecode-test/videoDecodeRaw-AVC
2: ======== CMake output     ======
2: The C compiler identification is Clang 23.0.0
2: The CXX compiler identification is Clang 23.0.0
2: Detecting C compiler ABI info
2: Detecting C compiler ABI info - done
2: Check for working C compiler: /home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/llvm/bin/amdclang - skipped
2: Detecting C compile features
2: Detecting C compile features - done
2: Detecting CXX compiler ABI info
2: Detecting CXX compiler ABI info - done
2: Check for working CXX compiler: /home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/llvm/bin/amdclang++ - skipped
2: Detecting CXX compile features
2: Detecting CXX compile features - done
2: HIP: Using hipcc from relative path: /home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/bin/hipcc
2: Performing Test HIP_CLANG_SUPPORTS_PARALLEL_JOBS
2: Performing Test HIP_CLANG_SUPPORTS_PARALLEL_JOBS - Success
2: Configuring done
2: Generating done
2: Build files have been written to: /home/lakshmi/work/rocdecode-test/videoDecodeRaw-AVC
2: ======== End CMake output ======
2: Change Dir: /home/lakshmi/work/rocdecode-test/videoDecodeRaw-AVC
2:
2: Run Clean Command:/usr/bin/gmake -f Makefile clean
2:
2: Run Build Command(s):/usr/bin/gmake -f Makefile && [ 33%] Building CXX object CMakeFiles/videodecoderaw.dir/videodecoderaw.cpp.o
2: [ 66%] Building CXX object CMakeFiles/videodecoderaw.dir/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/share/rocdecode/utils/rocvideodecode/roc_video_dec.cpp.o
2: [100%] Linking CXX executable videodecoderaw
2: [100%] Built target videodecoderaw
2:
2: Running test command: "/home/lakshmi/work/rocdecode-test/videoDecodeRaw-AVC/videodecoderaw" "-i" "/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/share/rocdecode/video/AMD_driving_virtual_20-H264.264"
2: info: Input file: AMD_driving_virtual_20-H264.264
2: info: Using built-in bitstream reader
2: info: Using GPU device 0 - AMD Radeon RX 7900 XT[gfx1100] on PCI bus 03:00.0
2: info: decoding started, please wait!
2: Input Video Information
2:      Codec        : AVC/H.264
2:      Frame rate   : 60000/2002 = 29.97 fps
2:      Sequence     : Progressive
2:      Coded size   : [2048, 1024]
2:      Display area : [0, 0, 2048, 1024]
2:      Chroma       : YUV 420
2:      Bit depth    : 8
2: Video Decoding Params:
2:      Num Surfaces : 7
2:      Crop         : [0, 0, 2048, 1024]
2:      Resize       : 2048x1024
2:
2: info: Total pictures decoded: 601
2: info: Total frames output/displayed: 601
2: info: avg decoding time per picture: 0.990579 ms
2: info: avg decode FPS: 1009.51
2: info: avg output/display time per frame: 0.990579 ms
2: info: avg output/display FPS: 1009.51
2:
2/6 Test #2: video_decodeRaw-AVC ..............   Passed    3.86 sec
test 3
    Start 3: video_decodeRaw-AV1

3: Test command: /usr/local/bin/ctest "--build-and-test" "/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/share/rocdecode/samples/videoDecodeRaw" "/home/lakshmi/work/rocdecode-test/videoDecodeRaw-AV1" "--build-generator" "Unix Makefiles" "--test-command" "videodecoderaw" "-i" "/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/share/rocdecode/video/AMD_driving_virtual_20-AV1.ivf"
3: Working Directory: /home/lakshmi/work/rocdecode-test
3: Environment variables:
3:  LD_PRELOAD=/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/rocm_sysdeps/lib/librocm_sysdeps_va.so.2:/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/rocm_sysdeps/lib/librocm_sysdeps_va-drm.so.2
3:  LIBVA_DRIVERS_PATH=/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/rocm_sysdeps/lib
3: Test timeout computed to be: 1500
3: Internal cmake changing into directory: /home/lakshmi/work/rocdecode-test/videoDecodeRaw-AV1
3: ======== CMake output     ======
3: The C compiler identification is Clang 23.0.0
3: The CXX compiler identification is Clang 23.0.0
3: Detecting C compiler ABI info
3: Detecting C compiler ABI info - done
3: Check for working C compiler: /home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/llvm/bin/amdclang - skipped
3: Detecting C compile features
3: Detecting C compile features - done
3: Detecting CXX compiler ABI info
3: Detecting CXX compiler ABI info - done
3: Check for working CXX compiler: /home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/llvm/bin/amdclang++ - skipped
3: Detecting CXX compile features
3: Detecting CXX compile features - done
3: HIP: Using hipcc from relative path: /home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/bin/hipcc
3: Performing Test HIP_CLANG_SUPPORTS_PARALLEL_JOBS
3: Performing Test HIP_CLANG_SUPPORTS_PARALLEL_JOBS - Success
3: Configuring done
3: Generating done
3: Build files have been written to: /home/lakshmi/work/rocdecode-test/videoDecodeRaw-AV1
3: ======== End CMake output ======
3: Change Dir: /home/lakshmi/work/rocdecode-test/videoDecodeRaw-AV1
3:
3: Run Clean Command:/usr/bin/gmake -f Makefile clean
3:
3: Run Build Command(s):/usr/bin/gmake -f Makefile && [ 33%] Building CXX object CMakeFiles/videodecoderaw.dir/videodecoderaw.cpp.o
3: [ 66%] Building CXX object CMakeFiles/videodecoderaw.dir/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/share/rocdecode/utils/rocvideodecode/roc_video_dec.cpp.o
3: [100%] Linking CXX executable videodecoderaw
3: [100%] Built target videodecoderaw
3:
3: Running test command: "/home/lakshmi/work/rocdecode-test/videoDecodeRaw-AV1/videodecoderaw" "-i" "/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/share/rocdecode/video/AMD_driving_virtual_20-AV1.ivf"
3: info: Input file: AMD_driving_virtual_20-AV1.ivf
3: info: Using built-in bitstream reader
3: info: Using GPU device 0 - AMD Radeon RX 7900 XT[gfx1100] on PCI bus 03:00.0
3: info: decoding started, please wait!
3: Input Video Information
3:      Codec        : AV1
3:      Sequence     : Progressive
3:      Coded size   : [2048, 1024]
3:      Display area : [0, 0, 2048, 1024]
3:      Chroma       : YUV 420
3:      Bit depth    : 8
3: Video Decoding Params:
3:      Num Surfaces : 12
3:      Crop         : [0, 0, 2048, 1024]
3:      Resize       : 2048x1024
3:
3: info: Total pictures decoded: 602
3: info: Total frames output/displayed: 601
3: info: avg decoding time per picture: 1.02181 ms
3: info: avg decode FPS: 978.654
3: info: avg output/display time per frame: 1.02351 ms
3: info: avg output/display FPS: 977.028
3:
3/6 Test #3: video_decodeRaw-AV1 ..............   Passed    3.87 sec
test 4
    Start 4: video_decodeRaw-VP9

4: Test command: /usr/local/bin/ctest "--build-and-test" "/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/share/rocdecode/samples/videoDecodeRaw" "/home/lakshmi/work/rocdecode-test/videoDecodeRaw-VP9" "--build-generator" "Unix Makefiles" "--test-command" "videodecoderaw" "-i" "/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/share/rocdecode/video/AMD_driving_virtual_20-VP9.ivf"
4: Working Directory: /home/lakshmi/work/rocdecode-test
4: Environment variables:
4:  LD_PRELOAD=/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/rocm_sysdeps/lib/librocm_sysdeps_va.so.2:/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/rocm_sysdeps/lib/librocm_sysdeps_va-drm.so.2
4:  LIBVA_DRIVERS_PATH=/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/rocm_sysdeps/lib
4: Test timeout computed to be: 1500
4: Internal cmake changing into directory: /home/lakshmi/work/rocdecode-test/videoDecodeRaw-VP9
4: ======== CMake output     ======
4: The C compiler identification is Clang 23.0.0
4: The CXX compiler identification is Clang 23.0.0
4: Detecting C compiler ABI info
4: Detecting C compiler ABI info - done
4: Check for working C compiler: /home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/llvm/bin/amdclang - skipped
4: Detecting C compile features
4: Detecting C compile features - done
4: Detecting CXX compiler ABI info
4: Detecting CXX compiler ABI info - done
4: Check for working CXX compiler: /home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/llvm/bin/amdclang++ - skipped
4: Detecting CXX compile features
4: Detecting CXX compile features - done
4: HIP: Using hipcc from relative path: /home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/bin/hipcc
4: Performing Test HIP_CLANG_SUPPORTS_PARALLEL_JOBS
4: Performing Test HIP_CLANG_SUPPORTS_PARALLEL_JOBS - Success
4: Configuring done
4: Generating done
4: Build files have been written to: /home/lakshmi/work/rocdecode-test/videoDecodeRaw-VP9
4: ======== End CMake output ======
4: Change Dir: /home/lakshmi/work/rocdecode-test/videoDecodeRaw-VP9
4:
4: Run Clean Command:/usr/bin/gmake -f Makefile clean
4:
4: Run Build Command(s):/usr/bin/gmake -f Makefile && [ 33%] Building CXX object CMakeFiles/videodecoderaw.dir/videodecoderaw.cpp.o
4: [ 66%] Building CXX object CMakeFiles/videodecoderaw.dir/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/share/rocdecode/utils/rocvideodecode/roc_video_dec.cpp.o
4: [100%] Linking CXX executable videodecoderaw
4: [100%] Built target videodecoderaw
4:
4: Running test command: "/home/lakshmi/work/rocdecode-test/videoDecodeRaw-VP9/videodecoderaw" "-i" "/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/share/rocdecode/video/AMD_driving_virtual_20-VP9.ivf"
4: info: Input file: AMD_driving_virtual_20-VP9.ivf
4: info: Using built-in bitstream reader
4: info: Using GPU device 0 - AMD Radeon RX 7900 XT[gfx1100] on PCI bus 03:00.0
4: info: decoding started, please wait!
4: Input Video Information
4:      Codec        : VP9
4:      Sequence     : Progressive
4:      Coded size   : [2048, 1024]
4:      Display area : [0, 0, 2048, 1024]
4:      Chroma       : YUV 420
4:      Bit depth    : 8
4: Video Decoding Params:
4:      Num Surfaces : 12
4:      Crop         : [0, 0, 2048, 1024]
4:      Resize       : 2048x1024
4:
4: info: Total pictures decoded: 601
4: info: Total frames output/displayed: 601
4: info: avg decoding time per picture: 1.11495 ms
4: info: avg decode FPS: 896.899
4: info: avg output/display time per frame: 1.11495 ms
4: info: avg output/display FPS: 896.899
4:
4/6 Test #4: video_decodeRaw-VP9 ..............   Passed    3.91 sec
test 5
    Start 5: rocdec_Decode-HEVC

5: Test command: /usr/local/bin/ctest "--build-and-test" "/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/share/rocdecode/samples/rocdecDecode" "/home/lakshmi/work/rocdecode-test/rocdecDecode" "--build-generator" "Unix Makefiles" "--test-command" "rocdecdecode" "-i" "/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/share/rocdecode/frames"
5: Working Directory: /home/lakshmi/work/rocdecode-test
5: Environment variables:
5:  LD_PRELOAD=/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/rocm_sysdeps/lib/librocm_sysdeps_va.so.2:/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/rocm_sysdeps/lib/librocm_sysdeps_va-drm.so.2
5:  LIBVA_DRIVERS_PATH=/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/rocm_sysdeps/lib
5: Test timeout computed to be: 1500
5: Internal cmake changing into directory: /home/lakshmi/work/rocdecode-test/rocdecDecode
5: ======== CMake output     ======
5: The C compiler identification is Clang 23.0.0
5: The CXX compiler identification is Clang 23.0.0
5: Detecting C compiler ABI info
5: Detecting C compiler ABI info - done
5: Check for working C compiler: /home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/llvm/bin/amdclang - skipped
5: Detecting C compile features
5: Detecting C compile features - done
5: Detecting CXX compiler ABI info
5: Detecting CXX compiler ABI info - done
5: Check for working CXX compiler: /home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/llvm/bin/amdclang++ - skipped
5: Detecting CXX compile features
5: Detecting CXX compile features - done
5: HIP: Using hipcc from relative path: /home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/bin/hipcc
5: Performing Test HIP_CLANG_SUPPORTS_PARALLEL_JOBS
5: Performing Test HIP_CLANG_SUPPORTS_PARALLEL_JOBS - Success
5: Found PkgConfig: /usr/bin/pkg-config (found version "0.29.2")
5: Checking for module 'libavcodec'
5:   Found libavcodec, version 58.134.100
5: Checking for module 'libavformat'
5:   Found libavformat, version 58.76.100
5: Checking for module 'libavutil'
5:   Found libavutil, version 56.70.100
5: -- Using FFMPEG --
5:      Libraries:/usr/lib/x86_64-linux-gnu/libavcodec.so;/usr/lib/x86_64-linux-gnu/libavformat.so;/usr/lib/x86_64-linux-gnu/libavutil.so
5:      Includes:/usr/include/x86_64-linux-gnu
5: Configuring done
5: Generating done
5: Build files have been written to: /home/lakshmi/work/rocdecode-test/rocdecDecode
5: ======== End CMake output ======
5: Change Dir: /home/lakshmi/work/rocdecode-test/rocdecDecode
5:
5: Run Clean Command:/usr/bin/gmake -f Makefile clean
5:
5: Run Build Command(s):/usr/bin/gmake -f Makefile && [ 50%] Building CXX object CMakeFiles/rocdecdecode.dir/rocdecdecode.cpp.o
5: [100%] Linking CXX executable rocdecdecode
5: [100%] Built target rocdecdecode
5:
5: Running test command: "/home/lakshmi/work/rocdecode-test/rocdecDecode/rocdecdecode" "-i" "/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/share/rocdecode/frames"
5: Read 53 frames from disk.
5: Input Video Information
5:      Codec        : 4
5:      Frame rate   : 30000/1001 = 29.97 fps
5:      Sequence     : Progressive
5:      Coded size   : [2048, 1024]
5:      Display area : [0, 0, 2048, 1024]
5:      Bit depth    : 8
5: Total decoded frames in iteration 0: 53
5: Decoding time: 58858 microseconds
5: Success.
5:
5:
5:
5/6 Test #5: rocdec_Decode-HEVC ...............   Passed    2.32 sec
test 6
    Start 6: rocDecode_Negative_API_Tests

6: Test command: /usr/local/bin/ctest "--build-and-test" "/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/share/rocdecode/test/rocDecodeNegativeApiTests" "/home/lakshmi/work/rocdecode-test/rocdecodenegativetest" "--build-generator" "Unix Makefiles" "--test-command" "rocdecodenegativetest"
6: Working Directory: /home/lakshmi/work/rocdecode-test
6: Environment variables:
6:  LD_PRELOAD=/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/rocm_sysdeps/lib/librocm_sysdeps_va.so.2:/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/rocm_sysdeps/lib/librocm_sysdeps_va-drm.so.2
6:  LIBVA_DRIVERS_PATH=/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/rocm_sysdeps/lib
6: Test timeout computed to be: 1500
6: Internal cmake changing into directory: /home/lakshmi/work/rocdecode-test/rocdecodenegativetest
6: ======== CMake output     ======
6: The C compiler identification is Clang 23.0.0
6: The CXX compiler identification is Clang 23.0.0
6: Detecting C compiler ABI info
6: Detecting C compiler ABI info - done
6: Check for working C compiler: /home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/llvm/bin/amdclang - skipped
6: Detecting C compile features
6: Detecting C compile features - done
6: Detecting CXX compiler ABI info
6: Detecting CXX compiler ABI info - done
6: Check for working CXX compiler: /home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/llvm/bin/amdclang++ - skipped
6: Detecting CXX compile features
6: Detecting CXX compile features - done
6: HIP: Using hipcc from relative path: /home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/bin/hipcc
6: Performing Test HIP_CLANG_SUPPORTS_PARALLEL_JOBS
6: Performing Test HIP_CLANG_SUPPORTS_PARALLEL_JOBS - Success
6: Configuring done
6: Generating done
6: Build files have been written to: /home/lakshmi/work/rocdecode-test/rocdecodenegativetest
6: ======== End CMake output ======
6: Change Dir: /home/lakshmi/work/rocdecode-test/rocdecodenegativetest
6:
6: Run Clean Command:/usr/bin/gmake -f Makefile clean
6:
6: Run Build Command(s):/usr/bin/gmake -f Makefile && [ 33%] Building CXX object CMakeFiles/rocdecodenegativetest.dir/rocdecodenegativetest.cpp.o
6: [ 66%] Building CXX object CMakeFiles/rocdecodenegativetest.dir/rocdecode_api_negative_tests.cpp.o
6: [100%] Linking CXX executable rocdecodenegativetest
6: [100%] Built target rocdecodenegativetest
6:
6: Running test command: "/home/lakshmi/work/rocdecode-test/rocdecodenegativetest/rocdecodenegativetest"
6: info: Executing negative test cases for the rocDecCreateDecoder API
6: [0, Critical] rocdecode_api.cpp:37: 849626476281 us: [pid:1526419 tid:1526419 hashid:0x91e74] rocDecCreateDecoder(): Null pointer
6: [0, Critical] roc_decoder.cpp:51: 849626476299 us: [pid:1526419 tid:1526419 hashid:0x91e74] InitializeDecoder(): Invalid number of decode surfaces.
6: [0, Critical] vaapi_videodecoder.cpp:1028: 849626508117 us: [pid:1526419 tid:1526419 hashid:0x91e74] InitHIP(): ERROR: the requested device_id is not found!
6: [0, Critical] vaapi_videodecoder.cpp:686: 849626508131 us: [pid:1526419 tid:1526419 hashid:0x91e74] GetVaContext(): Failed to initialize the HIP.
6: [0, Critical] vaapi_videodecoder.cpp:824: 849626508137 us: [pid:1526419 tid:1526419 hashid:0x91e74] CheckDecCapForCodecType(): Failed to initialize.
6: [0, Critical] rocdecode_api.cpp:90: 849626508143 us: [pid:1526419 tid:1526419 hashid:0x91e74] rocDecGetDecoderCaps(): Error: Failed to obtain decoder capabilities from driver.
6: [0, Critical] vaapi_videodecoder.cpp:130: 849626508148 us: [pid:1526419 tid:1526419 hashid:0x91e74] InitializeDecoder(): The codec config combination is not supported.
6: [0, Critical] roc_decoder.cpp:61: 849626508153 us: [pid:1526419 tid:1526419 hashid:0x91e74] InitializeDecoder(): Failed to initialize the VAAPI Video decoder.
6: [0, Critical] vaapi_videodecoder.cpp:130: 849626509822 us: [pid:1526419 tid:1526419 hashid:0x91e74] InitializeDecoder(): The codec config combination is not supported.
6: [0, Critical] roc_decoder.cpp:61: 849626509829 us: [pid:1526419 tid:1526419 hashid:0x91e74] InitializeDecoder(): Failed to initialize the VAAPI Video decoder.
6: [0, Critical] vaapi_videodecoder.cpp:130: 849626509835 us: [pid:1526419 tid:1526419 hashid:0x91e74] InitializeDecoder(): The codec config combination is not supported.
6: [0, Critical] roc_decoder.cpp:61: 849626509838 us: [pid:1526419 tid:1526419 hashid:0x91e74] InitializeDecoder(): Failed to initialize the VAAPI Video decoder.
6: [0, Critical] vaapi_videodecoder.cpp:130: 849626509849 us: [pid:1526419 tid:1526419 hashid:0x91e74] InitializeDecoder(): The codec config combination is not supported.
6: [0, Critical] roc_decoder.cpp:61: 849626509852 us: [pid:1526419 tid:1526419 hashid:0x91e74] InitializeDecoder(): Failed to initialize the VAAPI Video decoder.
6: [0, Critical] vaapi_videodecoder.cpp:894: 849626509858 us: [pid:1526419 tid:1526419 hashid:0x91e74] CheckDecCapForCodecType(): VAAPI failure: vaCreateConfig(va_contexts_[va_ctx_id].va_display, va_contexts_[va_ctx_id].va_profile, VAEntrypointVLD, &va_config_attrib, 1, &va_contexts_[va_ctx_id].va_config_id) failed with 'status: 13: the requested VAEntryPoint is not supported' at /home/lakshmi/work/rocm-systems/projects/rocdecode/src/rocdecode/vaapi/vaapi_videodecoder.cpp:894
6: [0, Critical] rocdecode_api.cpp:90: 849626509865 us: [pid:1526419 tid:1526419 hashid:0x91e74] rocDecGetDecoderCaps(): Error: Failed to obtain decoder capabilities from driver.
6: [0, Critical] vaapi_videodecoder.cpp:130: 849626509868 us: [pid:1526419 tid:1526419 hashid:0x91e74] InitializeDecoder(): The codec config combination is not supported.
6: [0, Critical] roc_decoder.cpp:61: 849626509870 us: [pid:1526419 tid:1526419 hashid:0x91e74] InitializeDecoder(): Failed to initialize the VAAPI Video decoder.
6: info: Executing negative test cases for the rocDecDestroyDecoder API
6: info: Executing negative test cases for the rocDecGetDecoderCaps API
6: info: Executing negative test cases for the rocDecDecodeFrame API
6: info: Executing negative test cases for the rocDecGetDecodeStatus API
6: info: Executing negative test cases for the rocDecReconfigureDecoder API
6: info: Executing negative test cases for the rocDecGetVideoFrame API
6: info: Executing negative test cases for the rocDecGetErrorName API
6: info: Executing negative test cases for the rocDecCreateVideoParser API
6: [0, Critical] roc_decoder.cpp:124: 849626510695 us: [pid:1526419 tid:1526419 hashid:0x91e74] GetVideoFrame(): Invalid parameters.
6: [0, Critical] rocparser_api.cpp:44: 849626510705 us: [pid:1526419 tid:1526419 hashid:0x91e74] rocDecCreateVideoParser(): Error: The current version of rocDecode officially supports only the H.265 (HEVC), H.264 (AVC), AV1 and VP9 codecs.
6: info: Executing negative test cases for the rocDecParseVideoData API
6: info: Executing negative test cases for the rocDecDestroyVideoParser API
6: info: Executing negative test cases for the rocDecCreateBitstreamReader API
6: info: Executing negative test cases for the rocDecGetBitstreamCodecType API
6: info: Executing negative test cases for the rocDecGetBitstreamBitDepth API
6: [0, Critical] roc_bs_reader_api.cpp:31: 849626511165 us: [pid:1526419 tid:1526419 hashid:0x91e74] rocDecCreateBitstreamReader(): Null pointer
6: [0, Critical] roc_bs_reader_api.cpp:31: 849626511169 us: [pid:1526419 tid:1526419 hashid:0x91e74] rocDecCreateBitstreamReader(): Null pointer
6: [0, Critical] roc_bs_reader_api.cpp:52: 849626511174 us: [pid:1526419 tid:1526419 hashid:0x91e74] rocDecGetBitstreamCodecType(): Null pointer
6: [0, Critical] roc_bs_reader_api.cpp:52: 849626511177 us: [pid:1526419 tid:1526419 hashid:0x91e74] rocDecGetBitstreamCodecType(): Null pointer
6: [0, Critical] roc_bs_reader_api.cpp:74: 849626511182 us: [pid:1526419 tid:1526419 hashid:0x91e74] rocDecGetBitstreamBitDepth(): Null pointer
6: [0, Critical] roc_bs_reader_api.cpp:74: 849626511185 us: [pid:1526419 tid:1526419 hashid:0x91e74] rocDecGetBitstreamBitDepth(): Null pointer
6: [0, Critical] roc_bs_reader_api.cpp:96: 849626511189 us: [pid:1526419 tid:1526419 hashid:0x91e74] rocDecGetBitstreamPicData(): Null pointer
6: [0, Critical] roc_bs_reader_api.cpinfo: Executing negative test cases for the rocDecGetBitstreamPicData API
6: info: Executing negative test cases for the rocDecDestroyBitstreamReader API
6: Test Passed!
6: p:96: 849626511193 us: [pid:1526419 tid:1526419 hashid:0x91e74] rocDecGetBitstreamPicData(): Null pointer
6: [0, Critical] roc_bs_reader_api.cpp:118: 849626511197 us: [pid:1526419 tid:1526419 hashid:0x91e74] rocDecDestroyBitstreamReader(): Null pointer
6:
6/6 Test #6: rocDecode_Negative_API_Tests .....   Passed    1.99 sec

100% tests passed, 0 tests failed out of 6

Total Test time (real) =  19.86 sec
```

## Submission Checklist

- [ ] Look over the contributing guidelines at
https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.
abouteiller added a commit that referenced this pull request Jun 26, 2026
## Motivation

On certain test systems we do not have a shared filesystem, the
deadlock_analysis script harness would depend on a shared filesystem to
collect traces and artifacts. Remove that limitation.

## Technical Details

Use MPI stdout redirection to coalesce the trace artifacts to the
headnode in a headnode local output directory, perform analysis on the
headnode.

Prior filesystem based mode remains available and default. 

## JIRA ID


## Test Plan

Intentionally added a deadlock to a functional test, compiled with
Debug.
Run mpiexec_deadlock_attach script and observe artifacts.

## Test Result

```
 ROCSHMEM_DEBUG_LEVEL=trace:stats ~/ompi/bin/mpirun -n 2 tests/functional_tests/rocshmem_functional_tests -n 1 -a 26  & (sleep 2; /home/abouteil/rocm-systems/projects/rocshmem/scripts/debug/mpiexec_deadlock_analysis.sh  rocshmem_functional_tests --stats --color --no-shared-fs )
### Creating Test:      Blocking WG level Puts  B=ipc PE=2 W=1 Z=64 ###
Deploying deadlock analysis...
Executable:       rocshmem_functional_tests
Output directory: ./rocshmem_deadlock_analysis_20260530_013437
Filesystem mode:  no shared fs (--output-filename)
Stats:            yes
Color:            --color

Found 4 process(es) matching 'rocshmem_functional_tests': 717472 717473 751554 751555
Output directory: /tmp/rocshmem_deadlock_20260530_013437
Per-process timeout: 120s

Analyzing PID 717472 (PE 0) ... OK
Analyzing PID 717473 (PE 1) ... OK (no GPU threads)
Analyzing PID 751554 (PE 0) ... OK
Analyzing PID 751555 (PE 1) ... OK (no GPU threads)

=== Attach and Analyze Summary ===
Processes analyzed: 4 / 4

  PE 0     PID 751554    groups=1    \033[1;31m1\033[0m wf(s) in rocSHMEM; \033[1;36mWaiting for remote PE memory update (barrier/sync or user rocshmem_wait_until). Check if the remote PE is alive and making progress. (at: #0  0x0000792efa5af3c8 in rocshmem::Context::wait_until<long> (this=0x792eed407000, ivars=0x792efac04008, cmp=0, val=1) at src/context_tmpl_device.hpp:224)\033[0m
  PE 1     PID 751555    groups=?    (no GPU threads found)
=== BEGIN FILE: pe0_pid_717472.txt ===
[New LWP 717493]
[New LWP 717490]
[New LWP 717488]
[New LWP 717485]
[New LWP 717481]
[New LWP 717480]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
0x000077a09e06695f in ?? () from /opt/rocm-7.2.1/lib/libhsa-runtime64.so.1
=== rocSHMEM Deadlock Analysis ===
Process(es): 717472
Total GPU wavefronts analyzed: 1
Unique backtrace groups: 1

--- Group 1 (1 wavefront(s)) ---
  WFs: (0,0,0)/0
  Backtrace:
    #0  0x0000776005fafce0 in rocshmem::uncached_load<long volatile> (src=0x776006604008) at src/assembly.hpp:125
    #1  rocshmem::Context::test<long> (this=0x775ff8e07000, ivars=0x776006604008, cmp=0, val=1) at src/context_tmpl_device.hpp:432
    #2  rocshmem::Context::wait_until<long> (this=0x775ff8e07000, ivars=0x776006604008, cmp=0, val=1) at src/context_tmpl_device.hpp:224
    #3  rocshmem::IPCContext::internal_direct_barrier (this=0x775ff8e07000, pe=0, PE_start=0, stride=1, n_pes=2, pSync=0x776006604000) at build/src/ipc/context_ipc_device_coll.cpp:44
    #4  0x0000776005fb7c24 in rocshmem::IPCContext::internal_sync_wg (this=0x775ff8e07000, pe=0, PE_start=0, stride=1, PE_size=2, pSync=0x776006604000) at build/src/ipc/context_ipc_device_coll.cpp:115
    #5  0x000077600603d018 in rocshmem::IPCContext::sync_all_wg (this=0x775ff8e07000) at build/src/ipc/context_ipc_device_coll.cpp:168
    #6  0x000077600603d558 in rocshmem::IPCContext::barrier_all_wg (this=0x775ff8e07000) at build/src/ipc/context_ipc_device_coll.cpp:187
    #7  0x000077600603dedc in rocshmem::Context::barrier_all_wg (this=0x775ff8e07000) at build/src/context_device.cpp:151
    #8  0x000077600603e33c in rocshmem::rocshmem_barrier_all_wg () at build/src/rocshmem_gpu.cpp:885
    #9  0x00007760060437cc in WorkGroupPrimitiveTest (loop=1, skip=10, start_time=0x775ff8e31000, end_time=0x775ff8e32000, source=0x776013c00480 "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqr"..., dest=0x776013d00500 "1", size=1, type=WGPutTestType, ctx_type=4) at /home/abouteil/rocm-systems/projects/rocshmem/tests/functional_tests/workgroup_primitives.cpp:72
  [HINT] Waiting for remote PE memory update (barrier/sync or user rocshmem_wait_until). Check if the remote PE is alive and making progress. (at: #2  rocshmem::Context::wait_until<long> (this=0x775ff8e07000, ivars=0x776006604008, cmp=0, val=1) at src/context_tmpl_device.hpp:224)
...
=== END FILE: pe1_pid_751555.txt ===

Reconstructing per-PE output files from mpiexec output...
Reconstructed output from 1 rank file(s).

Running cross-rank coalescing pass...

=== Cross-Rank Deadlock Analysis ===
Directory: ./rocshmem_deadlock_analysis_20260530_013437
Ranks with analysis files: 2  (0, 1)
Unique backtrace patterns: 2

--- Pattern 1 [UNIQUE: rank 0] ---
  Ranks: 0
  Total wavefronts: 1
  Backtrace:
    #0  0x0000776005fafce0 in rocshmem::uncached_load<long volatile> (src=0x776006604008) at src/assembly.hpp:125
    #1  rocshmem::Context::test<long> (this=0x775ff8e07000, ivars=0x776006604008, cmp=0, val=1) at src/context_tmpl_device.hpp:432
    #2  rocshmem::Context::wait_until<long> (this=0x775ff8e07000, ivars=0x776006604008, cmp=0, val=1) at src/context_tmpl_device.hpp:224
    #3  rocshmem::IPCContext::internal_direct_barrier (this=0x775ff8e07000, pe=0, PE_start=0, stride=1, n_pes=2, pSync=0x776006604000) at build/src/ipc/context_ipc_device_coll.cpp:44
    #4  0x0000776005fb7c24 in rocshmem::IPCContext::internal_sync_wg (this=0x775ff8e07000, pe=0, PE_start=0, stride=1, PE_size=2, pSync=0x776006604000) at build/src/ipc/context_ipc_device_coll.cpp:115
    #5  0x000077600603d018 in rocshmem::IPCContext::sync_all_wg (this=0x775ff8e07000) at build/src/ipc/context_ipc_device_coll.cpp:168
    #6  0x000077600603d558 in rocshmem::IPCContext::barrier_all_wg (this=0x775ff8e07000) at build/src/ipc/context_ipc_device_coll.cpp:187
    #7  0x000077600603dedc in rocshmem::Context::barrier_all_wg (this=0x775ff8e07000) at build/src/context_device.cpp:151
    #8  0x000077600603e33c in rocshmem::rocshmem_barrier_all_wg () at build/src/rocshmem_gpu.cpp:885
    #9  0x00007760060437cc in WorkGroupPrimitiveTest (loop=1, skip=10, start_time=0x775ff8e31000, end_time=0x775ff8e32000, source=0x776013c00480 "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqr"..., dest=0x776013d00500 "1", size=1, type=WGPutTestType, ctx_type=4) at /home/abouteil/rocm-systems/projects/rocshmem/tests/functional_tests/workgroup_primitives.cpp:72
  [HINT] Waiting for remote PE memory update (barrier/sync or user rocshmem_wait_until). Check if the remote PE is alive and making progress. (at: #2  rocshmem::Context::wait_until<long> (this=0x775ff8e07000, ivars=0x776006604008, cmp=0, val=1) at src/context_tmpl_device.hpp:224)

=== Per-Rank rocSHMEM Wavefront Count ===
  Rank 0: 2 wf(s) inside rocSHMEM
  Rank 1: 0 wf(s) inside rocSHMEM

=== Summary ===
  0 pattern(s) common to all 2 rank(s)
  1 pattern(s) present in exactly one rank
  Most common hint: Waiting for remote PE memory update (barrier/sync or user rocshmem_wait_until). Check if the remote PE is alive and making progress. (at: #2  rocshmem::Context::wait_until<long> (this=0x775ff8e07000, ivars=0x776006604008, cmp=0, val=1) at src/context_tmpl_device.hpp:224)
```
abouteiller added a commit that referenced this pull request Jun 29, 2026
… progress tracker (#6616)

## Motivation

When the program deadlocks it can be hard to know how much work was
performed thus far, for example did it deadlock after only a couple of
communication calls or after a long time, is there only 1 call of 1
type? etc.

## Technical Details

builds with PROFILE=ON can produce call statistics (slowing down
execution btw), this can be triggered from the gdb attachement to get
the stat dump.

## JIRA ID

<!-- If applicable, mention the JIRA ID resolved by this PR (Example:
Resolves SWDEV-12345). -->
<!-- Do not post any JIRA links here. -->

## Test Plan

modified a functional test to intentionally deadlock. build with Debug
and PROFILE=ON.

```
ROCSHMEM_DEBUG_LEVEL=trace:stats ~/ompi/bin/mpirun -n 2 tests/functional_tests/rocshmem_functional_tests -n 1 -a 26  & (sleep 2; ../scripts/debug/attach_deadlock_analysis.sh rocshmem_functional_tests --stats )
```

Output file
```
=== rocSHMEM Deadlock Analysis ===
Process(es): 845512
Total GPU wavefronts analyzed: 1
Unique backtrace groups: 1

--- Group 1 (1 wavefront(s)) ---
  WFs: (0,0,0)/0
  Backtrace:
    #0  0x00007ae55f5afcf0 in rocshmem::uncached_load<long volatile> (src=0x7ae55fc04008) at src/assembly.hpp:125
    #1  rocshmem::Context::test<long> (this=0x7ae552407000, ivars=0x7ae55fc04008, cmp=0, val=1) at src/context_tmpl_device.hpp:432
    #2  rocshmem::Context::wait_until<long> (this=0x7ae552407000, ivars=0x7ae55fc04008, cmp=0, val=1) at src/context_tmpl_device.hpp:224
    #3  rocshmem::IPCContext::internal_direct_barrier (this=0x7ae552407000, pe=0, PE_start=0, stride=1, n_pes=2, pSync=0x7ae55fc04000) at build/src/ipc/context_ipc_device_coll.cpp:44
    #4  0x00007ae55f5b7c24 in rocshmem::IPCContext::internal_sync_wg (this=0x7ae552407000, pe=0, PE_start=0, stride=1, PE_size=2, pSync=0x7ae55fc04000) at build/src/ipc/context_ipc_device_coll.cpp:115
    #5  0x00007ae55f63d018 in rocshmem::IPCContext::sync_all_wg (this=0x7ae552407000) at build/src/ipc/context_ipc_device_coll.cpp:168
    #6  0x00007ae55f63d558 in rocshmem::IPCContext::barrier_all_wg (this=0x7ae552407000) at build/src/ipc/context_ipc_device_coll.cpp:187
    #7  0x00007ae55f63dedc in rocshmem::Context::barrier_all_wg (this=0x7ae552407000) at build/src/context_device.cpp:151
    #8  0x00007ae55f63e33c in rocshmem::rocshmem_barrier_all_wg () at build/src/rocshmem_gpu.cpp:885
    #9  0x00007ae55f6437cc in WorkGroupPrimitiveTest (loop=1, skip=10, start_time=0x7ae552431000, end_time=0x7ae552432000, source=0x7ae56d200480 "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqr"..., dest=0x7ae56d300500 "1", size=1, type=WGPutTestType, ctx_type=4) at /home/abouteil/rocm-systems/projects/rocshmem/tests/functional_tests/workgroup_primitives.cpp:72
  [HINT] Waiting for remote PE memory update (barrier/sync or user rocshmem_wait_until). Check if the remote PE is alive and making progress. (at: #2  rocshmem::Context::wait_until<long> (this=0x7ae552407000, ivars=0x7ae55fc04008, cmp=0, val=1) at src/context_tmpl_device.hpp:224)

=== rocSHMEM Stats ===
  PE 0
  (counters reflect activity since process start)
  Device:
    quiet   1
    put_wg  704
  Host: (all zero)

=== Summary ===
  1 wavefront(s) inside rocSHMEM
  0 wavefront(s) in user code / other
```
Note the == rocshmem Stats == section contains the number of put and
quiet calls.


## Submission Checklist

- [ ] Look over the contributing guidelines at
https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

---------

Signed-off-by: Aurelien Bouteiller <aurelien.bouteiller@amd.com>
Signed-off-by: Aurelien Bouteiller <abouteil@amd.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
LakshmiKumar23 added a commit that referenced this pull request Jul 13, 2026
…samples (#8287)

## Motivation

The JIRA ticket shows GPU arch is needed from HIP side even if the
sample does not have arch specific code. Implementing this PR to avoid
ASAN failures when gpu arch is not mentioned.

## Technical Details

Add supported `GPU_TARGETS` for all samples

## JIRA ID

ROCM-27712

## Test Plan

ctests must pass

## Test Result

Test results on Navi31 system:

```
~/work/rocm-systems/projects/rocdecode/build$ ctest -VV
UpdateCTestConfiguration  from :/home/lakshmi/work/rocm-systems/projects/rocdecode/build/DartConfiguration.tcl
Parse Config file:/home/lakshmi/work/rocm-systems/projects/rocdecode/build/DartConfiguration.tcl
UpdateCTestConfiguration  from :/home/lakshmi/work/rocm-systems/projects/rocdecode/build/DartConfiguration.tcl
Parse Config file:/home/lakshmi/work/rocm-systems/projects/rocdecode/build/DartConfiguration.tcl
Test project /home/lakshmi/work/rocm-systems/projects/rocdecode/build
Constructing a list of tests
Done constructing a list of tests
Updating test list for fixtures
Added 0 tests to meet fixture requirements
Checking test dependency graph...
Checking test dependency graph end
test 1
    Start 1: video_decodeRaw-HEVC

1: Test command: /usr/local/bin/ctest "--build-and-test" "/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/share/rocdecode/samples/videoDecodeRaw" "/home/lakshmi/work/rocm-systems/projects/rocdecode/build/test/videoDecodeRaw-HEVC" "--build-generator" "Unix Makefiles" "--test-command" "videodecoderaw" "-i" "/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/share/rocdecode/video/AMD_driving_virtual_20-H265.265"
1: Working Directory: /home/lakshmi/work/rocm-systems/projects/rocdecode/build/test
1: Environment variables: 
1:  LD_PRELOAD=/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/rocm_sysdeps/lib/librocm_sysdeps_va.so.2:/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/rocm_sysdeps/lib/librocm_sysdeps_va-drm.so.2
1:  LIBVA_DRIVERS_PATH=/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/rocm_sysdeps/lib
1: Test timeout computed to be: 1500
1: Internal cmake changing into directory: /home/lakshmi/work/rocm-systems/projects/rocdecode/build/test/videoDecodeRaw-HEVC
1: ======== CMake output     ======
1: The C compiler identification is Clang 23.0.0
1: The CXX compiler identification is Clang 23.0.0
1: Detecting C compiler ABI info
1: Detecting C compiler ABI info - done
1: Check for working C compiler: /home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/llvm/bin/amdclang - skipped
1: Detecting C compile features
1: Detecting C compile features - done
1: Detecting CXX compiler ABI info
1: Detecting CXX compiler ABI info - done
1: Check for working CXX compiler: /home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/llvm/bin/amdclang++ - skipped
1: Detecting CXX compile features
1: Detecting CXX compile features - done
1: -- videodecoderaw -- AMD GPU_TARGETS: gfx908;gfx90a;gfx942;gfx1030;gfx1031;gfx1032;gfx1100;gfx1101;gfx1102;gfx950;gfx1150;gfx1151;gfx1152;gfx1153;gfx1200;gfx1201;gfx1250
1: HIP: Using hipcc from relative path: /home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/bin/hipcc
1: Performing Test HIP_CLANG_SUPPORTS_PARALLEL_JOBS
1: Performing Test HIP_CLANG_SUPPORTS_PARALLEL_JOBS - Success
1: Configuring done
1: Generating done
1: Build files have been written to: /home/lakshmi/work/rocm-systems/projects/rocdecode/build/test/videoDecodeRaw-HEVC
1: ======== End CMake output ======
1: Change Dir: /home/lakshmi/work/rocm-systems/projects/rocdecode/build/test/videoDecodeRaw-HEVC
1: 
1: Run Clean Command:/usr/bin/gmake -f Makefile clean
1: 
1: Run Build Command(s):/usr/bin/gmake -f Makefile && [ 33%] Building CXX object CMakeFiles/videodecoderaw.dir/videodecoderaw.cpp.o
1: [ 66%] Building CXX object CMakeFiles/videodecoderaw.dir/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/share/rocdecode/utils/rocvideodecode/roc_video_dec.cpp.o
1: [100%] Linking CXX executable videodecoderaw
1: [100%] Built target videodecoderaw
1: 
1: Running test command: "/home/lakshmi/work/rocm-systems/projects/rocdecode/build/test/videoDecodeRaw-HEVC/videodecoderaw" "-i" "/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/share/rocdecode/video/AMD_driving_virtual_20-H265.265"
1: info: Input file: AMD_driving_virtual_20-H265.265
1: info: Using built-in bitstream reader
1: info: Using GPU device 0 - AMD Radeon RX 7900 XT[gfx1100] on PCI bus 03:00.0
1: info: decoding started, please wait!
1: Input Video Information
1:      Codec        : H.265/HEVC
1:      Frame rate   : 30000/1001 = 29.97 fps
1:      Sequence     : Progressive
1:      Coded size   : [2048, 1024]
1:      Display area : [0, 0, 2048, 1024]
1:      Chroma       : YUV 420
1:      Bit depth    : 8
1: Video Decoding Params:
1:      Num Surfaces : 7
1:      Crop         : [0, 0, 2048, 1024]
1:      Resize       : 2048x1024
1: 
1: info: Total pictures decoded: 601
1: info: Total frames output/displayed: 601
1: info: avg decoding time per picture: 1.00809 ms
1: info: avg decode FPS: 991.976
1: info: avg output/display time per frame: 1.00809 ms
1: info: avg output/display FPS: 991.976
1: 
1/6 Test #1: video_decodeRaw-HEVC .............   Passed    3.89 sec
test 2
    Start 2: video_decodeRaw-AVC

2: Test command: /usr/local/bin/ctest "--build-and-test" "/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/share/rocdecode/samples/videoDecodeRaw" "/home/lakshmi/work/rocm-systems/projects/rocdecode/build/test/videoDecodeRaw-AVC" "--build-generator" "Unix Makefiles" "--test-command" "videodecoderaw" "-i" "/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/share/rocdecode/video/AMD_driving_virtual_20-H264.264"
2: Working Directory: /home/lakshmi/work/rocm-systems/projects/rocdecode/build/test
2: Environment variables: 
2:  LD_PRELOAD=/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/rocm_sysdeps/lib/librocm_sysdeps_va.so.2:/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/rocm_sysdeps/lib/librocm_sysdeps_va-drm.so.2
2:  LIBVA_DRIVERS_PATH=/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/rocm_sysdeps/lib
2: Test timeout computed to be: 1500
2: Internal cmake changing into directory: /home/lakshmi/work/rocm-systems/projects/rocdecode/build/test/videoDecodeRaw-AVC
2: ======== CMake output     ======
2: The C compiler identification is Clang 23.0.0
2: The CXX compiler identification is Clang 23.0.0
2: Detecting C compiler ABI info
2: Detecting C compiler ABI info - done
2: Check for working C compiler: /home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/llvm/bin/amdclang - skipped
2: Detecting C compile features
2: Detecting C compile features - done
2: Detecting CXX compiler ABI info
2: Detecting CXX compiler ABI info - done
2: Check for working CXX compiler: /home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/llvm/bin/amdclang++ - skipped
2: Detecting CXX compile features
2: Detecting CXX compile features - done
2: -- videodecoderaw -- AMD GPU_TARGETS: gfx908;gfx90a;gfx942;gfx1030;gfx1031;gfx1032;gfx1100;gfx1101;gfx1102;gfx950;gfx1150;gfx1151;gfx1152;gfx1153;gfx1200;gfx1201;gfx1250
2: HIP: Using hipcc from relative path: /home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/bin/hipcc
2: Performing Test HIP_CLANG_SUPPORTS_PARALLEL_JOBS
2: Performing Test HIP_CLANG_SUPPORTS_PARALLEL_JOBS - Success
2: Configuring done
2: Generating done
2: Build files have been written to: /home/lakshmi/work/rocm-systems/projects/rocdecode/build/test/videoDecodeRaw-AVC
2: ======== End CMake output ======
2: Change Dir: /home/lakshmi/work/rocm-systems/projects/rocdecode/build/test/videoDecodeRaw-AVC
2: 
2: Run Clean Command:/usr/bin/gmake -f Makefile clean
2: 
2: Run Build Command(s):/usr/bin/gmake -f Makefile && [ 33%] Building CXX object CMakeFiles/videodecoderaw.dir/videodecoderaw.cpp.o
2: [ 66%] Building CXX object CMakeFiles/videodecoderaw.dir/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/share/rocdecode/utils/rocvideodecode/roc_video_dec.cpp.o
2: [100%] Linking CXX executable videodecoderaw
2: [100%] Built target videodecoderaw
2: 
2: Running test command: "/home/lakshmi/work/rocm-systems/projects/rocdecode/build/test/videoDecodeRaw-AVC/videodecoderaw" "-i" "/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/share/rocdecode/video/AMD_driving_virtual_20-H264.264"
2: info: Input file: AMD_driving_virtual_20-H264.264
2: info: Using built-in bitstream reader
2: info: Using GPU device 0 - AMD Radeon RX 7900 XT[gfx1100] on PCI bus 03:00.0
2: info: decoding started, please wait!
2: Input Video Information
2:      Codec        : AVC/H.264
2:      Frame rate   : 60000/2002 = 29.97 fps
2:      Sequence     : Progressive
2:      Coded size   : [2048, 1024]
2:      Display area : [0, 0, 2048, 1024]
2:      Chroma       : YUV 420
2:      Bit depth    : 8
2: Video Decoding Params:
2:      Num Surfaces : 7
2:      Crop         : [0, 0, 2048, 1024]
2:      Resize       : 2048x1024
2: 
2: info: Total pictures decoded: 601
2: info: Total frames output/displayed: 601
2: info: avg decoding time per picture: 0.87877 ms
2: info: avg decode FPS: 1137.95
2: info: avg output/display time per frame: 0.87877 ms
2: info: avg output/display FPS: 1137.95
2: 
2/6 Test #2: video_decodeRaw-AVC ..............   Passed    3.81 sec
test 3
    Start 3: video_decodeRaw-AV1

3: Test command: /usr/local/bin/ctest "--build-and-test" "/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/share/rocdecode/samples/videoDecodeRaw" "/home/lakshmi/work/rocm-systems/projects/rocdecode/build/test/videoDecodeRaw-AV1" "--build-generator" "Unix Makefiles" "--test-command" "videodecoderaw" "-i" "/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/share/rocdecode/video/AMD_driving_virtual_20-AV1.ivf"
3: Working Directory: /home/lakshmi/work/rocm-systems/projects/rocdecode/build/test
3: Environment variables: 
3:  LD_PRELOAD=/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/rocm_sysdeps/lib/librocm_sysdeps_va.so.2:/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/rocm_sysdeps/lib/librocm_sysdeps_va-drm.so.2
3:  LIBVA_DRIVERS_PATH=/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/rocm_sysdeps/lib
3: Test timeout computed to be: 1500
3: Internal cmake changing into directory: /home/lakshmi/work/rocm-systems/projects/rocdecode/build/test/videoDecodeRaw-AV1
3: ======== CMake output     ======
3: The C compiler identification is Clang 23.0.0
3: The CXX compiler identification is Clang 23.0.0
3: Detecting C compiler ABI info
3: Detecting C compiler ABI info - done
3: Check for working C compiler: /home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/llvm/bin/amdclang - skipped
3: Detecting C compile features
3: Detecting C compile features - done
3: Detecting CXX compiler ABI info
3: Detecting CXX compiler ABI info - done
3: Check for working CXX compiler: /home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/llvm/bin/amdclang++ - skipped
3: Detecting CXX compile features
3: Detecting CXX compile features - done
3: -- videodecoderaw -- AMD GPU_TARGETS: gfx908;gfx90a;gfx942;gfx1030;gfx1031;gfx1032;gfx1100;gfx1101;gfx1102;gfx950;gfx1150;gfx1151;gfx1152;gfx1153;gfx1200;gfx1201;gfx1250
3: HIP: Using hipcc from relative path: /home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/bin/hipcc
3: Performing Test HIP_CLANG_SUPPORTS_PARALLEL_JOBS
3: Performing Test HIP_CLANG_SUPPORTS_PARALLEL_JOBS - Success
3: Configuring done
3: Generating done
3: Build files have been written to: /home/lakshmi/work/rocm-systems/projects/rocdecode/build/test/videoDecodeRaw-AV1
3: ======== End CMake output ======
3: Change Dir: /home/lakshmi/work/rocm-systems/projects/rocdecode/build/test/videoDecodeRaw-AV1
3: 
3: Run Clean Command:/usr/bin/gmake -f Makefile clean
3: 
3: Run Build Command(s):/usr/bin/gmake -f Makefile && [ 33%] Building CXX object CMakeFiles/videodecoderaw.dir/videodecoderaw.cpp.o
3: [ 66%] Building CXX object CMakeFiles/videodecoderaw.dir/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/share/rocdecode/utils/rocvideodecode/roc_video_dec.cpp.o
3: [100%] Linking CXX executable videodecoderaw
3: [100%] Built target videodecoderaw
3: 
3: Running test command: "/home/lakshmi/work/rocm-systems/projects/rocdecode/build/test/videoDecodeRaw-AV1/videodecoderaw" "-i" "/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/share/rocdecode/video/AMD_driving_virtual_20-AV1.ivf"
3: info: Input file: AMD_driving_virtual_20-AV1.ivf
3: info: Using built-in bitstream reader
3: info: Using GPU device 0 - AMD Radeon RX 7900 XT[gfx1100] on PCI bus 03:00.0
3: info: decoding started, please wait!
3: Input Video Information
3:      Codec        : AV1
3:      Sequence     : Progressive
3:      Coded size   : [2048, 1024]
3:      Display area : [0, 0, 2048, 1024]
3:      Chroma       : YUV 420
3:      Bit depth    : 8
3: Video Decoding Params:
3:      Num Surfaces : 12
3:      Crop         : [0, 0, 2048, 1024]
3:      Resize       : 2048x1024
3: 
3: info: Total pictures decoded: 602
3: info: Total frames output/displayed: 601
3: info: avg decoding time per picture: 1.00368 ms
3: info: avg decode FPS: 996.33
3: info: avg output/display time per frame: 1.00535 ms
3: info: avg output/display FPS: 994.675
3: 
3/6 Test #3: video_decodeRaw-AV1 ..............   Passed    3.93 sec
test 4
    Start 4: video_decodeRaw-VP9

4: Test command: /usr/local/bin/ctest "--build-and-test" "/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/share/rocdecode/samples/videoDecodeRaw" "/home/lakshmi/work/rocm-systems/projects/rocdecode/build/test/videoDecodeRaw-VP9" "--build-generator" "Unix Makefiles" "--test-command" "videodecoderaw" "-i" "/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/share/rocdecode/video/AMD_driving_virtual_20-VP9.ivf"
4: Working Directory: /home/lakshmi/work/rocm-systems/projects/rocdecode/build/test
4: Environment variables: 
4:  LD_PRELOAD=/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/rocm_sysdeps/lib/librocm_sysdeps_va.so.2:/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/rocm_sysdeps/lib/librocm_sysdeps_va-drm.so.2
4:  LIBVA_DRIVERS_PATH=/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/rocm_sysdeps/lib
4: Test timeout computed to be: 1500
4: Internal cmake changing into directory: /home/lakshmi/work/rocm-systems/projects/rocdecode/build/test/videoDecodeRaw-VP9
4: ======== CMake output     ======
4: The C compiler identification is Clang 23.0.0
4: The CXX compiler identification is Clang 23.0.0
4: Detecting C compiler ABI info
4: Detecting C compiler ABI info - done
4: Check for working C compiler: /home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/llvm/bin/amdclang - skipped
4: Detecting C compile features
4: Detecting C compile features - done
4: Detecting CXX compiler ABI info
4: Detecting CXX compiler ABI info - done
4: Check for working CXX compiler: /home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/llvm/bin/amdclang++ - skipped
4: Detecting CXX compile features
4: Detecting CXX compile features - done
4: -- videodecoderaw -- AMD GPU_TARGETS: gfx908;gfx90a;gfx942;gfx1030;gfx1031;gfx1032;gfx1100;gfx1101;gfx1102;gfx950;gfx1150;gfx1151;gfx1152;gfx1153;gfx1200;gfx1201;gfx1250
4: HIP: Using hipcc from relative path: /home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/bin/hipcc
4: Performing Test HIP_CLANG_SUPPORTS_PARALLEL_JOBS
4: Performing Test HIP_CLANG_SUPPORTS_PARALLEL_JOBS - Success
4: Configuring done
4: Generating done
4: Build files have been written to: /home/lakshmi/work/rocm-systems/projects/rocdecode/build/test/videoDecodeRaw-VP9
4: ======== End CMake output ======
4: Change Dir: /home/lakshmi/work/rocm-systems/projects/rocdecode/build/test/videoDecodeRaw-VP9
4: 
4: Run Clean Command:/usr/bin/gmake -f Makefile clean
4: 
4: Run Build Command(s):/usr/bin/gmake -f Makefile && [ 33%] Building CXX object CMakeFiles/videodecoderaw.dir/videodecoderaw.cpp.o
4: [ 66%] Building CXX object CMakeFiles/videodecoderaw.dir/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/share/rocdecode/utils/rocvideodecode/roc_video_dec.cpp.o
4: [100%] Linking CXX executable videodecoderaw
4: [100%] Built target videodecoderaw
4: 
4: Running test command: "/home/lakshmi/work/rocm-systems/projects/rocdecode/build/test/videoDecodeRaw-VP9/videodecoderaw" "-i" "/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/share/rocdecode/video/AMD_driving_virtual_20-VP9.ivf"
4: info: Input file: AMD_driving_virtual_20-VP9.ivf
4: info: Using built-in bitstream reader
4: info: Using GPU device 0 - AMD Radeon RX 7900 XT[gfx1100] on PCI bus 03:00.0
4: info: decoding started, please wait!
4: Input Video Information
4:      Codec        : VP9
4:      Sequence     : Progressive
4:      Coded size   : [2048, 1024]
4:      Display area : [0, 0, 2048, 1024]
4:      Chroma       : YUV 420
4:      Bit depth    : 8
4: Video Decoding Params:
4:      Num Surfaces : 12
4:      Crop         : [0, 0, 2048, 1024]
4:      Resize       : 2048x1024
4: 
4: info: Total pictures decoded: 601
4: info: Total frames output/displayed: 601
4: info: avg decoding time per picture: 1.08378 ms
4: info: avg decode FPS: 922.693
4: info: avg output/display time per frame: 1.08378 ms
4: info: avg output/display FPS: 922.693
4: 
4/6 Test #4: video_decodeRaw-VP9 ..............   Passed    3.96 sec
test 5
    Start 5: rocdec_Decode-HEVC

5: Test command: /usr/local/bin/ctest "--build-and-test" "/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/share/rocdecode/samples/rocdecDecode" "/home/lakshmi/work/rocm-systems/projects/rocdecode/build/test/rocdecDecode" "--build-generator" "Unix Makefiles" "--test-command" "rocdecdecode" "-i" "/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/share/rocdecode/frames"
5: Working Directory: /home/lakshmi/work/rocm-systems/projects/rocdecode/build/test
5: Environment variables: 
5:  LD_PRELOAD=/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/rocm_sysdeps/lib/librocm_sysdeps_va.so.2:/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/rocm_sysdeps/lib/librocm_sysdeps_va-drm.so.2
5:  LIBVA_DRIVERS_PATH=/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/rocm_sysdeps/lib
5: Test timeout computed to be: 1500
5: Internal cmake changing into directory: /home/lakshmi/work/rocm-systems/projects/rocdecode/build/test/rocdecDecode
5: ======== CMake output     ======
5: The C compiler identification is Clang 23.0.0
5: The CXX compiler identification is Clang 23.0.0
5: Detecting C compiler ABI info
5: Detecting C compiler ABI info - done
5: Check for working C compiler: /home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/llvm/bin/amdclang - skipped
5: Detecting C compile features
5: Detecting C compile features - done
5: Detecting CXX compiler ABI info
5: Detecting CXX compiler ABI info - done
5: Check for working CXX compiler: /home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/llvm/bin/amdclang++ - skipped
5: Detecting CXX compile features
5: Detecting CXX compile features - done
5: -- rocdecdecode -- AMD GPU_TARGETS: gfx908;gfx90a;gfx942;gfx1030;gfx1031;gfx1032;gfx1100;gfx1101;gfx1102;gfx950;gfx1150;gfx1151;gfx1152;gfx1153;gfx1200;gfx1201;gfx1250
5: HIP: Using hipcc from relative path: /home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/bin/hipcc
5: Performing Test HIP_CLANG_SUPPORTS_PARALLEL_JOBS
5: Performing Test HIP_CLANG_SUPPORTS_PARALLEL_JOBS - Success
5: Found PkgConfig: /usr/bin/pkg-config (found version "0.29.2") 
5: Checking for module 'libavcodec'
5:   Found libavcodec, version 58.134.100
5: Checking for module 'libavformat'
5:   Found libavformat, version 58.76.100
5: Checking for module 'libavutil'
5:   Found libavutil, version 56.70.100
5: -- Using FFMPEG -- 
5:      Libraries:/usr/lib/x86_64-linux-gnu/libavcodec.so;/usr/lib/x86_64-linux-gnu/libavformat.so;/usr/lib/x86_64-linux-gnu/libavutil.so 
5:      Includes:/usr/include/x86_64-linux-gnu
5: Configuring done
5: Generating done
5: Build files have been written to: /home/lakshmi/work/rocm-systems/projects/rocdecode/build/test/rocdecDecode
5: ======== End CMake output ======
5: Change Dir: /home/lakshmi/work/rocm-systems/projects/rocdecode/build/test/rocdecDecode
5: 
5: Run Clean Command:/usr/bin/gmake -f Makefile clean
5: 
5: Run Build Command(s):/usr/bin/gmake -f Makefile && [ 50%] Building CXX object CMakeFiles/rocdecdecode.dir/rocdecdecode.cpp.o
5: [100%] Linking CXX executable rocdecdecode
5: [100%] Built target rocdecdecode
5: 
5: Running test command: "/home/lakshmi/work/rocm-systems/projects/rocdecode/build/test/rocdecDecode/rocdecdecode" "-i" "/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/share/rocdecode/frames"
5: Read 53 frames from disk.
5: Input Video Information
5:      Codec        : 4
5:      Frame rate   : 30000/1001 = 29.97 fps
5:      Sequence     : Progressive
5:      Coded size   : [2048, 1024]
5:      Display area : [0, 0, 2048, 1024]
5:      Bit depth    : 8
5: Total decoded frames in iteration 0: 53
5: Decoding time: 59182 microseconds
5: Success.
5: 
5: 
5: 
5/6 Test #5: rocdec_Decode-HEVC ...............   Passed    2.36 sec
test 6
    Start 6: rocDecode_Negative_API_Tests

6: Test command: /usr/local/bin/ctest "--build-and-test" "/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/share/rocdecode/test/rocDecodeNegativeApiTests" "/home/lakshmi/work/rocm-systems/projects/rocdecode/build/test/rocdecodenegativetest" "--build-generator" "Unix Makefiles" "--test-command" "rocdecodenegativetest"
6: Working Directory: /home/lakshmi/work/rocm-systems/projects/rocdecode/build/test
6: Environment variables: 
6:  LD_PRELOAD=/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/rocm_sysdeps/lib/librocm_sysdeps_va.so.2:/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/rocm_sysdeps/lib/librocm_sysdeps_va-drm.so.2
6:  LIBVA_DRIVERS_PATH=/home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/rocm_sysdeps/lib
6: Test timeout computed to be: 1500
6: Internal cmake changing into directory: /home/lakshmi/work/rocm-systems/projects/rocdecode/build/test/rocdecodenegativetest
6: ======== CMake output     ======
6: The C compiler identification is Clang 23.0.0
6: The CXX compiler identification is Clang 23.0.0
6: Detecting C compiler ABI info
6: Detecting C compiler ABI info - done
6: Check for working C compiler: /home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/llvm/bin/amdclang - skipped
6: Detecting C compile features
6: Detecting C compile features - done
6: Detecting CXX compiler ABI info
6: Detecting CXX compiler ABI info - done
6: Check for working CXX compiler: /home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/lib/llvm/bin/amdclang++ - skipped
6: Detecting CXX compile features
6: Detecting CXX compile features - done
6: HIP: Using hipcc from relative path: /home/lakshmi/rock_0408/lib/python3.10/site-packages/_rocm_sdk_devel/bin/hipcc
6: Performing Test HIP_CLANG_SUPPORTS_PARALLEL_JOBS
6: Performing Test HIP_CLANG_SUPPORTS_PARALLEL_JOBS - Success
6: Configuring done
6: Generating done
6: Build files have been written to: /home/lakshmi/work/rocm-systems/projects/rocdecode/build/test/rocdecodenegativetest
6: ======== End CMake output ======
6: Change Dir: /home/lakshmi/work/rocm-systems/projects/rocdecode/build/test/rocdecodenegativetest
6: 
6: Run Clean Command:/usr/bin/gmake -f Makefile clean
6: 
6: Run Build Command(s):/usr/bin/gmake -f Makefile && [ 33%] Building CXX object CMakeFiles/rocdecodenegativetest.dir/rocdecodenegativetest.cpp.o
6: [ 66%] Building CXX object CMakeFiles/rocdecodenegativetest.dir/rocdecode_api_negative_tests.cpp.o
6: [100%] Linking CXX executable rocdecodenegativetest
6: [100%] Built target rocdecodenegativetest
6: 
6: Running test command: "/home/lakshmi/work/rocm-systems/projects/rocdecode/build/test/rocdecodenegativetest/rocdecodenegativetest"
6: info: Executing negative test cases for the rocDecCreateDecoder API
6: [0, Critical] rocdecode_api.cpp:37: 1986415068739 us: [pid:1764967 tid:1764967 hashid:0x88f33] rocDecCreateDecoder(): Null pointer
6: [0, Critical] roc_decoder.cpp:51: 1986415068759 us: [pid:1764967 tid:1764967 hashid:0x88f33] InitializeDecoder(): Invalid number of decode surfaces.
6: [0, Critical] vaapi_videodecoder.cpp:1028: 1986415101069 us: [pid:1764967 tid:1764967 hashid:0x88f33] InitHIP(): ERROR: the requested device_id is not found!
6: [0, Critical] vaapi_videodecoder.cpp:686: 1986415101084 us: [pid:1764967 tid:1764967 hashid:0x88f33] GetVaContext(): Failed to initialize the HIP.
6: [0, Critical] vaapi_videodecoder.cpp:824: 1986415101091 us: [pid:1764967 tid:1764967 hashid:0x88f33] CheckDecCapForCodecType(): Failed to initialize.
6: [0, Critical] rocdecode_api.cpp:90: 1986415101096 us: [pid:1764967 tid:1764967 hashid:0x88f33] rocDecGetDecoderCaps(): Error: Failed to obtain decoder capabilities from driver.
6: [0, Critical] vaapi_videodecoder.cpp:130: 1986415101100 us: [pid:1764967 tid:1764967 hashid:0x88f33] InitializeDecoder(): The codec config combination is not supported.
6: [0, Critical] roc_decoder.cpp:61: 1986415101105 us: [pid:1764967 tid:1764967 hashid:0x88f33] InitializeDecoder(): Failed to initialize the VAAPI Video decoder.
6: [0, Critical] vaapi_videodecoder.cpp:130: 1986415102752 us: [pid:1764967 tid:1764967 hashid:0x88f33] InitializeDecoder(): The codec config combination is not supported.
6: [0, Critical] roc_decoder.cpp:61: 1986415102759 us: [pid:1764967 tid:1764967 hashid:0x88f33] InitializeDecoder(): Failed to initialize the VAAPI Video decoder.
6: [0, Critical] vaapi_videodecoder.cpp:130: 1986415102766 us: [pid:1764967 tid:1764967 hashid:0x88f33] InitializeDecoder(): The codec config combination is not supported.
6: [0, Critical] roc_decoder.cpp:61: 1986415102768 us: [pid:1764967 tid:1764967 hashid:0x88f33] InitializeDecoder(): Failed to initialize the VAAPI Video decoder.
6: [0, Critical] vaapi_videodecoder.cpp:130: 1986415102779 us: [pid:1764967 tid:1764967 hashid:0x88f33] InitializeDecoder(): The codec config combination is not supported.
6: [0, Critical] roc_decoder.cpp:61: 1986415102781 us: [pid:1764967 tid:1764967 hashid:0x88f33] InitializeDecoder(): Failed to initialize the VAAPI Video decoder.
6: [0, Critical] vaapi_videodecoder.cpp:894: 1986415102788 us: [pid:1764967 tid:1764967 hashid:0x88f33] CheckDecCapForCodecType(): VAAPI failure: vaCreateConfig(va_contexts_[va_ctx_id].va_display, va_contexts_[va_ctx_id].va_profile, VAEntrypointVLD, &va_config_attrib, 1, &va_contexts_[va_ctx_id].va_config_id) failed with 'status: 13: the requested VAEntryPoint is not supported' at /home/lakshmi/work/rocm-systems/projects/rocdecode/src/rocdecode/vaapi/vaapi_videodecoder.cpp:894
6: [0, Critical] rocdecode_api.cpp:90: 1986415102795 us: [pid:1764967 tid:1764967 hashid:0x88f33] rocDecGetDecoderCaps(): Error: Failed to obtain decoder capabilities from driver.
6: [0, Critical] vaapi_videodecoder.cpp:130: 1986415102798 us: [pid:1764967 tid:1764967 hashid:0x88f33] InitializeDecoder(): The codec config combination is not supported.
6: [0, Critical] roc_decoder.cpp:61: 1986415102800 us: [pid:1764967 tid:1764967 hashid:0x88f33] InitializeDecoder(): Failed to initialize the VAAPI Video decoder.
6: info: Executing negative test cases for the rocDecDestroyDecoder API
6: info: Executing negative test cases for the rocDecGetDecoderCaps API
6: info: Executing negative test cases for the rocDecDecodeFrame API
6: info: Executing negative test cases for the rocDecGetDecodeStatus API
6: info: Executing negative test cases for the rocDecReconfigureDecoder API
6: info: Executing negative test cases for the rocDecGetVideoFrame API
6: info: Executing negative test cases for the rocDecGetErrorName API
6: info: Executing negative test cases for the rocDecCreateVideoParser API
6: [0, Critical] roc_decoder.cpp:124: 1986415103702 us: [pid:1764967 tid:1764967 hashid:0x88f33] GetVideoFrame(): Invalid parameters.
6: [0, Critical] rocparser_api.cpp:44: 1986415103711 us: [pid:1764967 tid:1764967 hashid:0x88f33] rocDecCreateVideoParser(): Error: The current version of rocDecode officially supports only the H.265 (HEVC), H.264 (AVC), AV1 and VP9 codecs.
6: info: Executing negative test cases for the rocDecParseVideoData API
6: info: Executing negative test cases for the rocDecDestroyVideoParser API
6: info: Executing negative test cases for the rocDecCreateBitstreamReader API
6: info: Executing negative test cases for the rocDecGetBitstreamCodecType API
6: info: Executing negative test cases for the rocDecGetBitstreamBitDepth API
6: [0, Critical] roc_bs_reader_api.cpp:31: 1986415104198 us: [pid:1764967 tid:1764967 hashid:0x88f33] rocDecCreateBitstreamReader(): Null pointer
6: [0, Critical] roc_bs_reader_api.cpp:31: 1986415104202 us: [pid:1764967 tid:1764967 hashid:0x88f33] rocDecCreateBitstreamReader(): Null pointer
6: [0, Critical] roc_bs_reader_api.cpp:52: 1986415104206 us: [pid:1764967 tid:1764967 hashid:0x88f33] rocDecGetBitstreamCodecType(): Null pointer
6: [0, Critical] roc_bs_reader_api.cpp:52: 1986415104210 us: [pid:1764967 tid:1764967 hashid:0x88f33] rocDecGetBitstreamCodecType(): Null pointer
6: [0, Critical] roc_bs_reader_api.cpp:74: 1986415104214 us: [pid:1764967 tid:1764967 hashid:0x88f33] rocDecGetBitstreamBitDepth(): Null pointer
6: [0, Critical] roc_bs_reader_api.cpp:74: 1986415104217 us: [pid:1764967 tid:1764967 hashid:0x88f33] rocDecGetBitstreamBitDepth(): Null pointer
6: [0, Critical] roc_bs_reader_api.cpp:96: 1986415104222 us: [pid:1764967 tid:1764967 hashid:0x88f33] rocDecGetBitstreamPicData(): Null pointer
6: info: Executing negative test cases for the rocDecGetBitstreamPicData API
6: info: Executing negative test cases for the rocDecDestroyBitstreamReader API
6: Test Passed!
6: [0, Critical] roc_bs_reader_api.cpp:96: 1986415104225 us: [pid:1764967 tid:1764967 hashid:0x88f33] rocDecGetBitstreamPicData(): Null pointer
6: [0, Critical] roc_bs_reader_api.cpp:118: 1986415104229 us: [pid:1764967 tid:1764967 hashid:0x88f33] rocDecDestroyBitstreamReader(): Null pointer
6: 
6/6 Test #6: rocDecode_Negative_API_Tests .....   Passed    2.00 sec

100% tests passed, 0 tests failed out of 6

Total Test time (real) =  19.96 sec
```

## Submission Checklist

- [ ] Look over the contributing guidelines at
https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.
prasanna-amd added a commit that referenced this pull request Aug 20, 2026
… real headers

- Fix double-deref in KernelCh stop: combine per-channel and
  kernel-completion ref drops into a single atomic operation under the
  coll mutex, preventing negative refcount and use-after-free (#1)

- Add mutex to ProxyOpInfo, protect step timing accumulation from
  concurrent proxy thread writes (#2)

- Lock ProxyOp before memcpy into coll->proxyOps to prevent reading
  partially-written step data (#3)

- Move all pools (coll, proxyOp, proxyStep) from process-global statics
  into per-communicator acclCommContext, eliminating cross-comm pool
  starvation (#4)

- Fix fmt_size to show fractional values (1.5M instead of 1M) (#6)

- Fix bottleneck classifier denominator to use
  launch + max(kernel, proxy) instead of exec + launch, preventing
  percentages exceeding 100% due to kernel/proxy overlap (#7)

- Add --output flag to 'single' subcommand and clean up hasattr
  guard (#8)

- Switch output file from append to write mode to avoid stale data
  from PID reuse (#9)

- Replace vendored nccl/profiler.h with accl_shim.h that provides
  minimal types and includes RCCL's real profiler_v5.h; add
  CMakeLists.txt for in-tree builds (#10)
prasanna-amd added a commit that referenced this pull request Aug 26, 2026
…ntegration

Add monotonic generation counter per pool slot to detect stale callbacks
from reclaimed collectives, resolving the 0==0 race in pool reclaim and
all callback-lifetime concerns (threads #4, #6, #8, #9).

Add atomic ref-count to acclCommContext so acclPluginFinalize defers free()
until all outstanding callbacks have drained (thread #2).

Wire accl plugin into the parent RCCL CMake build (thread #20), add
CXX_VISIBILITY_PRESET/VISIBILITY_INLINES_HIDDEN (thread #1), and bump
ACCL_MAX_CHANNELS from 64 to 256 (thread #11).

Fix acclShouldFinalize: nChannels==0 collectives (onerank path) finalize
immediately on coll stop; guard channelId against nChannels (thread #10, #12).
Free leaked ProxyOp when coll's proxyOpIndices is full (thread #13).
Rename firstCpuStart to firstKernelCpuStartUs for clarity (thread #14).

Fix warmup off-by-one (sn <= warmup → sn < warmup, thread #7), use
try/finally for output file handle (thread #15), fix test fixtures to
start at coll_sn=0 (thread #16), remove stale ACCL_PROFILER_WARMUP_ITERS
docs (thread #17), sync bottleneck categories with classify() (thread #18),
add NVIDIA Apache-2.0 header to accl_shim.h (thread #19).

Add tests: ProxyStep lifecycle, channel bounds, kernel timing assertions
(threads #3, #12, #21).
mch added a commit that referenced this pull request Aug 26, 2026
Add Test #6 -- when credit is available for every op in a PutSignalGroup,
ncclRmaProxyPollNonPersistDesc issues all of them in one pass, moves the group
descriptor to the in-progress queue, and advances the consumer index once.
Adds the PushPendingPutGroup fixture helper the group-path tests (#7/#8) build
on.

Co-authored-by: Pi Agent
venkat1361 pushed a commit that referenced this pull request Sep 1, 2026
…10809)

## Summary
Addresses a 15-point static re-review of the KFD dispatch-log
signal-less path (on top of `review-fixes`). Each finding was evaluated
against the code and the prior design history; this PR **fixes the
genuine correctness/safety/resource issues** (potential misattribution,
UAF on terminal teardown, unbounded pairer-map growth, plus
FATAL-handling, env-race, and robustness items) and **documents the ones
intentionally left as accepted residuals or pre-existing**, with
rationale. `+365 / −49` across 9 files.

## Fixed

- **#4 (misattribution) — validate identity before claiming an
unknown-START EOP.** The unknown-START path in
`dispatch_hub.hpp::record_kernel_end` took the sole first-owner entry
with no timestamp check, and terminal-time validation ran only *after*
the entry was consumed/retired — so a stale EOP could claim a newer
dispatch's entry. Now rejects an EOP whose `end_ticks <= window.t_open`
(a kernel cannot end at/before its window opened; same GPU-tick domain
the known-START path already uses) **before** taking the entry, so a
rejected EOP consumes/retires nothing. Fail-first verified.
- **#3 + #2 (UAF) — the terminal fences are now truly terminal
(fail-closed).** `signal_less_fence_completions()` previously quiesced
visible work but did not stop the reader on success, so a still-PENDING
kernel could complete after the client's callback/buffer state
(detach/finalize, F23) or the HSA runtime (final `hsa_shut_down`, F24)
was freed. A new `signal_less_terminal_stop()` (factored from teardown)
latches disable → stops+joins the reader/processor → drains+ledgers
PENDING, and is called from the F23/F24 sites. Verified deadlock-free
(never joins its own task group, holds no lock across the join, joined
threads never block on the joiner) and 5/5 clean under a shutdown
watchdog. The existing `get_fini_status()` re-entry guard (the earlier
crash fix) is preserved.
- **#11 (unbounded growth) — hard size cap on the pairer START map.**
`pair_state::pending_starts` was bounded only by a 30-minute age timer.
Added `ROCPROFILER_KFD_DISPATCH_LOG_MAX_PENDING_STARTS` (default 2M,
shared reject-and-default parser) with oldest-first eviction (recurring
key exempted so the `ambiguous` latch is preserved).
- **#7 (coverage) + #10 (liveness) — FATAL handling.** FATAL now latches
admission and waits for the processor to consume the already-published
pipe **before** draining the hub (so a fatal session's final EOP and
healthy-GPU EOPs behind it aren't dropped), and the FATAL status is
re-probed while the empty-wake backstop is tripped (so a fatal stream
that produces no records is still detected).
- **#5 (robustness) — master switch is a strict fail-closed opt-in.**
`ROCPROFILER_KFD_DISPATCH_LOG_SIGNAL_LESS` now accepts only explicit
true values; anything else is disabled with a one-time warning (no throw
on malformed input).
- **#9 (arg-order) — deterministic GC-gate operand ordering.**
`gc_gate_open`'s two operands are read into named locals in the intended
order rather than relying on unspecified argument-evaluation order.
- **#12 (race) — env knobs primed at serialized init.** The
age/cap/quiesce/switch env reads are populated during reader start-up
rather than lazily on a worker thread.
- **#14(b) — fork child no longer hangs in `interposition_fini()`.** A
normal (non-exec) child now short-circuits `interposition_fini()` under
the existing `fork_stale()` guard, avoiding a wlock on a registry a
vanished parent thread may hold.

## Intentionally not changed (accepted residuals / design decisions /
pre-existing)

- **#1 — teardown coverage loss** (a kernel in flight at exit may emit
no record): the accepted D8/F1 coverage residual. The *UAF* variant of
this concern is #3, which is fixed.
- **#8 — equal-tick START/EOP**: the accepted D1 residual. The code
emits a **no-timing / zero-duration drop**, not a fabricated 1 ns; no
misattribution.
- **#9-main — GC gate "race"**: the copied-but-still-in-ring window is
the accepted **R10** residual (an EOP still in the ring is intentionally
not gated), and cap-eviction's bypass of the in-flight gate is D9's
documented coverage-loss residual. The operand-ordering nit is fixed
(#9-arg above); the residual is by design (coverage loss, never
misattribution).
- **#13 — cross-batch inversion**: the explicitly-accepted D1 residual
(coverage loss under queue churn, never misattribution). A cross-batch
reorder buffer is a larger design change weighed against measured
coverage impact, which the benchmarks do not show hitting.
- **#6 — completion-callback self-deadlock**: a **pre-existing**
reentrancy defect on the generic signal path (a client callback that
calls its own finalize). The new terminal-stop path was specifically
designed **not** to add another instance of it.
- **#14(a) — session mid-construction skipped by a concurrent fork**: a
child-lifetime resource leak (not a hang); the parent is unaffected and
the child drops it at exit. The "fix" would introduce a formal data race
on an `smap` pointer a vanished thread was mid-write on, to reclaim
memory about to be freed — not worth it. Left as-is.
- **#15 — eager arming on a registered (vs active) context**: an
efficiency consideration, not a correctness issue; arming stays gated on
a registered kernel-dispatch context.

## Known residuals in the fixes (documented)
- #4 adds no upper time bound (an implausibly-future EOP is still taken
and rejected by the finalizer as no-timing, never misattributed).
- #10 restores FATAL *detection* under the backstop; a *persistently
failing* status ioctl still isn't fail-closed (separate follow-up).
- #11 eviction is O(live) per over-cap insert (same tradeoff as the D9
cap; only reached under pathological EOP loss).

## Testing (MI350, host ROCm 7.2.1, build `fd06e1407c`)
- Build clean at the project warning level — **0 new warnings**.
- `ctest -L kfd-dlog` — **90/90 pass** (incl. 2 new tests: pairer-map
cap, strict opt-in).
- ThreadSanitizer, all 8 kfd-dlog suites — **90/90, zero reports**
(covers the terminal-stop join, FATAL drain-wait, GC-gate ordering).
- Shutdown crash/hang reproducer (1040), **5 runs under a watchdog — 5/5
clean, no hang, no crash** (the decisive check for the terminal-stop
rework).
- 1041-d (20k kernels ×3), 1031, 1041-a, 1041-c — all pass, no
attribution regression.
- graph-perf — **−44.21%** overhead reduction,
`register-refused=0`/block (no throughput regression).

## Tracking
JIRA ID: AIPROFSDK-1012 AIPROFSDK-1040 AIPROFSDK-1041
LeoZhao-BJ added a commit that referenced this pull request Sep 4, 2026
…11169)

## Motivation

`Unit_test_generic_target_only_in_regular_fatbin` and
`Unit_test_generic_target_only_in_compressed_fatbin` fail on MI200
(gfx90a) on the
TheRock 10.1.0 nightlies, first seen in `a20260828`:

```
hipSquareGenericTarget.cc:101: FAILED:
  REQUIRE( std::system(cmd) == 0 )
with expansion:
  1024 (0x400) == 0
```

These two tests do not touch the GPU themselves — they spawn a separate
child
binary (`hipSquareGenericTargetOnly`) that holds the actual
`isGenericTargetSupported()` device guard, and then assert the child
exited 0.

`getGenericTarget()` in `hipTestMain/hip_test_features.cc` has no entry
for
gfx90a (nor gfx908), so on MI200 the child correctly skips every one of
its test
cases. Catch2 v3 then exits the child with `AllTestsSkippedExitCode =
4`. On
Linux `std::system()` returns a POSIX *wait status*, not the exit code,
so the
parent sees `4 << 8 == 1024` and reports a hard failure for a run that
was
actually skipped.

This is a reporting bug, not a functional one: nothing was executed and
nothing
was wrong, but CI goes red on every MI200/MI250 job.

## Technical Details

Three points worth calling out:

**The platform split is required, not defensive.** `std::system()`
encodes its
result differently per platform:

| | child exits 4 | `std::system()` returns |
|---|---|---|
| Linux (POSIX wait status) | 4 | **1024** (`0x400`) |
| Windows (MSVC, raw exit code) | 4 | **4** |

A single `rc == 4` check would be correct on Windows and dead code on
Linux —
the platform this bug was actually filed against. Conversely a
Linux-only
`WIFEXITED`/`WEXITSTATUS` block leaves Windows with the same latent
trap: every
Windows-supported arch happens to be in `getGenericTarget()`'s map
today, but
that map carries an explicit "subject to change per removing policy"
comment, so
new silicon landing before a map update would reproduce this bug on
Windows with
no handler present.

**`HT_WIN` / `HT_LINUX` rather than raw `__linux__`.** These come from
`catch/include/hip_test_context.hh` and `#error "OS not recognized"` on
an
unknown platform, so a third OS fails loudly at compile time instead of
silently
dropping the skip handling.

**The `<sys/wait.h>` include is guarded** because
`WIFEXITED`/`WEXITSTATUS` are
POSIX macros and the header does not exist on Windows.

**This cannot mask a real failure.** Catch2 uses `TestFailureExitCode =
42` for a
genuine assertion failure, `UnspecifiedErrorExitCode = 1` for an error,
and
`NoTestsRunExitCode = 2` — only an all-skipped run yields 4. On
gfx942/gfx950,
where the child actually executes, a real regression still trips
`REQUIRE(rc == 0)`.

The parent then exits 4 itself, which ctest maps to `***Skipped` via the
`SKIP_RETURN_CODE 4` that `catch_discover_tests` sets automatically
(Catch2 `extras/Catch.cmake`). No CMake change is needed.

## Issue Tracking

JIRA ID : ROCM-30543

## Test Plan

Validated on real MI250 (gfx90a) hardware

1. Restore pristine `hipSquareGenericTarget.cc` and `compiler.yaml`,
verify both
match `origin/develop`, build, and confirm the Jira failure reproduces.
2. Apply this patch, rebuild, confirm the binary actually relinked,
re-run.
3. Confirm the parent's own exit code is 4 so ctest classifies it as
skipped.
4. Negative test: substitute the child with stubs returning each Catch2
exit
   code and confirm only 4 is treated as a skip.

## Test Result

**Baseline** on pristine develop source, matching the Jira exactly:

```
hipSquareGenericTarget.cc:101: FAILED:
  REQUIRE( std::system(cmd) == 0 )
with expansion:
  1024 (0x400) == 0

50% tests passed, 2 tests failed out of 4
  4 - Unit_test_generic_target_only_in_regular_fatbin (Failed)
  6 - Unit_test_generic_target_only_in_compressed_fatbin (Failed)
```

Child exits 4; parent exits 42.

**With this change:**

```
1/4 Test #3: Unit_test_generic_target_in_regular_fatbin ...........***Skipped
2/4 Test #4: Unit_test_generic_target_only_in_regular_fatbin ......***Skipped
3/4 Test #5: Unit_test_generic_target_in_compressed_fatbin ........***Skipped
4/4 Test #6: Unit_test_generic_target_only_in_compressed_fatbin ...***Skipped

100% tests passed, 0 tests failed out of 4
```

```
hipSquareGenericTarget.cc:114: SKIPPED:
  child skipped: generic target unsupported.
```

Parent exit code is now 4, which ctest maps to `***Skipped`.

**Negative test** — child replaced with stubs returning each Catch2 exit
code:

| child exit | meaning | parent exit | verdict |
|---|---|---|---|
| 0 | pass | 0 | PASS |
| 1 | `UnspecifiedErrorExitCode` | 42 | FAIL |
| 2 | `NoTestsRunExitCode` | 42 | FAIL |
| 4 | `AllTestsSkippedExitCode` | 4 | SKIP |
| 42 | `TestFailureExitCode` | 42 | FAIL |

Only an all-skipped child is converted to a skip; every genuine failure
still
fails the parent. No new warnings under `-Wall -Wextra`.

## Submission Checklist

- [x] Look over the contributing guidelines at
https://github.com/ROCm/rocm-systems/blob/develop/CONTRIBUTING.md.
xuchen-amd added a commit that referenced this pull request Sep 14, 2026
- Replace PNG screenshots with CLI text output (#1)
- Remove analyze-time CSV artifacts, compress pmc_perf.csv.gz (#3, #4)
- Add profiling_config.yaml to workload fixture for auto-detect
- Add membw_analysis to docs index page (#6)
- Remove pmc_perf.csv (uncompressed) in favor of pmc_perf.csv.gz

Co-Authored-By: Claude <noreply@anthropic.com>
saleelk added a commit that referenced this pull request Sep 15, 2026
…11580)

## Motivation

`ihipLaunchKernel` could be made to dereference an arbitrary host
pointer as an `amd::Kernel*`, killing the process with `SIGSEGV` inside
`hipLaunchKernel` instead of returning an error.

`StatCO::GetFunc()` returns `hipErrorInvalidSymbol` for any pointer that
is not in the registered function table. `ihipLaunchKernel` took that as
a cue to `reinterpret_cast` the pointer to `hipFunction_t`, and
`hip::asKernel()` is a raw `reinterpret_cast<amd::Kernel*>`, so
`ihipLaunchKernel_validate()` goes on to read the caller's pointer as a
C++ object. The `if (!kernel)` check there does not help, since non-null
garbage passes it.

The same cast has crashed before through a different error code: kpack
fat binaries with `ROCM_KPACK_ENABLED=OFF` made `GetFunc()` fail with
`hipErrorNotSupported`, which was fixed by propagating that error in
e14bd06 (#10150). `hipErrorInvalidSymbol` was the last code still
reaching the cast.

## Technical Details

The cast cannot simply be dropped. A caller may legitimately pass a
handle from `hipModuleGetFunction` or `hipGetFuncBySymbol` straight into
`hipLaunchKernel`, and that only works because of it — both confirmed
against an unpatched build. So the cast stays, but is taken only for a
pointer the runtime actually produced; anything else returns
`hipErrorInvalidDeviceFunction`.

Recognising a kernel handle needed a registry. `PlatformState` now keeps
one in a set, populated in `Function::BuildKernel()` and cleared in
`~Function()`. `BuildKernel()` is the only place an `amd::Kernel` is
constructed, so the set covers every handle the runtime hands out, from
statically registered fat binaries and dynamically loaded modules alike.

This replaces `IsValidDynFunc()`, which scanned every function of every
loaded module on each call and only ever matched dynamic modules. The
new lookup is O(1), and is renamed `IsValidFuncHandle()` because it now
answers for static handles too. `DynCO::isValidDynFunc()` and
`Function::IsValidDynFunc()` become unused and are removed.

The set takes its own leaf mutex rather than `PlatformState::lock_`.
Kernels are built with `sclock_`, `dclock_` or `FatBinaryLock` already
held, and other paths run `lock_ -> sclock_`, so reusing `lock_` here
would invert that order.

Two incidental improvements fall out:

- `Function::IsValidDynFunc()` compared only against
`dFunc_[ihipGetDevice()]`, while `ihipLaunchKernel` resolves against the
stream's device, so a valid handle could be rejected when the two
differed. A flat set has no such mismatch.
- A handle used after `hipModuleUnload` is now rejected instead of
dereferencing the released kernel.

## Issue Tracking

GitHub issue: #11563

This covers that issue's request that "HIP validates this condition and
returns an error rather than dereferencing invalid state in
`hipLaunchKernel`". It does **not** explain the reporter's gfx950 VF
`hipErrorInvalidValue` / `hipErrorOutOfMemory`: their reproducer passes
on gfx942 with ROCm 10.1, including with `TMPDIR` on a full `/dev/shm`,
and neither HIP nor ROCr reads `TMPDIR`. Those errors look like device
state specific to that VF and want separate investigation.

## Test Plan

gfx942 (MI300X). Every case was run against a baseline library built
from the same tree, so this change is the only difference:

1. `hipLaunchKernel` with an unregistered host function address, with a
zeroed heap buffer, and with an unmapped address.
2. A `hipModuleGetFunction` handle passed into `hipLaunchKernel`.
3. A `hipGetFuncBySymbol` handle passed into `hipLaunchKernel`.
4. `hipLaunchKernel` with a module's handle after `hipModuleUnload`.

## Test Result

| case | before | after |
| --- | --- | --- |
| unregistered host function address | SIGSEGV |
`hipErrorInvalidDeviceFunction` |
| zeroed heap buffer | SIGSEGV | `hipErrorInvalidDeviceFunction` |
| unmapped address | SIGSEGV | `hipErrorInvalidDeviceFunction` |
| `hipModuleGetFunction` handle | launches, correct result | unchanged |
| `hipGetFuncBySymbol` handle | launches, correct result | unchanged |
| after `hipModuleUnload` | `hipErrorInvalidDeviceOrdinal`, released
kernel dereferenced | `hipErrorInvalidDeviceFunction` |

For reference, the crash signature this removes, with the host stub
address reaching `getDeviceKernel` as `this`:

```
#0 amd::Symbol::getDeviceKernel     hashtable.h:1954   <-- deviceKernels_.find() faults
#1 amd::Kernel::getDeviceKernel     rocclr/platform/kernel.cpp:35
#2 hip::ihipLaunchKernel_validate   hipamd/src/hip_module.cpp:356
#3 hip::ihipModuleLaunchKernel      hipamd/src/hip_module.cpp:511
#4 hip::ihipLaunchKernel            hipamd/src/hip_platform.cpp
#5 hip::hipLaunchKernel_common      hipamd/src/hip_module.cpp:903
#6 hipLaunchKernel
```

## Submission Checklist

- [x] Look over the contributing guidelines at
https://github.com/ROCm/rocm-systems/blob/develop/CONTRIBUTING.md.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants