Fix a typo in the last revision.
More linkage fixing. Fixes issue 3596.
Possible fix for the rdtsc call in JitIL.cpp on macosx (issue 3531). This also fixes issue 3595 (although that issue was invalid — we don’t suport scons on linux anymore).
Fix some linkage issues with the cmake build. This should fix issue 3596.
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.
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.
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.
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.
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
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