Skip to content

Add a system to determine what a Fossilize bucket corresponds to - #308

Merged
HansKristian-Work merged 5 commits into
masterfrom
bucket-json-system
Jul 30, 2026
Merged

Add a system to determine what a Fossilize bucket corresponds to#308
HansKristian-Work merged 5 commits into
masterfrom
bucket-json-system

Conversation

@HansKristian-Work

Copy link
Copy Markdown
Collaborator

For future captures, a bucket.json is dumped alongside a bucket folder to make it possible to tie a bucket hash with a configuration.

For existing captures, a python script is added that can reverse a bucket.json file based on the filter.json and some a-priori knowledge about DXVK and vkd3d-proton.

@HansKristian-Work
HansKristian-Work merged commit 0ae323c into master Jul 30, 2026
@HansKristian-Work
HansKristian-Work deleted the bucket-json-system branch July 30, 2026 13:05
@louzt

louzt commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

nice additions! dumping bucket.json alongside the capture folder makes inspecting pipeline configs trivial, and bucket-reverse.py is a super clean approach to reverse those 64-bit hashes across multi-vendor setups.

solid QoL update for debugging captures. updating my edge builds with this, thanks for deep dive onto those topics Hans!

HansKristian-Work pushed a commit that referenced this pull request Aug 5, 2026
PR #308 (bucket-json-system, merged via 0ae323c) added
RESOURCE_BUCKET_INFO = 10 to the ResourceTag enum but did not
extend cli/fossilize_list.cpp's tag_names[] array. As a result:

  - fossilize-list --help listed 0..9 only, hiding tag 10.
  - fossilize-list --tag 10 (RESOURCE_COUNT=11, so the guard
    tag_uint >= RESOURCE_COUNT accepts it) failed with a generic
    'Failed to get hashes' log instead of listing tag 10.
  - fossilize-list --connectivity on a .foz containing
    RESOURCE_BUCKET_INFO entries hit an out-of-bounds read at
    tag_names[par.first] when par.first == 10.

Fix by appending 'bucketInfo' to tag_names[] and adding a
static_assert that sizeof(tag_names)/sizeof(tag_names[0]) ==
RESOURCE_COUNT. The static_assert catches the same class of
drift that e4ec0c1 (2025-11-10) fixed for computePipeline, so
this regression cannot recur silently.

This complements PR #308 without touching database storage,
the replayer, or PR #310 (roundtrip-checker, still Draft).

Refs: #308
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