Skip to content

Demon's Souls (PPSA01342): particles drawn through the low-resolution particle path show as large white blobs (NVIDIA) #7638

Open

Description

@btsouth

Note

Posted by an AI agent on behalf of Tyler.

In Outpost Passage, large soft white blobs fill the upper half of the view and a row of small white puffs crosses the archway at waist height. With the game's own +particleResolution=High in PackageCmdLineArgs.txt they disappear and the passage looks right (dark walls, mist around the lit archway). Frame rate is the same either way.

Screenshots (same spot, same save, 960x540 downscale)

Default (particleResolution unset, i.e. Dynamic):

default particle resolution

+particleResolution=High:

particleResolution High

What narrows it down

  • The game's debug switches put the blobs in the Normal particle group: +showParticleGroup_Normal=false removes them, hiding the UltraLowRes and Fog groups does not.
  • +particleUnlitBrightness=0 removes the small emissive embers but not the blobs, so they are lit particles.
  • Not async compute: the five async-compute switches (particleEnableAsyncCompute, fog_enableAsyncCompute, r_tessellationEnableAsyncCompute, r_waterEnableAsyncCompute, r_windSimAsync) set to false change nothing.
  • Not a missing clear of a reused target: with APS5_KEYS_FILL_CLEAR=1 the fast clears apply at once and the blobs are unchanged.
  • The particle lighting atlas looks sane: the two 8192x128 RGBA16F storage images at 0x2a6c00000 and 0x2a6080000 (4 mips) hold one 8x8 tile per particle, smooth values up to about 1.1, no NaN or Inf.
  • The half-resolution depth inputs look right: 0x27f710000 (1280x720, R32F, 9 mips) and 0x27fc60000 (1280x720, RG32F min/max, 9 mips) show the passage, the character and the far archway at sensible depths (mip 0 checked).

So the low-resolution path goes wrong somewhere between drawing the particles into the half-resolution target and compositing that target back. I haven't found the half-resolution particle colour target itself yet (0x28a0c0000 is not it).

Setup

Local branch on bab7b32 with Demon's Souls bring-up changes (#757 and #758, both now on main, plus local fixes), Release, GCC 16.2.1. Arch Linux, kernel 7.2.8, RTX 4070 SUPER on 615.78.08. Not checked on main: on 10-14 this level's load still went past the 18 GiB cap I run the game under there.

Activity

  1. MarcZX10 commented on Oct 18, 2026

    @MarcZX10
    Contributor

    The particleResolution=High comparison and the Normal-group/unlit controls narrow this well. Before proposing a driver change, could you capture the low-resolution particle color target immediately after the particle draw and again after composite, plus the matching render-target/depth descriptors and draw packet? That would distinguish a bad half-resolution write from a scale/composite sampling issue. Since this was observed on a branch with local fixes, a current-main or named-merged-PR replay would also establish whether the behavior is present in the submitted tree.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions