mirror of
https://github.com/BillyOutlast/bloodborne_pc.git
synced 2026-10-12 02:25:51 +00:00
Steam Deck and weak GPUs - Outputs other than 1080p render at the preset size again (startup patch, as in 0.1); live resolution changes are now a setting (live_resolution=0|1|auto, off by default). - Texture cache on integrated GPUs: thresholds follow the driver's current memory budget. The old budget (~1 GB on the Deck) kept the collector in its aggressive mode, evicting textures used 2-3 frames ago on every submission. - Evicted GPU-written images are written back synchronously, while their pages are still protected (a deferred write could land over memory the game had reused). - run.sh uses bash builtins only (the AppImage has no sed: the game did not start on NixOS). Rendering - Live scaling also reduces the game's half-resolution post-processing (960x540, including the bloom mip chain, one proxy per level). - TAA: history of thin surfaces missed by a jitter phase is kept when nothing moves (railings, window bars: static-camera flicker p99.9 -45%). - Scene texture LOD bias log2(render/output) in G-buffer passes while upscaling. - Present on its own thread and at most one frame of GPU run-ahead (even frame pacing). - Pipeline cache rebuilt instead of disabled when the shader profile changes. - GPU idle only after the draw pipeline and deferred fences are done (work_retired). - Recompiler fixes backported from shadPS4; integer interpolation fix for pre-Turing NVIDIA. - Sharpness up to 2.0 (an extra RCAS pass); native-resolution TAA mode. Launcher, mods, patches - English launcher (follows the system language), loose-file mods with load order, third-party shadPS4 XML patches, 60/90 FPS patches with pointer slots fixed. - AppImage: host NVIDIA Vulkan driver support, MangoHud, no FSR 4.1.1 models (BB_PACKAGE_FSR411=1 bundles local ones). Tools: route recording/replay (F9), consecutive frame dumps, scene scaling diagnostics. Details: docs/CHANGES_2026-10-02.md, docs/CHANGES_2026-10-03.md. Co-Authored-By: Claude Opus 5.5 <[email protected]>
30 lines
1.5 KiB
C++
30 lines
1.5 KiB
C++
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
#include <cassert>
|
|
#include <cstdio>
|
|
#include "gpu/shadps4/video_core/renderer_vulkan/ui_composition.h"
|
|
|
|
int main() {
|
|
using namespace Vulkan::UiComposition;
|
|
// Title/loading menus have no depth/camera. UI must still go to the native target.
|
|
assert(Choose(true, true, false, true) == Background::Copy);
|
|
assert(Choose(true, true, false, false) == Background::Copy);
|
|
// In-game HUD: first reconstruct the scene, then draw the native UI over it.
|
|
assert(Choose(true, true, true, true) == Background::Temporal);
|
|
// Runtime FSR disable/failure must not change UI resolution.
|
|
assert(Choose(true, true, true, false) == Background::Copy);
|
|
assert(Choose(true, false, true, true) == Background::None);
|
|
assert(Choose(false, true, true, true) == Background::None);
|
|
assert(NativeViewport(1920, -1080));
|
|
assert(!NativeViewport(960, -540));
|
|
assert(MovieShader(0x34e8a281) && MovieShader(0x24042a9b));
|
|
assert(!MovieShader(0x0b0acf50)); // fullscreen post/tonemap also has a native viewport
|
|
assert(!MovieShader(0x6c62a79f)); // shadow geometry
|
|
const auto display = Scale(960, 540, 1920, 1080, false);
|
|
assert(display[0] == 2 && display[1] == 2);
|
|
const auto ui = Scale(960, 540, 1920, 1080, true);
|
|
assert(ui[0] == 1 && ui[1] == 1); // don't double an already native UI viewport
|
|
const auto larger = Scale(960, 540, 3840, 2160, true);
|
|
assert(larger[0] == 2 && larger[1] == 2);
|
|
std::puts("UI composition: PASS (menu without camera, HUD, FSR off, viewport scaling)");
|
|
}
|