* [FFmpeg-devel] [PATCH] checkasm: aacencdsp: Actually initialize ff_aac_pow34sf_tab
@ 2025-01-29 9:58 Martin Storsjö
2025-01-29 10:28 ` Lynne
2025-02-01 23:25 ` Michael Niedermayer
0 siblings, 2 replies; 4+ messages in thread
From: Martin Storsjö @ 2025-01-29 9:58 UTC (permalink / raw)
To: ffmpeg-devel
This table is zero initialized by default, and has to be
explicitly initialized.
Coincidentally, this fixes linking checkasm with Apple's older
linker. (In Xcode 15, Apple switched to a new linker. The one in
older toolchains seems to have a bug where it won't figure out to
load object files from a static library, if the only symbol
referenced in the object file is a "common" symbol, i.e. one for
a zero-initialized variable. This issue can also be reproduced with
newer Apple toolchains by passing -Wl,-ld_classic to the linker.)
---
tests/checkasm/aacencdsp.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/tests/checkasm/aacencdsp.c b/tests/checkasm/aacencdsp.c
index 5308a2ac03..72815bf963 100644
--- a/tests/checkasm/aacencdsp.c
+++ b/tests/checkasm/aacencdsp.c
@@ -67,11 +67,14 @@ static void test_abs_pow34(AACEncDSPContext *s)
static void test_quant_bands(AACEncDSPContext *s)
{
int maxval = randomize_elem(aac_cb_maxval);
- float q34 = randomize_elem(ff_aac_pow34sf_tab);
+ float q34;
float rounding = (rnd() & 1) ? ROUND_TO_ZERO : ROUND_STANDARD;
LOCAL_ALIGNED_16(float, in, [BUF_SIZE]);
LOCAL_ALIGNED_16(float, scaled, [BUF_SIZE]);
+ ff_aac_float_common_init();
+ q34 = randomize_elem(ff_aac_pow34sf_tab);
+
declare_func(void, int *, const float *, const float *, int, int, int,
const float, const float);
--
2.39.5 (Apple Git-154)
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [FFmpeg-devel] [PATCH] checkasm: aacencdsp: Actually initialize ff_aac_pow34sf_tab
2025-01-29 9:58 [FFmpeg-devel] [PATCH] checkasm: aacencdsp: Actually initialize ff_aac_pow34sf_tab Martin Storsjö
@ 2025-01-29 10:28 ` Lynne
2025-02-01 23:25 ` Michael Niedermayer
1 sibling, 0 replies; 4+ messages in thread
From: Lynne @ 2025-01-29 10:28 UTC (permalink / raw)
To: ffmpeg-devel
On 29/01/2025 18:58, Martin Storsjö wrote:
> This table is zero initialized by default, and has to be
> explicitly initialized.
>
> Coincidentally, this fixes linking checkasm with Apple's older
> linker. (In Xcode 15, Apple switched to a new linker. The one in
> older toolchains seems to have a bug where it won't figure out to
> load object files from a static library, if the only symbol
> referenced in the object file is a "common" symbol, i.e. one for
> a zero-initialized variable. This issue can also be reproduced with
> newer Apple toolchains by passing -Wl,-ld_classic to the linker.)
> ---
> tests/checkasm/aacencdsp.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/tests/checkasm/aacencdsp.c b/tests/checkasm/aacencdsp.c
> index 5308a2ac03..72815bf963 100644
> --- a/tests/checkasm/aacencdsp.c
> +++ b/tests/checkasm/aacencdsp.c
> @@ -67,11 +67,14 @@ static void test_abs_pow34(AACEncDSPContext *s)
> static void test_quant_bands(AACEncDSPContext *s)
> {
> int maxval = randomize_elem(aac_cb_maxval);
> - float q34 = randomize_elem(ff_aac_pow34sf_tab);
> + float q34;
> float rounding = (rnd() & 1) ? ROUND_TO_ZERO : ROUND_STANDARD;
> LOCAL_ALIGNED_16(float, in, [BUF_SIZE]);
> LOCAL_ALIGNED_16(float, scaled, [BUF_SIZE]);
>
> + ff_aac_float_common_init();
> + q34 = randomize_elem(ff_aac_pow34sf_tab);
> +
> declare_func(void, int *, const float *, const float *, int, int, int,
> const float, const float);
>
LGTM, thanks
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [FFmpeg-devel] [PATCH] checkasm: aacencdsp: Actually initialize ff_aac_pow34sf_tab
2025-01-29 9:58 [FFmpeg-devel] [PATCH] checkasm: aacencdsp: Actually initialize ff_aac_pow34sf_tab Martin Storsjö
2025-01-29 10:28 ` Lynne
@ 2025-02-01 23:25 ` Michael Niedermayer
2025-02-05 21:24 ` Martin Storsjö
1 sibling, 1 reply; 4+ messages in thread
From: Michael Niedermayer @ 2025-02-01 23:25 UTC (permalink / raw)
To: FFmpeg development discussions and patches
[-- Attachment #1.1: Type: text/plain, Size: 1529 bytes --]
On Wed, Jan 29, 2025 at 11:58:54AM +0200, Martin Storsjö wrote:
> This table is zero initialized by default, and has to be
> explicitly initialized.
>
> Coincidentally, this fixes linking checkasm with Apple's older
> linker. (In Xcode 15, Apple switched to a new linker. The one in
> older toolchains seems to have a bug where it won't figure out to
> load object files from a static library, if the only symbol
> referenced in the object file is a "common" symbol, i.e. one for
> a zero-initialized variable. This issue can also be reproduced with
> newer Apple toolchains by passing -Wl,-ld_classic to the linker.)
> ---
> tests/checkasm/aacencdsp.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
this sometimes fails
make -j32 fate-checkasm-aacencdsp
TEST checkasm-aacencdsp
make -j32 fate-checkasm-aacencdsp
TEST checkasm-aacencdsp
Test checkasm-aacencdsp failed. Look at tests/data/fate/checkasm-aacencdsp.err for details.
make: *** [tests/Makefile:311: fate-checkasm-aacencdsp] Error 1
checkasm: using random seed 3314560428
SSE:
- aacencdsp.abs_pow34 [OK]
SSE2:
quant_bands_signed_sse2 (aacencdsp.c:94)
- aacencdsp.quant_bands [FAILED]
AVX:
- aacencdsp.quant_bands [OK]
checkasm: 1 of 5 tests have failed
threads=1
make: *** [tests/Makefile:311: fate-checkasm-aacencdsp] Error 1
thx
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Why not whip the teacher when the pupil misbehaves? -- Diogenes of Sinope
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
[-- Attachment #2: Type: text/plain, Size: 251 bytes --]
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [FFmpeg-devel] [PATCH] checkasm: aacencdsp: Actually initialize ff_aac_pow34sf_tab
2025-02-01 23:25 ` Michael Niedermayer
@ 2025-02-05 21:24 ` Martin Storsjö
0 siblings, 0 replies; 4+ messages in thread
From: Martin Storsjö @ 2025-02-05 21:24 UTC (permalink / raw)
To: FFmpeg development discussions and patches
On Sun, 2 Feb 2025, Michael Niedermayer wrote:
> On Wed, Jan 29, 2025 at 11:58:54AM +0200, Martin Storsjö wrote:
>> This table is zero initialized by default, and has to be
>> explicitly initialized.
>>
>> Coincidentally, this fixes linking checkasm with Apple's older
>> linker. (In Xcode 15, Apple switched to a new linker. The one in
>> older toolchains seems to have a bug where it won't figure out to
>> load object files from a static library, if the only symbol
>> referenced in the object file is a "common" symbol, i.e. one for
>> a zero-initialized variable. This issue can also be reproduced with
>> newer Apple toolchains by passing -Wl,-ld_classic to the linker.)
>> ---
>> tests/checkasm/aacencdsp.c | 5 ++++-
>> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> this sometimes fails
>
> make -j32 fate-checkasm-aacencdsp
>
> TEST checkasm-aacencdsp
> make -j32 fate-checkasm-aacencdsp
>
> TEST checkasm-aacencdsp
> Test checkasm-aacencdsp failed. Look at tests/data/fate/checkasm-aacencdsp.err for details.
> make: *** [tests/Makefile:311: fate-checkasm-aacencdsp] Error 1
>
> checkasm: using random seed 3314560428
> SSE:
> - aacencdsp.abs_pow34 [OK]
> SSE2:
> quant_bands_signed_sse2 (aacencdsp.c:94)
> - aacencdsp.quant_bands [FAILED]
> AVX:
> - aacencdsp.quant_bands [OK]
> checkasm: 1 of 5 tests have failed
> threads=1
> make: *** [tests/Makefile:311: fate-checkasm-aacencdsp] Error 1
Indeed, it turns out that the existing x86 assembly is kinda buggy; I sent
a new patchset now, which runs correctly in checkasm with at least a
couple thousand different seeds, tested on x86, aarch64 and riscv (with
qemu).
// Martin
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-02-05 21:24 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-01-29 9:58 [FFmpeg-devel] [PATCH] checkasm: aacencdsp: Actually initialize ff_aac_pow34sf_tab Martin Storsjö
2025-01-29 10:28 ` Lynne
2025-02-01 23:25 ` Michael Niedermayer
2025-02-05 21:24 ` Martin Storsjö
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
This inbox may be cloned and mirrored by anyone:
git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
ffmpegdev@gitmailbox.com
public-inbox-index ffmpegdev
Example config snippet for mirrors.
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git