Mat M
d034c830ac
Merge pull request #9681 from iwubcode/texture-info
...
VideoCommon: move all texture calculations to a "TextureInfo" class
2021-05-13 06:44:08 -04:00
iwubcode
182dfc38e6
VideoCommon: move all texture calculations to a "TextureInfo" class. This ever so slightly improves readability and allows for the full texture name to be generated outside of the hires texture cache
2021-05-11 22:58:36 -05:00
JMC47
eb5cd9be78
Merge pull request #9694 from iwubcode/xfb-tcache-hash
...
VideoCommon: update TextureCache logic for finding oversized XFBs
2021-05-09 15:20:53 -04:00
iwubcode
6fd7867c56
VideoCommon: simplify TextureCacheBase by comparing a xfb's hash against a newly calculated one. This fixes games like Teenage Mutant Ninja Turtles (Wii) which use oversized textures where the stride doesn't match the BytesPerRow and that resulted in a different hash algorithm being used. By not hashing the texture before, we improve performance by hashing at most once in all direct XFB lookup scenarios.
2021-05-08 01:29:48 -05:00
ash!!
43ceba4fef
optimize TextureCacheBase::SerializeTexture, ::DeserializeTexture
...
texture serialization and deserialization used to involve many memory
allocations and deallocations, along with many copies to and from
those allocations. avoid those by reserving a memory region inside the
output and writing there directly, skipping the allocation and copy to
an intermediate buffer entirely.
2021-04-18 13:40:42 -07:00
Pokechu22
70f9fc4e75
Convert BPMemory to BitField and enum class
...
Additional changes:
- For TevStageCombiner's ColorCombiner and AlphaCombiner, op/comparison and scale/compare_mode have been split as there are different meanings and enums if bias is set to compare. (Shift has also been renamed to scale)
- In TexMode0, min_filter has been split into min_mip and min_filter.
- In TexImage1, image_type is now cache_manually_managed.
- The unused bit in GenMode is now exposed.
- LPSize's lineaspect is now named adjust_for_aspect_ratio.
2021-03-06 19:27:19 -08:00
Lioncash
3d9b2aa005
VideoCommon: Migrate over to fmt
...
Migrates off the printf-based formatting where applicable.
2020-11-17 21:23:58 -05:00
iwubcode
fd3af4c5d3
InputCommon: Introducing the "Dynamic Input Texture". Configuration links an emulated input action to an image based on what host key is defined for that emulated input. Specific regions are called out in configuration that mark where to replace an input button with a host key image.
2020-10-03 17:10:35 -05:00
iwubcode
9c8338ec4c
DolphinQt / VideoCommon: Add additional texture dumping options. Specifically, this enables users to choose whether to dump mip maps, base level textures, or both.
2020-07-22 19:30:27 -05:00
Jun Su
da223a2271
Cleanup warnings of -Wunused-lambda-capture
...
Remove unused lambda captures.
2020-03-24 20:14:10 +08:00
Lioncash
b2a9c36501
VideoCommon/OpcodeDecoding: Move g_bRecordFifoData into namespace
...
Keeps the global localized with the code that it's primarily related to.
Now it's obvious from a glance what the global variable is affecting.
2019-12-05 09:13:03 -05:00
Lioncash
6fbbc2683e
VideoCommon: Make use of fmt outside of shader generators
...
Migrates most of VideoCommon over to using fmt, with the exception being
the shader generator code. The shader generators are quite large and
have more corner cases to deal with in terms of conversion (shaders have
braces in them, so we need to make sure to escape them).
Because of the large amount of code that would need to be converted, the
conversion of VideoCommon will be in two parts:
- This change (which converts over the general case string formatting),
- A follow up change that will specifically deal with converting over
the shader generators.
2019-11-23 16:00:45 -05:00
Connor McLaughlin
9477c8b0ed
Merge pull request #8293 from lioncash/ref
...
VideoCommon/TextureCacheBase: Make OnConfigChanged's parameter a const reference
2019-08-08 12:17:26 +10:00
Lioncash
07aa18eb2b
VideoCommon/TextureCacheBase: Collapse for loop into a fill() in Invalidate()
...
Same thing, less code.
2019-08-04 23:30:27 -04:00
Lioncash
d52dd2e04f
VideoCommon/TextureCacheBase: Use emplace_back where applicable
...
Same thing, less code.
2019-08-04 23:28:14 -04:00
Lioncash
fd12ae1408
VideoCommon/TextureCacheBase: Remove use of the texture cache global
...
We can just call the functions that are part of the interface instead of
using the global in order to execute those functions.
2019-08-04 23:23:04 -04:00
Lioncash
86a651e27f
VideoCommon/TextureCacheBase: Remove dependence on global variables from OnConfigChanged()
...
The active config will always be passed as the reference parameter, we
can make use of the parameter instead of accessing the global variable.
2019-08-04 22:33:18 -04:00
Lioncash
7d017be666
VideoCommon/TextureCacheBase: Make OnConfigChanged's parameter a const reference
...
This reference isn't actually modified within this function
2019-08-04 22:31:27 -04:00
Stenzek
53e30c06e8
Config: Add an option to skip saving texture cache to save state
2019-07-24 05:19:22 +10:00
Stenzek
1082468133
TextureCache: Support saving cache entries, including EFB copies
2019-07-24 04:10:38 +10:00
Stenzek
6f53a4d0da
TextureCache: Don't crash when conversion pipelines fail to compile
2019-07-19 15:32:50 +10:00
Stenzek
946571b759
TextureCache: Support reinterpreting formats for VRAM textures
2019-07-14 19:16:27 +10:00
Stenzek
77f406c8a8
TextureCache: Combine ApplyPaletteToEntry and ConvertTexture
2019-07-14 14:07:37 +10:00
Lioncash
d4337eebde
VideoCommon/Statistics: Rename stats global to g_stats
...
Makes the global variable follow our convention of prefixing g_ on
global variables to make it obvious in surrounding code that it's not a
local variable.
2019-07-10 23:34:54 -04:00
Lioncash
a99c7d01e1
VideoCommon/Statistics: Normalize statistic variable names
...
Normalizes all variables related to statistics so that they follow our
coding style.
These are relatively low traffic areas, so this modification isn't too
noisy.
2019-07-10 23:19:10 -04:00
Techjar
ff972e3673
Reformat repo to clang-format 7.0 rules
2019-05-06 18:48:04 +00:00
Léo Lam
ab9ece9bca
Replace MathUtil::Clamp with std::clamp
2019-05-04 23:12:17 +02:00
Léo Lam
99a4ca8de7
Merge pull request #7839 from ShFil119/impr/redundant
...
Remove redundant initialization
2019-05-04 22:50:51 +02:00
Filip Gawin
c110ffcdaa
Remove redundant initialization
2019-04-30 01:22:24 +02:00
Connor McLaughlin
1b1662773e
Merge pull request #8048 from stenzek/vulkan-negative-scissor-rect
...
Vulkan: Don't set a negative offset in scissor rect
2019-04-28 23:37:51 +10:00
Stenzek
53af27b133
FramebufferManager: Fix invalid transitions for 1xIR in EFB cache
2019-04-28 16:13:49 +10:00
Stenzek
d5b3595314
TextureCache: Fix incorrect format string in GetXFBTexture()
2019-04-28 14:32:37 +10:00
Stenzek
f8c1ba409c
Replace EFBRectangle/TargetRectangle with MathUtil::Rectangle
2019-04-21 14:28:14 +10:00
Stenzek
b09a0e1a60
TextureCache: Check for out-of-range partial copy rect after scaling
2019-04-21 12:54:32 +10:00
Stenzek
3791262d96
TextureCache: Use linear filtering on y-scaled and >1xIR VRAM copies
2019-04-21 12:41:15 +10:00
Stenzek
708bd3d9f7
TextureCache: Simplify XFB reconstruction
...
This also better handles in-memory interlaced XFB data placed by the CPU
by considering the stride from the VI.
2019-04-21 12:41:15 +10:00
Stenzek
3c455de799
FramebufferManager: Fix broken EFB peeks in GL with MSAA on
2019-03-30 03:14:29 +10:00
Stenzek
087b11e780
TextureCacheBase: Fix possible crash on shutdown with deferred EFB copies
2019-03-29 20:54:44 +10:00
Stenzek
bf0b52efc6
TextureCacheBase: Fix infinite loop in DoPartialTextureUpdates
2019-03-20 20:05:51 +10:00
Tilka
6be35422e9
Merge pull request #7832 from stenzek/xfb-decoding-regression
...
TextureCache: Fix GPU decoding of XFB copies
2019-02-28 11:03:25 +00:00
Stenzek
db6763019d
TextureCache: Fix GPU decoding of XFB copies not falling back to CPU
2019-02-28 20:19:37 +10:00
Stenzek
7f0111b022
TextureCache: Fix EFB2RAM copies at >1xIR sampling out-of-range
2019-02-28 20:11:46 +10:00
Stenzek
f039149198
Move most backend functionality to VideoCommon
2019-02-19 16:57:54 +10:00
Stenzek
933f3ba008
TextureCache: Don't copy out-of-range rectangles when stitching textures
...
This can cause driver crashes or GPU hangs if we do.
2019-02-17 16:35:43 +10:00
Stenzek
50bdcb8d9c
TextureCache: Bind textures/samplers after loading all textures
...
Since loading textures can result in rendering, e.g. partial copies, we
don't want to disturb partially-bound GX state.
2019-02-17 16:35:43 +10:00
Stenzek
1070192165
TextureCache: Fix a possible crash when partial updating palette textures
2019-01-19 23:38:02 +10:00
Stenzek
84bcbef944
TextureCache: Don't partial copy to non-existant texture layers
2019-01-19 23:38:00 +10:00
Stenzek
ade255a5ff
TextureCache: Fix broken XFB stitching with stereoscopy is enabled
2019-01-19 23:23:21 +10:00
weihuoya
184b2edc30
fx texture overlap
2018-12-25 21:24:25 +08:00
Stenzek
502c4c0e87
TextureCache: Recompute overlapping XFB copy hashes after copying to RAM
2018-11-13 12:48:27 +10:00