* vk: define rtt images with transfer_dst set
* vk: Bind a buffer view for attribs with undefined data
* vk: Properly define renderpass clip region to fit the framebuffer
* vk: respect type bits from returned memory requirements
* vk: separate specular color
rsx: separate front color output from back color output
re-enable front-back diffuse lighting
vk: fix front face selection and actually enable face culling
* dx12: Hide constant-key blended visuals (by common use of factor, 1-factor)
* dx12: Fix 2 sided lighting when the shader does not compute both outputs
* vk/dx12: confirm that src register exists before copying for 2-sided lighting
rsx_decode.h implements a "rsx_decoders" template class that is specialized for most GCM command
found in rsx command buffer. 3 static members are defined : a "decode" function that turns command
value into a more meaninfull type if applicable (for instance bool for _enabled* command, surface
formats for set_surface_format command...), a "commit_rsx_state" that modifies a given rsx_state
structure when the command is parsed, and a "dump" function used in rsx_debugger for pretty printing.
Hopefully having the 3 functions in a single place for every command will act as a self documenting
list of rsx command buffer opcode.
rsx_state is also expanded into several explicit variables instead of being stored into a u32 array.
This should makes debugging easier (Visual Studio will display the exact value of these member for instance)
as well as preparing rsx_state for serialisation/deserialisation.
The vertex array and textures opcode are not concerned atm for bisecting purpose.
All the games I've been trying to load from outside RPCS3's bin directory are returning me empty directories
```
{PPU[0x3] Thread (main_thread) [0x011223d8]} class fmt::exception thrown: cellGameBootCheck(): Unknown CATEGORY:
```
This is a hack for when the category is empty or unknown.
We assume it's a disk game and proceed with the emulation.