mirror of
https://github.com/tangerineturtle1/NX2navi.git
synced 2026-11-15 19:19:58 -04:00
A mesh pipeline (task and mesh stages: the foliage, the grass, the terrain) had no stage libraries. Each new one was a whole build, 0.2 to 1.1 s the first time foliage of a kind appeared, and its draws waited or were left out of the picture until it was done. Where the graphics pipeline library is on, a mesh pipeline is now linked at its first use from three libraries and its whole build follows behind, as for a vertex pipeline. Its pre-rasterization library holds the task and mesh stages and is keyed by both shaders. No vertex input library is linked: a mesh pipeline has no such state. Its layout is a stage-independent pair, the mesh and task stages' bindings in set 0 and the fragment stage's in set 1, so the fragment shader library can be the one a vertex pipeline uses. That library's key now also carries what a mesh pipeline's fragment module gets filled in and whether the shading rate is dynamic state, which the pre-rasterization and the fragment shader state both hold. The fragment output library is shared as it is. The fast link on the library workers, the wait of a draw for its libraries and the pipeline hints take mesh pipelines in. The summary counts them by themselves: fast links and their time, how long the ones a draw missed took to become usable, and the libraries made for them. NX2NAVI_GPL_MESH=0 (gpl_mesh in nx2navi.ini) keeps the whole build. It is also kept without the pipeline library, on a device that draws no mesh pipeline, and where mesh pipelines alone are built without the driver's optimiser; the start logs which is in use and why. The mesh emulation of the low-end GPU mode is not touched. A mesh pipeline with libraries is another pipeline to the driver than the one built before, so an install's recorded mesh pipelines are compiled once more at the first start with this change. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>