rsx: Implement stencil mirror views

- Implements a mirror view of D24S8 data that accesses the stencil components.
  Finishes the implementation of TEX2D_DEPTH_RGBA as the stencil component was previously missing from the reconstructed data
- Add a few missing destructors
  Image classes are inherited a lot and I forgot to make the dtors virtual
This commit is contained in:
kd-11 2018-11-24 15:54:46 +03:00 committed by kd-11
parent 696b91cb9b
commit 4b79ef1ad9
19 changed files with 401 additions and 156 deletions

View file

@ -225,7 +225,7 @@ std::string VertexProgramDecompiler::Format(const std::string& code)
{ "$2", std::bind(std::mem_fn(&VertexProgramDecompiler::GetSRC), this, 2) },
{ "$s", std::bind(std::mem_fn(&VertexProgramDecompiler::GetSRC), this, 2) },
{ "$a", std::bind(std::mem_fn(&VertexProgramDecompiler::AddAddrReg), this) },
{ "$t", std::bind(std::mem_fn(&VertexProgramDecompiler::GetTex), this) },
{ "$t", [this]() -> std::string { return "vtex" + std::to_string(d2.tex_num); } },
{ "$ifcond ", [this]() -> std::string
{
const std::string& cond = GetCond();
@ -582,6 +582,7 @@ std::string VertexProgramDecompiler::Decompile()
case RSX_VEC_OPCODE_SSG: SetDSTVec("sign($0)"); break;
case RSX_VEC_OPCODE_TXL:
{
GetTex();
switch (m_prog.get_texture_dimension(d2.tex_num))
{
case rsx::texture_dimension_extended::texture_dimension_1d: