JMC47
035bcffc63
Merge pull request #14289 from Sintendo/typos
...
Fix various typos and spelling mistakes
2026-01-17 19:10:50 -05:00
iwubcode
b556bd99d7
Merge pull request #14268 from JoshuaVandaele/std-tounderlying
...
c++23: Replace Common::ToUnderlying with std::to_underlying
2026-01-17 16:49:57 -06:00
Sintendo
1e0473e44f
Fix various typos and spelling mistakes
2026-01-17 20:11:38 +01:00
JosJuice
f7b4d2738b
VideoCommon: Don't create mipmap vector in TextureInfo
...
The TextureInfo constructor creates a vector of MipLevels. This could be
good for performance if MipLevels are accessed very often for each
TextureInfo, but that's not the case. Dolphin creates thousands of
TextureInfos per second that it never accesses the mipmap levels of
because there's a hit in the texture cache, and in the uncommon case of
a texture cache miss, the mipmap levels only get looped through once.
To make the common case of texture cache hits as fast as possible, let's
not create a vector in the TextureInfo constructor. This commit
implements a custom iterator for MipLevels instead.
In my testing on the Death Star level of Rogue Squadron 2, this speeds
up TextureInfo::FromStage by 200%, giving an overall emulation speedup
of a bit over 1%. Results on the Hoth level are even better, with
TextureInfo::FromStage being close to 300% faster and overall emulation
being over 4% faster. (Single core, no GPU texture decoding.)
2026-01-17 17:57:07 +01:00
Joshua Vandaële
55f0715ad4
c++23: Replace Common::ToUnderlying with std::to_underlying
...
Requires at least GCC 11, Clang 13, MSVC 19.30 (VS2022 17.0), or AppleClang 13.1.6 (XCode 13.3).
2026-01-09 23:49:10 +01:00
iwubcode
2d21a99205
VideoCommon: separate the concept of a 'resource' from an 'asset'. A resource is potentially multiple assets that are chained together but represent one type of data to the rest of the system. An example is a 'material'. A 'material' is a collection of textures, a custom shader, and some metadata that all comes together to form what the concept of the material is. There will be a 'material' resource. For now, start small by introducing the interface and change our texture loading which used assets from the old resource manager, to an actual resource.
2025-11-23 11:04:24 -06:00
iwubcode
59d9c1772a
VideoCommon: rename 'IsAnisostropicEnhancementSafe' to 'IsAnisotropicEnhancementSafe' in TextureCacheBase
2025-11-23 11:04:24 -06:00
TellowKrinkle
21ac489d57
VideoCommon: Fix render to texture in wrong layout
2025-10-30 20:50:17 -05:00
Admiral H. Curtiss
3fb80bec9b
Merge pull request #13780 from jordan-woyak/fix-text-filter-nearest
...
VideoCommon: Fix "Force Nearest" texture filter setting.
2025-08-01 21:59:04 +02:00
Sintendo
f2392e4048
Avoid map/set double lookups
...
Fix some common anti-patterns with these data structures.
- You can dereference the iterator returned by `find` to access the
underlying value directly, without an extra `operator[]`/`at`.
- Rather than checking for an element before insertion/deletion, you can
just do the operation and if needed check the return value to
determine if the insertion/deletion succeeded.
2025-07-08 06:53:42 +02:00
Jordan Woyak
60156f4f94
VideoCommon: Fix "Force Nearest" texture filter setting.
2025-06-28 15:52:27 -05:00
iwubcode
7afa9e6c6f
VideoCommon: use CustomResourceManager in the texture cache and hook up to our hires textures
2025-06-06 23:03:02 -05:00
JMC47
ad3650abfc
Merge pull request #13093 from mitaclaw/ranges-modernization-4-projection
...
Ranges Algorithms Modernization - Projection
2025-03-23 15:56:13 -04:00
Jordan Woyak
561aee7707
Config: Expose Default and 1x Anisotropic Filtering setting.
2025-03-17 20:46:24 -05:00
Pokechu22
79a1e480ca
Enable anisotropic filtering when the game requests it
2025-03-17 20:46:19 -05:00
mitaclaw
e4efe011d7
Modernize std::max_element with ranges and projections
2025-03-09 13:26:39 -07:00
mitaclaw
8b9f92a0af
Modernize std::sort with ranges and projections
...
In PPCTables.cpp, the code is currently unused so I was unable to test it.
In CustomPipeline.cpp, a pointer to member function cannot be used due to 16.4.5.2.1 of the C++ Standard regarding "addressable functions". https://eel.is/c++draft/namespace.std#6
In Fs.cpp and DirectoryBlob.cpp, these examples used projections in a previous iteration of this commit, but no longer do. Still, they remain in this commit because the PR they would actually belong to is already merged.
2025-03-09 13:26:38 -07:00
Jordan Woyak
c18c039089
VideoCommon: Move backend_info out of VideoConfig struct.
2025-03-09 01:42:45 -06:00
dreamsyntax
07f712f8a0
Core/VideoCommon: Fix duplicate OSD Custom Textures messages
...
Resolves duplicate OSD messages for Loading and Found custom textures.
VideoBackend initialization results in HiresTexture::Init being called.
We already call HiresTexture::Update when OnNewTitleLoad is called.
Thus we can remove HiresTextures::Init completely as it is redundant.
2024-12-28 01:09:50 -07:00
mitaclaw
6ca7e2856b
Modernize std::find with ranges
2024-10-10 15:28:11 -07:00
Dr. Dystopia
618b41a459
Use 'contains' method
2024-08-14 22:18:28 +02: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
JosJuice
3cfa233b63
VideoCommon: Use GetSpanForAddress safely in texture decoding
...
Now only VertexLoader remains... But that one might be tricky.
2024-04-20 18:31:08 +02:00
JosJuice
54773bc5d2
VideoCommon: Remove calls to GetPointer
...
This fourth part of my series of patches to get rid of unsafe uses of
GetPointer takes care of the "easy" cases in VideoCommon. Three uses of
GetPointer now remain in Dolphin: VertexLoaderManager, TextureInfo, and
the software renderer's TextureSampler.
2024-04-09 21:08:57 +02:00
Jordan Woyak
550e008774
VideoCommon: Scan texture dumping directory + subdirectories to not re-dump existing files.
2024-03-21 20:27:34 -05:00
Admiral H. Curtiss
637fd49909
FifoRecorder: Move instance to System.
2024-01-12 15:06:06 +01:00
iwubcode
12dd15c8dd
VideoBackends / VideoCommon: add type enum to dictate whether a texture is a 2D texture, a texture array, or a cube map; support 2D texture type across backends
...
Co-authored-by: TellowKrinkle <tellowkrinkle@gmail.com >
2023-12-15 11:06:02 -06: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
Zopolis4
f0d2ce4683
Remove _M_X86 in favour of _M_X86_64
2023-11-28 23:03:20 +11: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
JMC47
900439ea0d
Merge pull request #12102 from iwubcode/cubemap_custom_texture
...
VideoCommon: add ability to load cube maps into custom texture data
2023-09-03 18:29:00 -04:00
Admiral H. Curtiss
46a596c0d3
Merge pull request #12148 from Dentomologist/fifo_convert_memoryupdate_type_to_enum_class
...
Fifo: Convert MemoryUpdate::Type to enum class
2023-09-03 03:34:35 +02:00
iwubcode
62fee2f3b6
VideoCommon: add loading cube maps from DDS files and loading it into our custom texture object. Custom texture object now has the concept of slices in addition to levels. Traditional custom textures have a single slice
2023-09-02 20:20:09 -05:00
Dentomologist
9cabf20aaa
Fifo: Convert MemoryUpdate::Type to enum class
2023-09-02 18:19:26 -07: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
Admiral H. Curtiss
7bb04ff1dc
Merge pull request #12022 from iwubcode/texture_create_gmod_impl
...
VideoCommon: call into graphics mods create texture callback
2023-07-09 04:20:43 +02:00
iwubcode
a2ad3ca6f7
VideoCommon: don't do pointer copies during graphics mod callback iteration
2023-07-02 13:58:07 -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
Admiral H. Curtiss
6d7bf60071
Merge pull request #11991 from iwubcode/tcache_multiple_texture_dependencies
...
VideoCommon: allow multiple texture assets to associate with a texture cache entry
2023-07-02 20:14:32 +02: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
3627398cf5
VideoBackends: support multiple compute images for some backends (D3D, OGL, Vulkan)
2023-06-28 17:15:31 -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
e028d2ead0
VideoCommon: move custom texture data to assets
2023-06-02 14:07:42 -05:00
joon
db712772b7
Add compression option for texture dumps.
...
Enable through command line options:
-C Graphics.Settings.TexturePNGCompressionLevel=[0-9]
Or from GFX.ini:
[Settings]
TexturePNGCompressionLevel=[0-9]
@see #10792
2023-06-01 16:01:11 -04:00
Léo Lam
ae18aa0639
Merge pull request #11687 from Minty-Meeo/warnings
...
Resolve GCC/Clang Warnings
2023-04-14 01:29:46 +01:00