Skip to content

Use tiled matrix transposition#912

Merged
sbooth merged 5 commits into
mainfrom
block-transpose
May 24, 2026
Merged

Use tiled matrix transposition#912
sbooth merged 5 commits into
mainfrom
block-transpose

Conversation

@sbooth
Copy link
Copy Markdown
Owner

@sbooth sbooth commented May 23, 2026

No description provided.

Copilot AI review requested due to automatic review settings May 23, 2026 15:22
Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

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

Cpp-linter Review

Used clang-format v22.1.6

Click here for the full clang-format patch
diff --git a/Sources/CSFBAudioEngine/Decoders/SFBDSFDecoder.m b/Sources/CSFBAudioEngine/Decoders/SFBDSFDecoder.m
index 409faae..dd8320e 100644
--- a/Sources/CSFBAudioEngine/Decoders/SFBDSFDecoder.m
+++ b/Sources/CSFBAudioEngine/Decoders/SFBDSFDecoder.m
@@ -39 +39,2 @@ static BOOL readChunkID(SFBInputSource *inputSource, uint32_t *chunkID) {
-static void matrixTranspose(const unsigned char *restrict A, unsigned char *restrict B, NSInteger rows, NSInteger columns) {
+static void matrixTranspose(const unsigned char *restrict A, unsigned char *restrict B, NSInteger rows,
+                            NSInteger columns) {

Have any feedback or feature suggestions? Share it here.

Comment thread Sources/CSFBAudioEngine/Decoders/SFBDSFDecoder.m Outdated
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR updates the DSF decoder’s channel deinterleaving step to use a tiled (blocked) matrix transpose implementation when interleaving DSF blocks into clustered frames, aiming to improve cache locality/performance during decoding.

Changes:

  • Replaces the naive DSF block transpose with a tiled transpose (MATRIX_TRANPOSE_BLOCK_SIZE).
  • Renames internal helper functions used for chunk ID reading and matrix transpose.
  • Updates the DSF block read path to call the new transpose implementation.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread Sources/CSFBAudioEngine/Decoders/SFBDSFDecoder.m Outdated
@github-actions github-actions Bot dismissed their stale review May 23, 2026 15:25

outdated suggestion

Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

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

Cpp-linter Review

Used clang-format v22.1.6

Click here for the full clang-format patch
diff --git a/Sources/CSFBAudioEngine/Decoders/SFBDSFDecoder.m b/Sources/CSFBAudioEngine/Decoders/SFBDSFDecoder.m
index cdd9e5b..8459255 100644
--- a/Sources/CSFBAudioEngine/Decoders/SFBDSFDecoder.m
+++ b/Sources/CSFBAudioEngine/Decoders/SFBDSFDecoder.m
@@ -39,2 +39 @@ static BOOL readChunkID(SFBInputSource *inputSource, uint32_t *chunkID) {
-static void matrixTranspose(const unsigned char *restrict A, unsigned char *restrict B, size_t rows,
-                            size_t columns) {
+static void matrixTranspose(const unsigned char *restrict A, unsigned char *restrict B, size_t rows, size_t columns) {

Have any feedback or feature suggestions? Share it here.

Comment thread Sources/CSFBAudioEngine/Decoders/SFBDSFDecoder.m Outdated
@github-actions github-actions Bot dismissed their stale review May 24, 2026 22:32

outdated suggestion

@sbooth sbooth merged commit c26818c into main May 24, 2026
2 checks passed
@sbooth sbooth deleted the block-transpose branch May 24, 2026 22:35
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.

2 participants