| Age | Commit message (Collapse) | Author |
|
The appropriate place for these would be AbstractTexture, once it is
finished.
|
|
This also removes an extra copy of the image for custom textures.
|
|
|
|
TextureCache: Fix incomplete GPU texture decoding of non-square mips
|
|
|
|
Fixes warning:
```
Source/Core/VideoCommon/TextureCacheBase.cpp:869:17: warning: declaration shadows a local variable [-Wshadow]
const u8* tlut = &texMem[tlutaddr];
^
Source/Core/VideoCommon/TextureCacheBase.cpp:784:13: note: previous declaration is here
const u8* tlut = &texMem[tlutaddr];
^
```
|
|
Fixes bug #10183 [0] introduced by 3bd184a / PR #4467 [1].
TextureCacheBase was no longer calling `entry->Load` for custom textures
since the compute shader decoding logic was added. This adds it back in.
It also slightly restructures the decoding if-group to match the one
below, which I think makes the logic more obvious.
(recommend viewing with `git diff -b` to ignore the indentation changes)
[0]: https://bugs.dolphin-emu.org/issues/10183
[1]: https://github.com/dolphin-emu/dolphin/pull/4467
|
|
|
|
Prevents array-to-pointer decay and simplifies some code.
|
|
New Super Mario Bros on PAL still renders at 60 fps, but skips every 5th XFB copy.
So our detection of "per frame" fails, and we require twice the amound of texture objects.
But our pool frees unused textures after 3 frames, so half of them needs to be reallocated
every few frames.
This commit removes the lock for render targets. It was introduced to not update a texture
while it is still in use. But render targets aren't updated while rendering, so this
lock isn't needed. Non-rendertarget textures however aren't as dynamic, so the lock should
have no performance update.
|
|
VideoBackends: Fix crashes introduced by #4999
|
|
The existing code from ConfigManager, ES and MIOS is merged
into a new set of functions called SetRunningGameMetadata.
|
|
This stops the virtual method call from within the Renderer constructor.
The initialization here for GL had to be moved to VideoBackend, as the
Renderer constructor will not have been executed before the value is
required.
|
|
|
|
|
|
|
|
We have TOO many video backends.
|
|
|
|
TextureCacheBase: Eliminate static state
|
|
|
|
|
|
Gets rid of duplicated alignment code.
|
|
We call this "game ID" everywhere else, and it's not
actually completely unique.
|
|
This is an issue because a driver may have to maintain two copies of a
texture if it batches all uploads together at the start of a frame.
In the Vulkan backend, we do something similar to avoid breaking out of a
render pass to copy a texture from the streaming buffer to the destination
image.
This was causing issues in the sms-bubbles fifolog, where an EFB copy to
the same address of a previously-used texture caused the previous texture
to be re-used again for a different image later on in the frame, causing
the original contents to be discarded.
|
|
|
|
|
|
|
|
|
|
|
|
Fixes a major preformance regression in Skies of Arcadia during
battle transisions.
I had plans for a more advanced version of this code after 5.0,
but here is a minimal implemenation for now.
|
|
This pr fixes another regression that happened after pr #3165 was merged. The shadows in mario baseball should now work again.
|
|
mimimi085181/remove-use-only-once-restriction-partial-updates
Remove the restriction to use efb copies only once as partial update
|
|
This is an oversight from pr https://github.com/dolphin-emu/dolphin/pull/3266 . Thanks to degasus for pointing this out.
It's possible that MAX_TEXTURE_BINARY_SIZE can be optimised, but i wanted to play it safe considering the 5.0 stable release.
|
|
I'm not entirely sure what is happening, but this optimisation is causing an issue in Sonic Riders: Zero Gravity. Apparently the issue would also be fixed by PR#3747, but this PR should also fix similar issues.
Games that use partial updates might get slower with this, so some performance regression testing would be nice. Games like New Super Mario Bros, RS2, Zelda TP and Silent Hill. Testing with high graphics settings makes sense, since this would mostly end up in more work for the GPU.
|
|
|
|
- remove an outdated comment about the efb to ram and scaled efb restriction
- when upscaling efb copies, mark the new texture as efb copy
- dx12 fixes for the src box, especially the number of layers for 3D
|
|
|
|
|
|
target texture, not just the binary size.
This should get Donkey Kong Country Returns characters to be as broken as they should be. They will be fixed in a later pr.
Expected result is:
efbtex: characters are always flickering or invisible, no matter what scaling or IR setting
efb2ram: characters are always working properly at 1xIR, no matter what scaling or IR setting
|
|
Avoid the "Memory stride too small" assert
|
|
Also remedies places where the video backends and core rely on things
being indirectly included.
|
|
This was causing crashes/driver resets when odd-dimension textures were
being loaded, due to the size we were uploading being larger than the size
of the higher-level texture calculated by the runtime.
|
|
EFB2Tex still has no idea what to do with these weird textures so we
simply disable EFB2Tex when one is encountered.
|
|
TextureCache, fix an incorrect assert.
|
|
|
|
|
|
Approximately three or four times now, the issue of pointers being
in an inconsistent state been an issue in the video backend renderers
with regards to tripping up other developers.
Global (ugh) resources are put into a unique_ptr and will always have a
well-defined state of being - null or not null
|
|
|
|
|
|
|