Skip to content

Upstream sync#39

Merged
LukashonakV merged 59 commits intomasterfrom
upstream_sync
Mar 14, 2026
Merged

Upstream sync#39
LukashonakV merged 59 commits intomasterfrom
upstream_sync

Conversation

@LukashonakV
Copy link
Copy Markdown
Owner

No description provided.

oxyzenQ and others added 30 commits December 10, 2025 18:17
- correct spelling issues in README, TERMINAL, and CAVACORE docs
- update cavacore headers, core source, and input modules with proper wording
- clean up shader and Android resource comments for consistency

Author: rezky_nightky <with.rezky@gmail.com>
Timestamp: 2025-11-29T16:08:12Z
Repository: cava
Branch: master
Signing: GPG (989AF9F0)
Performance: 21 files, +75/-81 lines
Author: rezky_nightky <with.rezky@gmail.com>
Timestamp: 2025-11-29T16:36:19Z
Repository: cava
Branch: master
Signing: GPG (989AF9F0)
Performance: 1 files, +1/-1 lines
…_config_win

fix device specification check
… resource safety

- Parse new general:live-config option and document it in example config

- Monitor config mtime/size and trigger reload when config file changes

- Fix potential unsigned underflow/infinite loop risks in cavacore buffer loops

- Correct audio buffer zeroing for double-based cava_in

- Close raw/noritake output fds on reload/exit and destroy audio mutex after join

- Harden frame timing to avoid invalid sleeps / divide-by-zero edge cases

- Clean up CI workflows and add codespell configuration

Author: rezky_nightky <with dot rezky at gmail dot com>
Repository: cava
Branch: master
Signing: GPG (4B65AAC2)
HashAlgo: BLAKE3

[ Block Metadata ]
BlockHash: 372c169782927d40e0a299860e127da055616a3e123fe44ddbd9820e70790761
PrevHash: b53364f6a353709b44a3a8deaa2e0d42435374be928b315529c2ad6ebf483ba5
PatchHash: 667a288d18d0a150870f43cee7009ebbd2dc79fb2b105db654087f4979226034

FilesChanged: 9
Lines: +231 / -99

Timestamp: 2026-01-04T08:56:03Z
Signature1: 8cc7f093adde1b4e9b38edbd8730210edeba51e78b2a2f6b7bb678bb31f5b35c
Signature2: 046ab5cfd313bde5d58d6ebd089b479f66b08a36e7bf209ed45a82b7c39c9057
feat(hardening): add live config auto-reload and tighten long-running…
this gets rid of annoying potentially uninitialized local pointer variable error on windows
this fixes error about potentially uninitialized local pointer variable
the default value is already 0, but it was not reflected in the example config
…filenames containing spaces or special characters

Author: rezky_nightky <with dot rezky at gmail dot com>
Repository: cava
Branch: master
Signing: GPG (4B65AAC2)
HashAlgo: BLAKE3

[ Block Metadata ]
BlockHash: 3c00dd0564b5e23f771c9a9a1ad6ac1d2eca43336a1d9b1324b10a889368d097
PrevHash: f0e721660c5b8cd7a4ae3dc7cefd004250eb4e4653eb57cdfb61350eb07b1b93
PatchHash: eb57bdf9e0839451916f142ab750f90d5cadd96b0d1c1894828e7e617eb9f3f1

FilesChanged: 1
Lines: +3 / -6

Timestamp: 2026-01-11T17:15:33Z
Signature1: 4fe363b3b481b5f0e69273e37a97b51f9ad91a984a39a230c17a6d6ca1cc0057
Signature2: 10c9d15ef27367de3b922b6d8d9c2612a0e5b50df8fc97e2b34cdb49fe7fb9fe
fix: shell quote the variable '$/f' to prevent potential issues with …
Author: rezky_nightky <with dot rezky at gmail dot com>
Repository: cava
Branch: master
Signing: GPG (4B65AAC2)
HashAlgo: BLAKE3

[ Block Metadata ]
BlockHash: 13c8dfb257ba620a6ff12c8e75967b550fdcb44ee770eb8145e78fdf2a078cf8
PrevHash: f59965fdc1e22c3c5895576472ce7bd50c7b8def4d44f95213d87cfa1ede2507
PatchHash: 5a1858d46c7d799b6141d8967a8da11ec81c347350118968c93f86982bd39d64

FilesChanged: 1
Lines: +1 / -2

Timestamp: 2026-01-15T05:26:40Z
Signature1: af04b7f3a09f92dd6ce4ac9d0df8048b36fef0022a9c4c9aa272c2a4843fd897
Signature2: 840a44381305438af9f3b61a90362b0c5a97affd77736fe982575431007c8dd0
Signed-off-by: rezky_nightky <with.rezky@gmail.com>
Author: rezky_nightky <with dot rezky at gmail dot com>
Repository: cava
Branch: pr/orion-lowlevel-boost
Signing: GPG (4B65AAC2)
HashAlgo: BLAKE3

[ Block Metadata ]
BlockHash: b3c21a38d7e06ea50957316ecd21e3c666354be18a20c3a04272193ff26f590c
PrevHash: 50dda3686acad56157d2c18b65f2196fdd508ee3c79b338c929acc4ac47c1b14
PatchHash: 1fc62aedfb49c4a31974a308b91be534ad55c0a79e1fc789915af9eea22b2b7d

FilesChanged: 5
Lines: +231 / -4

Timestamp: 2026-01-15T10:19:07Z
Signature1: dbdecfe52b4fc8780950459cfd6a515b73672be5cb8a961e1db7107ba6741a19
Signature2: 56f06243493c9ec270644122231dd7739a31a1ec0e913275ab3c985cebf7c041
oxyzenQ and others added 28 commits January 15, 2026 18:05
1) Long endurance stability: shader_time no longer drifts
Problem: we were effectively doing shader_time = frame_counter * frame_time, which grows forever. After hours/days, floats lose precision and animations can stutter/jitter even if FPS is stable.

Fix (in output/sdl_glsl.c):

Use SDL’s monotonic high-resolution timer (SDL_GetPerformanceCounter/Frequency)
Compute elapsed seconds each frame
Send a wrapped time to shader: fmod(elapsed, 4096.0)
This keeps animation smooth forever, no float precision decay.

2) Remove a major bottleneck: skip FBO + second render pass when unused
Problem: SDL_GLSL always did:

draw to screen, then
draw again into an FBO texture …even when the shader does not use inputTexture (Orion doesn’t).
That second pass costs:

an extra full-screen draw call
extra bandwidth
extra texture + framebuffer resources
extra resize handling work
Fix (in output/sdl_glsl.c):

Detect if shader uses inputTexture via uniform location:
uniform_input_texture = glGetUniformLocation(..., "inputTexture");
Only create the framebuffer/texture if uniform_input_texture != -1
Only do the second render pass if uniform_input_texture != -1
Only resize the texture on window resize if FBO is enabled
Added cleanup to delete FBO/texture safely
Result: Orion mode becomes single-pass (as it should be), improving stability and reducing GPU load.

Signed-off-by: rezky_nightky <with.rezky@gmail.com>
I updated output/sdl_glsl.c to match the exact clang-format-9 expectations from your CI output:

Include order: moved #include <stdint.h> above #include <stdlib.h>
Line wrap: reformatted the glTexImage2D(...) call onto a single line (as in the CI “reformatted” output)

Signed-off-by: rezky_nightky <with.rezky@gmail.com>
Author: rezky_nightky <with dot rezky at gmail dot com>
Repository: cava
Branch: pr/sdl-glsl-polish
Signing: GPG (4B65AAC2)
HashAlgo: BLAKE3

[ Block Metadata ]
BlockHash: 1f90e3abf7513fcfb72d86d067c90dc8f58ef9fa3daa700fb3050935ebf0a266
PrevHash: 5cc80d8001c3a7ebf7cc183d72676c80b9741f2dcb6a44d79697c3d743325a81
PatchHash: 6b78fb549572dfebc25162f31d20e3ae8fda604a2d1c2881082025aa14a52f59

FilesChanged: 1
Lines: +5 / -2

Timestamp: 2026-01-15T10:26:37Z
Signature1: 328bf7069eb5c5618ae729b5c33674bce5cf92a130dce941e5bc5a50f5bddb29
Signature2: da86b2545b140f84564d93e3f3813454cddcfb9f81b9bb846a4ec7fa45803579
this is only for noncurses (default output) for now

left and right orientation was missing here so that was added
as well.

the gradient code has been refactored also for the existing orientations

horizontal_split config option has been renamed to stereo_split as
this now concers both horizontal and vertical orientation
Signed-off-by: rezky_nightky <with.rezky@gmail.com>

Author: rezky_nightky <with dot rezky at gmail dot com>
Repository: cava
Branch: pr/orion-mature
Signing: GPG (4B65AAC2)
HashAlgo: BLAKE3

[ Block Metadata ]
BlockHash: a935b37435177d45f773427f1a30c57e29607c33f561cbcf5b544e2a440610ff
PrevHash: 8192c30da5cc58cf3450d8cd994133ce4c62eca0ab944e8d420e076adbad8a97
PatchHash: 1d7fee6a4066323843bc4e612324bd8addbf74822b92e812c2b53508fab6cb93

FilesChanged: 8
Lines: +412 / -28

Timestamp: 2026-01-17T17:22:53Z
Signature1: db09d6fb513688df33026bb189c148003ba583634ca0a6c60862bf709e5be2c9
Signature2: 3c164c91d6dccf78a2adc6026d041bacf080b43dabd49c726eb6ebc6ca439773
- Document default values directly in config comments
- Improve example formatting and clarity
- Align example defaults with actual config defaults
  (e.g. higher_cutoff_freq = 8000 on Linux)

Signed-off-by: rezky_nightky <with.rezky@gmail.com>
Add GNU-style long options for common actions, and reject unexpected positional arguments to avoid accidental misuse.

Changes:

- Add --help, --version, and --config (alias for -p) on non-Windows via getopt_long.

- Add a small long-option parser for Windows for the same options.

- Improve usage output to show short + long forms consistently.

- Exit 0 on help, print clear errors on invalid options/missing args, and hint '--help'.

- Reject leftover positional args (e.g. 'cava c', 'cava p', stray symbols/numbers).

- Avoid emitting terminal-title escape sequences on help/version/error exits.

Signed-off-by: rezky_nightky <with.rezky@gmail.com>

Author: rezky_nightky <with dot rezky at gmail dot com>
Repository: cava
Branch: info-improve
Signing: GPG (4B65AAC2)
HashAlgo: BLAKE3

[ Block Metadata ]
BlockHash: 0e201c30dc28db971169eb05b6bc4e5251e8fbdda817165ccb3b4432c1f913d6
PrevHash: 8958c65285f539609bb63984f965552523a5dd883c3c3efa4048388d60b14c74
PatchHash: dc74cdcefd516e798e6728f64a8c22aa66c5c09afef03404caeddfe83ad5f686

FilesChanged: 1
Lines: +89 / -17

Timestamp: 2026-01-22T17:59:49Z
Signature1: c39df95623e0f9c49ee4e5e3d6adb54deea50487f6dee7b5bdabd5e8223ff849
Signature2: dc4d2cfc78c194f89ef69c9f23d902569e3b1199ee53f7f3bbca88ca6a8d6227
load_config() begins by calling free_config(p). If p is not zero-initialized, free_config() may attempt to free garbage pointers.

Initialize the config struct in main() before the first load_config() call so all pointers start as NULL.

Signed-off-by: rezky_nightky <with.rezky@gmail.com>

Author: rezky_nightky <with dot rezky at gmail dot com>
Repository: cava
Branch: info-improve
Signing: GPG (4B65AAC2)
HashAlgo: BLAKE3

[ Block Metadata ]
BlockHash: 997a35ea7b0c92bba8761300d763bf782028444bba16eebb992d29671883e446
PrevHash: dd5af813e6c7b7d4ef92d6bb32d185b67ffe4f193a8ed3a67859bae88de916c2
PatchHash: 4424e8242b0eb9eae77b163482a73214aa59b3a2e6eb7f6d79c423e532860d14

FilesChanged: 1
Lines: +2 / -1

Timestamp: 2026-01-22T17:59:49Z
Signature1: 62cd33414f40b120affb87894dd24714dd2056902b50c61e3de801fc2075b97f
Signature2: e55198728e507270629d7452a987549dc46bc31cbee8b29e97eaaf62caa14e7a
little improve.
- Install WiX Toolset and extensions for MSI packaging.
- Create MSI installer for cava with necessary components.
- Upload MSI artifact for distribution.
no longer as we have a installer
Signed-off-by: rezky_nightky <with.rezky@gmail.com>
it tries to install version 7 of the extensions even though it is version 6 itself. How stupid is this thing?
fixing the ommission in the previous commit
@LukashonakV LukashonakV merged commit f4b6994 into master Mar 14, 2026
21 checks passed
@LukashonakV LukashonakV deleted the upstream_sync branch March 14, 2026 15:24
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.

7 participants