| Age | Commit message (Collapse) | Author |
|
|
|
This also better handles in-memory interlaced XFB data placed by the CPU
by considering the stride from the VI.
|
|
|
|
|
|
|
|
We want this setting to invalidate the cache because it may affect the appearance of textures in the rendered scene, therefore one would expect changing it while the game is running to have the expected effect immediately.
|
|
Using 8-bit integer math here lead to precision loss for depth copies,
which broke various effects in games, e.g. lens flare in MK:DD.
It's unlikely the console implements this as a floating-point multiply
(fixed-point perhaps), but since we have the float round trip in our
EFB2RAM shaders anyway, it's not going to make things any worse. If we
do rewrite our shaders to use integer math completely, then it might be
worth switching this conversion back to integers.
However, the range of the values (format) should be known, or we should
expand all values out to 24-bits first.
|
|
TextureConversionShader: Don't sample from adjacent rows when not needed
|
|
|
|
|
|
Also makes y_scale a dynamic parameter for EFB copies, as it doesn't
make sense to keep it as part of the uid, otherwise we're generating
redundant shaders.
|
|
|
|
size. This saves on a number of multiplications and fixes an issue where we were multiplying the y-scaling factor by the srcRectangle's height + 1 which was causing a crash in some GC titles
|
|
|
|
This will generate one shader per copy format. For now, it is the same
shader with the colmat hard coded. So it should already improve the GPU
performance a bit, but a rewrite of the shader generator is suggested.
Half of the patch is done by linkmauve1:
VideoCommon: Reorganise the shader writes.
|
|
|
|
|
|
the xfbs created from overlapping copies
|
|
|
|
|
|
|
|
|
|
hasn't changed since the last frame
|
|
|
|
display of PAL games that run in 50hz mode.
|
|
|
|
|
|
IRs by detecting & fixing the mipmaps that aren't just used for downscaling, but are handmade to create a gradient.
|
|
This allows the hashing for TextureConfig instances to automatically be resolved instead of needing to directly specify it all the time.
|
|
Improve bookkeeping around formats. Hopefully make code less confusing.
- Rename TlutFormat -> TLUTFormat to follow conventions.
- Use enum classes to prevent using a Texture format where an EFB Copy format
is expected or vice-versa.
- Use common EFBCopyFormat names regardless of depth and YUV configurations.
|
|
This is a remake of https://github.com/dolphin-emu/dolphin/pull/3749
Full credit goes to phire.
Old message:
"If none of the texture registers have changed and TMEM hasn't been invalidated or changed in other ways, we can blindly reuse the old texture cache entries without rehashing.
Not only does this fix the bloom effect in Spyro: A Hero's Tail (The game abused texture cache) but it will also provide speedups for other games which use the same texture over multiple draw calls, especially when safe texture cache is in use."
Changed the pr per phire's instructions to only return the current texture(s) if none of the texture registers were changed. If any texture register was changed, fall back to the default hashing and rebuilding textures from memory.
|
|
|
|
'AbstractTexture'
|
|
The appropriate place for these would be AbstractTexture, once it is
finished.
|
|
This also removes an extra copy of the image for custom textures.
|
|
|
|
|
|
Prevents array-to-pointer decay and simplifies some code.
|
|
|
|
|
|
We have TOO many video backends.
|
|
|
|
|
|
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/partial-texture-updates-check-dimensions
Partial texture updates: Check the dimensions of the efb copy
|