Repository navigation
fix(d3d): sample the title sea shimmer with its point mip - #155
Conversation
The title sea's stage-1 MULTIPLYADD shimmer samples linear min/mag with a point mip filter and a -2 LOD bias (confirmed live in xemu). The combiner accepted only an all-linear sampler, so every sea draw fell back to the plain path. Accept a point mip on stage 1 and build its sampler with MIN_MAG_LINEAR_MIP_POINT.
Mira PR WalkthroughFixes the missing title-sea shimmer. The stage-1 combiner only accepted samplers with linear min, mag and mip filtering, but the shimmer uses linear min/mag with a point mip filter and a -2 LOD bias, so every shimmer draw fell back to the plain path. The adapter now also accepts a point mip filter and marks the draw with a new sequenceDiagram
participant Game
participant Adapter as d3d_draw_adapter
participant Presenter as D3D11 presenter
Game->>Adapter: stage-1 sampler (min/mag linear, mip point, bias -2)
Adapter->>Adapter: accept mip in {point, linear}
Adapter->>Presenter: draw with combiner_mip_point = true
Presenter->>Presenter: sampler Filter = MIN_MAG_LINEAR_MIP_POINT, MipLODBias -2
Presenter-->>Game: shimmer rendered
Confidence: 4/5 ◉◉◉◉○ Safe to merge
5 files reviewed
|
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Summary
The title sea's shimmer samples its stage-1 texture with linear min/mag, a point mip filter and a -2 LOD bias (read live in xemu). The stage-1 combiner from #96 accepted only an all-linear sampler, so every sea shimmer draw was rejected and fell back to the plain path: no shimmer on any build of
mainsince #96.Other stage-1 filter values (0, 3) are still rejected, and the adapter test lists them as such. This is
72e99c7fromcodex/title-sea-mip-point, rebased onto currentmainwith no conflicts.Verification
ctest: 47 of 47 pass. llvm-mingw clangctest: 45 of 45 pass.python -m unittest discover -s tools: 66 pass (1 skipped).public_export.py verify --require-public-treepasses.combiner_mip_pointset, and rejects filter values 0 and 3. The D3D11 test requires the biased sampler to useMIN_MAG_LINEAR_MIP_POINT.Contribution checklist
AGENTS.mdandCONTRIBUTING.md.