Commit Graph

9204 Commits

Author SHA1 Message Date
Gregory Hainaut 4c3e98754e vif JIT: increment based on sizeof(T)
Struct on x64 will be 32B so +2 instead of +1
2016-11-28 19:07:04 +01:00
Gregory Hainaut 9862e5d207 vif hash: move bucket size check in the 'add' path instead of 'find' path
More logical this way
2016-11-28 19:07:04 +01:00
Gregory Hainaut c9db1c6c4b vtune: plug PCSX2 core + add missing profiling (VU/VIF/TLB)
Doesn't fully work yet
* Unknown stack frame
* Outside any known module

Potential root cause:
* Nvidia driver
* VU code as ebp is required for emulation so likely no frame
2016-11-28 19:07:04 +01:00
Gregory Hainaut 4fca5f4d88 mvu: use static array for dispatcher code
I don't understand why but standard mmap blew up Vtune
2016-11-28 19:07:04 +01:00
refractionpcsx2 7ec8c7f9fe Merge pull request #1676 from FlatOutPS2/master
GameDB: Add fixes for EA Sports team games and more
2016-11-28 12:57:51 +00:00
FlatOutPS2 fadc727df4 GameDB: Add fixes for EA Sports team games and more
Fixes missing geometry in EA Sports team games.

All NTSC-J and the Madden NFL PAL versions unconfirmed, but extremely
unlikely to act any different.

And adds The Simpsons: Hit & Run lens flar fix (see issue
https://github.com/PCSX2/pcsx2/issues/1670)

Fixed title for NCAA College Football 2K3, game is not in compatibility
list.
2016-11-25 21:00:40 +01:00
Gregory Hainaut aeef39a417 Merge pull request #1672 from np511/master
Fix LTO flags.
2016-11-25 17:09:54 +01:00
Gregory Hainaut e4516ac9b8 cmake: add extra SSE4 and AVX2 build of GSdx when DISABLE_ADVANCE_SIMD is enabled
It will provide a speed boost on distribution that only enable SSE2
2016-11-25 16:35:40 +01:00
Gregory Hainaut 8431299b92 gsdx sw: port code to the new constant object 2016-11-24 23:03:26 +01:00
Gregory Hainaut 3b5bc9c38d gsdx sw: create a constant buffer
* Use POD type to avoid SSE/AVX compilation dependency
* global object to reduce cache miss
* dynamically object so give a chance to allocate below 2GB (allow x64
  optimization)
2016-11-24 23:03:26 +01:00
Gregory Hainaut 0f5529be18 gsdx sw: s/g_cpu/m_cpu/ 2016-11-24 23:03:25 +01:00
Gregory Hainaut c3e38e46c7 gsdx sw x64: disable mipmap support on AVX
Until it is implemented (might never happen)
2016-11-24 23:03:25 +01:00
Gregory Hainaut 608bb5ccb2 gsdx sw x64: add AVX2 implementation for VS
FS was copied from 32 bits (require massive update)
2016-11-24 23:03:25 +01:00
Gregory Hainaut 15220c386a gsdx sw x64: setup prim miss some optimizations 2016-11-24 23:03:25 +01:00
Gregory Hainaut e3bfa2be88 gsdx sw: factorize common draw scanline code
Ymm inherite from Xmm so it is useless to duplicate the code

Add a parameter to alltrue to test the good register
2016-11-24 23:03:25 +01:00
Gregory Hainaut 211c7745de gsdx: don't try to correct depth in primitive trace
Avoid to go above the maximum size allowed by the format

Issue #1674
2016-11-24 22:24:00 +01:00
Jonathan Li 230b470a3c pcsx2:freebsd: Disable aio use on FreeBSD 10.3 and earlier
A FreeBSD 10.3 user (meowthink) reported to me that games were not
working properly on their system. After some investigation, it was
discovered that aio was buggy on their setup. There's also bug reports
for other applications that involve aio too.

Workaround the issue by using a normal read and disabling the use of aio
on FreeBSD 10.3 and earlier. It'll remain enabled on FreeBSD 11.0 in the
hope that the aio issue has since been fixed.
2016-11-24 19:50:07 +00:00
Gregory Hainaut df96361ded Merge pull request #1673 from FlatOutPS2/W
GSdx Merge Circuit: Fix regressions
2016-11-24 11:02:38 +01:00
FlatOutPS2 417d0a3606 GSdx Merge Circuit: Fix regressions
Fixes screen shaking in Tenchu: Wrath Of Heaven, and graphical issues in
NASCAR 09.
2016-11-23 22:14:44 +01:00
np511 46fb6e9b48 Fixes LTO flags. Disables the use of the "gold" linker as a few plugins fail to compile with "gold" and "gold" is not used outside of LTO currently anyway. 2016-11-22 16:10:25 -05:00
Jonathan Li 483b3d6368 cdvdgigaherz: Avoid holding lock during thread sleep
Fixes Coverity CID 127721: Program hangs

Change the sleep to a condition variable wait, which has the added
benefit of allowing the plugin to close ever so slightly faster if
there's no disc in the drive.
2016-11-22 21:26:41 +01:00
Jonathan Li 29c2ccb310 cdvdgigaherz: Use a queue to manage sector requests
Fixes a data race.

Also avoid copying from the cache when it's unnecessary to do so.
2016-11-22 21:26:41 +01:00
Jonathan Li 3919a32dc3 cdvdgigaherz: Avoid race condition by reading from cache/disk
Instead of reading from a buffer shared by multiple threads, just read
the correct data from the cache or disk instead.
2016-11-22 21:26:41 +01:00
Jonathan Li 31b0b53394 cdvdgigaherz: Read correct sector type in keepalive thread
It'll prevent errors messages when raw sector reading is used.
2016-11-22 21:26:41 +01:00
Jonathan Li a34942c882 cdvdgigaherz: Only update cache if the read succeeds 2016-11-22 21:26:41 +01:00
Jonathan Li bb25ce1c6a cdvdgigaherz: Add cache entry check function
Useful when you don't actually want the cached data.
2016-11-22 21:26:41 +01:00
Jonathan Li 23f48e07ed cdvdgigaherz: Change signs
Avoid some unnecessary casting.
2016-11-22 21:26:41 +01:00
Jonathan Li 008fea5d89 common|cdvdgigaherz: Fix API sign mismatch
The typedef and function declaration don't quite match.
2016-11-22 21:26:41 +01:00
Gregory Hainaut 0d275868a5 gsdx x64: quick fix for windows
Until we got a full implementation
2016-11-21 18:18:09 +01:00
Vladimir Jigulin 268b4d9f9f debugger: memory view improvements
Highlight memory location referenced by current register
Allow memory window not be aligned by row size
Use radio and checks in menu
2016-11-21 10:31:34 +01:00
Gregory Hainaut dc85989553 cmake: only enable SSE2 on x64 build
SW will generate AVX code anyway
2016-11-20 23:27:13 +01:00
Gregory Hainaut 37379d5d1d gsdx sw x64: shuffle memory allocation
tex address is a3
vm address is a1

Could help to avoid REX prefix
Reduce prologue/epilogue register copy

Byte code size 41893 => 38912 (on my testcase)
2016-11-20 20:19:13 +01:00
Gregory Hainaut b76305a0d2 gsdx sw x64: keep the copy of top in the stack for dthe
An extra stack access by pixel won't impact perf (only 16 bits game with dithering)
Allow to save 2 registers (a1/a3)
2016-11-20 20:19:13 +01:00
Gregory Hainaut 994274623b gsdx sw x64: use rip addressing on draw scan line
byte code 41997 => 41893

However it will allow to save 2 registers as future optimization
2016-11-20 20:19:12 +01:00
Gregory Hainaut 7c06e87d59 gsdx sw x64: use rip addressing on setup prim
byte code: 9017 => 8736

Save a register
2016-11-20 20:19:12 +01:00
Gregory Hainaut 923c297dfc gsdx sw: vinsert128 opcode require an XMM register
Reported as an error on lastest Xbyak
2016-11-20 20:19:12 +01:00
Gregory Hainaut e674518c4e Update from xbyak 4.84 to 5.11
* bin2hex.h is removed
* vptest/vpblendvb YMM support integrated upsteam
* better support of rip for 64 bits
* AVX512 support (only miss the CPU now)

Local change: add BSD3 clause
2016-11-20 13:21:11 +01:00
Gregory Hainaut 681c09f25c gsdx sw: catch xbyak exception 2016-11-20 12:58:07 +01:00
Gregory Hainaut 0fd5346860 gsdx x64 linux: only mmap in lower 2GB code segment
Allow to use rip addressing
2016-11-20 10:38:15 +01:00
Gregory Hainaut 2252ba1bb7 gsdx: add the detected ISA on the name
As a SSE build could potentially uses AVX operations.
2016-11-20 10:38:15 +01:00
Gregory Hainaut 30a5922a0b pcsx2: reduce std padding to 1 for small screen 2016-11-19 21:52:08 +01:00
Gregory Hainaut 58c3794ce7 Merge pull request #1664 from PCSX2/greg/gsdx-64b
Greg/gsdx 64b
2016-11-19 18:12:41 +01:00
Jonathan Li ef25502491 gsdx build: don't exclude AVX files.
Thanks for the patch :)
2016-11-19 17:01:36 +01:00
Gregory Hainaut cc6d193e1d gsdx: Relax SSE/AVX constraint on 64 bits
The JIT will automatically select the best ISA (only AVX1 so far)
2016-11-19 17:01:29 +01:00
Gregory Hainaut 8fd46e96aa gsdx sw JIT: dynamically select ISA for SetupPrim 2016-11-19 17:00:33 +01:00
Gregory Hainaut 574a2c774e gsdx sw JIT: dynamically select between AVX1 and SSE code path (scanline) 2016-11-19 17:00:33 +01:00
Gregory Hainaut 6b78b8f9ce gsdx sw JIT: dynamically select SSE41 at runtime even on SSE2 build (scanline)
It won't give the full SSE41 speed boost but it is better than nothing
2016-11-19 17:00:33 +01:00
Gregory Hainaut 322473c295 gsdx sw: add a code example for gather instruction
It will requires a generic (register naming) linear interpolation to use it properly
Gather instruction requires an extra mask register therefore all registers name will be shuffled

Perf wise, initial haswell implementation seems to be microcode emulated.
2016-11-19 17:00:33 +01:00
Gregory Hainaut 2e20693583 gsdx sw x64: restore read texel optimization 2016-11-19 17:00:33 +01:00
Gregory Hainaut e728a14c19 gsdx sw: factorize color split in split16_2x8 2016-11-19 17:00:33 +01:00