Skip to content

add loongarch64 build support #1936

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

amazingfate
Copy link

Initial work is done at https://github.com/FanFansfan/media-driver/tree/loongarch by @FanFansfan.

I use libsimde-dev on system for SIMDE headers.

This pr depends on intel/gmmlib#133 for build dep.

Tested with Intel Arc B580 on Loongson 3A6000 desktop platform. Vaapi decoding/encoding is working fine.

-DINTEL_NOT_PUBLIC
-g
-Wno-overloaded-virtual
)
Copy link
Contributor

Choose a reason for hiding this comment

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

# Disable x86-only legacy iGPUs
# DG1, DG2 and BMG (possibly) dGPUs rely on GEN12
-DGEN8=OFF
-DGEN9=OFF
-DGEN11=OFF

This will trim away code that will never be reached on non-x86 platforms to save space. Theoretically it is also possible to disable the GEN12+ iGPUs. However, this would increase the maintenance burden.

The same if true for media_softlet/cmake/linux/media_compile_flags_linux.cmake.

Copy link
Author

Choose a reason for hiding this comment

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

I'm thinking of reusing the common flags for all architectures and then add architecture specific flags in conditions, so we don't have the long same code.

If GEN8, GEN9 and GEN11 are x86 only, it should be fine to disable them on other platforms.

Copy link
Contributor

Choose a reason for hiding this comment

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

Yes. Apply common build options first, then conditionally add platform-specific options.

Intel has never released iGPU for non-x86 platforms. Now iHD*.so has swelled to 40 MB+ on x86, disabling irrelevant platforms (especially media kernels) on non-x86 should shrink it a lot.

Copy link
Contributor

Choose a reason for hiding this comment

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

it is loongarch CPU and Intel Arc , so suppose you could disable all integrate card support.
about the patch itself:
no need to check whether it is loongarch, because if host is arm or other arch it also need some changes. , just check whether SSE instincts exists? there are another similar PR
#1446 to enable ARC on non-x86 platforms

from another perspective , I am wondering whether ARC still use cmfastcopy function .

Copy link
Author

Choose a reason for hiding this comment

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

@XinfengZhang anothe PR of gmmlib is trying to import sse support to riscv: intel/gmmlib#131. And the supported arm64 gmmlib is using sse2neon for sse2.

Copy link
Author

Choose a reason for hiding this comment

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

@nyanmisaka I find that add flags like -DGEN8=OFF won't work, because MEDIA_COMPILER_FLAGS_COMMON defines flags used by compiler, not cmake. We should add it when running cmake command.

Copy link
Contributor

Choose a reason for hiding this comment

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

@nyanmisaka I find that add flags like -DGEN8=OFF won't work, because MEDIA_COMPILER_FLAGS_COMMON defines flags used by compiler, not cmake. We should add it when running cmake command.

You seem to be right. But it is unlikely that downstream package maintainers will be aware of these undocumented flags and make small builds.

If possible, it might be better to let CMAKE_SYSTEM_PROCESSOR take effect in media_gen_flags_linux.cmake.

wszqkzqk added a commit to lcpu-club/loongarch-packages that referenced this pull request Jul 7, 2025
* Add LoongArch64 build support patch from
intel/media-driver#1936
* Add simde as a makedepend
* Set SIMDE_NO_NATIVE flag in CFLAGS/CXXFLAGS to avoid `error:
conflicting declaration ‘typedef simde__m128i __m128i’`

Signed-off-by: Zhou Qiankang <[email protected]>
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.

4 participants