Gregory Hainaut
b9369e7c00
pcsx2: remove the reserve feature of recompiler memory
...
Cons:
* requires ~180MB of physical memory (virtual memory is the same so it
doesn't impact the 4GB limit)
From steam: 98.81% got at least 2GB of RAM. 83.62% got at least 4GB of RAM.
That being said, it might not really increase RAM requirements as OS could put the
new allocation in the swap.
Pro:
* code is much easier
* remove at least half of the signal listener
* last but not least, it is way easier for profiler/debugger
2016-12-09 09:28:19 +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
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
0e2ec9c2cb
pcsx2 gui: reduce the padding to 2 for low cost display
2016-11-19 11:27:20 +01:00
Gregory Hainaut
4ee942aba2
pcsx2 gui: use pxGetFixedFont helper instead of wxFont constructor
2016-11-19 11:19:24 +01:00
Clang Format
1fba5cb580
reformat main common directory
...
Disable some reformat around emitter registers declaration and a massive cases.
2016-11-12 16:52:49 +01:00
Gregory Hainaut
b282909c9e
common: avoid silly compiler warning due to define redefinition
...
comma was updated in plugings (due to clang reformat)
2016-09-08 19:20:24 +02:00
Jonathan Li
c9a1097579
console: Remove buffered and wxerror console writers
...
Both haven't been used for a long time, and don't seem to hold any
advantages over the default stdout console writer.
2016-08-17 22:07:42 +01:00
Gregory Hainaut
bf0e5dc5bd
Merge pull request #1516 from PCSX2/emitter-manual-void-cast
...
pcsx2: manually cast function pointer to void*
2016-08-17 18:56:55 +02:00
Gregory Hainaut
cc68776069
pcsx2: manually cast function pointer to void*
...
Templace is nicer but give a hard time to compiler.
New version compile in both gcc&clang without hack
v2: add an uptr cast too for VS2013 sigh...
v3: use an ugly function pointer cast to please VS2013
2016-08-17 09:53:30 +02:00
Gregory Hainaut
44bbdbe49d
common: use free directly instead of an Alloc(0)
...
Easier to understand the intent. And avoid false positive in coverity
2016-08-15 15:51:22 +02:00
Gregory Hainaut
e8e66ec4b5
x86emitter: use memcpy to avoid aliasing issue
...
Code is only called once anyway.
2016-08-14 20:48:45 +02:00
Jonathan Li
ac7e7a79c3
utilities:windows: Remove memset32 assembly
...
It's unused, and it doesn't compile in 64 bits.
2016-07-23 02:21:21 +01:00
Gregory Hainaut
5cf2688c0c
common: remove useless x86_intrin.h
...
Yeah one less licence in the project :)
2016-07-22 18:47:51 +02:00
Gregory Hainaut
7d35e15fea
Merge pull request #1444 from PCSX2/atomic-relax
...
Atomic relax
2016-07-22 18:36:02 +02:00
Lena
5a17b95901
x86_intrin.h: fix build using GCC ( #1468 )
...
__GNUG__ is not defined while compiling this file,
this causes the build to fail.
Replacing this with __GNUC__ fixes this.
2016-07-19 23:13:24 +01:00
Gregory Hainaut
6e306ee44f
common: move _xgetbv with cpuid intrin
...
Besides, code comes from Gabest and not reactOS
2016-07-17 10:25:00 +02:00
Gregory Hainaut
e872552fdc
spu2x|common: s/jASSUME/pxAssume/ allow to remove code and __debugbreak intrinsic
2016-07-17 10:24:29 +02:00
Gregory Hainaut
c56ca4a0fa
common: include cpuid.h on unix
...
I tested both clang and gcc.
2016-07-17 10:24:29 +02:00
Gregory Hainaut
10ea05bc6f
common: remove old atomic wrapper
...
Use cross-platform std::atomic instead
2016-07-14 18:29:41 +02:00
Gregory Hainaut
ca46921796
MTVU: use acquire/release semantics for atomic operation
...
* Avoid the generation of memory barrier (mfence)
* Based on the fact that it used to work on previous code without any
barrier
v2:
* keep basic code in reset path
* use relaxed access for isBusy. The variable doesn't carry load/store
dependency but is instead an hint to optimize semaphore post
2016-07-14 18:29:40 +02:00
Jonathan Li
79d019b5bb
utilities: Don't use TLS buffers in FastFormatString classes ( #1430 )
...
The TLS buffers used by the FastFormatUnicode and FastFormatAscii
classes seem to be responsible for PCSX2 not terminating properly on
Windows under certain conditions (using MTVU before commit
1111e03901
, using CDVDgigaherz without a
disc, possibly other conditions).
When PCSX2 shut downs and the FastFormatBuffers are being cleaned up,
the call to pthread_key_delete() would end up calling
WaitForSingleObject(e, INFINITE) and waiting indefinitely for an event
to trigger. It never does get triggered (for reasons unknown) and
therefore PCSX2 doesn't terminate properly.
Remove the usage of TLS buffers in the FastFormatString classes - it
fixes the termination issue on Windows and doesn't seem to have much
effect on performance.
2016-06-29 13:13:51 +01:00
Jonathan Li
3904c67e6e
utilities: Use Bind instead of Connect
2016-06-17 00:03:58 +01:00
Jonathan Li
c10728319b
utilities: Use Bind compatible event declarations/definitions
2016-06-16 23:49:34 +01:00
Jonathan Li
7c205d7a1e
windows: Don't use __declspec(dllexport) for plugin exports
...
Using __declspec(dllexport) causes duplicate export warnings to be
generated when compiling 64-bit builds. Name mangling also occurs on
functions that are exported this way, so it doesn't actually work with
the plugin system, which uses unmangled names.
The module definition file exports the functions without name mangling
and is sufficient on its own.
2016-06-05 22:57:42 +01:00
Jonathan Li
5f6658ae9a
common:freebsd: Kill some warnings
2016-05-20 22:32:41 +01:00
Jonathan Li
7aa6564dcc
common:freebsd: Fix compilation
2016-05-20 22:32:41 +01:00
Jonathan Li
f78d1a4018
utilities: Remove wx2.8 code and uses of wxMAJOR_VERSION
2016-04-29 00:09:47 +01:00
Jonathan Li
5035c8bd48
utilities: always include wx/crt.h on Linux
...
The header is necessary if the wx3.0 package isn't compiled with
wx2.8 backwards compatibility.
2016-04-23 13:57:47 +01:00
Jonathan Li
dda44519c1
pcsx2|utilities: Use non-deprecated wxFont stuff
2016-04-23 13:57:42 +01:00
Jonathan Li
0ab7b6340d
Merge pull request #1275 from AdmiralCurtiss/memcard-plugin-switch-filter-reset
...
Move folder memcard filter management into the actual folder memcard class to fix #1179 and similar.
2016-04-06 23:59:36 +01:00
Gregory Hainaut
8ee9295f39
x86emitter: increase size of union capabilities
2016-04-04 21:04:41 +02:00
Gregory Hainaut
ee08a6fc53
Merge pull request #1270 from PCSX2/monolithic-build
...
Monolithic build
2016-04-03 11:20:07 +02:00
Admiral H. Curtiss
97a68becb9
Handle filter management in the folder memcard class rather than outside.
...
This prevents desync between what is assumed to be the active filter and
what is actually the active filter, fixing errors like #1179 where the
memory cards are closed and reopened for whatever reason.
2016-04-02 15:22:11 +02:00
Gregory Hainaut
37de84d55f
x86emitter: initialize scalar field
...
CID:147038
2016-03-30 19:50:41 +02:00
Gregory Hainaut
f010f9458b
plugin: add define to select builtin plugin
2016-03-30 09:54:34 +02:00
Jonathan Li
a487aaf952
Merge pull request #1232 from turtleli/nonxp-toolkit
...
windows: Switch to Non-XP compatible toolkits
2016-03-16 20:34:27 +00:00
Gregory Hainaut
0ef8ddb2a2
Merge pull request #924 from kust2708/onepad-gui
...
Onepad GUI for Linux - New wxWidget interface
2016-03-15 20:23:44 +01:00
Jonathan Li
b516c1001a
windows: Set _WIN32_WINNT to 0x0600 (Windows Vista)
2016-03-13 13:41:16 +00:00
Gregory Hainaut
e57a75ac55
Merge pull request #1202 from PCSX2/atomic-v2
...
Atomic v2
2016-02-28 22:08:29 +01:00
Gregory Hainaut
610bf8a277
Common: delete most of the deprecated atomic API
2016-02-28 15:29:31 +01:00
Gregory Hainaut
5ca92ecd67
Common: port code to std::atomic
2016-02-28 15:29:31 +01:00
Gregory Hainaut
ca8955daf3
MTVU: port ScopedLockBool to std::atomic
2016-02-28 15:29:31 +01:00
Gregory Hainaut
60fe26ff2f
common:threading: Port NonblockingMutex to std::atomic_flag
2016-02-28 15:29:00 +01:00
Gregory Hainaut
89fad4d3ad
common: port ScopedPtrMT to std::atomic
...
v2: s/NULL/nullptr/
v3: tentative fix for MSVC
// ScopedPtrMT.h(91, 0): error C2593: 'operator ==' is ambiguous
2016-02-28 15:29:00 +01:00
Jonathan Li
bfeb3e801a
gsnull: Remove GSsetWindowInfo
...
PCSX2 doesn't actually use it.
GSnull also seems a bit behind the current GS plugin API - perhaps it
should be removed.
2016-02-28 02:45:59 +00:00
Pierre "Piorrro" GRASSER
30d1c0e0b5
Typo correction #2
...
I forgot to edit the other strings, last time.
2016-02-18 13:49:56 +01:00
kust2708
823a37aed7
OnePad : New GUI based on gwWidget
...
Buttons done, configuration initialization done.
Still need to add Gamepad and Joysticks configuration frames.
Require png file for the moment (the embedded picture will be fixed after).
New Onepad GUI based on wxWidget (Main frame almost finish)
Background picture is now embedded
Button binding works
Loading and saving works
Need to add feedback and gamepad, joysticks configuration frame
Modification of the onepad CMakeList.txt
Automatic generation of images headers using perl script
Modification of the test feedback function
2016-02-14 17:26:31 +01:00
Pierre "Piorrro" GRASSER
d7b40433db
Typo correction
2016-02-14 09:30:49 +01:00
Jonathan Li
e92636ab1a
utilities: Remove ScopedPtr and pxObjPtr implementation
...
Both are now unused.
2016-02-08 22:31:45 +00:00
Jonathan Li
a74677acf7
utilities: Convert ScopedPtr to unique_ptr
2016-02-08 22:31:45 +00:00
Jonathan Li
92bb849e7c
Use unique_ptr instead of ScopedPtr for exceptions
2016-02-08 22:31:45 +00:00
Jonathan Li
115b14bc94
cdvd: Replace ScopedPtr with unique_ptr
2016-02-08 22:31:45 +00:00
Gregory Hainaut
5611333c29
PCSX2: remove reporting of mmx/3dnow
2016-02-08 09:16:52 +01:00
Gregory Hainaut
5140a2e107
x86emitter: remove MMX support
2016-02-08 09:13:24 +01:00
Gregory Hainaut
d59e4ca4d1
intrinsic: add rotate support for clang....
2016-02-01 18:46:10 +01:00
Jonathan Li
04a8efd8c3
pcsx2|common: Use _WIN32 for Windows preprocessor macro
...
It's predefined, unlike WIN32 and _WINDOWS (and other variants), which
are defined in the property sheets.
2016-01-27 22:41:45 +00:00
Jonathan Li
50c7775e47
utilities: Use C99+ size definitions on Windows
...
Also remove a LONG definition for Linux - it's unused.
2016-01-27 22:41:45 +00:00
Gregory Hainaut
9e773ff980
Merge pull request #1123 from PCSX2/emitter-Trex
...
Emitter trex
2016-01-21 22:32:37 +01:00
Gregory Hainaut
a2a23579bd
Merge pull request #1122 from PCSX2/emitter-64b
...
Emitter 64b
2016-01-21 22:31:01 +01:00
Gregory Hainaut
1a700145ec
x86emitter: remove unused FPU opcode
...
Future code would rely on SSE anyway
2016-01-20 10:23:23 +01:00
Jonathan Li
3c7e45ccc8
utilities: Remove ScopedArray implementation
...
It's now unused.
2016-01-17 22:54:22 +00:00
Jonathan Li
e8596f0430
pcsx2: Rearrange Console colour enum order
...
Preparation for next commit - The default isn't bold, so it's slightly
neater to have it at the start.
2016-01-17 22:06:32 +00:00
Gregory Hainaut
41a80fce20
x86emitter: finally support 64 bits instructions
...
Note: a couple of instructions don't support REX prefix. Some
exception ought to be implemented later
2016-01-17 17:02:38 +01:00
Gregory Hainaut
a9864a5619
x86emitter: create xOpAccWrite handy template for special accumulator opcode
2016-01-17 12:34:28 +01:00
Gregory Hainaut
d2436fa86d
x86emitter: remove unused function
2016-01-17 12:07:41 +01:00
Gregory Hainaut
f2ecfc99ad
x86emitter: align EmitRex interface on EmitSibMagic
2016-01-17 12:06:08 +01:00
Gregory Hainaut
e50e9a5e65
x86emitter: sed/32orLess/64orLess/
2016-01-17 00:29:19 +01:00
Gregory Hainaut
395d43fd9c
x86emitter: jump: use base type directly
...
which fix 16 bits call (no prefix)
2016-01-17 00:21:05 +01:00
Gregory Hainaut
968af6148e
x86emitter: extend SSE instruction type
2016-01-17 00:21:05 +01:00
Gregory Hainaut
4bc9cbc24f
x86emitter: extend lea/bswap
2016-01-17 00:21:05 +01:00
Gregory Hainaut
eb4db2152c
x86emitter: add x64 to push/pop
2016-01-17 00:21:05 +01:00
Gregory Hainaut
ef21a8dbd0
x86emitter: extend group8 type
2016-01-17 00:21:05 +01:00
Gregory Hainaut
39a6bda52d
x86emitter: extend test & bitscan type
...
Factorize the code to support any types
2016-01-17 00:21:05 +01:00
Gregory Hainaut
e285036455
x86emitter: shift: extend it to 64 bits type
2016-01-17 00:21:05 +01:00
Gregory Hainaut
fdaf0e9979
x86emitter:group: uses base type
...
Add 64 bits support for free ;)
Note: 64b still requires the REX prefix
2016-01-17 00:21:05 +01:00
Gregory Hainaut
e2602b3967
x86emitter:move: factorize type and extend it to 64 bits
...
It's still missing the REX prefix support
2016-01-17 00:21:05 +01:00
Gregory Hainaut
41f509873d
x86emitter: extend xIndirect32orLess to support 64 bits
...
It would be renamed later to avoid conflict with pending updates
2016-01-17 00:12:31 +01:00
Gregory Hainaut
39dc8368fa
x86emitter: add GetPrefix16 helper
2016-01-17 00:12:21 +01:00
Gregory Hainaut
be0b8cf2f5
x86emitter: implement some function to emit the REX prefix
...
Same fashion as EmitSibMagic
2016-01-17 00:10:21 +01:00
Gregory Hainaut
53b5ecf34a
x86emitter: add the new x86_64 registers set
2016-01-17 00:10:21 +01:00
Gregory Hainaut
366f793cf0
core: use xRegisterLong instead of xRegister32
...
Code needs to work with xAddressReg however the x32 inheritance doesn't
exits anymore on 64 bits.
Note: it might be possible to uses some kind of autoconversion with
xRegister32or64. Could be a future improvement.
2016-01-17 00:10:21 +01:00
Gregory Hainaut
1328865279
x86emitter: xAddressReg size will depend on the arch
...
Note: displacement are never 8B. The max is 4B which is sign extended to 8B.
So we can't store a pointer into it anymore.
Add xRegisterLong that will be x64 on 64 bits and x32 on 32 bits
2016-01-17 00:10:21 +01:00
Gregory Hainaut
a865ba8cf5
x86emitter: add various type for 64 bits
2016-01-17 00:10:21 +01:00
Gregory Hainaut
2fea78a6c4
x86emitter: remove not virtual inherited function
...
IsSIMD isn't virtual
2016-01-17 00:10:21 +01:00
Gregory Hainaut
6ec7d2c340
x86emitter: ease template stuff
2016-01-16 14:34:00 +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
Gregory Hainaut
3c528f0fdd
common define _32kb and _4kb
2016-01-11 18:00:25 +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
afdf5cdfe2
x86emitter: remove old unused macro
...
Add some notes for a GCC "bug"
2016-01-10 16:49:50 +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
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
fd56195b2d
x86emitter: drop old register define
2016-01-09 21:28:10 +01:00
Gregory Hainaut
834cc3f2c5
core|x86emitter: port basic jump instruction
2016-01-09 21:26:25 +01:00
Gregory Hainaut
743e615224
core: overload _freeX86reg with xRegister32
2016-01-09 21:15:25 +01:00
Gregory Hainaut
60a9463e7a
x86emitter: remove unused legacy function
...
And mark the remaining one as deprecated
Clang only as it relies on C++14
2016-01-09 21:13:29 +01:00
Gregory Hainaut
de2b97c640
linux compilation fix
2016-01-08 22:35:55 +01:00