Tears of the Kingdom's three remaining red lines, with the fixes PR #11 found: - A BC4 texture written through an RGBA16UI view (BC4 encoded on the GPU; TOTK a 32x32x32 3D texture one depth plane per pass, BotW a 32x32 one) could not be attached, so its draws were lost. Such a pass now draws into an uncompressed shadow of blocks x blocks; the blocks are copied in through a buffer before the pass and back after it (nvn_mtl.m bcrt_attach / bcrt_flush). Shadows stay resident and are reused, and they are kept out of the load-skip / store-elision bookkeeping. - An agl fragment shader that only stores to a buffer draws into a 1x1 viewport with no target set: the pass is now attachment-less at the viewport size (bare_dims) instead of skipped. The opening cave gets the ambient light it lacked. - nvnDeviceRegisterFastClearDepth returns success; nvnCommandBufferSetAlphaRef is logged once. Neither game has a PC version, so the translator declared every fragment output float and Metal refused the encoders' integer targets. The profiles' shader_facts_manual.tsv declare them (TOTK 0544282c162305db and the Ultrahand mask e3fb0bb58a691e10, BotW 8e2cc2671cae6020), which changes only those two chains (743f7a102a72, f5259a6c6fb6; Mac and iOS libraries and c1_full.tsv rebuilt). A pipeline red line now prints the row to add when a float output meets an integer attachment. Mac: the 3D BC4 texture was all zeros before and holds encoded blocks in all 32 planes after (raw dump, frame 1500); TOTK's three red lines are gone; BotW (two runs) and Mario Wonder show no new red lines. Co-authored-by: digitalhivehub <141404180+digitalhivehub@users.noreply.github.com>
857 B
857 B
| 1 | # Hand-written translation facts, merged over the generated rows of shader_facts.tsv by dm/gfx/tools/shader_split.py: key <TAB> facts JSON (same format) |
|---|---|
| 2 | # This game has no PC version, so the translator has no fragment output types and declares every output float; Metal refuses a pipeline whose float output meets an integer attachment |
| 3 | # (the host's red line then prints the row to add here). Both rows were found by the PR #11 port (digitalhivehub). |
| 4 | # 0544282c162305db (agl_common BAHS@0x6f840, pixel): the BC4 block encoder. It writes 8-byte blocks through an RGBA16UI view into a 32x32x32 BC4 3D texture (nvn_mtl.m bcrt_attach) |
| 5 | # e3fb0bb58a691e10 (material bfsha BNSH@0xd64000 variation 28, pixel): the Ultrahand mask, an R8Uint target; without it the mask draws were dropped |