Skip to content

fix(agc): ignore Finder .DS_Store files in capture directories - #7728

Open
jotitadev wants to merge 1 commit into
boykopovar:mainfrom
jotitadev:fix/agc-capture-ignore-ds-store
Open

jotitadev wants to merge 1 commit into
boykopovar:mainfrom
jotitadev:fix/agc-capture-ignore-ds-store

Conversation

@jotitadev

@jotitadev jotitadev commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

What

Follow-up to #6259. On macOS, Finder writes a .DS_Store file into any folder it shows, so opening the compute capture directory in Finder made the next new capture fail with capture directory contains an unexpected entry. With WriteOptional that error is not swallowed, so it reaches the caller like any other invalid directory. The author of #6259 confirmed it and asked for a separate PR (#6259 (comment)).

The scan shared by Write and WriteOptional now skips an entry only when it is a regular file named exactly .DS_Store. Skipped entries do not count toward the 128-entry or 256 MiB bounds. Everything else is unchanged: other files (including other dot-files), a symbolic link named .DS_Store and a directory named .DS_Store are still rejected, so --optional-invalid keeps failing on a foreign entry as before.

The --optional-invalid case now writes a .DS_Store into a fresh capture directory, checks that Write and WriteOptional both add a record and leave the file alone, then adds the existing foreign file and checks that Write (with its diagnostic) and WriteOptional still reject the directory.

Tested

macOS 27.2 on an Apple M2 Max, Xcode 27.0 (Apple clang 21.0.0, libc++). Base: main fd423f9 (this head a51bb03 merges cleanly onto it). libSceAgcDriver does not build on macOS yet, so I built tests/ComputePipelineCapture.cpp standalone with Execution/src/ComputePipelineCapture.cpp (-std=c++20 -O2, Vulkan SDK 1.4.363 headers), for -arch arm64 and -arch x86_64 (run under Rosetta). Every mode: default, --optional-entry-cap, --optional-byte-cap, --optional-io, --optional-invalid.

  • Test from this branch, scan from main: --optional-invalid fails with capture directory contains an unexpected entry on both architectures; the other four modes pass.
  • Test and scan from this branch: 5/5 pass on both architectures.
  • Test from main, scan from this branch: 5/5 pass on both architectures (the foreign entry is still rejected).

Not run: the CTest targets on Linux or Windows (full build).

Checklist

  • Based on current main; no other open PR implements the same functions
  • One topic per PR; follow-ups go in a new PR
  • No comments in code except technical debt
  • Unimplemented paths throw (NotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in their library's technical debt file
  • No notes, investigation .md files or images added to the repository (attach them to this PR)
  • New third-party code is a submodule built from source
  • Generic behaviour, not specific to one title
  • Depends on: none (fix(agc): stop optional compute captures at their bounds #6259 is merged)
  • Unblocks: none
  • GPUs tested: n/a (the capture code and its test do not use a GPU)
  • AI-assisted: yes (Claude Code)

🤖 Generated with Claude Code

@github-actions github-actions Bot added the agc libSceAgc* label Oct 19, 2026
ycarogabriel-lgtm added a commit to ycarogabriel-lgtm/AnyPS5 that referenced this pull request Oct 19, 2026
…capture directories (@jotitadev)

This branch gathers the open macOS work, and this PR is part of it: it is merged here with its author credited, so the integration carries it now and merging it first in main only shrinks this branch.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@adriadam10 adriadam10 self-assigned this Oct 19, 2026
@github-actions

Copy link
Copy Markdown

Some comparisons could not be completed because a pull request conflicts with the base branch. Review these shared files manually before concluding that there is no overlap.

Pull request Shared files not compared
PR 8004 core/libs/prx/libSceAgcDriver/Execution/src/ComputePipelineCapture.cpp
core/libs/prx/libSceAgcDriver/tests/ComputePipelineCapture.cpp

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agc libSceAgc*

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants