Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions app/boards/intel_adsp_ace30_ptl.conf
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ CONFIG_FORMAT_CONVERT_HIFI3=n
CONFIG_COMP_GOOGLE_RTC_AUDIO_PROCESSING=m
CONFIG_GOOGLE_RTC_AUDIO_PROCESSING_MOCK=y
CONFIG_COMP_STFT_PROCESS=y
CONFIG_COMP_STEAMAUDIO=m

# SOF / infrastructure
CONFIG_KCPS_DYNAMIC_CLOCK_CONTROL=n
Expand Down
3 changes: 3 additions & 0 deletions src/audio/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,9 @@ if(NOT CONFIG_COMP_MODULE_SHARED_LIBRARY_BUILD)
if(CONFIG_COMP_SRC)
add_subdirectory(src)
endif()
if(CONFIG_COMP_STEAMAUDIO)
add_subdirectory(steamaudio)
endif()
if(CONFIG_COMP_STFT_PROCESS)
add_subdirectory(stft_process)
endif()
Expand Down
1 change: 1 addition & 0 deletions src/audio/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,7 @@ rsource "selector/Kconfig"
rsource "smart_amp/Kconfig"
rsource "sound_dose/Kconfig"
rsource "src/Kconfig"
rsource "steamaudio/Kconfig"
rsource "stft_process/Kconfig"
rsource "tdfb/Kconfig"
rsource "template/Kconfig"
Expand Down
19 changes: 19 additions & 0 deletions src/audio/steamaudio/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# SPDX-License-Identifier: Apache-2.0
#
# Copyright (c) 2017-2024 Valve Corporation. All rights reserved.
# Copyright (c) 2026 Intel Corporation. All rights reserved.

if(CONFIG_COMP_STEAMAUDIO STREQUAL "m" AND DEFINED CONFIG_LLEXT)
add_subdirectory(llext ${PROJECT_BINARY_DIR}/steamaudio_llext)
add_dependencies(app steamaudio)
else()
add_local_sources(sof steamaudio.c)
add_local_sources(sof steamaudio-generic.c)
add_local_sources(sof steamaudio_hifi4.c)
add_local_sources(sof steamaudio_hifi5.c)
add_local_sources(sof steamaudio_bvh.c)

if(CONFIG_IPC_MAJOR_4)
add_local_sources(sof steamaudio-ipc4.c)
endif()
Comment on lines +16 to +18
endif()
22 changes: 22 additions & 0 deletions src/audio/steamaudio/Kconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# SPDX-License-Identifier: Apache-2.0
#
# Copyright (c) 2017-2024 Valve Corporation. All rights reserved.
# Copyright (c) 2026 Intel Corporation. All rights reserved.

config COMP_STEAMAUDIO
tristate "Steam Audio spatial offload component"
default m if LIBRARY_DEFAULT_MODULAR
depends on IPC_MAJOR_4
help
Select for Steam Audio spatial audio offload component.
Provides 3D binaural HRTF spatialization, direct sound modeling,
3-band biquad IIR filtering, 8-channel Householder Feedback Delay
Network (FDN) reverberation, 1st-order Ambisonics rotation/decoding,
and on-chip DSP BVH ray tracing for real-time room acoustic simulation.

if COMP_STEAMAUDIO

rsource "Kconfig.simd"

endif # COMP_STEAMAUDIO

37 changes: 37 additions & 0 deletions src/audio/steamaudio/Kconfig.simd
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# SPDX-License-Identifier: Apache-2.0
#
# Copyright (c) 2017-2024 Valve Corporation. All rights reserved.
# Copyright (c) 2026 Intel Corporation. All rights reserved.

comment "Steam Audio optimization level select"

choice "STEAMAUDIO_SIMD_LEVEL_SELECT"
prompt "choose which SIMD level used for Steam Audio module"
depends on COMP_STEAMAUDIO
default STEAMAUDIO_HIFI_MAX

config STEAMAUDIO_HIFI_MAX
prompt "SIMD will be selected by toolchain pre-defined header"
bool
help
When this is selected, optimization level will be determined
by toolchain pre-defined macros in core-isa header file.

config STEAMAUDIO_HIFI_5
prompt "choose HIFI5 intrinsic optimized Steam Audio module"
bool
help
This option is used to build HIFI5 optimized Steam Audio code.

config STEAMAUDIO_HIFI_4
prompt "choose HIFI4 intrinsic optimized Steam Audio module"
bool
help
This option is used to build HIFI4 optimized Steam Audio code.

config STEAMAUDIO_HIFI_NONE
prompt "choose generic C Steam Audio module, no HIFI SIMD involved"
bool
help
This option is used to build Steam Audio generic C code.
endchoice
233 changes: 233 additions & 0 deletions src/audio/steamaudio/README.md

Large diffs are not rendered by default.

21 changes: 21 additions & 0 deletions src/audio/steamaudio/llext/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# SPDX-License-Identifier: Apache-2.0
#
# Copyright (c) 2017-2024 Valve Corporation. All rights reserved.
# Copyright (c) 2026 Intel Corporation. All rights reserved.

set(steamaudio_sources
../steamaudio.c
../steamaudio-generic.c
../steamaudio_hifi4.c
../steamaudio_hifi5.c
../steamaudio_bvh.c
)

if(CONFIG_IPC_MAJOR_4)
list(APPEND steamaudio_sources ../steamaudio-ipc4.c)
endif()

sof_llext_build("steamaudio"
SOURCES ${steamaudio_sources}
LIB openmodules
)
6 changes: 6 additions & 0 deletions src/audio/steamaudio/llext/llext.toml.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#include <tools/rimage/config/platform.toml>
#define LOAD_TYPE "2"
#include "../steamaudio.toml"

[module]
count = __COUNTER__
Loading
Loading