Commit Graph

65 Commits

Author SHA1 Message Date
gibbed
1409b9c565 [GPU/Vulkan] Add support for 2D image stacks. 2018-06-05 07:51:51 -05:00
gibbed
486172770d [GPU] Ignore min mip level when one is specified and there is no mip address. 2018-06-04 22:54:41 -05:00
gibbed
2c7043bd98 [GPU/Vulkan] Maybe fix minimum mip level. Probably breaks everything. 2018-06-04 10:13:28 -05:00
gibbed
b35fe935f9 [GPU] Ignore mipmap level count when mip data address is invalid. 2018-06-01 22:04:31 -05:00
gibbed
79f8fe9f37 [GPU] Fixes to problems caused by previous commit (bad handling of memory addressing, watches, etc). 2018-05-31 21:50:22 -05:00
gibbed
e89a31006f - [GPU] Rename TextureMemoryUsage to TextureExtent (and relevant functions/etc).
- [GPU] Precalculate memory byte usage for base mip (and any additional mip levels).
- [GPU] Change TextureCache::WatchCallback so that if it's fired multiple times for the same texture it does not assert.
- [GPU] Add write watches for texture memory associated with additional mipmap levels.
2018-05-31 19:41:33 -05:00
gibbed
bbebfd49c8 [Vulkan] Add logging to certain error conditions.
[Vulkan] Track both texture block height and texture block vertical pitch.
[Vulkan] Only convert the necessary visible height on texture uploads.
[Vulkan] Fix write watch on texture data so it properly only covers mip 0 data.
2018-05-30 19:38:36 -05:00
gibbed
cc130e1b07 [GPU] Remove unused code. 2018-05-26 07:06:56 -05:00
gibbed
7116b5fc82 [Vulkan] Reimplemented texture conversions. Here be dragons! Probably breaks everything. Also bonus DXT3A support. 2018-05-26 06:57:16 -05:00
gibbed
73d75c56e1 [GPU] Fix TextureInfo::Prepare for 3D textures. 2018-05-24 23:45:38 -05:00
gibbed
6411674f0f [GPU] Use pitch for block width calculation. 2018-05-24 08:45:12 -05:00
Dr. Chat
191dc30bee [GPU] Use the pitch field in tfetch constants 2018-05-18 13:48:28 -05:00
gibbed
170ab85049 [Vulkan] Reworking packed mip offset calculation. Probably breaks everything. 2018-05-14 03:47:58 -05:00
Dr. Chat
996ea9e273 [GPU] Ditto for GetMipLinearSize 2018-05-13 13:59:48 -05:00
Dr. Chat
1953cea64e [GPU] Unconditionally multiply in src.depth in GetMipByteSize (always valid) 2018-05-13 13:58:34 -05:00
gibbed
ef924a8423 [Vulkan] Cube textures, now with mipmaps. 2018-05-13 08:31:33 -05:00
gibbed
9b64e67e14 [Vulkan] Fix following mips for compressed textures. 2018-05-12 20:19:58 -05:00
gibbed
7a1167fd66 [Vulkan] Align ALL texture block sizes to tile dimensions. Probably breaks everything. 2018-05-12 19:40:54 -05:00
gibbed
c6ee689159 [Vulkan] Rework GetMipByteSize to properly handle linear textures. Probably breaks everything. 2018-05-12 02:30:58 -05:00
gibbed
9926bf1cf6 [Vulkan] Don't try to get mip 0's offset when there is only one mip. 2018-05-12 00:52:02 -05:00
Dr. Chat
da62e0e044 [GPU] Rename TextureInfo::size_xx -> TextureInfo::size 2018-05-08 10:29:36 -05:00
Dr. Chat
77d1d7342e [GPU] Remove TextureInfo::has_packed_mips 2018-05-05 18:23:30 -05:00
Dr. Chat
30f8fe7bb0 [GPU] Use log2 when calculating mip offset 2018-05-05 10:45:39 -05:00
Dr. Chat
88729e2ac4 [GPU] Initial (and possibly incorrect) texture size calculation for 1D and 3D 2018-05-04 12:10:26 -05:00
Dr. Chat
8ecadd49d2 [GPU] Further fix mip address calculations with really skewed aspect ratios 2018-05-04 00:18:22 -05:00
Dr. Chat
911588e9dc [GPU] Fix mip size calculation for compressed textures 2018-05-03 18:34:23 -05:00
Dr. Chat
f45cd398ef [Vulkan] Handle MIPs with non-power-of-two dimensions 2018-05-03 17:54:09 -05:00
Dr. Chat
04748b4a0d [GPU] TextureInfo::GetMipLocation - calculate packed mip offset 2018-05-03 16:04:11 -05:00
Dr. Chat
f885b89a03 [Vulkan] Make image views cover all mips
Align texture dimensions to 1 block minimum (for uploading mips)
2018-05-03 14:15:36 -05:00
Dr. Chat
c9d4cfe6d0 [GPU] MIPs > 16 pixels are stored in their own individual tiles 2018-05-03 12:01:50 -05:00
DrChat
1f157f35f4 [Vulkan] Initial support for mipmaps 2018-05-03 10:02:07 -05:00
DrChat
f7c7cc54ed [GPU] TextureInfo::GetMaxMipLevels 2018-04-30 11:01:46 -05:00
DrChat
ecfaaa6c95 [GPU] Log attempts to fetch unsupported texture formats 2017-12-20 21:26:52 -06:00
gibbed
b14dc3351c GPU: Make 1D textures into 2D ones. 2017-08-08 17:58:11 -05:00
gibbed
4a95862023 GPU: Ensure texture resolves are at least 1x1. 2017-08-08 01:39:42 -05:00
gibbed
6d9a56a269 GPU: Fixed texel pitch calculation for linear textures. 2017-08-07 20:50:42 -05:00
gibbed
b4ae5b9a01 - GPU: Removal of deprecated TextureInfo fields.
- GPU: Replicated removed deprecated fields into local struct for GL.
- GPU: Improved texture copies for Vulkan, no more pitch changes.
- GPU: Stubbed code for CTX1 conversion in Vulkan.
2017-08-07 19:30:06 -05:00
gibbed
bd58191239 Moved format info table to its own file to maintain formatting. 2017-08-06 14:13:19 -05:00
gibbed
5ce29dbe1c Format info table was off by one this whole time. Who knew? 2017-08-06 13:58:37 -05:00
gibbed
791f81c484 Prettify format info table. 2017-08-06 13:57:13 -05:00
Dr. Chat
b40d75aa3d TextureInfo: Store the texture format, not a pointer to texture format info. 2017-04-07 15:16:09 -05:00
Dr. Chat
92a4b90ed0 TextureInfo: Use round_up rather than floating point math for calculating tile width. 2017-03-19 20:20:43 -05:00
Dr. Chat
4a815e62cb TextureInfo: PrepareResolve, Reorganize source, add better documentation 2017-03-14 22:46:47 -05:00
gibbed
8dbf3d240b Make the previous commit slightly more performant. 2017-03-12 01:15:43 -06:00
gibbed
69b92c6c31 Maybe fix texture uploads where mipmaps are packed in linear textures. 2017-03-12 01:12:02 -06:00
gibbed
5875b79cc4 Compressed textures apparently don't have to have a height multiple of 32 either. 2017-03-11 23:40:43 -06:00
gibbed
c0ee30c6b4 Linear textures apparently don't have to have a height multiple of 32. 2017-03-11 22:56:17 -06:00
Dr. Chat
f87e55d030 Textures: Untiled textures do not need to have a size multiple of 32 2017-03-11 20:58:12 -06:00
Vlad Ivanov
f0ba717142 Fix a bunch of missing cmath includes
...as well as missing std:: namespace specifiers
2017-02-07 20:26:08 +03:00
gibbed
a95de67b8c 1D textures. Maybe. 2017-01-10 00:04:41 -06:00