Commit Graph

7636 Commits

Author SHA1 Message Date
Gregory Hainaut 522ca27243 Merge pull request #1111 from Dokman/ca_ES
Catalan Translation
2016-01-17 16:30:45 +01:00
Gregory Hainaut 254081e3ad Merge pull request #1115 from turtleli/gsdx-ogl-blend
gsdx-ogl: Improve accurate blend sprite draw speed
2016-01-17 15:42:07 +01:00
Jonathan Li 37deeb0d52 gsdx-ogl: Optimise overlap detection algorithm
Vectorise coordinate min/max sorting, and use the ordered runion
instead.
2016-01-16 19:21:56 +00:00
Jonathan Li 14dffa762b gsdx: Add runion_ordered to GSVector
Allows to save a few instructions cycles when xy and zw are already
sorted (min and max rectangle coords).
2016-01-16 19:21:55 +00:00
Jonathan Li 2fc3ef8124 gsdx-ogl: Add sprite overlap statistics to debug messages 2016-01-16 19:21:54 +00:00
Gregory Hainaut 38c548854e Merge branch 'uptr-addr' 2016-01-16 18:34:27 +01:00
ramapcsx2 20c8b89bb7 cdvd: return 0xff instead of 0 on unknown 8 bit reads. improves compatibility with popstarter a bit.
Unfortunately, it then fails to load pops with "loadmodule: fname rom0:UDNL args 5 arg crap:"
2016-01-16 14:36:09 +01:00
Gregory Hainaut 35568f6425 gsdx: disable simd in 64 bits
Let's concentrate first on SSE2

This commit fuses a couple of ifdef
2016-01-16 14:34:00 +01:00
Gregory Hainaut 76230c1305 MTGS: s/u32 pointer/uptr/ 2016-01-16 14:34:00 +01:00
Gregory Hainaut e23ba2340c core: s/u32 pointer/uptr/ 2016-01-16 14:34:00 +01:00
Gregory Hainaut 022cd9cd64 gsdx: s/u32 pointer/uptr/ 2016-01-16 14:34:00 +01:00
Gregory Hainaut 6ec7d2c340 x86emitter: ease template stuff 2016-01-16 14:34:00 +01:00
Gregory Hainaut 8c3798e96b core: pointers are 8B on 64 bytes 2016-01-16 14:34:00 +01:00
Gregory Hainaut d623453451 build.sh: automatically configure wx-config on debian system
It is easier to alternate between 32/64 bits build
2016-01-16 14:33:49 +01:00
ramapcsx2 aafa333355 added the profiler to the visual studio solution. also added preliminary cop1 (fpu) tables, ready for implementation 2016-01-15 00:26:52 +01:00
Gregory Hainaut 9bcd9f0a73 cmake: onepad require gtk 2016-01-14 19:26:55 +01:00
Gregory Hainaut a7a8c542f5 Merge pull request #1100 from PCSX2/recompiler-abi-wrapper
Recompiler abi wrapper
2016-01-14 19:21:27 +01:00
Jonathan Li 74ace74d50 gsdx-ogl: Group non-overlapped accurate blend sprite draws
Reduces the number of draw calls and barriers when drawing sprites.
2016-01-13 08:07:53 +00:00
Jonathan Li f3b6829c74 gsdx-ogl: Restart collision detection algorithm for remaining sprites
It's useless on its own, but it prepares for the next commit.
2016-01-13 08:02:42 +00:00
Gregory Hainaut c73d626757 build.sh: separate release/dev/dbg into separated directory
Avoid useless recompilation
2016-01-13 08:58:50 +01:00
Gregory Hainaut 4ac17428ac Merge branch 'EmperorArthur-build_with_spaces' 2016-01-13 08:15:06 +01:00
Gregory Hainaut c8da280a19 Merge branch 'build_with_spaces' of git://github.com/EmperorArthur/pcsx2 into EmperorArthur-build_with_spaces
Conflicts:
	build.sh
2016-01-13 08:14:46 +01:00
Gregory Hainaut d4b30620a7 pcsx2: avoid a segmentation fault due to previous hack 2016-01-12 19:35:23 +01:00
Gregory Hainaut 46a2f6ed24 interpreter: fix a subtle bug in a QFSRV
Math is correct but a shift of 64 bits is illegal in x86 because the cl register is masked

From the x86 spec:
    The destination operand can be a register or a memory location. The count operand can be an immediate value or
    the CL register. The count is masked to 5 bits (or 6 bits if in 64-bit mode and REX.W is used). The count range is
    limited to 0 to 31 (or 63 if 64-bit mode and REX.W is used). A special opcode encoding is provided for a count of 1.
2016-01-12 19:29:10 +01:00
dokman f06d055372 Now it's usable!
All done

ToDo:
Details of every setting
2016-01-12 10:44:36 +01:00
dokman 7fae220f18 Emulation Settings done 2016-01-12 10:26:10 +01:00
dokman 7b48923a2c Updating with newest templates.
Emulation Settings
EE/IOP done
VUs done
GS done
GS Window done
Speedhacks done
Game fixes ToDo

Plugin/BIOS Selector done
2016-01-12 10:05:34 +01:00
refractionpcsx2 22de865582 Gamefix: Add Scarface - The World is Yours Gamefix, might help other games that do constant VU recompilation. 2016-01-11 23:32:33 +00:00
dokman 5f680141b4 Pushing base of translation with the newest template 2016-01-11 22:39:06 +01:00
Gregory Hainaut 3c528f0fdd common define _32kb and _4kb 2016-01-11 18:00:25 +01:00
Gregory Hainaut 812a2e4850 recVtlb: Align dispatcher to 32B boundary
Better for cache coherency
2016-01-11 18:00:19 +01:00
Gregory Hainaut e3d5eb5a4e core: convert xCALL to xFastCall
SuperVU wasn't converted (unlikely to be ported to 64 bits)
A couple of calls weren't converted because they require extra work
but there are not mandatory (debug/MTVU/...)
2016-01-11 09:21:45 +01:00
Gregory Hainaut 859d62d2a7 ee|iop: use xScopedStackFrame to handle dynarec frame
* Rework a bit MVU to support xScopedStackFrame. Potentially
stack frame can be optimized (save 5 instructions)

* I removed the recompiler stack check. Address sanitizer is more efficient anyway
2016-01-11 09:21:45 +01:00
Gregory Hainaut 6e66bea152 x86emitter: improve the various abi wrapper
V2:
* Add various option to handle the different frame
* Basic x86-64 port (untested so likely completely broken)

v3:
Create an templated xImpl_FastCall object

v4:
clang compilation fix
2016-01-11 09:21:32 +01:00
Gregory Hainaut a6eb871b42 pcsx2: use a common general intrin include
Avoid issue with various compiler conversion
Fix build with GCC4.8
2016-01-11 09:13:52 +01:00
Gregory Hainaut 52b4604d3b iop: remove unused iPsxMem.cpp file 2016-01-10 18:41:18 +01:00
Gregory Hainaut afdf5cdfe2 x86emitter: remove old unused macro
Add some notes for a GCC "bug"
2016-01-10 16:49:50 +01:00
Gregory Hainaut 41d13dc2c6 vtlb: remove SetBaseAddr
Base address is given in the constructor
2016-01-10 14:31:49 +01:00
Gregory Hainaut 9bcd34349f Merge branch 'recompiler-prof' 2016-01-10 14:15:42 +01:00
Gregory Hainaut 1c4b430984 profiler: plug recompiler with new perf infra
Only EE/IOP support by block profiling

v2: cast wxString with ToUTF8 (windows)
2016-01-10 13:43:08 +01:00
Gregory Hainaut 92d7639267 profiler: add functions to plug linux Perf Event on JIT
Basically it creates a /tmp/perf-`pid`.map file which will contains
a mapping of the x86 code with the EE/IOP/VU code

* You need to enable the profiler with a define
* You can split the profiling by block (inside a recomp buffer)

v2: add new file to VS xml files
v3: remove useless include
2016-01-10 13:42:59 +01:00
Jonathan Li 8977673fdf ci: reduce AppVeyor workload
Don't compile with VS2013 if VS2015 compilation fails.
Build only SSE2 and AVX2 GSdx variants.
2016-01-10 12:11:49 +00:00
Gregory Hainaut e75d3f759f ee:profiler: add instructions counters 2016-01-09 23:29:03 +01:00
Gregory Hainaut 5b08bda5b8 ee:profiler: count EE memory access 2016-01-09 23:29:03 +01:00
Gregory Hainaut 0e1188565e ee:profiler: count EE instruction execution
Based on microVU_Profiler.h

It remains to emit all the opcode to use it properly
2016-01-09 23:29:03 +01:00
Gregory Hainaut 50c7cb1717 x86emitter: implement some BMI instructions
Only a couple of one to do some memory profiling
2016-01-09 23:29:01 +01:00
Gregory Hainaut 9e13a7bdaa x86emitter: add support for the VEX opcode 2016-01-09 22:59:31 +01:00
Gregory Hainaut 29b0b17f50 x86emitter: add BMI1 & BMI2 instruction detection 2016-01-09 22:59:31 +01:00
Gregory Hainaut d57466608e linux: pretty print dump
allow to replace 0xBADA55 address with nice name such as v0_b0
2016-01-09 22:59:31 +01:00
Gregory Hainaut c80037bb2f debug: add a new function to dump EE block
Give both EE and x86 code.

Don't rely on global variable. The dump still dump the content of the register.
Of course value will be wrong if you don't dump it at the start of the block.
It help to detect register/memory access

the cpu struct address is also printed to easily postprocess the x86 memory pointer
(see next commit)
2016-01-09 22:59:31 +01:00