Commit graph

38 commits

Author SHA1 Message Date
degasus
02dd062518 VideoCommon: Drop now unused efb2tex matrix generation. 2017-12-06 09:30:03 +01:00
degasus
e8febd0cef VideoCommon: Create a namespace for TextureConversionShaderGen. 2017-12-02 15:17:39 +01:00
Markus Wick
491c10ec96 VideoBackends: Use VideoCommon shader generators for efb2tex copies.
This will generate one shader per copy format. For now, it is the same
shader with the colmat hard coded. So it should already improve the GPU
performance a bit, but a rewrite of the shader generator is suggested.

Half of the patch is done by linkmauve1:
VideoCommon: Reorganise the shader writes.
2017-12-02 15:17:39 +01:00
Stenzek
49a9c33bd7 VideoCommon: Move abstract texture creation function to Renderer 2017-11-22 18:47:04 +10:00
N.E.C
c3a57bbad5 Video: Clearly separate Texture and EFB Copy formats
Improve bookkeeping around formats. Hopefully make code less confusing.

- Rename TlutFormat -> TLUTFormat to follow conventions.
- Use enum classes to prevent using a Texture format where an EFB Copy format
  is expected or vice-versa.
- Use common EFBCopyFormat names regardless of depth and YUV configurations.
2017-08-03 18:35:29 -07:00
Stenzek
aff44684a4 Vulkan: Move shader/pipeline-related methods to ShaderCache 2017-07-30 12:38:49 +10:00
iwubcode
2cdc93f4ab Video Backends: Split texture cache code out into separate files, introduce 'AbstractTexture' 2017-06-13 00:41:51 -05:00
Stenzek
8a56ef42dc Vulkan: Fix image layout assertion failing for palette textures 2017-06-13 14:47:09 +10:00
Stenzek
ca55ba6c1d Vulkan: Transition texture cache entries before usage 2017-06-10 23:52:39 +10:00
Stenzek
cc851c41c1 TextureCache: Move host texture utility functions to VideoCommon
The appropriate place for these would be AbstractTexture, once it is
finished.
2017-04-29 13:46:43 +10:00
Stenzek
c53a60f3c3 Vulkan: Support native compressed textures 2017-04-29 13:46:42 +10:00
Stenzek
f4b848949c TextureCache: Support compressed textures and pass pitch/size to upload
This also removes an extra copy of the image for custom textures.
2017-04-29 00:14:23 +10:00
Stenzek
69b0a31938 Vulkan: Clamp framebuffer resolve rectangle to texture size
This is invalid and was causing the NVIDIA driver to throw an error.
2017-04-15 19:55:32 +10:00
Stenzek
e9850aa0f2 VideoBackends: Support updated texture encoding shader generators 2017-04-12 00:11:22 +10:00
Stenzek
739aced97c Vulkan: Implement compute-shader based GPU texture decoding 2017-04-01 12:32:57 +10:00
degasus
abf9bb170b TextureCache: Drop unused parameter in backend API. 2016-12-26 22:10:32 +01:00
degasus
04f319066d TextureCache: Extract BP enum check to VideoCommon.
We have TOO many video backends.
2016-12-26 22:10:21 +01:00
Mat M
9160be50db Merge pull request #4224 from lioncash/tcache
TextureCacheBase: Eliminate static state
2016-12-23 04:33:42 -05:00
Stenzek
accce4294a TextureCache: Use same color coefficients for EFB2Tex as EFB2RAM 2016-12-15 02:20:46 +10:00
Lioncash
58a5395173 TextureCacheBase: Eliminate static state 2016-12-09 16:50:37 -05:00
Stenzek
bff394ec8a Merge pull request #4489 from stenzek/vulkan-minor-fixes
Vulkan: Minor fixes
2016-12-05 12:19:49 +10:00
Stenzek
9736198c3b Vulkan: Use explicit barriers instead of dependancies
At least on NV, some of these don't seem to have the intended effect. One
known instance of this is in texture conversion.
2016-12-04 20:10:13 +10:00
Stenzek
804cd0ff03 Vulkan: Move XFB encoding/decoding to TextureConverter 2016-12-04 20:10:13 +10:00
Stenzek
d67463e0a7 Vulkan: Simplify palette texture conversion 2016-12-04 20:10:13 +10:00
Stenzek
add638538b Vulkan: Combine PaletteTextureConverter and TextureEncoder classes 2016-12-04 20:10:13 +10:00
Stenzek
4bc0e14995 Vulkan: Use an enumeration to index pipeline layouts 2016-12-04 20:10:13 +10:00
Stenzek
2ef884893a Vulkan: Fix map error when texture dumping is enabled 2016-12-04 00:23:34 +10:00
Stenzek
6a4eba1153 Vulkan: Replace explicit command buffer submits with wrapper function
Should we ever introduce anything else that has to be done when a command
buffer is executed (e.g. invalidating constants from previous commit), we
don't have to update all the callers.
2016-11-30 23:14:36 +10:00
Stenzek
6b88a854a7 Vulkan: Handle strided XFB copies
Where src_rect.width * 2 != dst_stride.
2016-11-19 20:29:47 +10:00
Stenzek
5182e6b549 Vulkan: Implement virtual/real XFB support 2016-11-03 22:33:24 +10:00
Stenzek
3593fa27ab Vulkan: Move CopyRectangleFromTexture to TextureCache 2016-11-03 22:01:55 +10:00
Stenzek
b066d51dfa Vulkan: Remove parameters/members of single-instance classes
There's not a lot of point in passing these around or storing them
(texture cache/state tracker mainly) as there will only ever be a single
instance of the class.

Also adds downcast helpers such as Vulkan::Renderer::GetInstance().
2016-11-03 22:01:54 +10:00
Stenzek
010514bd39 Vulkan: Use correct source format to determine palette size
Fixes blur in fortune street fifologs.
2016-10-06 21:55:27 +10:00
Stenzek
db09c05eec Vulkan: Fix bug with palette converted EFB copies
This happened when the source texture was an EFB copy, therefore it had
not been populated prior to the draw command buffer being executed, and
the conversion was occurring in the init command list.
2016-10-04 22:30:37 +10:00
Stenzek
4a8766cec4 Vulkan: Fix resource leaks present at shutdown and mode changes
Infrequent, but still happened.
2016-10-03 19:11:47 +10:00
Stenzek
1286c309e3 Vulkan: Fix compilation on 32-bit targets 2016-10-03 19:11:47 +10:00
Lioncash
9395b8efa9 Vulkan: Amend header includes
Adds headers where necessary to eliminate indirect includes.
Also adds headers to ensure certain standard constructs always
resolve correctly
2016-09-30 23:26:03 -04:00
Stenzek
77a128ab87 Implement experimental Vulkan backend 2016-10-01 02:40:01 +10:00