mitaclaw
e8d5fb89e4
C++20: Synthesize `operator!=` From `operator==`
...
The inequality operator is automatically generated by the compiler if `operator==` is defined.
2024-10-10 20:23:55 -07:00
iwubcode
c2bc2ccd23
VideoCommon: pull texture sampler out of texture cache so that it can be used in other places in the future
2024-06-01 23:21:04 -05:00
Jordan Woyak
550e008774
VideoCommon: Scan texture dumping directory + subdirectories to not re-dump existing files.
2024-03-21 20:27:34 -05:00
Lioncash
cac66317aa
VideoCommon/Statistics: Remove global system accessor from s_after_frame_event
...
Instead, we make the event take a reference to the system and then pass
it in when the event is triggered.
This does introduce two other accessors, but these are much easier to
refactor out over time, and without modification to the existing event
interface.
2024-01-31 13:12:09 -05:00
iwubcode
02756be381
VideoCommon: prevent a potential custom texture crash that can occur when a shared_ptr gets released while a pointer to its member data is still being used
2023-12-09 23:43:40 -06:00
iwubcode
fb86c6342e
VideoCommon: move texture dump function out of texture cache to its own free function so it can be used elsewhere. Doing this change may also slightly improve performance of this operation
2023-11-26 16:35:03 -06:00
iwubcode
0e8f8ea930
VideoCommon: instead of using 'CustomTextureData' directly, use 'TextureData' for texture assets, this allows us to provide additional metadata for textures. Such as a sampler or type information (to distinguish cube maps)
2023-10-10 09:58:14 -05:00
get
63467559b2
fmt 10.0.0-10.1.1 compile fixes
...
Implicit conversion operators and enums was removed for parity with std::format (fce74caa15
).
2023-09-21 01:19:23 +02:00
Dentomologist
d5d3eb5025
TextureCacheBase: Add m_ prefix to member variables
2023-09-01 22:52:17 -07:00
iwubcode
f7e78742cf
VideoCommon: skip the texture dump if the texture is using a custom texture, regardless of whether or not it is loaded yet
2023-07-19 23:44:41 -05:00
iwubcode
0539bb4a3e
VideoCommon: call into graphics mods create texture callback, providing additional asset dependencies that trigger the texture to be reloaded
2023-07-02 13:45:09 -05:00
iwubcode
a93e6e7397
VideoCommon: add support for allowing a TextureCache entry to be associated with multiple assets
2023-07-02 12:50:07 -05:00
iwubcode
2dc24a9148
VideoCommon: move cached texture asset to 'CustomAsset' common code
2023-06-20 18:59:55 -05:00
iwubcode
e831d7b6bb
InputCommon / VideoCommon: remove dynamic input reloading the texture cache, this is no longer needed, assets reload automatically!
2023-06-07 18:30:10 -05:00
iwubcode
ca8d6748d6
VideoCommon: introduce linked assets in TCacheEntry, allowing for assets to be reloaded
2023-06-07 18:30:10 -05:00
iwubcode
f1f1ecc9d1
Core / VideoCommon: update HiresTexture to use CustomAssetLoader
2023-06-05 16:33:19 -05:00
iwubcode
e101f7f6ae
VideoCommon: refactor GetTexture into a separate function for creation, separating the custom texture data path from the game's texture data path
2023-04-08 02:54:00 -05:00
Pokechu22
5283a85205
TextureCacheBase: Remove unused bitset include
...
It was used for valid_bind_points, which was removed in 88bd10cd30
(and the declaration was more recently removed in 606c18210d
).
2023-02-09 16:04:48 -08:00
Scott Mansell
60f2b5af7b
Apply suggestions from code review
...
Co-authored-by: Mai <mathew1800@gmail.com>
Co-authored-by: BhaaL <bhaalsen@gmail.com>
Co-authored-by: iwubcode <iwubcode@users.noreply.github.com>
2023-02-09 18:36:20 +13:00
Scott Mansell
0da69055d9
Split out everying remaining from Swap
2023-01-31 19:41:24 +13:00
Scott Mansell
a01d5283ec
TextureCache: Add content locking
...
Texture cache occasionally mutates textures for efficiency.
Which is awkward if we want to borrow those textures from texture cache
to do something else, such as a graphics debugger, or async presentation
on another thread.
Content locking provides a way to signal that the contents of a texture
cache entry should not change. Texture cache will be forced to use
alternative strategies.
2023-01-31 18:29:47 +13:00
Scott Mansell
606c18210d
TextureCache: Refactor with smart pointers
...
The whole ownership model was getting a bit of a mess, with a some
of special cases to deal with. And I'm planning to make it even more
complex in the future.
So here is some upfront work to convert it over to reference counted
pointers.
2023-01-31 18:29:47 +13:00
Scott Mansell
c1fd4a2013
Move TCacheEntry out of TextureCacheBase
...
Allows for fowards declaration
2023-01-31 18:29:47 +13:00
Pokechu22
791bd16b28
Restructure parameters to TetxureConverterShaderGen/TextureConversionShader
...
This will be used for later refactoring for increased accuracy.
2022-07-16 00:07:10 -07:00
iwubcode
69839df1eb
VideoCommon: support dynamically updating game mods at runtime
2022-06-27 18:20:52 -05:00
iwubcode
892678648e
VideoCommon: trigger mod calls in TextureCacheBase (efb/xfb calls), VertexManagerBase (draw calls), and VertexShaderManager (projection calls)
2022-06-27 18:20:52 -05:00
iwubcode
62c186e14b
VideoCommon: add UninitializeEFBMemory to mirror XFB function
2022-06-27 18:20:52 -05:00
iwubcode
4fbbd85ef4
VideoCommon: create variables for EFB/XFB copy prefix. Reword prefix to 'efb1' and 'xfb1' to match textures
2022-06-26 21:53:21 -05:00
Pokechu22
5465775d11
Fix ambiguous uses of format_to
...
At least in MSVC (which is not restricted from targetting C++20), these can be resolved to either std::format_to or fmt::format_to (though I'm not sure why the std one is available). We want the latter.
2022-01-13 11:11:08 -08:00
Pokechu22
78e43a4404
Make all custom fmt::formatter's format functions const
...
fmt 8.0.0 requires this.
2022-01-13 11:11:08 -08:00
Pokechu22
afd02b79a5
VideoCommon: Add names for textures and shaders
2022-01-01 11:38:56 -08:00
Pokechu22
78bfd25964
Fix all uninitialized variable warnings (C26495)
2021-10-13 12:32:16 -07:00
Scott Mansell
88bd10cd30
Extend TMEM cache implementation
...
Now works with games that deliberately avoid invalidating TMEM because
they know textures are too large to fit:
* Sonic Riders
* Metal Arms: Glitch in the System
* Godzilla: Destroy All Monsters Melee
* NHL Slapshot
* Tak and the Power of Juju
* Night at the Museum: Battle of the Smithsonian
* 428: Fūsa Sareta Shibuya de
2021-10-12 15:51:24 +13:00
Pierre Bourdon
e149ad4f0a
treewide: convert GPLv2+ license info to SPDX tags
...
SPDX standardizes how source code conveys its copyright and licensing
information. See https://spdx.github.io/spdx-spec/1-rationale/ . SPDX
tags are adopted in many large projects, including things like the Linux
kernel.
2021-07-05 04:35:56 +02:00
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
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
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
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
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
1082468133
TextureCache: Support saving cache entries, including EFB copies
2019-07-24 04:10:38 +10:00
Lioncash
2b9389202e
VideoCommon: Remove unused MathUtil.h include from VideoCommon.h
...
This header doesn't actually make use of MathUtil.h within itself, so
this can be removed. Many other source files used VideoCommon.h as an
indirect include to include MathUtil.h, so these includes can also be
adjusted.
While we're at it, we can also migrate valid inclusions of VideoCommon.h
into cpp files where it can feasibly be done to minimize propagating it
via other headers.
2019-07-16 20:54:34 -04: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
Stenzek
f8c1ba409c
Replace EFBRectangle/TargetRectangle with MathUtil::Rectangle
2019-04-21 14:28:14 +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
f039149198
Move most backend functionality to VideoCommon
2019-02-19 16:57:54 +10:00
Stenzek
ade255a5ff
TextureCache: Fix broken XFB stitching with stereoscopy is enabled
2019-01-19 23:23:21 +10:00
Stenzek
8e2c063d62
TextureCache: Implement deferred/batched EFB copies
2018-11-07 16:25:01 +10:00