Skip to content

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

Open
Ganesh Khose (gkhose-qipl) wants to merge 6 commits into
qualcomm-linux:masterfrom
gkhose-qipl:camx_downstream
Open

camx: revision update for Lemans, Talos,Kodiak#2961
Ganesh Khose (gkhose-qipl) wants to merge 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 abffebc

qcom-distro
Pass: 292 | Fail: 28 | Total: 342
nodistro
Pass: 9 | Fail: 1 | Total: 10
qcom-distro_linux-qcom-6.18
Pass: 216 | Fail: 14 | Total: 259

@test-reporting-app

test-reporting-app Bot commented Aug 18, 2026

Copy link
Copy Markdown

Test Results

  117 files  +  3    698 suites  +28   16h 25m 23s ⏱️ + 5h 2m 42s
  161 tests  -   1    134 ✅  -   9   0 💤 ± 0  27 ❌ + 8 
4 488 runs  +171  4 348 ✅ +146  51 💤  - 13  89 ❌ +38 

For more details on these failures, see this check.

Results for commit abffebc. ± Comparison against base commit cf4acfb.

This pull request removes 1 test.
lava ‑ 3_cdsp_[

♻️ This comment has been updated with latest results.

@@ -42,19 +37,6 @@ do_install:append() {

cp -r ${S}/usr/lib/* ${D}${libdir}

# Remove OpenCL-dependent libraries when opencl is not enabled.

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.

Why? What happened?

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.

Why? What happened?

Because it was a compile-time dependency, it had to be compiled, and that compilation was failing. We used to remove libs/binaries if opencl/opengl was not available, but now that we are using dlopen, we can package them every time.

${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?

SRC_URI[chicdk.sha256sum] = "e2c276f278ccdb38cb1ccea120e7a84417b671760e566d5234c45933abee12a7"
SRC_URI[camxcommon.sha256sum] = "e048dd98f96807ff34dd54651b8ba045a057d6c1d0aa49cfc658ff256f79441f"

RRECOMMENDS:${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'opencl', 'virtual-opencl-icd', '', d)}"

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.

But not for the other targets?

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.

But not for the other targets?

It was present in the other targets; it was only missing in Talos.

@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

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

Copy link
Copy Markdown
Contributor Author

cdsp

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

was not able to repo with with below steps. but updated patch to only copy hamoa
kas shell --skip repos_checkout --skip repos_apply_patches meta-qcom/ci/iq-x7181-evk.yml:meta-qcom/ci/qcom-distro.yml:meta-qcom/ci/performance.yml
bitbake qcom-multimedia-proprietary-image

@lumag

Copy link
Copy Markdown
Contributor

was not able to repo with with below steps

The build logs contained exact description of the failing setup. Have you tried reproducing it?

@gkhose-qipl

Copy link
Copy Markdown
Contributor Author

was not able to repo with with below steps

The build logs contained exact description of the failing setup. Have you tried reproducing it?

I didn’t get time to check yesterday since I was OOO, but I will review it today and provide an update. A similar issue was seen earlier with eSDK generation, so I updated the patch based on that observation, and the CI job indicates it worked.

@qcomlnxci

Copy link
Copy Markdown

Test Coral run workflow

Test jobs for commit 318b4e4

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

@vjetty-qcom

Copy link
Copy Markdown

Observing camera regression on RB8_Prop

[Info] Test Summary:

Total Tests: 3
Passed: 1
Failed: 2
Skipped: 0
Failed Tests:

DUMP_DIR does not exist: /var/cache/camera/nativehaltest
Camera_NHX FAIL NHX reported FAILED=1 no dumps detected dump checksum validation failed

Axiom Job : https://axiom.qualcomm.com/#/reports/job/38773267

@lumag

Copy link
Copy Markdown
Contributor

Ok. Note, this is still marked as a draft

@gkhose-qipl
Ganesh Khose (gkhose-qipl) marked this pull request as ready for review August 28, 2026 09:51
@lumag

Copy link
Copy Markdown
Contributor

ERROR: Nothing RPROVIDES 'camx-hamoa' (but /work/build/../meta-qcom-distro/recipes-products/images/qcom-multimedia-proprietary-image.bb, /work/build/../meta-qcom-distro/recipes-products/images/qcom-container-orchestration-image.bb RDEPENDS on or otherwise requires it)

@gkhose-qipl

Copy link
Copy Markdown
Contributor Author

ERROR: Nothing RPROVIDES 'camx-hamoa' (but /work/build/../meta-qcom-distro/recipes-products/images/qcom-multimedia-proprietary-image.bb, /work/build/../meta-qcom-distro/recipes-products/images/qcom-container-orchestration-image.bb RDEPENDS on or otherwise requires it)

Sorry, my local changes hadn’t been pushed, and since I pushed with -u, the new version file wasn’t updated.

@qcomlnxci

Copy link
Copy Markdown

Test Coral run workflow

Test jobs for commit abffebc

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

@gkhose-qipl

Copy link
Copy Markdown
Contributor Author

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

https://qartifactory-edge.qualcomm.com/artifactory/qsc_releases/software/chip/component/camx.qclinux.0.0/${PBT_BUILD_DATE}/prebuilt_yocto_${PBT_BRANCH}/chicdk-${PLATFORM}_${PV}_armv8-2a.tar.gz;name=chicdk \
https://qartifactory-edge.qualcomm.com/artifactory/qsc_releases/software/chip/component/camx.qclinux.0.0/${PBT_BUILD_DATE}/prebuilt_yocto_${PBT_BRANCH}/camxcommon-${PLATFORM}_${PV}_armv8-2a.tar.gz;name=camxcommon \
https://qartifactory-edge.qualcomm.com/artifactory/qsc_releases/software/chip/component/camx.qclinux.0.0/${PBT_BUILD_DATE}/prebuilt_yocto_${PBT_BRANCH}/camxtest-${PLATFORM}_${PV}_armv8-2a.tar.gz;name=camxtest \
https://qartifactory-edge.qualcomm.com/artifactory/qsc_releases/software/chip/component/camx.qclinux.0.0/${PBT_BUILD_DATE}/prebuilt_yocto_${PBT_BRANCH}/camxtest-${PLATFORM}_1.0.38_armv8-2a.tar.gz;name=camxtest \

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.

Why are you changing it here? It should still be ${PV}.

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.

Why are you changing it here? It should still be ${PV}.

The version wasn’t in line because the tar and recipe version were different. I’m working on making the version consistent for camxtest from the next release onward, so it is hardcoded.

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 explained in the commit message?

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.

updated commit message

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>
- 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.

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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants