Testbench add process components support#2510
Testbench add process components support#2510lgirdwood merged 5 commits intothesofproject:masterfrom
Conversation
lgirdwood
left a comment
There was a problem hiding this comment.
General, components can support > controls (use different names). Also we need to de-duplicate. Please also add more inline comments.
tools/testbench/topology.c
Outdated
There was a problem hiding this comment.
This looks like we are starting to duplicate a lot of component loading code. Can we make this all generic.
There was a problem hiding this comment.
I simplified the controls load / ignore from previous version but otherwise I didn't see similar flows. There's always some component specifics.
a934b18 to
a1006c3
Compare
I didn't yet see such cases so I could not test. EQs and volume had only one control. An error is reported if there's more though it's not what you recommended. I tried to seek for de-duplication but it didn't look straightforward. The topology handler and loader in kernel sure is nicer than this. A bigger repair could reuse more from there. I'd like to pursue more important things like building a simplified testbench (statically linked, possibly remove fseeks) for xt-run/dbg environment. |
|
I tested this with the dc blocker (PR #2462) as well. It works fine! Once this is merged, I will open a new PR with the changes to make this work with DCB. fyi @cujomalainey |
|
@sebcarlucci Wow, that's great news! Thanks for testing! I've so far run some components with the SRC test script, e.g. "src_test(24, 24, 48000, 48000)" with src_run.sh edited to pass "eq-iir" instead of "src" to comp_run.sh. Many of the measurements done for SRC can be applied for any processing. I will upstream dedicated EQ test scripts later to check that the measured response matches theoretical response defined by the blob. |
|
SOFCI TEST |
|
@singalsu can you follow up here with the CI results. It seems merge is blocked on CI atm. |
This patch adds to testbench capability to run pipelines with EQ_IIR and EQ_FIR components. The component is configured with the topology embedded configuration blob when instantiated with new(). The load of volume component has been enhanced to parse volume tokens and compute the min and max volume parameters. The topology parsing and component library load has been changed to support processing component load and extracting of control private data. The testbench build has been changed to create libraries for EQ components. The testbench command line parsing has been improved to return error for invalid library request. Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch fixes the read_samples_32() function in file component. Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch adds compilation with -g. Optimization -O was added to get optimization that preserves sane debugging with gdb. This component is not critical for speed in simulation. Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
The src_run.sh is converted into a generic component run script that is called by new simple component specific scripts asrc_run.sh, eqfir_run.sh, eqiir_run.sh, src_run.sh, and volume_run.sh. Note: The testbench does not yet have fully working capture support so the direction is not exposed yet. Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch fixes the buffer to define as PIPELINE_SINK. The upper level topologies do not use these topologies so there has not been related errors. However test pipelines were impacted. Also the PIPELINE_PCM defined name is made more generic. It can be whatever and not just high-pass type. Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
a1006c3 to
426b313
Compare
|
The patch check reports some things those are not relevant for testbench
The sof-ci/jenkins/pr-device-test is not yet completed |
|
SOFCI TEST |
|
@lgirdwood Should I push this PR again to get jenkins test executed? I think only the CI checkpatch report is valid. |
|
jenkins CI - known issues. |
|
@wwittbrx fyi I've very occasionally seen this error. I'm pretty sure it cant be related to this ? |
Here's a cleaned up and more complete version of testbench PR. It consists of these commits: