Files
ARMSX2/pcsx2/GS/Renderers/Common/GSGPUProfilePowerVR.cpp
jpolo1224 cfd50df201 GS: Mali/EmuCoreX renderer fixes + per-vendor mobile GPU profiles
- Mali Vulkan: drop the old blend-clamp band-aid; rely on dual_source_blend
  feature detection so only SRC1/blend-mix draws take the SW-blend path
  (no more forced Blending=Max on Mali)
- Fix intermittent stale-tile reads: input-attachment descriptor type for the
  texture-barrier feedback path, vendor-scoped to Mali
- broken_mad_deinterlace weave fallback for Mali-G57 FastMAD
- Add per-vendor mobile GPU profile system (Mali/Adreno/PowerVR)
- Tie test_and_sample_depth to texture_barrier (was forced on)
- Richer Vulkan device telemetry for field diagnosis
2026-07-13 00:42:11 -04:00

31 lines
1.0 KiB
C++

// SPDX-FileCopyrightText: 2002-2026 PCSX2 Dev Team
// SPDX-License-Identifier: GPL-3.0+
#include "GS/Renderers/Common/GSGPUProfilePrivate.h"
namespace GpuProfileDetail
{
bool LooksLikePowerVR(std::string_view lowered_hints)
{
// "img" is far too broad for a substring search (it appears in unrelated model/property values).
return ContainsAny(lowered_hints, {"imagination technologies", "imgtec", "powervr"});
}
ResolvedGpuProfile ResolvePowerVRProfile(std::string_view lowered_hints)
{
ResolvedGpuProfile resolved;
resolved.gpu.architecture = MobileGpuArchitecture::PowerVR;
resolved.gpu.name = "PowerVR";
resolved.tuning = MakeMobileGsTuning(72, 6, 72, 5);
if (ContainsAny(lowered_hints, {"b-series", "bxs", "bxt", "d-series", "dxt", "dmtp"}))
{
resolved.gpu.recognized = true;
resolved.gpu.name = ContainsAny(lowered_hints, {"d-series", "dxt", "dmtp"}) ?
"PowerVR D-Series" : "PowerVR B-Series";
resolved.tuning = MakeMobileGsTuning(112, 8, 112, 7);
}
return resolved;
}
} // namespace GpuProfileDetail