kd-11
105d4b51e6
gl: Use compute shaders for typeless texture decode
2019-10-13 19:00:05 +03:00
kd-11
7a6e2e716f
gl: Add a framework for compute shaders
2019-10-13 19:00:05 +03:00
Nekotekina
ac712bf4e3
lf_queue: remove explicit notify(), notify in push() instead
...
Should be cheap enough now if there are no waiters.
2019-10-12 22:45:17 +03:00
Nekotekina
5624b001ae
lf_queue: add range-for support (endless loop with waiting)
2019-10-12 22:37:52 +03:00
Nekotekina
16dd72b3e3
Replace some uses of Emu.IsStopped()
...
Poll thread state instead.
2019-10-12 21:12:47 +03:00
Nekotekina
9ae08946ac
g_fxo: destroy objects in reverse creation order
...
Maintain creation order internally.
2019-10-12 20:58:36 +03:00
Nekotekina
8e21f4d5d4
Remove g_thread_count
...
Unnecessary global which is bad to reason about.
Possibly fix a but in SPRX loader.
2019-10-12 16:45:41 +03:00
Nekotekina
49e96b39dd
[SPU, TSX] Fix reservation corruption in PUTLLC
...
Change reservation locking logic.
2019-10-12 15:41:24 +03:00
Alex James
3ad743ecaa
Add option for preventing display sleep ( #5783 )
...
Adds support for preventing the display from sleeping while a game is
running. Supports Windows, Linux (with the org.freedesktop.ScreenSaver
D-Bus service), and macOS.
2019-10-12 15:40:47 +03:00
Megamouse
07022fd3b6
stub cellVoice
2019-10-12 10:16:01 +02:00
Eladash
0172e097f7
Fix cellCameraInit (camera_handler::null)
2019-10-11 21:55:10 +02:00
Eladash
5cc12ef22e
cellCamera: Log error code
2019-10-11 21:55:10 +02:00
Markus Stockhausen
4d99169d51
Patch v2 for vkCreateInstance()
...
as requested
2019-10-11 21:16:36 +03:00
Markus Stockhausen
8adcb8046b
Patch for vkCreateInstance()
...
patch as requested
2019-10-11 21:16:36 +03:00
Markus Stockhausen
f5817cb430
Error handling for vkCreateInstance()
...
Cry in log if initialization failed.
2019-10-11 21:16:36 +03:00
Eladash
397007cf8b
rsx: Fix FIFO_DRAW_BARRIER substituation
2019-10-11 12:34:53 +03:00
Eladash
9242f16560
rsx: Improve FIFO recovery from flip
2019-10-10 19:34:23 +03:00
Eladash
06017cb14e
rsx: Recover from invalid writes to CELL_GCM_NV4097_SET_INDEX_ARRAY_DMA
...
Also: Trigger a FIFO recovery when encountering an invalid method.
2019-10-10 19:34:23 +03:00
Eladash
2eaf5df60b
rsx: Register some more methods
2019-10-10 19:34:23 +03:00
msuih
e9ea226e30
Validate firmware before installing
2019-10-09 21:21:23 +03:00
plappermaul
925f2ce02f
Use Linux timers for sleeps up to 1ms ( #6697 )
...
* Use Linux timers for sleeps up to 1ms (v3)
The current sleep timer implementation basically offers two variants. Either
wait the specified time exactly with a condition variable (as host) or use a
combination of it with a thread yielding busy loop afterwards (usleep timer).
While the second one is very precise it consumes CPU loops for each wait call
below 50us. Games like Bomberman Ultra spam 30us waits and the emulator hogs
low power CPUs. Switching to host mode reduces CPU consumption but gives a
~50us penalty for each wait call. Thus extending all sleeps by a factor of
more than two.
The following bugfix tries to improve the system timer for Linux by using
Linux native timers for small wait calls below 1ms. This has two effects.
- Host wait setting has much less wait overhead
- usleep wait setting produces lower CPU overhead
2019-10-09 20:03:34 +03:00
Nekotekina
6b1e1e4020
GDB Server: parse 'GDB Server' config entry
...
Add support for unix sockets.
2019-10-09 16:41:01 +03:00
Nekotekina
91dcc3f60c
GDB Server: fix selecting ppu_thread
2019-10-09 03:17:10 +03:00
Nekotekina
23bbeb7f8f
GDB Server: fix ppu_thread access cast
2019-10-09 03:12:45 +03:00
Nekotekina
ad5afc074e
GDB Server: format cleanup
2019-10-09 03:06:59 +03:00
Nekotekina
8f604ddded
Fix log format misuse
...
Harden log channel methods against non-constant string.
2019-10-09 02:14:52 +03:00
Nekotekina
a29d4150df
GDB Server: fix and cleanup
...
Move source files to Emu/GDB.cpp, GDB.h
Remove "WITH_GDB" option, enable GDB Server by default.
Change class name to gdb_thread.
Alias for external access gdb_server.
Change config option name to "GDB Server"
Bind on 127.0.0.1 by default.
2019-10-09 00:11:44 +03:00
Nekotekina
9d4de51cb6
Use g_fxo for network thread
...
Minor refactoring
2019-10-08 23:12:54 +03:00
Eladash
0f3c5f9e5a
Fix verification failure on Emu.Stop() at sys_cond_wait
2019-10-08 23:12:34 +03:00
Eladash
af417c93d0
cellGemUpdateStart/Finish error checking improved
...
* camera_frame = NULL is now checked for CELL_GEM_NO_VIDEO (applied both on start and finish)
* camera_frame = NULL on Start() still starts the update
* Implemented NOT_FINISHED/STARTED
All of those were reversed and hw tested.
2019-10-08 23:12:34 +03:00
Megamouse
278050f8d0
add cellPadFilter functions
2019-10-08 08:21:30 +02:00
Megamouse
29c77132cb
add error code to cellPadInfoPressMode and cellPadInfoSensorMode
2019-10-08 08:21:30 +02:00
Megamouse
f8c6cc2476
cellMic: add some params
...
makes me wonder if dev_num should always be s32
2019-10-08 08:21:30 +02:00
Eladash
36de3d4f4c
sys_gpio Cleanup
2019-10-08 02:52:33 +03:00
Eladash
c2278fb879
spu: Mask SRR0 at write
2019-10-08 02:52:33 +03:00
Megamouse
3455d76970
cellPadGetData: clear buttons if input is ignored but not intercepted.
...
needed in Hotline Miami and NinJa Gaiden Sigma, fixes Gran Turismo 6 regression
2019-10-07 19:25:50 +02:00
Megamouse
d402507be2
cellOskDialog: add some param checks
2019-10-07 19:25:50 +02:00
Nekotekina
239f53568c
SPU: optimize function dispatch in trampolines
...
Add a top-level hashtable
2019-10-06 16:03:38 +03:00
Nekotekina
8031180373
Add dummy alert param to thread_ctrl::wait API
2019-10-06 16:03:10 +03:00
Nekotekina
86fb2993ad
Minor fixup for se_t operators &= |= ^=
2019-10-06 13:33:50 +03:00
Silent
f5d8110ead
Create emulator directories after changing dev_*** directories ( #6707 )
...
* Make pkg_install create path to the game recursively
* Create emulator directories after changing dev_*** dir paths
2019-10-05 16:23:12 +03:00
Eladash
9e929a25d4
rsx: Default initailize zcull reports padding
2019-10-05 15:00:50 +03:00
kd-11
305a5bd717
typo fix
2019-10-05 12:01:46 +03:00
Megamouse
04a6b065b4
Qt: use Qt standard button layout in vfs_dialog
2019-10-04 23:06:05 +02:00
Megamouse
f97ed7738d
Qt: use Qt standard button layout in settings_dialog
2019-10-04 23:06:05 +02:00
Megamouse
91f53a366b
Qt: fix high dpi setting
2019-10-04 23:05:07 +02:00
Megamouse
f7ec679242
mmjoy: fix connection update spam
2019-10-04 20:22:32 +02:00
Megamouse
df5af50866
evdev: add missing override
...
removes a warning
2019-10-04 20:22:32 +02:00
kd-11
4a19a2dd24
rsx: Explicity describe transfer regions for both source and destination blocks
2019-10-04 18:10:46 +03:00
Eladash
08e674aa28
sys_cond fixes ( #6584 )
...
* sys_cond fixes
sys_cond_wait is now signaled atomically (regression fix)
Fix a corner case with sys_cond_wait and sys_cond_destroy EBSUY check (waiter count was inaccurate if thread is not the owner of mutex)
Add not about EBUSY corner case (TODO)
* Fix inconcistency in sys_cond_destroy and ETIMEDOUT
.. event at sys_cond_wait regarding waiters count.
Now waiters count is properly connected to the mutex owner actions after ETIMEDOUT in sys_cond_wait.
2019-10-03 23:05:34 +03:00
Eladash
286d62d09c
sceNp2Init: use u32 in poolsize
2019-10-02 01:52:42 +01:00
Nekotekina
f83385926b
Implement optimized operators &|^ for se_t
2019-09-30 22:32:39 +03:00
Nekotekina
e56ffc1e69
Implement optimized operator~ for se_t<>
2019-09-30 22:26:34 +03:00
Nekotekina
5f29840348
Fix enum vs integer comparison in se_t::operator==
...
Need to convert left part to its underlying type.
2019-09-30 22:26:34 +03:00
Nekotekina
0f567abdd8
Restore experimental optimized operators &= |= ^= for se_t
...
They were removed approximately 3 years ago due to their rarity.
2019-09-30 22:26:34 +03:00
kd-11
7aed9c3f13
gl: Add missing input declarations for 2-sided lighting
2019-09-30 21:52:43 +03:00
kd-11
88229f4716
gl: Remember to unbind attachments from active framebuffer after clear
...
- If a stale reference is left lying around (e.g the texture bound to
depth has been deleted and we attach a color image) no operations
actually take place. glCheckFramebufferStatus also does not catch this
problem.
2019-09-30 21:52:43 +03:00
Eladash
0b2fa6ffdc
rsx: Flush FIFO GET before smeaphore_acquire
2019-09-30 17:30:15 +03:00
Eladash
70b4ae6bd6
rsx: Optimize FIFO PUT masking
2019-09-30 17:30:15 +03:00
kd-11
bcf8799079
rsx: Fix missing point size export
...
- Sometimes program-point-size is enabled, but the vs does not actually
write to the point size register. In this case, pass the incoming point
size along instead of the default register init.
2019-09-30 01:40:04 +03:00
Megamouse
19e0d099b6
config: dynamically show_fps_in_title
2019-09-29 21:00:17 +02:00
Eladash
319fc8c55d
rsx: Mask FIFO PUT on rsx execution
2019-09-29 13:05:24 +03:00
Eladash
822287b418
rsx: Avoid unsigned/signed mismatch with fifo ret addr
2019-09-29 13:05:24 +03:00
kd-11
8cfd3b56d6
vk: Increase wait timeout in case of problematic GPU loads causing heavy stutter
...
- When compiling LLVM objects, it is possible to starve the driver thread and cause the timeouts to trigger
- Observed in RE6 when using SPU LLVM since the game generates a very large number of objects "infinitely"
2019-09-29 11:39:22 +03:00
kd-11
ef5b56bc48
rsx: Align width properly when normalizing to avoid fractional results being lowered to 0
2019-09-29 11:39:22 +03:00
kd-11
69c090b14a
vk: Check frame descriptors before rendering in case of a flip request between begin() and end()
...
- There is no reason to delay async flip requests since most of the work can be handled during rendering anyway
2019-09-29 11:39:22 +03:00
kd-11
1464069476
rsx: Restructure deferred flip queue handling
...
- Allows frameskipping to occur naturally if RSX thread is bombarded with flip requests but just jumping to the last one if possible
- See request_emu_flip() for async frame submission and implicit skipping
- Also allows display queue to fill faster than the flip thread can drain the queue
2019-09-28 21:13:56 +03:00
Eladash
b9b879c3d3
Bugfix for sceNpUtilCmpNpId
...
Fix checking bounds, use memcmp
Fix result store on sceNpUtilCmpNpIdInOrder
2019-09-28 16:02:55 +03:00
Nekotekina
046f8510fa
Restore experimental optimized operators == != for se_t<>
2019-09-28 15:39:50 +03:00
Nekotekina
bd1a24b894
Tidy endianness support (se_t) implementation
...
Move se_t and se_storage to util/endian.hpp
Use single template instead of two specializations.
Add minor optimization for MSVC.
Remove v128 dependency.
Try to enable intrinsics for unaligned data.
Fix minor bug in u16/u32/u64 specializations.
2019-09-28 15:39:50 +03:00
Nekotekina
c7c12941bc
Fix wrong comments in CPUThread.h
...
It's not an upcast.
2019-09-28 15:39:50 +03:00
kd-11
2275259bf5
rsx: Properly scale overlay passes to match drawable area
2019-09-28 13:24:14 +03:00
kd-11
28534e8833
gl: Remove a debug print
2019-09-28 13:24:14 +03:00
Eladash
feabe71183
SPU: Rewrite BGX
2019-09-28 03:42:22 +03:00
Eladash
e315b39822
SPU: Rewrite CGX
2019-09-28 03:42:22 +03:00
Eladash
d0503dc937
SCE_NP_ERROR_OFFLINE logging disabled
2019-09-28 03:16:01 +03:00
Eladash
7f725e0655
sys_rsx: Format special sys_rsx invalid param error, warning fixes
2019-09-28 03:16:01 +03:00
kd-11
e53e98749f
rsx: Add missing initialization
2019-09-27 21:07:56 +03:00
msuih
6979b96225
Log game version
2019-09-27 20:01:55 +03:00
Nekotekina
57f2189b1a
cellSaveData: fix VFS escape usage
2019-09-27 19:04:16 +03:00
Nekotekina
465b16e786
Finally remove fxm from IdManager
2019-09-26 23:26:36 +03:00
Nekotekina
c065a21b74
cellMsgDialog: use g_fxo
2019-09-26 23:26:36 +03:00
Nekotekina
3c72069ae6
cellOskDialog: use g_fxo
2019-09-26 23:26:36 +03:00
Nekotekina
50fc5dfde5
Use g_fxo for rsx::rsx_replay_thread
2019-09-26 23:26:36 +03:00
Nekotekina
a6edcca6e6
Use g_fxo for spu_cache
2019-09-26 23:26:36 +03:00
Nekotekina
5f9c5e8765
Use g_fxo for rsx::thread
2019-09-26 23:26:36 +03:00
Nekotekina
b48cdc2260
Use g_fxo for global ppu_module instance
...
Also fix autonomous PRX/SPU loading sequence.
2019-09-26 23:26:36 +03:00
Nekotekina
240b4a8bd8
cellGameData: use g_fxo for content_permission
2019-09-26 23:26:36 +03:00
kd-11
ee0633f43a
vk: Add turing workaround
...
- Turing crashes if using the depth->color transfer hack
2019-09-26 20:12:25 +03:00
kd-11
acc986be3f
vk: Add chip family detection
2019-09-26 20:12:25 +03:00
msuih
5ac631e03b
Fix debug build
...
Seems to be a compiler bug
2019-09-25 23:20:52 +03:00
Megamouse
839fe786a2
input: fix DS3 button presses (forgot the non pressure sensitive ones)
2019-09-25 21:13:55 +02:00
Nekotekina
ccf9543b44
Improve vfs::host::unlink on Windows (for sys_fs_rmdir)
...
Possibly fixes sys_fs_rmdir and other cases of directory removal.
Make sure the directory with deleted files always becomes empty.
For this purpose, temp files are moved to the root of the device.
2019-09-25 18:47:38 +03:00
Nekotekina
cd843bda6e
cellSaveData: always commit changes on error in funcFile loop
...
Make sure the changes which are already done are written.
2019-09-25 18:47:38 +03:00
Nekotekina
f841b47b6b
cellSaveData: add auto maintenance routine in Emu.Init()
...
This routine:
1) Removes junk backup directories
2) Fixes interrupted save data process in edge case
This case can happen if emu terminates between two atomic renames.
Also use directory renaming technique for delete op.
Also rewrite recreate operation to be part of atomic process.
2019-09-25 18:47:38 +03:00
Megamouse
297016aba3
fix some new warnings
2019-09-25 07:33:32 +02:00
Megamouse
41050c4364
input: fix missing override in keyboard pad handler
2019-09-25 00:30:23 +02:00
RipleyTom
e0d501124f
Only free the list if libusb_get_device_list succeeded
2019-09-25 01:07:04 +03:00
Megamouse
4594148409
Input: move some pad handler logic to the parent class
2019-09-24 21:09:24 +02:00
RipleyTom
4de301a961
Implement sys_usbd_event_port_send
2019-09-24 09:18:33 +02:00
JohnHolmesII
c62a667fb1
Fix null pointer check (clang warnings)
2019-09-24 09:11:50 +02:00
Nekotekina
aa8a7b3e8a
Make errors in Emu::Init verbose and don't crash
...
Allow TTY.log to be disabled if file access failed
Add fs::error::isdir
2019-09-24 05:01:00 +03:00
Nekotekina
9710473a2e
atomic.hpp: use native semaphores on Windows
...
Windows: drop keyed events
Linux: keep using native futex
Implement unused POSIX semaphore path
Implement fallback semaphore with pure std (OSX, BSD, etc)
2019-09-24 05:01:00 +03:00
Nekotekina
95c939f014
atomic.hpp: fix pointer mask
2019-09-24 05:01:00 +03:00
Nekotekina
74471e8ea3
atomic.hpp: fixup for atomic waiting
2019-09-24 05:01:00 +03:00
Nekotekina
feee3838eb
Revert "Revert "Remove shared_cond and simplify reservation waiting""
...
This reverts commit b70c08a2e8 .
2019-09-24 05:01:00 +03:00
Jan Beich
5ec35c7daa
rsx: unbreak build with Clang 9
...
ld: error: rpcs3/CMakeFiles/rpcs3.dir/main_application.cpp.o: unable to find library from dependent library specifier: opengl32.lib
ld: error: rpcs3/Emu/librpcs3_emu.a(GLGSRender.cpp.o): unable to find library from dependent library specifier: opengl32.lib
ld: error: rpcs3/Emu/librpcs3_emu.a(GLRenderTargets.cpp.o): unable to find library from dependent library specifier: opengl32.lib
ld: error: rpcs3/Emu/librpcs3_emu.a(GLVertexBuffers.cpp.o): unable to find library from dependent library specifier: opengl32.lib
2019-09-24 01:00:45 +03:00
Nekotekina
40fcd457bf
cellSaveData fixup
2019-09-23 03:15:41 +03:00
Eladash
2494091353
cellSaveData: Log param error code ( #6587 )
2019-09-23 03:07:23 +03:00
Eladash
718491c56d
ppu disasm: Improve BC formatting
2019-09-23 02:35:56 +03:00
Eladash
2c47e39f08
ppu disasm: Improve disassembly of BCTR and LWSYNC
2019-09-23 02:35:56 +03:00
Silent
a44b1018b5
Add SCP extension support to XInput pad handler ( #6524 )
...
* Add SCP extension support to XInput pad handler
* Add SCP mention in xinput handler description tooltip
2019-09-22 11:22:42 +02:00
Megamouse
88388f1efc
sceNpSns: add more logging
2019-09-22 10:16:55 +02:00
Megamouse
2dc71cfe51
sceNpTrophy: add errors from RE
2019-09-22 10:16:55 +02:00
Eladash
399ea2edb2
dont escape from check_state() before ensuring signal is resetted.
2019-09-21 19:55:10 +03:00
Nekotekina
e7d67f9732
Fix unwanted statichle_handler init
2019-09-21 03:59:43 +03:00
Megamouse
caef52e3b3
Input: don't intercept pads after system dialogs, but still ignore input
2019-09-20 22:12:40 +02:00
Megamouse
571bb914f5
cellPad: fix out of bounds warning
2019-09-20 22:12:40 +02:00
Megamouse
8a63ac033e
Input: Ignore unused reserved button (key code 0 was used twice)
2019-09-20 22:12:40 +02:00
Megamouse
7193d407b9
Input: Remove unused flush member
2019-09-20 22:12:40 +02:00
kd-11
1a892c6b1b
rsx: Avoid recursion in flip handler
2019-09-20 15:08:41 +03:00
RipleyTom
7818d0767b
Forces numeric locale to default
2019-09-20 11:00:05 +02:00
Megamouse
aa7eb1536a
overlays: fix enter button assignment in osk
2019-09-20 10:53:09 +02:00
kd-11
e0005ec347
rsx: Refactoring and improvement
...
- Separate displayed statistics from actual backend statistics.
Allows asynchronous flipping to work correctly as it just uses display stats.
The real stats are used by the frame scope marker to determine behavior like engaging the FIFO optimizer or skipping draw calls correctly.
2019-09-19 23:10:09 +03:00
kd-11
2c76f47eec
rsx: Restructure flip code and frame scoping
...
- Add an explicit frame scope marker tied in with the queue_prepare command
Since queue_prepare is emitted at the end of a frame, it can be used as end-of-frame in games that emit this
- If this command is not emitted, fifo flatenner and frameskip will not work
2019-09-19 23:10:09 +03:00
Eladash
c50119aefa
Fix sceNp2Init
2019-09-19 08:26:29 +02:00
Nekotekina
538a5cc9d8
Silence skylander message
2019-09-19 02:16:14 +03:00
Nekotekina
4b19e55fcc
Use g_fxo for cellKb, cellMouse
...
Use init_mutex
2019-09-19 02:16:14 +03:00
Nekotekina
17d764409e
Add init_mutex.hpp
...
Pseudo-mutex to protect initialization and finalization
2019-09-19 02:16:14 +03:00
Nekotekina
4bba1e3337
Use g_fxo for pad_handler
2019-09-19 02:16:14 +03:00
Nekotekina
3092914527
typeindices.hpp: add typeindex() helper
2019-09-19 02:16:14 +03:00
Nekotekina
c7bf6421f4
typeindices.hpp: rename typeinfo_v to typelist_v
2019-09-19 02:16:14 +03:00
Nekotekina
be61499790
typeindices.hpp: fix constexpr constructor
...
Serious bug...
2019-09-19 02:16:14 +03:00
Nekotekina
8054735cab
Fix manual_fixed_typemap::init result (g_fxo)
...
Return uncasted pointer to created type
2019-09-19 02:16:14 +03:00
Nekotekina
353a7ff8e6
cellCamera: use g_fxo
2019-09-19 02:16:14 +03:00
Nekotekina
a4951ec407
Use g_fxo for global lv2_memory_container
2019-09-18 21:24:04 +03:00
Nekotekina
20cb19618d
Fix vm::reserve_map NRVO
2019-09-18 21:24:04 +03:00
RipleyTom
7e2bb0fd1f
Adds initialization checks back in sys_usbd
2019-09-18 21:19:40 +03:00
kd-11
bd4d86f87a
vk: Properly test MSAA sample mask when switching between states inside a RSX renderpass.
...
- Before, these changes would be lost if the same RTT config was used with varying mask setups
2019-09-18 15:42:59 +03:00
Nekotekina
c900fb0d77
Delete g_idm
...
Needs to be reimplemented
2019-09-17 15:55:58 +03:00
Nekotekina
3eba0f4523
sys_usbd: use g_fxo
2019-09-17 15:23:40 +03:00
Nekotekina
7e2edc2232
sys_usbd: rearrange includes
2019-09-17 15:10:58 +03:00
Nekotekina
c2fe2ac4a4
cellMic: use g_fxo
2019-09-17 02:46:34 +03:00
Nekotekina
36a528067c
cellAudio: use g_fxo
2019-09-17 02:46:34 +03:00
Nekotekina
76314520ef
cellAudio: use vm::gvar to allocate working memory
2019-09-17 02:46:34 +03:00
Nekotekina
584174d371
vm::gvar: add array support
2019-09-17 02:46:34 +03:00
RipleyTom
2b8890b193
CellPadLdd functions implementation
2019-09-17 01:17:48 +03:00
RipleyTom
e98c7f4e1a
sys_usbd implementation
2019-09-17 01:17:48 +03:00
RipleyTom
2f884de885
Adds md5 hash to Crypto implementations
2019-09-17 01:17:48 +03:00
Windy Boy
d782abb3fd
TSX instruction tooltip typo
...
Should be "CPU" instead of "cpu"
2019-09-16 21:08:20 +02:00