Quick answer: Reflection and ray tracing bugs split by hardware: screen-space reflections ghost and miss off-screen detail, ray-traced reflections smear through the denoiser or vanish on certain GPUs, and RT can fall off a performance cliff. The artifact a player sees depends on which reflection path their GPU ran. Capture the reflection mode, RT toggle, GPU and driver, denoiser settings, and the scene, then group reports by hardware to see which path is broken.
Reflections are a feature that behaves like several different features depending on the player's hardware. One player runs hardware ray-traced reflections and reports a smeary ghost trailing a moving car. Another runs screen-space reflections and reports that a puddle reflects nothing when they look up. A third has ray tracing forced off and reports their game runs at half the framerate of their friend's. These are not three reports about one bug; they are three different reflection code paths each failing in their own way. This post covers how to capture which path ran and the context around it so reflection and ray tracing bugs stop blurring together into noise.
Many reflection paths, many failure modes
Most games ship more than one way to render reflections and silently pick one based on hardware and settings. There are reflection probes baked offline, screen-space reflections computed from the depth and color buffers, and hardware ray-traced reflections on capable GPUs. Each has a signature failure. Probes look flat and miss dynamic objects. SSR ghosts during motion and cannot reflect anything off-screen, so it fails at grazing angles and screen edges. Ray-traced reflections depend on the bounding structures and the denoiser, so they can smear, lag, or drop detail when the denoiser is starved.
The practical consequence is that the first thing a reflection report must tell you is which path was active. A complaint that reflections are missing means something completely different under SSR than under ray tracing. Under SSR it is expected behavior at the screen edge; under ray tracing it is a real bug in the acceleration structure or the RT toggle silently failing. If your report does not record the reflection mode, you will read these complaints as contradictory and chase your tail, when in fact each is a clear signal about its own code path.
Hardware variance is the whole story
Ray tracing exposes hardware variance more sharply than almost any other feature. Whether RT runs at all depends on the GPU generation and driver, and even when it runs, performance and image quality differ enormously between vendors and tiers. A reflection that denoises cleanly on a high-end card can smear on a midrange one that cannot afford the ray budget. A driver bug can produce corruption on one vendor and nothing on another. So the GPU model, driver version, and whether hardware RT was actually used, not just requested, are the most load-bearing fields a reflection report can carry.
Capture the requested setting and the effective one separately, because they diverge. A player may select ray-traced reflections that their hardware quietly downgraded to SSR, then report ghosting you cannot reproduce on your RT-capable test rig. Recording that the effective path was SSR resolves the contradiction instantly. The same goes for upscalers and frame generation, which interact with reflection denoisers and can introduce trailing artifacts of their own. With effective path, GPU, driver, and upscaler stamped on each report, hardware variance becomes a filter you control instead of chaos you suffer.
Denoiser and temporal artifacts
Ray-traced reflections are noisy by nature and rely on a denoiser plus temporal accumulation to look clean, which means most ray tracing visual bugs are really denoiser bugs. Ghosting and smear happen when temporal history is reused across motion the reprojection cannot follow, so a fast car or a flickering light leaves a trail. Boiling or shimmer happens when the ray budget is too low and the denoiser cannot keep up. These artifacts are settings-driven, so the denoiser mode, ray count, and accumulation length are exactly the fields you want attached to a smear report.
Temporal effects also interact with framerate and motion, so the same scene can look fine standing still and fall apart in a chase. That is why a reflection report should capture whether the player was moving, the framerate at the time, and any motion blur or upscaler in play. A ghost that only appears under fast motion at low framerate with an aggressive upscaler is a very specific recipe, and once you have it written down you can reproduce it deterministically. Without the temporal context you will stare at a clean reflection in a static test scene and wrongly conclude the report was wrong.
The performance cliff
Ray tracing does not degrade gracefully; it falls off a cliff. A scene that runs comfortably can drop to a fraction of its framerate when reflective surfaces fill the view and the ray count explodes, or when the acceleration structure rebuilds because of dynamic geometry. Players experience this as sudden stutter or a halved framerate in one room, and they report it as a performance bug rather than a reflection bug, so it never reaches the rendering work unless you capture enough to connect them. The reflection settings and the framerate together reveal the link.
To catch these, a performance report in a reflective scene should carry the reflection mode, ray count, resolution and upscaler, the framerate or frame time, and the location, since the cliff is usually tied to a specific viewpoint dense with reflective surfaces. With that data you can confirm the drop only happens with RT reflections enabled in that room and decide whether to cap rays, swap to SSR there, or simplify the geometry. Treating reflection-driven performance cliffs as reflection bugs, not generic slowdowns, is what gets them onto the right person's queue.
Setting it up with Bugnet
Bugnet captures the reflection context that turns these reports from contradictory to clear. When a player taps the in-game report button at a smeary reflection, the report automatically carries the requested and effective reflection mode, whether hardware RT actually ran, the GPU and driver, the denoiser and ray settings, the upscaler, the framerate, and the location. You add custom fields for ray count and accumulation, plus a category for ghosting, missing reflection, corruption, or performance cliff. Instead of guessing which of three code paths the player hit, you read it directly off the report.
Occurrence grouping then sorts the reflection chaos into countable issues per hardware path. The ghosting reports that all share one GPU generation and the SSR upscaler collapse into one issue with a count, separate from the missing-reflection reports that are really expected SSR edge behavior. You filter by effective path and GPU to confirm a denoiser or driver cause, prioritize the cliff that hits the most players, and after a fix watch the relevant count fall while the others stay flat. One dashboard finally lets you see reflections as the several different features they actually are.
Testing reflections across the matrix
Because reflections fork by hardware, your test pass has to cover the matrix rather than one machine. Run each reflection path deliberately: probes, SSR, and hardware RT, on at least one GPU per major vendor and one midrange card that can run RT but not comfortably. Check the known failure spots: grazing angles and screen edges for SSR, fast motion and dynamic lights for the denoiser, and reflective-heavy rooms for the performance cliff. Force the effective downgrade case to confirm a player who selects RT on weak hardware gets a sane fallback, not corruption.
Pair that matrix with the report stream so it stays honest about where your real players are. Each new ghosting cluster on a specific GPU and upscaler becomes a permanent case, and each denoiser fix gets a moving-scene regression check so the smear cannot creep back. Over time you build a clear picture of which path each hardware tier actually runs and where each one breaks, so you can ship beautiful reflections knowing the whole matrix, not just the trophy GPU on your desk, holds up under real conditions.
Reflections are several features wearing one name. Capture which path actually ran plus the GPU and denoiser settings, and contradictory reports turn into clear signals.