Skip to content

camx: revision update for Lemans, Talos,Kodiak - #2961

Merged
Dmitry Baryshkov (lumag) merged 6 commits into
qualcomm-linux:masterfrom
gkhose-qipl:camx_downstream
Sep 9, 2026
Merged

camx: revision update for Lemans, Talos,Kodiak#2961
Dmitry Baryshkov (lumag) merged 6 commits into
qualcomm-linux:masterfrom
gkhose-qipl:camx_downstream

Conversation

@gkhose-qipl

Copy link
Copy Markdown
Contributor

camxcommon-headers: Update to the 1.0.13 revision.

  • Source/header mismatch causes CamX compilation failure.
  • Update the headers tar to align with the sources.

camxlib-kodiak: Update to the 1.0.27 revision

  • Correct defaultmctf type from INT to BYTE.
  • Updated runtime feature library checks for EIS and LDC static capability publishing.
  • Enabled dual VC mode support for BayerFusionStaticSHDR.
  • Replaced static OpenCL linkage with dynamic loading in BayerFusionStaticSHDR and YUVFusionSHDR.
  • Updated iwarp feature to dynamically load OpenCL/OpenGL libraries at runtime.
  • Stop filtering OpenCL/OpenGL-related binaries based on DISTRO_FEATURES. These components are now loaded dynamically via dlopen(), allowing optional runtime availability without build-time dependency requirements.

camxlib-lemans: Update to the 1.0.30 revision

  • Stop filtering OpenCL/OpenGL-related binaries based on DISTRO_FEATURES. These components are now loaded dynamically via dlopen(), allowing optional runtime availability without build-time dependency requirements.

camxlib-talos: Update to the 1.0.30 revision

  • Fixed stride handling issues in the HIDRX library.
  • Replaced static OpenCL linkage with dynamic library loading in the HIDRX library.
  • Added static capability publishing support for EIS and LDC features.
  • Enabled OX03F10 GMSL RAW10 linear mode on IQ615EVK Talos (1920x1536 @ 30fps, 2-lane, 512 Mbps), including sensor pipeline updates, output resolution fixes, embedded/stats data removal, and mirror mode disablement for the MAX96717/MAX96724 GMSL setup.
  • Updated iwarp feature to dynamically load OpenCL/OpenGL libraries at runtime.
  • Stop filtering OpenCL/OpenGL-related binaries based on DISTRO_FEATURES. These components are now loaded dynamically via dlopen(), allowing optional runtime availability without build-time dependency requirements.

@ricardosalveti

Copy link
Copy Markdown
Contributor

While we don't need opengl in DEPENDS anymore, it would probably make sense to have them as runtime recommendation (we have for virtual-opencl-icd, but while there is virtual-egl-icd in qcom-adreno, I don't think mesa has it, so it would have to be added there first).

What about hamoa? Header was updated, but hamoa was not.

@github-actions

github-actions Bot commented Aug 18, 2026

Copy link
Copy Markdown

Test run workflow

Test jobs for commit b9db446

qcom-distro
Pass: 313 | Fail: 2 | Total: 357
qcom-distro_linux-qcom-6.18
Pass: 231 | Fail: 1 | Total: 259
nodistro
Pass: 10 | Fail: 0 | Total: 10

@test-reporting-app

test-reporting-app Bot commented Aug 18, 2026

Copy link
Copy Markdown

Test Results

  119 files  +   38    715 suites  +289   8h 4m 8s ⏱️ - 3h 14m 12s
  171 tests  -     6    167 ✅ +   31   2 💤  -  2  2 ❌  - 35 
4 605 runs  +1 861  4 533 ✅ +1 888  69 💤 +32  3 ❌  - 59 

For more details on these failures, see this check.

Results for commit b9db446. ± Comparison against base commit d5f0f44.

This pull request removes 6 tests.
lava ‑ auto-login-action
lava ‑ download-retry
lava ‑ lava-test-retry
lava ‑ lava-test-shell
lava ‑ minimal-boot
lava ‑ qdl-deploy

♻️ This comment has been updated with latest results.

${libdir}/camx/${PLATFORM}/libmctf_cl_program.bin \
"
FILES:${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'opencl', '${CAMX_OPENCL_FILES}', '', d)}"
FILES:${PN} += "${libdir}/camx/${PLATFORM}/libmctf_cl_program.bin"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What about ${libdir}/camx/${PLATFORM}/*.cl?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What about ${libdir}/camx/${PLATFORM}/*.cl?

.cl files are not created now.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it mentioned in the commit message?

Comment thread dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-talos_1.0.30.bb Outdated
@gkhose-qipl

Copy link
Copy Markdown
Contributor Author

While we don't need opengl in DEPENDS anymore, it would probably make sense to have them as runtime recommendation (we have for virtual-opencl-icd, but while there is virtual-egl-icd in qcom-adreno, I don't think mesa has it, so it would have to be added there first).

What about hamoa? Header was updated, but hamoa was not.

hamoa will open a follow-up PR. We saw a regression for hamoa, so it wasn’t included in this PR. We’re prioritizing the fix and working to bring hamoa back to tip.

@qcomlnxci

Copy link
Copy Markdown

Test Coral run workflow

Test jobs for commit fdab6a6

  • qcomdistro: multimedia image
    Pass: 9 | Fail: 0 | Total: 9
  • qcomdistro: multimedia image-prop
    Pass: 26 | Fail: 0 | Total: 26

@qcomlnxci

Copy link
Copy Markdown

Test Coral run workflow

Test jobs for commit 208292c

  • qcomdistro: multimedia image
    Pass: 9 | Fail: 0 | Total: 9
  • qcomdistro: multimedia image-prop
    Pass: 44 | Fail: 0 | Total: 44

@qcomlnxci

Copy link
Copy Markdown

Test Coral run workflow

Test jobs for commit df83026

  • qcomdistro: multimedia image-prop
    Pass: 44 | Fail: 0 | Total: 44
  • qcomdistro: multimedia image
    Pass: 9 | Fail: 0 | Total: 9

@lumag Dmitry Baryshkov (lumag) left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@gkhose-qipl

Ganesh Khose (gkhose-qipl) commented Aug 25, 2026

Copy link
Copy Markdown
Contributor Author

Once e2e testing is complete, I’ll open it.
I’ve updated the PR with the hamoa regression fix and a few other changes. I’ll update the PR description and commit after e2e testing is done.
Dmitry Baryshkov (@lumag) / Ricardo Salveti (@ricardosalveti) Could you please review and share your comments? We’ve installed nativehal in the libexe path based on the comments for the Debian PR, and also changed the name of the nhx.sh script.

@lumag Dmitry Baryshkov (lumag) left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doesn't build:

ERROR: camxlib-lemans-1.0.38-r0 do_package: QA Issue: camxlib-lemans: Files/directories were installed but not shipped in any package:
/usr/bin
/usr/bin/nhx.sh
Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
camxlib-lemans: 2 installed and not shipped files. [installed-vs-shipped]

@gkhose-qipl

Copy link
Copy Markdown
Contributor Author

Doesn't build:

ERROR: camxlib-lemans-1.0.38-r0 do_package: QA Issue: camxlib-lemans: Files/directories were installed but not shipped in any package:
/usr/bin
/usr/bin/nhx.sh
Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
camxlib-lemans: 2 installed and not shipped files. [installed-vs-shipped]

Yes, we’ll validate it today, request early comments, and moved the PR to draft since it was not validated.

@lumag

Copy link
Copy Markdown
Contributor

Still failing to build:

Error: Transaction test error:
  file /usr/share/qcom/x1p42100/Qualcomm/Purwa-IoT-EVK/dsp/cdsp conflicts between attempted installs of camxlib-hamoa-skel-1.0.38-r0.armv8_6a and hexagon-dsp-binaries-qcom-purwa-iot-evk-cdsp-20260810-r0.noarch
  file /usr/share/qcom/x1p42100/Qualcomm/Purwa-IoT-EVK/dsp/cdsp/libhme_dsp_skel.so conflicts between attempted installs of camxlib-hamoa-skel-1.0.38-r0.armv8_6a and camxlib-hamoa-skel-1.0.38-r0.armv8_6a

@gkhose-qipl

Copy link
Copy Markdown
Contributor Author

I'm sorry, but I'd like to ask you to write commit messages. For example:

camxlib-hamoa: Update to the 1.0.41 revision

  • Added basic camera tuning support for IMX577.
  • Updated IMX577 tuning project to align with the latest schema.
  • Migrated all IMX688 sensor mode tuning files to the new schema.
  • Add com.qti.stats.hafoverride.so library for AF support.
  • The version wasn’t in line because the tar and recipe version were
    different,so it is hardcoded.

Which of these lines represent changes in the camx binaries and which describe the changes in the recipe? The contributing guidelines explicitly asks to write commit messages as an English text rather than a bullet list. The bullet list is fine if you explicitly state that it's a changelog of the downstream binaries / source /repo / etc.

Last, but not least, "The version wasn’t in line because the tar and recipe version were different,so it is hardcoded.". What does it mean? Which versions? Why are they not in line? Why is there no camxtest 1.0.41? Is the 1.0.38 binary released at the same PBT_BUILD_DATE? What if you later bump camxlib-lemans (e.g.) only. That recipe will have different build date. Would it still expect to find camxtest 1.0.38 in its dir?

updated, from next release camxtest and camxlib version will be inline.

Update the headers tar to align with the sources.

Signed-off-by: Ganesh Khose <gkhose@qti.qualcomm.com>
- Correct defaultmctf type from INT to BYTE.
- Updated runtime feature library checks for EIS and LDC static
  capability publishing.
- Enabled dual VC mode support for BayerFusionStaticSHDR.
- Replaced static OpenCL linkage with dynamic loading in
  BayerFusionStaticSHDR and YUVFusionSHDR.
- Updated iwarp feature to dynamically load OpenCL/OpenGL libraries at runtime.
- 'nativehaltest' moved from /usr/bin/camx/<soc>/ to /usr/libexec/camx-<soc>/.
- The OpenCL source (.cl) files are now converted into .h header files.
  Therefore, explicit installation of the .cl files is no longer
  required.

Signed-off-by: Ganesh Khose <gkhose@qti.qualcomm.com>
- The OpenCL source (.cl) files are now converted into .h header files.
  Therefore, explicit installation of the .cl files is no longer
  required.
- 'nativehaltest' moved from /usr/bin/camx/<soc>/ to /usr/libexec/camx-<soc>/.

Signed-off-by: Ganesh Khose <gkhose@qti.qualcomm.com>
- Fixed stride handling issues in the HIDRX library.
- Replaced static OpenCL linkage with dynamic library loading in the
  HIDRX library.
- Added static capability publishing support for EIS and LDC features.
- Enabled OX03F10 GMSL RAW10 linear mode on IQ615EVK Talos (1920x1536 @
  30fps, 2-lane, 512 Mbps), including sensor pipeline updates, output
  resolution fixes, embedded/stats data removal, and mirror mode
  disablement for the MAX96717/MAX96724 GMSL setup.
- Updated iwarp feature to dynamically load OpenCL/OpenGL libraries at runtime.

Signed-off-by: Ganesh Khose <gkhose@qti.qualcomm.com>
@gkhose-qipl
Ganesh Khose (gkhose-qipl) force-pushed the camx_downstream branch 3 times, most recently from 05ce19f to 47a4e38 Compare September 3, 2026 02:09
Update camxlib-hamoa to the 1.0.41 release. This release adds IMX577
camera tuning support, updates IMX577 tuning data to the latest schema,
and migrates IMX688 tuning files to the new schema. It also includes
the com.qti.stats.hafoverride.so library required for AF support.

The recipe update Add support for packaging DSP skeleton artifacts in a
dedicated ${PN}-skel package, install the required runtime files under
/usr/share/qcom, and add the corresponding package metadata and QA
overrides for the prebuilt DSP binaries.additionally keeps the camxtest
version explicitly pinned to 1.0.38 because a corresponding camxtest
1.0.41 release is not available. Without this override, the versioned
path/package lookup would be incorrect.

Signed-off-by: Ganesh Khose <gkhose@qti.qualcomm.com>
'nativehaltest' moved from /usr/bin/camx/<soc>/ to
/usr/libexec/camx-<soc>/, since /usr/bin should hold only flat,
directly user-invocable executables, not per-SoC subdirectories.

The qcom_nhx file context still pointed at the old path, so the
binary no longer picked up the qcom_nhx_exec_t label, and
domtrans_pattern(qcom_nhx_launcher_t, qcom_nhx_exec_t, qcom_nhx_t)
never matched — nativehaltest stayed in the launcher domain and
would hit AVC denials on qcom_nhx_t's DMA, FastRPC, and V4L access.

Update the file context to track the new path:
- /usr/bin/camx/.*/nativehaltest ->
  /usr/libexec/camx-[^/]*/nativehaltest

No policy rules are changed.

Signed-off-by: Rohit Biradar <rohibira@qti.qualcomm.com>
Signed-off-by: Ganesh Khose <gkhose@qti.qualcomm.com>
@gkhose-qipl

Copy link
Copy Markdown
Contributor Author

need to check why different SHA in CLI and CI logs for same path
looks like BitBake is not hashing the same content that Artifactory is reporting

CI job:- https://github.com/qualcomm-linux/meta-qcom/actions/runs/33702349185/job/100484415212?pr=2961

curl -I --silent "https://qartifactory-edge.qualcomm.com/artifactory/qsc_releases/software/chip/component/camx.qclinux.0.0/260826/prebuilt_yocto_master/camxtest-hamoa_1.0.38_armv8-2a.tar.gz" | grep -i X-Checksum-Sha256
X-Checksum-Sha256: ccf1b6430bb494b34a0db616c7f1f7940fed925531c76f1a8ed2a7211381609c

same tarball
ERROR: camxlib-hamoa-1.0.41-r0 do_fetch: Fetcher failure for URL: 'https://qartifactory-edge.qualcomm.com/artifactory/qsc_releases/software/chip/component/camx.qclinux.0.0/260826/prebuilt_yocto_master/camxtest-hamoa_1.0.38_armv8-2a.tar.gz;name=camxtest'. Checksum mismatch!
File: '/downloads/camxtest-hamoa_1.0.38_armv8-2a.tar.gz.tmp' has sha256 checksum '67648c815776daad0cd9dfa58a2dda5884b3d61ef139cf2e21a4348478c93772' when 'ccf1b6430bb494b34a0db616c7f1f7940fed925531c76f1a8ed2a7211381609c' was expected

@gkhose-qipl

Copy link
Copy Markdown
Contributor Author

need to check why different SHA in CLI and CI logs for same path looks like BitBake is not hashing the same content that Artifactory is reporting

CI job:- https://github.com/qualcomm-linux/meta-qcom/actions/runs/33702349185/job/100484415212?pr=2961

curl -I --silent "https://qartifactory-edge.qualcomm.com/artifactory/qsc_releases/software/chip/component/camx.qclinux.0.0/260826/prebuilt_yocto_master/camxtest-hamoa_1.0.38_armv8-2a.tar.gz" | grep -i X-Checksum-Sha256 X-Checksum-Sha256: ccf1b6430bb494b34a0db616c7f1f7940fed925531c76f1a8ed2a7211381609c

same tarball ERROR: camxlib-hamoa-1.0.41-r0 do_fetch: Fetcher failure for URL: 'https://qartifactory-edge.qualcomm.com/artifactory/qsc_releases/software/chip/component/camx.qclinux.0.0/260826/prebuilt_yocto_master/camxtest-hamoa_1.0.38_armv8-2a.tar.gz;name=camxtest'. Checksum mismatch! File: '/downloads/camxtest-hamoa_1.0.38_armv8-2a.tar.gz.tmp' has sha256 checksum '67648c815776daad0cd9dfa58a2dda5884b3d61ef139cf2e21a4348478c93772' when 'ccf1b6430bb494b34a0db616c7f1f7940fed925531c76f1a8ed2a7211381609c' was expected

Ricardo Salveti (@ricardosalveti) / Dmitry Baryshkov (@lumag) ,
The Artifactory checksum matches the recipe, so the mismatch may be due to BitBake downloading different content than Artifactory is reporting, or a cached/stale download. can we try clearing the download cache and re-fetching the artifact.

@gkhose-qipl

Copy link
Copy Markdown
Contributor Author

Can recent PR merged cause issue?
#3054

@quaresmajose

Jose Quaresma (quaresmajose) commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Can recent PR merged cause issue? #3054

I don't think so! It's not happening anywhere else.

However, I verified that the artifactory value is what is expected:

wget https://qartifactory-edge.qualcomm.com/artifactory/qsc_releases/software/chip/component/camx.qclinux.0.0/260826/prebuilt_yocto_master/camxtest-hamoa_1.0.38_armv8-2a.tar.gz;name=camxtest
sha256sum camxtest-hamoa_1.0.38_armv8-2a.tar.gz
# ccf1b6430bb494b34a0db616c7f1f7940fed925531c76f1a8ed2a7211381609c  camxtest-hamoa_1.0.38_armv8-2a.tar.gz

@quaresmajose

Copy link
Copy Markdown
Contributor

Can recent PR merged cause issue? #3054

I don't think so! It's not happening anywhere else.

However, I verified that the artifactory value is what is expected:

wget https://qartifactory-edge.qualcomm.com/artifactory/qsc_releases/software/chip/component/camx.qclinux.0.0/260826/prebuilt_yocto_master/camxtest-hamoa_1.0.38_armv8-2a.tar.gz;name=camxtest
sha256sum camxtest-hamoa_1.0.38_armv8-2a.tar.gz
# ccf1b6430bb494b34a0db616c7f1f7940fed925531c76f1a8ed2a7211381609c  camxtest-hamoa_1.0.38_armv8-2a.tar.gz

After using a local DL_DIR in #3072 and update the shared download cache everything is good again. Something corrupted the downalod files and it even makes some sense that it might have been #3054 as this is the last change touching this area.

In my local tests, I couldn't replicate the corrupted sha256sum issue that was found in the CI of the current PR.

The build is running again.

@gkhose-qipl

Copy link
Copy Markdown
Contributor Author

Ricardo Salveti (@ricardosalveti) / Dmitry Baryshkov (@lumag) ,
can you please review

@qcomlnxci

Copy link
Copy Markdown

Test Coral run workflow

Test jobs for commit b9db446

  • qcomdistro: multimedia image-prop
    Pass: 36 | Fail: 0 | Total: 36
  • qcomdistro: multimedia image
    Pass: 9 | Fail: 0 | Total: 9

@gkhose-qipl

Copy link
Copy Markdown
Contributor Author

Dmitry Baryshkov (@lumag) ,
Could you please add the backport label and merge the PR? The CI test failure is not caused by this PR.

@gkhose-qipl

Copy link
Copy Markdown
Contributor Author

@lumag

Copy link
Copy Markdown
Contributor

3 known test failures

@lumag
Dmitry Baryshkov (lumag) merged commit ef87f90 into qualcomm-linux:master Sep 9, 2026
275 of 294 checks passed
@quic-yocto-ci

Copy link
Copy Markdown
Contributor

Successfully created backport PR for wrynose:

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.