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
Gregory Hainaut
74db92bee4
Merge pull request #978 from juhalaukkanen/apple_osx_master_merge
...
OSX 32bit build
2016-01-08 20:09:37 +01:00
Gregory Hainaut
fb1a19f157
x86emitter: clean unused legacy type
...
Note: no need to check -1 on register allocation failure (a exception will be fired)
2015-12-02 19:09:43 +01:00
Gregory Hainaut
21445fe0d0
x86emitter: Add several architecture dependant wrapper
...
* A nice object to create the stack frame
* Various xStdCall/xFastCall to emulate standard & fast call
2015-12-02 19:06:52 +01:00
Juha Laukkanen
fc3ff48777
Darwin/OSX SysMessage stub & __POSIX__ define.
2015-11-30 12:18:44 +02:00
Jonathan Li
52be531b8e
utilities:windows: Use standard memset for memset_8
...
aka commit 2194685
for Windows
2015-11-29 11:46:59 +00:00
Jonathan Li
4d97089990
x86emitter: Fix Windows AVX2 detection
...
Technically it did work, but it was undefined behaviour. Use __cpuidex,
which allows setting ecx as well.
Also fix the _xgetbv intrinsic - I have no idea how PCSX2 even
compiled on Windows.
2015-11-29 10:57:51 +00:00
Gregory Hainaut
9aec4229d5
x86emitter: support AVX2 (linux only?)
...
Nah kidding, it is only the cpu detection for the log
x86 Features Detected:
SSE2.. SSE3.. SSSE3.. SSE4.1.. SSE4.2.. AVX.. AVX2.. FMA
2015-11-28 23:40:15 +01:00
Gregory Hainaut
d5efd6eacb
x86emitter: remove the never called SIMD_ExceptionTest function
2015-11-28 22:02:08 +01:00
Jonathan Li
a59a90c734
common:windows: Add unicode compatible functions
...
It's not great, but it will work.
2015-11-25 20:03:44 +00:00
Gregory Hainaut
21857ec12d
Merge pull request #967 from PCSX2/remove-lazy-allocation
...
Reduce lazy allocation
2015-11-15 00:12:07 +01:00
Gregory Hainaut
abb4cb4810
plugin API: use const char* insead of char*
...
I hope it doesn't change the ABI
v2: fix GSnull/zzogl/zerogs
v3: duplicated code on windows...
2015-11-12 12:11:42 +01:00
Gregory Hainaut
26774a2fe0
recompilers: always allocate the first block
...
Avoid several annoying SIGSEGV at startup
2015-11-12 10:35:10 +01:00
Gregory Hainaut
7565bcc789
ee: drop SpatialArrayReserve allocator
...
Let's the kernel manage the memory either with builtin lazy allocation or
swapped memory.
Avoid to handle SIGSEGV manually (nicer for debug) and removes 250 lines of code.
2015-11-12 10:35:10 +01:00
Jonathan Li
44d89308c9
Revert "Revert "gsdx|spu2-x: Use atlcomcli.h for CComPtr definition""
...
This reverts commit 9bb990e9ed
.
Fight! Ahem...
2015-11-09 20:55:07 +00:00
Jonathan Li
9bb990e9ed
Revert "gsdx|spu2-x: Use atlcomcli.h for CComPtr definition"
...
This reverts commit 0eb771c2a6
.
The buildbot apparently cannot find atlcomcli.h. Oh joy.
2015-11-08 20:46:41 +00:00
Jonathan Li
0eb771c2a6
gsdx|spu2-x: Use atlcomcli.h for CComPtr definition
...
VS2013/VS2015 community includes it, so everything will still compile
for everyone.
Also delete common/include/comptr.h.
2015-11-06 18:52:33 +00:00
Jonathan Li
08dfa20da1
utilities:linux: Add function to change stdout stream
...
stdout is not necessarily at stdout - at least not after I'm done with it.
2015-10-31 13:50:02 +00:00
Gregory Hainaut
2194685d76
memset-linux: use std memset for memset_8
...
This memset is only used in the init (to clear the page that will
contains the dynarec dispatcher
2015-10-28 14:25:12 +01:00
Akash
cfd02bff53
Utilities: Initialize all class members
...
CID 147010 (#1 of 1): Uninitialized pointer field (UNINIT_CTOR)4. uninit_member: Non-static class member Enabled is not initialized in this constructor nor in any functions that it calls.
2015-10-25 14:11:34 +05:30
Gregory Hainaut
4f86cca306
common: don't return a boolean for an assert
...
It might help to fix those 2 coverity reports.
CID 151744 (#1 of 1): Useless call (USELESS_CALL)
side_effect_free: Calling EnumAssert(id) is only useful for its return value, which is ignored
CID 151745 (#1 of 1): Useless call (USELESS_CALL)
side_effect_free: Calling EnumAssert(id) is only useful for its return value, which is ignored.
2015-10-17 11:49:04 +02:00
Avi Halachmi (:avih)
75b2406997
macros: fix pxReleaseCode (was inverted), add pxNonReleaseCode
...
pxReleaseCode was not used at the code so nothing is affected.
pxNonReleaseCode will be used at the next commit.
2015-10-07 04:08:09 +03:00