More FIFO work. I’ve implemented intelligent mechanism in GatherPipeBursted to prevent «FIFO is overflown by GatherPipe!». I commented HiWatermark_Tighter parameter. If Hopefully this patch fix this issue. I will delete this definitely. I tested StarFox for 20 minutes and works really fine. :) This patch also can help when the CPU go ahead the GPU and sync in better way.
Plus: I added a _assert_msg_ in FIFO loop when the WriteDistance is negative. Please if that happens report it, this can help to solve strange issues with wrong WriteDistances.
r6495 x86 – скачать, зеркало
r6495 x64 – скачать, зеркало
DX11: Fix two crashes. One occured when trying to run a game with D3D 10.0 level hardware, the other one when closing a game when MSAA was disabled.
Fix for linux screensaver inhibit caused by a misinterpretation of the window id.
Fix the ASM dispatcher to work with linux 64
ESI is not available as callee save register on linux 64, so use R12, which
is available on windows 64, too. The only callee save register still available on
all platforms is EBP, but i guess we don’t want to fiddle with that one.
DX11: Disable MSAA when using a GPU which only supports D3D 10.0.
10.0 level hardware can’t create multisampled depth buffers which can be bound as shader resources as well, but we need that for e.g. EFB access or EFB copies.
Only multisampling the color buffer doesn’t work either since color and depth targets must be using the same sample count.
LLE JIT: Speed up the dispatcher by removing the compiled block check. Initialised the blocks with a stub which calls the compiler.
r6494 x86 – скачать, зеркало
r6494 x64 – скачать, зеркало
LLE JIT: Added an ASM dispatcher. Should help pave the way for future optimisation.
In the command processor when FIFO_READ_POINTER is reading Is better return fifo.CPWritePointer instead fifo.CPReadPointer.
In this way it prevents wrong fifo.CPReadWriteDistance in the future. That should fix RE0 Issue 2846 and others «Warning: GFX FIFO: Unknown Opcode (0x4d)» in dual core mode.
Core/DSPCore: Implement jit emitters for lris and mrr.
Also add the mask for ADPCM predictor, like r6480 does.
Tested 64 bit linux/windows. At least compiles for 32 bit windows, but
with these binaries most of my guest software fails with
DSPLLE(interpreted and jit) when it gets to do actual work.
r6486 x86 – скачать, зеркало
r6486 x64 – скачать, зеркало
If there is a SetBreakPoint and the actual distance is enough to achieve the BP, we wait for the FIFO Loop in dual core mode. That fix Pokemon XD in game in dual core mode (also maybe this fix Issue 3452) and hopefully others FIFO hangs related with BP. I test games like SMG and don’t produce slowdowns. If you have any slowdown about this commit. Please report it.
r6483 x86 – скачать, зеркало
r6483 x64 – скачать, зеркало
DX11: Fix stuff if MSAA is disabled.
— Speed up MSAA by using custom resolve shaders instead of ID3D11DeviceContext::ResolveSubresource().
— Fix EFB access when MSAA is enabled.
— Implement the «force linear filtering» option.
— Compile shaders using shader model 4.1 or 5.0 if available.
— Some minor cleanups.
Who cares about DX9 and OGL anyway :P
r6482 x86 – скачать, зеркало
r6482 x64 – скачать, зеркало
DSPHLE Should fix Issue 3543
Restricts ‘ssbm’ loop detection to PBs with valid loop pred_scale values.
Masked coef_idx in the adpcm code so it can’t fault on invalid values.
r6480 x86 – скачать, зеркало
r6480 x64 – скачать, зеркало
Minor change to ease video plugin merging. Made static NativeVertexFormat::Create function into a virtual function of VertexManager. I believe this is the last bit of code which is only declared in VideoCommon and defined in each of the plugins.
Related to Texture’s glitches:
* fixed a bug on QUAD-Vertex generator
r6479 x86 – скачать, зеркало
r6479 x64 – скачать, зеркало
Inhibit the screensaver while the emulator is running on linux. Fixes issue 3279. Uses the xdg-screensaver method suggested in that issue.
Corrected the FIFO breakpoint clause in Single Core mode too. That fix Pokemon XD (Only single core mode) Dual core mode suffer distances problems like RE0.
Renamed the «Disable Copy to EFB» option in the game properties(and game ini) to «Enable Copy to EFB», as it is named in the global video settings. (fixes issue 3556)
Even tinier commit. I hope nobody around here has a problem with those…. :P
Just hiding the 3D Vision option for DX11 and OGL instead of greying it out.
r6477 x86 – скачать, зеркало
r6477 x64 – скачать, зеркало
DX11: Fix mipmaps. Someone forgot creating them at the proper time ;P
DX11: Fix a DX11 debug runtime error caused by the vertex shader output signature and the pixel shader input signature not matching if per-pixel lighting is disabled. Someone forgot disabling those pixel shader parameters ;P
DX11: Enable use of dynamic textures wherever possible.
DX9: Remove two unnecessary TODOs. Someone forgot removing those since they’ve been obsolete for a long time ;P
Anyway, at least working mipmaps and dynamic textures should increase DX11 performance a bit. And «a bit» is more than my usual «marginally» ;)
Migrate the opencl setting completely to the gfx config dialog.
Tiny commit. Just re-added 3D Vision to the config dialog. Hope nobody minds, I made sure it gets greyed out and all that. Sorry about my lack of commits, got another ongoing project that’s gotten me a bit hooked.
r6473 x86 – скачать, зеркало
r6473 x64 – скачать, зеркало
Corrected the FIFO breakpoint clause in the FIFO loop. This fixes Super Monkey Ball: Banana Blitz, Super Monkey Ball: Step & Roll and Pokemon XD.
Edited wiki page DolphinUbuntuPackages through web user interface.
Add multisampling support.
EFB access doesn’t work with MSAA enabled, yet.
Additionally clean up some stuff, fix a memory leak, …
Linux build fix for the windows build fix in r6465. I tested this on both windows and linux.
* Updating Linear DiskCache version in reflection with changes introduced in r6463
r6470 x86 – скачать, зеркало
r6470 x64 – скачать, зеркало