| Age | Commit message (Collapse) | Author |
|
Config Hotfix: Prevent per-game settings (ie. GameINI) being stored to the global user configuration.
|
|
VertexLoaderX64: fix 2GB warnings
|
|
Fix the shader overrunning our max shader size.
|
|
Add UI Support for up to 8x Internal Resolutions
|
|
|
|
to the global user configuration.
|
|
Merge two cases which should've already been merged.
|
|
|
|
This reverts commit 4cbaddb7ad1e84946a6fb1af1d853af15be90615.
|
|
There are very rare conditions in which xfmem can actually desync from bpmem.
|
|
|
|
Search the texture cache for small textures by address and hash
|
|
Fifo: Rewrite SyncGPU
|
|
- Fixes remaining lighting issues (Mario Tennis, etc)
- Apply same fixes to Software Renderer
- Corrected zero length light direction vector to resolve with normal direction (essentially becomes LIGHTDIF_NONE which was what I was after)
|
|
The new implementation has 3 options:
SyncGpuMaxDistance
SyncGpuMinDistance
SyncGpuOverclock
The MaxDistance controlls how many CPU cycles the CPU is allowed to be in front
of the GPU. Too low values will slow down extremly, too high values are as
unsynchronized and half of the games will crash.
The -MinDistance (negative) set how many cycles the GPU is allowed to be in
front of the CPU. As we are used to emulate an infinitiv fast GPU, this may be
set to any high (negative) number.
The last parameter is to hack a faster (>1.0) or slower(<1.0) GPU. As we don't
emulate GPU timing very well (eg skip the timings of the pixel stage completely),
an overclock factor of ~0.5 is often much more accurate than 1.0
|
|
[rebased] Compare timebase of netplay users to detect desyncs.
|
|
|
|
Suggested by degasus.
|
|
I can't reproduce that it's actually faster and it will definitely be
slower with position caching for zfreeze.
|
|
|
|
|
|
This fixes issue 6563:
https://code.google.com/p/dolphin-emu/issues/detail?id=6563
This PR adds a 2nd map to texture cache, which uses the hash as key. Cache entries from this new map are used only if the address matches or if the texture was fully hashed. This restriction avoids false positive cache hits. This results in a possible situation where safe texture cache accuracy could be faster than the fast one.
Small textures means up to 1KB for fast texture cache accuracy, 4KB for medium, and all textures for safe accuracy.
Since this adds a small overhead to all texture cache handling, some regression testing would be nice. Games, which use a lot of textures the same time, should be affected the most.
|
|
Undo accidental screwup of some HiresTextures code from project-moration
|
|
I tried to change messages that contained instructions for users,
while avoiding messages that are so technical that most users
wouldn't understand them even if they were in the right language.
|
|
This is why I should wait for people to review, even if I get annoyed
that nobody seems to care. :duncecap:
|
|
Address static memory relative to a base register, analog to what we're
doing with PPCSTATE in the CPU JIT. This allows executable memory for
the vertex loader JIT to be allocated anywhere, not just within 2 GiB of
static data.
Fixes issue 8180.
|
|
Common: Blocking Loop (extracted from Fifo.cpp)
|
|
Rudimentary version of Wii IPC determinism. Ported from my old udpnet branch.
|
|
Fix invalid pointer errors in Burnout 2.
|
|
zfreeze: fix 2-component positions
|
|
This merges two atomic<bool> into one atomic<int>.
We did move the bit from one bool to another, now we can use operator--.
|
|
It's now a new helper function within common.
|
|
Only loop through and call getPointers when something has actually
changed.
Worth about 2-4% speedup un SMG over the previous commit.
|
|
Move ownership of cached_arraybases from CPMemory to VertexLoaderManager
to better match it usage.
|
|
|
|
Yet another story of games loading weird shit into registers.
For some reason, Burnout 2 would (in rare situations) load invalid
addresses into cp_state.array_bases. What would the real hardware
do in this situation? Who knows, Burnout 2 doesn't actually enable
the vertex array with the invalid address so nothing kinky happens.
But dolphin tries to optimise things and starts using the address
as soon as it is loaded into memory. This causes GetPointer (which is
now much more vocal) to throw an error.
The Fix: We don't call GetPointer until we are sure the vertex array
has been enabled.
|
|
HiresTexture: Fix prefetching with broken textures
|
|
|
|
|
|
- FileSearch is now just one function, and it converts the original glob
into a regex on all platforms rather than relying on native Windows
pattern matching on there and a complete hack elsewhere. It now
supports recursion out of the box rather than manually expanding
into a full list of directories in multiple call sites.
- This adds a GCC >= 4.9 dependency due to older versions having
outright broken <regex>. MSVC is fine with it.
- ScanDirectoryTree returns the parent entry rather than filling parts
of it in via reference. The count is now stored in the entry like it
was for subdirectories.
- .glsl file search is now done with DoFileSearch.
- IOCTLV_READ_DIR now uses ScanDirectoryTree directly and sorts the
results after replacements for better determinism.
|
|
Also remove said variables from being globals.
|
|
Also removes two unused volatile variables.
|
|
Fifo: Replace usages of volatile with atomics
|
|
|
|
Thread: Remove unused Barrier class
|
|
|
|
Credits go to Galop1n for designing this technique and to BhaaLseN for cleaning up the commit.
|
|
CustomTexture: prefetch all available textures
|
|
Fix video dumping incorrect lengths for some games in Windows
|
|
ogl: efb poke merge
|