There were no texture-cache hit/miss counters at all. Hit/miss was visible only
as GL_CACHE strings, which are compiled out unless ENABLE_OGL_DEBUG is set and
are further gated on UseDebugDevice at emit time -- so on a shipped build the
texture cache is completely opaque. For a tiler-bound title, source misses
(upload + swizzle) are a prime suspect we could not see.
Adds TCSourceHit/Miss, TCTargetHit/Miss and HashCacheHit/Miss, incremented at
the existing hit/miss forks in LookupSource and the hash cache lookup. The new
entries are appended after the ROV counters so the aliased slots
(TextureCopies = Fillrate, TextureUploads = SyncPoint) keep their indices.
Also fills in the three missing HW counter names. names_hw was declared
[CounterLastHW] but had only 10 initialisers, leaving TextureCopiesROV,
DrawCallsROV and BarriersROV as null pointers -- GSPerfMon::Dump iterates to
CounterLastHW and passed them straight to fprintf %s.
Use GSTexture::FeedbackTarget RTs by default (not GSTexture::ShaderWriteTarget).
Do ROV type conversion for both color and depth (if needed).
Make sure the formats for ROV actually support UAV/storage image.
Change 'PSSetUnorderedAccess' to 'PSSetROVs' for clarity.
DX12: Use enum names instead of raw constants in PSSetShaderResource().
Some string format cleanup to GL_*() macros.
VK: Do not enable ROV if FB fetch is available.
Other misc cosmetic changes such as whitespace, etc.
Co-authored-by: TellowKrinkle