Commit graph

8089 commits

Author SHA1 Message Date
RipleyTom f8e4079c41 Fix for auto updater 2019-10-22 07:43:12 +02:00
RipleyTom 9f9ac4b696 Auto-updater 2019-10-22 01:51:50 +02:00
RipleyTom 56e6dd1c46 Adds 7z sdk to 3rdparty 2019-10-22 01:51:50 +02:00
Nekotekina b329bb604c SPU LLVM: implemented asynchronous compilation
Implemented interpreter-based pre-recompiler.
Interpreter functions are build with SPU LLVM.
2019-10-21 19:29:34 +03:00
Eladash 29cddc30f0 rsx: Fix vblank signals flood after Emu.Resume() 2019-10-21 15:31:45 +03:00
Eladash cbecbc264e cellGcm: Fix driver_info->memory_size
based hw test
2019-10-21 15:31:45 +03:00
Eladash 5de0005f5a rsx: Report full method range on invalid methods
Also report full command on fifo desync event for the first time
2019-10-21 15:31:45 +03:00
eladash 730e9cde84 sys_rsx: Improve allocations and error checks
* allow sys_rsx_device_map to be called twice: in this case the DEVICE address retrived from the previous call returned
* Add ENOMEM checks for sys_rsx_memory_allocate and sys_rsx_context_allocate
* add EINVAL check for sys_rsx_context_allocate if memory handle is not found
* Separate sys_rsx_device_map allocation from sys_rsx_context_allocate's
* Implement sys_rsx_memory_free; used by cellGcmInit upon failure
* Added context_id checks
* Throw if sys_rsx_context_allocate was called twice.
2019-10-21 15:31:45 +03:00
Nekotekina b844cd81e8 atomic.hpp: remove <string> dependency 2019-10-20 23:06:17 +03:00
Nekotekina 2dde133e1f atomic.hpp: fix internal resource deallocation
Also remove debug printf.
2019-10-20 23:06:17 +03:00
kd-11 3c44065684 gl: Fix copypasta
- MSAA is still unimplemented in OGL
2019-10-20 21:38:40 +03:00
kd-11 f40f2c6215 vk: Fix minification filter description for NEAREST_MIPMAP_NEAREST. Just a typo.
- Also remove mipmap filter for CONVOLUTION
2019-10-20 21:38:40 +03:00
kd-11 09de3b7974 rsx: Tweak behaviour of the "Use GPU texture scaling" option
- If either source data or dest is a render target, do image operations on the GPU same as before
- If swizzle is desired, use CPU fallback
- If no scaling and no format conversion is required, use CPU fallback
- If scaling is desired and the transfer target is in local memory, use the GPU
- When doing trivial copies, use the routine in rsx_methods instead of
  duplicating code. Also has the benefit of better range checking.
2019-10-20 21:38:40 +03:00
kd-11 868547aec8 rsx: Minor improvement to fbo region invalidation
- When commiting a block as fbo, keep blit_dst data as well.
- Avoids removing (and losing data from) blit targets that just happen to share a page with a framebuffer.
2019-10-20 21:38:40 +03:00
Eladash c16319f959 PPU Precise: Fix fused float ops misaccuracy by using fma
Also cleanup add64_flags, remove redundent copy of s_ppu_itype.
2019-10-20 20:58:31 +03:00
Nekotekina 4d46e66833 atomic.hpp: improve internal data layout
Put semaphore control variable together in hashtable.
Avoid unnecessary allocation of extents.
2019-10-20 20:08:09 +03:00
Nekotekina 56b310ebac atomic.hpp: reimplement USE_FUTEX path for Linux 2019-10-20 20:05:36 +03:00
Nekotekina e0f60c5dce atomic.hpp: rewrite collision handling
Remove "fallback" code path.
Remove USE_FUTEX code path temporarily.
2019-10-20 18:29:20 +03:00
Eladash 79a3a7ce4c Add exception for sys_usbd_initialize 2019-10-20 15:28:26 +01:00
Eladash a1e7cdf1e9 Forcefully awake waiters in sys_usbd_finalize
This is a no-op from cellUsbd side but happens on lv2 side as well.
2019-10-20 15:28:26 +01:00
Eladash d90696be90 sys_usbd Tiny update 2019-10-20 15:28:26 +01:00
Eladash 6c2307fb96 cellVoice: Initial Implementation
Implement system service events, error checking and some functions.
2019-10-20 15:16:53 +01:00
Eladash fa73175754 sceNpBasicGetEvent error checks improved 2019-10-20 14:56:44 +01:00
Eladash d9a97d8674 sceNpUtil Improvements 2019-10-20 14:56:44 +01:00
kd-11 996534c559 rsx: Fixup for aspect mismatch 2019-10-20 15:25:07 +03:00
Megamouse 0ef7ad129d cellNetCtl: improve param checks 2019-10-19 19:20:18 +02:00
Megamouse e6aeb7ecb9 stub cellKey2Char 2019-10-19 19:13:33 +02:00
Nekotekina 59382e023d Compilation fix 2019-10-19 14:08:21 +03:00
Nekotekina 2446bb5d40 init_mutex: implement init_always() 2019-10-19 14:01:34 +03:00
Nekotekina db7042b986 Restore using keyed events in waitable atomics on Windows 2019-10-18 23:08:00 +03:00
Eladash d4ba7f37b6 rsx util: Implement decode_fxp<> 2019-10-18 15:41:39 +03:00
kd-11 299b98b30a vk: Disable mipmap sampling if sampling mode is does not have a mipmap filtering mode.
- GL_LINEAR and GL_NEAREST always sample LOD0 so make vulkan behave the same way
2019-10-18 14:46:37 +03:00
kd-11 404073c74a rsx: Force-align compressed formats to 4x4 texel blocks and disable 1D compressed textures.
- The PS3 allows defining 1D compressed images but this obviously doesn't work well on desktop.
2019-10-18 14:46:37 +03:00
kd-11 eff4e95c99 rsx: Minor cache fixup for cyclic references.
- Logic was broken by mipmaps PR. Do not issue a texture barrier if a temp copy is being done.
2019-10-18 14:46:37 +03:00
kd-11 bd1bcc6be7 vk: Remove a redundant memory barrier 2019-10-18 14:46:37 +03:00
kd-11 70642484cd vk: Check for cyclic references if sampler is marked as do-not-cache.
- Usually an indication of surface/texture cache interaction.
2019-10-18 14:46:37 +03:00
kd-11 eee2237e19 rsx: Track uncached cache resources
- Uncacheable resources can be reused as soon as they're made visible to the draw call.
- Since they're likely to be reused every draw call until the shader changes, it is important to reuse as much as possible
2019-10-18 14:46:37 +03:00
kd-11 decf9cfcf6 rsx: Notify the backend to release or delete temporary surfaces after we're done with them. 2019-10-18 14:46:37 +03:00
kd-11 97ed95d21b vk: Add video memory manager to monitor VRAM usage 2019-10-18 14:46:37 +03:00
Megamouse d6664450df Input: avoid exception while no keyboard is registered 2019-10-18 09:20:51 +02:00
kd-11 1046184dd0 rsx: Fix some uninitialized variables flagged by valgrind 2019-10-18 00:32:38 +03:00
Megamouse 0bad56da67 cellScreenshot: initial implementation 2019-10-17 21:24:25 +02:00
Markus Stockhausen 2850d0c6bc avoid update of window title
only update title if user really wants to display the FPS during gameplay.
2019-10-17 21:15:14 +02:00
Megamouse 60f3ed7607 stub cellSsl 2019-10-17 20:32:33 +02:00
Nekotekina 00895862e1 Fix sys_vm_t destructor
It's not a destructor's job to free vm like this.
2019-10-17 19:57:29 +03:00
kd-11 5af8a9fbbc rsx: Fix decoding of some fixed point texture parameters
- Checked envydocs and found the correct format as fixed-point 4.8 with optional sign bit
2019-10-17 18:18:00 +03:00
kd-11 a936e43ff6 rsx: Fixup for slice gathering for structures with multiple mipmap levels
- TODO: Proper multi-level assembly for non-2D structures
2019-10-17 18:18:00 +03:00
kd-11 e47b4ffb8f rsx: Fix rsx capture crash.
- Pixel coordinates are top-left not bottom-right
- Solves out of bounds access
2019-10-17 18:18:00 +03:00
kd-11 e166dbccc8 rsx: Fix visibility of blit destination targets 2019-10-17 18:18:00 +03:00
kd-11 0c35595ce2 rsx: Remove the alpha-to-coverage hack that was added to hide the missing mipmaps in games
- Moves to a purely stochastic function using dithering to simlulate coverage
2019-10-17 18:18:00 +03:00
kd-11 f0ed0285f3 rsx: Implement range-based subresource descriptor cache
- The previous address-based approach was pretty awful when it comes to invalidating
2019-10-17 18:18:00 +03:00
kd-11 fbb9ed4e25 rsx: Add explicit range to cached subresource descriptors 2019-10-17 18:18:00 +03:00
kd-11 c9e3a321b2 rsx: Fixup for surface cache scanning
- Fix regression when gathering cubemaps
2019-10-17 18:18:00 +03:00
kd-11 1ac976771c rsx: Add some texture search options for the cache
- Potentially optimizes texture cache searching using explicit options
2019-10-17 18:18:00 +03:00
kd-11 840b52fe80 rsx: Implement mipmap gathering from texture cache 2019-10-17 18:18:00 +03:00
kd-11 d6d8766f8d rsx: Refactoring
- Move some helper routines out of the cache core
- Prep for multi-layered image search
2019-10-17 18:18:00 +03:00
kd-11 cb362b4085 rsx: Runtime check on RTT cast 2019-10-17 02:30:03 +03:00
kd-11 5c7bbb3354 vk: Fixup
- Removes incorrect line writing stencil flags to a regular texture.
2019-10-17 02:30:03 +03:00
kd-11 d29b6cdb59 vk: Proper workaround for VEGA float16_t bugs 2019-10-16 22:40:50 +03:00
kd-11 a6e143254a vk: Add workaround for broken format conversion in older GeForce cards 2019-10-16 22:40:50 +03:00
kd-11 4f088a102c vk: Add kepler and maxwell tables 2019-10-16 22:40:50 +03:00
eladash 95752607ea sys_spu: Don't reset snr config at group_start()
Also first check for EINVAL in sys_spu_thread_set_spu_cfg
2019-10-16 21:11:29 +03:00
Eladash 6dd96d3db9 Fixes for cellUserInfoGetList
- Don't allow all args to be nullptr at once.
- Fill listBuf with zeroes for unwritten entries
- Fix userId set in listBuf

Similarly to what the firmware does
2019-10-16 21:11:29 +03:00
Eladash 47c3d945aa spu/ppu-diasm: Fixup for #6772, #6722 2019-10-16 21:11:29 +03:00
Nekotekina 0fe46934de Fix "SPU Interpreter (fast)"
Regression after #6770
2019-10-16 14:20:35 +03:00
Eladash 4ed2c7b594 error checking bugfix for sceNpTrophyCreateContext
options = 1 is allowed.
2019-10-16 00:50:58 +03:00
Eladash b03c2fc856 sys_cond_wait: Fix mutex acquire when signaling thread didnt pass ownership immediatly 2019-10-16 00:50:58 +03:00
Eladash ab02c56725 sceNpTrophyRegisterContext verbose logging in TROPHY_ERROR_ILLEGAL_UPDATE error
Also use safer checking when creating trophy ctxt dir
2019-10-16 00:50:58 +03:00
Eladash 80b4ac23e5 spu disasm: Show interrupts status modifiers on indirect branches
That's how the assembler represents it as well.
2019-10-16 00:50:58 +03:00
Nekotekina eafbc77c0d SPU LLVM: Always use linux-gnu target triple (affects Windows)
Unify internal code generation to make better use of GHC calling convention.
Ideally, it would just work on Windows as well, but some random bug appeared.
This bug was causing freezes on SPU LLVM compilation.
This commit desperately attempts to workaround it.
2019-10-15 18:04:50 +03:00
Nekotekina c69fe0f664 SPU Profiler preview
Add option "SPU Profiler" (disabled by default).
Works only with SPU recompilers.
Results are flushed on pausing.
2019-10-15 17:42:57 +03:00
Malcolm Jestadt 1a9e06d3c6 Linux: Change default Sleep Timers accuracy to host
- This doesn't change existing configs
- Also sets the host_min_quantum to the true value
- Restores lost TODO: comment
2019-10-15 00:32:31 +03:00
plappermaul 2171ffdab2 minor optimization for FIFO_control::read_put() (#6768) 2019-10-14 21:26:31 +03:00
Eladash 7e08fff91d ppu disasm: Improve CR bits manipulation instructions formatting 2019-10-14 20:44:23 +03:00
Eladash 3910b2465e Fix unknown BCLR forms formatting 2019-10-14 20:44:23 +03:00
Eladash 75ee668922 Log fs::g_tls_error on ACCESS_ERROR errors 2019-10-14 20:44:23 +03:00
Nekotekina 076a80d71e Random space fixes 2019-10-14 19:42:35 +03:00
Ani f8153fca58 Unify versioning
Use the same version value across all scripts instead of program side version and repository side version separatedly
2019-10-14 13:57:36 +01:00
Ani 6a0ce010eb Update git-version generation 2019-10-14 13:57:36 +01:00
Eladash 1e303e9f97 ppu disasm: Implement BCLR's, BCCTR's and BC's extended mnemonics
Also:
BCCTR cr bit is now shown as cr(bit/4)[bit % 4]
BLRL is now shown properly
BDN?Z[TF](LR?)L?A? branches are now implemented.
2019-10-14 13:54:56 +01:00
Eladash 5978b1f28f ppu disasm: Fix AA BC formatting 2019-10-14 13:54:56 +01:00
Eladash 1d07c40aa5 Fix state reset in cellMic, cellAudio, cellCamera (#6761) 2019-10-13 19:26:11 +03:00
kd-11 42aa4c5000 gl: Vendor-specific tuning 2019-10-13 19:00:05 +03:00
kd-11 776fa54d22 gl: Fix missing case 2019-10-13 19:00:05 +03:00
kd-11 27f48fbc06 gl: Rewrite image transfer operations to support image subregions
- Working exclusively with full sized images is very expensive
2019-10-13 19:00:05 +03:00
kd-11 d9a9766e41 gl: Refactoring and fallback support for compute acceleration 2019-10-13 19:00:05 +03:00
kd-11 b39bfa02a6 gl: Windows bringup 2019-10-13 19:00:05 +03:00
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
youwereeatenbyalid cea975f6a6 Add a "stack mode" to the TTY. (#6542)
* Added stack mode to TTY

* fix declarations

* Fixed spacing, removed namechange to preserve user settings, removed debug string

* removed rename of "stack"

* Add menu separator and remove whitespace
2019-09-16 20:38:30 +02:00
msuih 8f965ccd48 Pad settings dialog improvements 2019-09-15 22:48:39 +02:00
Nekotekina b70c08a2e8 Revert "Remove shared_cond and simplify reservation waiting"
This reverts commit 0a96497e13.
2019-09-14 00:02:48 +03:00
Nekotekina 223319dd2e Abort named_thread in cpu_thread::stop_all 2019-09-13 15:53:38 +03:00
Nekotekina e982871ab5 atomic.hpp: increase hashtable capacity
Double size and ignore 2 lowest bits (effectively x8)
2019-09-13 15:53:34 +03:00
Nekotekina 2fc8844315 atomic.hpp: add atomic wait mask support 2019-09-13 15:53:34 +03:00
kd-11 c59cb1bdd3 rsx: Allow only sse4.1 capable CPUs to take the accelerated index path
- Older sets lack the required min/max functionality
2019-09-13 12:28:52 +03:00
Megamouse dadfdc35f4 Qt: add --styles cli arg 2019-09-13 10:30:56 +02:00
Megamouse 2ab19efb90 Qt: Enable stylesheet cli args and add stylesheet option "None" 2019-09-13 10:30:56 +02:00
Silent 3e9ed9a17d Make "Clear shader cache" clear all caches, not just the first (#6538)
* Use QFileInfo::suffix to obtain and check for file extension when clearing caches

* Clear all shader caches for the game, not just the first
2019-09-13 09:14:52 +02:00
Megamouse 32a4c2242b sceNp: fixups 2019-09-13 06:18:49 +02:00
kd-11 52e8747b83 rsx: Workaround for exit deadlock
- Avoids games locking up when the stop button is pressed
2019-09-12 23:32:21 +03:00
kd-11 cc313b052f rsx: Improve hit testing when scanning for overlapping surfaces
- Calculate exact sizes when doing hit tests to avoid false negatives
- Defer page checking until actually require to do memory setup
- Introduce align2 helper to do non-pow2 alignments
2019-09-12 23:32:21 +03:00
kd-11 9842823a8c rsx: Check if memory actually exists when overallocating blit targets 2019-09-12 23:32:21 +03:00
kd-11 cd1345b6bb rsx: Do not use nul section if resolution scaling is active on a surface 2019-09-12 23:32:21 +03:00
kd-11 858014b718 rsx: Experiments with nul sink 2019-09-12 23:32:21 +03:00
kd-11 212ac19c11 vk: Reimplement DMA synchronization 2019-09-12 23:32:21 +03:00
kd-11 f06559412e vk: RDB fixup 2019-09-12 23:32:21 +03:00
kd-11 7fdb4976d8 rsx: Remove log spam for cond render 2019-09-12 14:08:21 +03:00
kd-11 60845daf45 rsx: Improve use of CPU vector extensions
- Allow use of intrinsics when SSSE3 and SSSE4.1 are not available in the build target environment
- Properly separate SSE4.1 code from SSSE3 code for some older proceessors without SSE4.1
2019-09-12 14:08:21 +03:00
kd-11 27af75fe71 rsx: Fixup for blit engine when moving inverted regions
- Properly calculate overlap range when sections are inverted
- Simplify transfer logic for inverted regions
2019-09-11 23:30:55 +03:00
Nekotekina 4504ac2d12 atomic.hpp: implement collision fallback properly
Should prevent devastating effect of collisions
2019-09-10 19:25:39 +03:00
Nekotekina 0a96497e13 Remove shared_cond and simplify reservation waiting
Use atomic wait for reservations
Cleanup some obsolete code
2019-09-10 19:25:39 +03:00
Nekotekina d13ff285d1 Rewrite cond_variable to use waitable atomics
Increase max_timeout and fix max_timeout usage
2019-09-10 19:25:39 +03:00
Nekotekina 67f31c17d1 atomic.hpp: fix signal saturation logic
Make sure to notify_all at max signal count.
2019-09-10 19:25:39 +03:00
Nekotekina a808c2aaf6 atomic.hpp: optimize internal logic
Move waiter count to highest bits to prevent false futex wakeups.
Test pointer bits properly in notify_all to avoid false wakeups.
2019-09-10 19:25:39 +03:00
Nekotekina aa99faa85d atomic.hpp: add timeout support 2019-09-10 19:25:39 +03:00
Nekotekina a45f86a4a2 Remove notifier class
Poorly implemented condition variable.
2019-09-10 19:25:39 +03:00
Nekotekina b91661ae71 Remove timeout support from lf_queue::wait
Add notify method and use atomic wait
2019-09-10 19:25:39 +03:00
Nekotekina 1668d6ee1b atomic.hpp: implement wait callback interface
Will be used to wake up threads uniformly.
2019-09-10 17:43:04 +03:00
kd-11 412c620b9d rsx: Allow sampling from shader_read resources for blit engine
- With harmonization between all texture types implemented, there is no difference between blit_engine_src and shader_read for supported formats
- Adds extra format filtering to ensure no conflicts when copying data
2019-09-10 16:54:02 +03:00
kd-11 75fcfac00e rsx: Modify find_cached_texture to respect gcm_format. Can pass 0 for "dont care" 2019-09-10 16:54:02 +03:00
Wojtek Arabczyk cb66d05693 Fix warnings in rpcs3/Emu/Cell/Modules/sceNp.cpp 2019-09-09 19:16:02 +03:00
Megamouse aa262889f2 cellVdec: add error_code 2019-09-08 20:54:43 +03:00
Megamouse 6aacec4694 cellMouse: add error_code 2019-09-08 20:54:43 +03:00
Megamouse c111209639 cellGem: add error_code 2019-09-08 20:54:43 +03:00
Nekotekina 0fcddf6568 Audio: restore snd_pcm_recover for ALSA backend
But don't push audio data after recover as before.
2019-09-08 20:49:51 +03:00
Nekotekina 693d54553c Fix compilation 2019-09-08 19:26:10 +03:00
Megamouse cb00b71c4b sceNp: add error_code and some param checks (#6416)
* sceNp: add error_code and basic implementations

* sceNp: and fix some structs

* sceNpSns: improvements

* sceNpUtil: improvements

* sceNpTus: improvements
2019-09-08 18:36:10 +03:00
kd-11 d1603fbb0b vk: Crop malformed image descriptors
- Some image descriptors (lle vdec?) are malformed with pitch being smaller than width
- Crop these for now pending hardware tests
2019-09-08 18:22:27 +03:00
kd-11 f53361b966 rsx: Fix fast texture copy when src_pitch != width * block_size
- Happens on mipmapped linear images
2019-09-08 18:22:27 +03:00
Nekotekina 0c69b7da8f Fix ppu_interpreter::MTFSFI
Out of bounds error.
2019-09-08 14:50:50 +03:00
Nekotekina 798434aada Remove spin wait loop in cpu_thread::check_state
It was mostly dead code.
lock_unlock() method already has spin waiting logic.
2019-09-08 14:50:50 +03:00
kd-11 0af9685381 rsx: Deprecate surface_transform::argb_to_bgra which is no longer required.
- vulkan now uses native swizzle mapping for both surface and texture
2019-09-08 13:56:41 +03:00
kd-11 312bf6840e vk: Fix surface_transform::argb_to_bgra transfers when no scaling is requested 2019-09-08 13:56:41 +03:00
kd-11 cbce309199 vk: Fix depth_stencil scaling 2019-09-08 13:56:41 +03:00
kd-11 48a5cd545f gl: Do not byteswap uint24_8 as it needs a custom 8_24 decoder 2019-09-08 13:56:41 +03:00
Megamouse fa2034087d Input: increase mouse acceleration max to x30 2019-09-08 09:06:16 +02:00
Megamouse cddc045c69 cellPad: disable reserved bit check in cellPadSetActDirect 2019-09-08 08:49:15 +02:00
msuih 5ed700db5d Add cache removal to UI 2019-09-07 22:01:12 +02:00
msuih 84867b0848 Fix deprecation warnings
warning C4996: 'QPalette::Foreground': Use QPalette::WindowText instead
warning C4996: 'QPalette::Background': Use QPalette::Window instead
2019-09-07 22:01:12 +02:00
Eladash 10c81fbdf9 Fix passive reservation locks checking at Emu.Stop() (#6482) 2019-09-07 20:43:16 +03:00
kd-11 440d58f2ff vk: Batch compute jobs when doing texture upload
- Reduces overall number of invocations
2019-09-07 16:23:20 +03:00
kd-11 6aa0b49dbc vk: Prefer using native alignment when uploading.
- Allows using fast copy paths and reduces memory and compute footprint
2019-09-07 16:23:20 +03:00
kd-11 a3a0cb8c17 rsx: Minor texture optimizations 2019-09-07 16:23:20 +03:00
kd-11 efa501dac6 rsx/vp: Set default inputs to (0, 0, 0, 1)
- From some hw tests, it seems this is the default.
2019-09-06 17:08:28 +03:00
kd-11 f8dbe281a5 glsl: Explicitly declare const inputs as such
- Avoids copying the values to temp variables before invoking function calls
- Generates shorter, cleaner AST and SPV bytecode
2019-09-06 17:08:28 +03:00
kd-11 14aa3b3360 vk: Remember to allocate enough vertex layout storage objects!
- vertex_layout_storage descriptors were added but the descriptor count was not updated
2019-09-05 19:43:39 +03:00
kd-11 360c0e9af6 vk: Restructure commandbuffer scoping to allow faults in vertex upload
- Defer renderpass open to allow recovery after fault in the middle of vertex upload
2019-09-05 19:43:39 +03:00
Nekotekina d0db7ca6bd cellSaveData fixup (#6393)
Increase entry max size
2019-09-05 14:49:03 +03:00
JohnHolmesII 80d18190f9 Add user message for uppercase RAP 2019-09-05 08:39:11 +02:00
RipleyTom 8de1239132 Simulate BSD FS for file order presentation in savedata 2019-09-05 03:01:46 +03:00
isJuhn aaae437ca3 PPUInterpreter.cpp: remove SSE4.1 requirement in FCTIWZ, FCTID and FCTIDZ 2019-09-04 14:05:33 +03:00
isJuhn 08c12f4c00 File.cpp: add rounding_alignment argument to get_dir_size to allow GetSizeKB functions to report size more accurately 2019-09-03 03:19:49 +03:00
kd-11 9dc06cef7f rsx: Do not include ro data when attempting to do section merge
- Avoids crazy situations like trying to merge from a 3d or cubemap in memory
2019-09-02 16:49:04 +03:00
Nekotekina a5be410e3f [noexcept] Don't throw on unimplemented HLE functions.
Getting rid of exceptions.
2019-09-02 14:43:31 +03:00
JoãoPaulo 0dfe85dc14 Update FW 4.85 Latest Version (#6437)
* Update FW Latest Version

Updates the latest FW version according to: https://www.playstation.com/en-us/support/system-updates/ps3/

Co-Authored-By: MsDarkLow <msdarklow@gmail.com>
2019-09-01 17:19:11 +01:00
kd-11 e99e8460fe rsx/texture_cache_utils: Warnings cleanup 2019-09-01 18:59:50 +03:00
kd-11 27fabd7607 rsx/ring_buffer: Warnings cleanup 2019-09-01 18:59:50 +03:00
kd-11 33609717f8 rsx/cache: Warnings cleanup 2019-09-01 18:59:50 +03:00
kd-11 f8617500b5 rsx/methods: Warnings cleanup 2019-09-01 18:59:50 +03:00
kd-11 7f7b499303 rsx/util: Warnings cleanup 2019-09-01 18:59:50 +03:00
kd-11 0158a88c88 rsx/textures: Warnings cleanup 2019-09-01 18:59:50 +03:00
kd-11 401bd9112a rsx/prog: Warnings cleanup 2019-09-01 18:59:50 +03:00
kd-11 652f18ebaa rsx/buffers: Warnings cleanup 2019-09-01 18:59:50 +03:00
kd-11 6504daa713 overlays: Warnings cleanup 2019-09-01 18:59:50 +03:00
kd-11 94656ac1e3 rsx/vp: Warnings cleanup 2019-09-01 18:59:50 +03:00
kd-11 0ee9d7b46d rsx/fp: Warnings cleanup 2019-09-01 18:59:50 +03:00
kd-11 756fdedbf6 vk: Warnings cleanup 2019-09-01 18:59:50 +03:00
kd-11 a7b9ff33d8 gl: Warnings cleanup 2019-09-01 18:59:50 +03:00
Megamouse 432364cb04 Qt: add --no-gui mode 2019-08-31 17:08:03 +02:00
Megamouse 7cf037bd49 Fix cli args and app version/name 2019-08-31 17:08:03 +02:00
Nekotekina 81a110f346 Fix system time wraparound
Implement utils::udiv128, utils::div128
2019-08-30 22:02:25 +03:00
kd-11 7f99de36c1 rsx: Fixup for surface_target_a flag being broken
- While the mask for surface_a is at index 0, the surface cache expects the order to be maintained correctly!
  Set the correct mask since surface store now checks each RTT individually
2019-08-30 21:46:19 +03:00
kd-11 61af2b7dfc vk: Workgroup tuning for different vendors 2019-08-30 21:46:19 +03:00
kd-11 99fb6d6a5d rsx: Allow GPU-accelerated stream manipulation when doing texture uploads 2019-08-30 21:46:19 +03:00
kd-11 e0a7912d7c rsx: Check for stencil writes when determining zeta_write flag 2019-08-30 21:45:41 +03:00
Ani c4d99f93db rpcs3_version: Bump to 0.0.7 2019-08-30 03:09:59 +01:00
Nekotekina 801adb0947 VFS: Escape Control Characters 0-31
Escaping NUL is formal, it's not expected on input.
2019-08-29 02:44:12 +03:00
Nekotekina b3f5d6d85b Put lv2_obj::awake calls under mutex 2019-08-29 02:44:12 +03:00
kd-11 04c808b8ab rsx: Fixup for MRT color write lookup and surface_target_a 2019-08-28 16:12:10 +03:00
kd-11 e55d216619 rsx: Workarounds for some buggy games
- Replace assert with log message until hardware testing confirms findings
2019-08-28 14:54:51 +03:00
kd-11 e334a43169 rsx: Fix surface cache hit tests
- Avoid silly broken tests due to queue_tag being called before pitch is initialized.
- Return actual memory range covered and exclude trailing padding.
- Coordinates in src are to be calculated with src_pitch, not required_pitch.
2019-08-28 14:54:51 +03:00
JohnHolmesII cca6a19cdd Fix improper string concatenation in rsx_decode. 2019-08-28 01:26:14 +03:00
kd-11 64aff7f019 emucore: Initialize fxo on loading RSX captures
- Fixes crash on capture replay
2019-08-27 21:59:02 +03:00
kd-11 2962e05f26 rsx: Implement per-RTT color masks
- Also refactors and simplifies some common code in surface store and rsx core
2019-08-27 21:59:02 +03:00
kd-11 27aeaf66bc gl: Restructure buffer objects to give more control over usage
- This allows creating buffers with no MAP bits set which should ensure they are created for VRAM usage only
- TODO: Implement compute kernels to avoid software fallback mode for pack/unpack operations
2019-08-27 21:59:02 +03:00
Nekotekina 9672ad53cd Fix SPRX building on AppImage builds 2019-08-27 17:25:55 +03:00
Nekotekina b6b7d7b48c sys_cond_wait fixup 2019-08-27 15:38:18 +03:00
Nekotekina ec8c5453bc Fix sys_cond_wait
Schedule PPU thread before relocking.
Don't lock mutex in notify functions.
2019-08-27 15:13:01 +03:00
Nekotekina fd839243ec Revert PR 6405 2019-08-27 14:05:38 +03:00
Nekotekina ede816387f Fix SPRX loader crash 2019-08-27 13:57:27 +03:00
Nekotekina 796a6646f7 Silence statichle 2019-08-27 13:56:50 +03:00
Nekotekina dd79a5efb7 Remove fxm::make_always 2019-08-27 03:50:15 +03:00
Nekotekina e41b234dc4 Use g_fxo for cellSysCache 2019-08-27 03:50:15 +03:00
Nekotekina d2eba2387b Use g_fxo for display_manager 2019-08-27 03:50:15 +03:00
Nekotekina 6811ec562c Use parentheses for new T() syntax
MSVC keeps being dumb...
2019-08-27 03:50:15 +03:00
Nekotekina fcbf91b7cb Deprecate fxm::get_always
And also its unused fxm::import_always counterpart
2019-08-27 03:50:15 +03:00
Nekotekina 4ec3e968ff Use g_fxo for jit_core_allocator 2019-08-27 03:50:15 +03:00
Nekotekina 3dd6961ee5 Use g_fxo in PPUThread.cpp misc
Replace fxm::get_always
2019-08-27 03:50:15 +03:00
Nekotekina 232e815f17 Init g_fxo in SPRX Loader mode 2019-08-27 03:50:15 +03:00
Nekotekina ebdb0781fa Use g_fxo for statichle_handler 2019-08-27 03:50:15 +03:00
Nekotekina 84e44d3372 Use g_fxo for ppu_linkage_info 2019-08-27 03:50:15 +03:00
Nekotekina 2a37a4bcea Use g_fxo for cellPad
Rename pad_t -> pad_info
2019-08-27 03:50:15 +03:00
Nekotekina 928719b658 Use g_fxo for rsx::avconf 2019-08-27 03:50:15 +03:00
Nekotekina 7a00b5f809 Use g_fxo for patch_engine 2019-08-27 03:50:15 +03:00
Nekotekina cfdd298693 Use g_fxo for cellMusicDecode 2019-08-27 03:50:15 +03:00
Nekotekina 7b0d834477 Use g_fxo for gem_camera_shared 2019-08-27 03:50:15 +03:00
Nekotekina e4a7e8c058 Use g_fxo for cellGem
Rename gem_t -> gem_config
2019-08-27 03:50:15 +03:00
Nekotekina 1d3c18f4e2 Use g_fxo for cellGcm
Rename CellGcmSysConfig -> gcm_config
2019-08-27 03:50:15 +03:00
Nekotekina 9a2338a5ca Use g_fxo for fs_aio_manager (dummy) 2019-08-27 03:50:15 +03:00
Nekotekina 38a06c4b14 Use g_fxo for SysRsxConfig
Rename to lv2_rsx_config
2019-08-27 03:50:15 +03:00
Nekotekina cf44038435 Use g_fxo for lv2_config 2019-08-27 03:50:15 +03:00
Nekotekina 8304043d00 Use g_fxo for sysutil_cb_manager 2019-08-27 03:50:15 +03:00
Eladash a921fe3351 lv2: Wait for rescheduling before confirming ETIMEOUT 2019-08-27 03:44:34 +03:00
Eladash 35a3bed91a sys_cond_wait: Wait for rescheduling before relocking 2019-08-27 03:44:34 +03:00
kd-11 3317e13b64 rsx: Hotfix for semaphore timeout bug
- Add pending flip requests as a reason to invoke the RSX local task handler and release the vblank semaphore
2019-08-26 22:33:29 +03:00
Megamouse 32b5b11a83 cellSaveData/overlays: prevent possible array out of bounds in list view 2019-08-26 21:09:20 +02:00
kd-11 eed32cf3a4 rsx: Decompiler fixups and improvements
- Fix 2D coordinate sampling of W coordinate.
  W is actually HPOS.w and not 1. Z is however always 0.
- Optimize register usage a bit
  Disassembling compiled SPV shows that global declaration results in less ops than using inout modifiers. Modifiers generate extra mov instructions.
2019-08-26 20:03:31 +03:00
kd-11 3e28e4b1e0 rsx/decompiler: Restructure program register behavior
- Fix reading of varying registers in FP
  Different registers have different behavior
- Always write to varying registers. If a register is not written to, it is initialized to (0, 0, 0, 1)
- Reimplements two-sided lighting correctly without hacks
- Also bumps shader cache version
2019-08-26 20:03:31 +03:00
kd-11 fe6ff8622a rsx: Decompiler fixups for conditional execution
- Cond actually obeys vector mask
2019-08-26 20:03:31 +03:00
kd-11 f9aea076ae rsx: Implement depth_buffer_float support.
- Since this is transparent to the application at all time, it only becomes a problem when doing memory transfer or DEPTH->RGBA conversion in shaders.
2019-08-26 20:03:31 +03:00
kd-11 9d981de96d rsx: Fix offloader deadlock
- Do not allow offloader to handle its own faults. Serialize them on RSX instead.
  This approach introduces a GPU race condition that should be avoided with improved synchronization.
- TODO: Use proper GPU-side synchronization to avoid this situation
2019-08-25 22:09:20 +03:00
Nekotekina 6165bd68c0 Use g_fxo for avconf_manager 2019-08-22 15:14:33 +03:00
Megamouse 94dd6c2007 cellSaveData: improve param.sfo creation 2019-08-22 08:05:12 +02:00
Megamouse 896cfd2ade cellSaveData/cellMsgDialog: implement cellSaveDataDelete 2019-08-22 08:05:12 +02:00
Megamouse 0b720aeb59 cellSaveData: ignore dot and dotdot 2019-08-22 08:05:12 +02:00
Megamouse 2d29a33ea8 cellSaveData/overlays: initialize with focused entry 2019-08-22 08:05:12 +02:00
Megamouse b3c1759853 cellSaveData/overlays/Qt: fix some warnings and a possible nullptr deref 2019-08-22 08:05:12 +02:00
Eladash ec9b896fbf Fix vm::reserve_map logic 2019-08-22 03:53:40 +03:00
Nekotekina c43a126f62 Fix VFS initialization 2019-08-22 02:46:21 +03:00
Nekotekina 8cf025bf71 Use g_fxo for cellWebBrowser
Rename browser_t -> browser_info
2019-08-22 02:13:39 +03:00
Nekotekina 2b55bde104 Use g_fxo in cellRudp
Rename rudp_t -> rudp_info
2019-08-22 02:13:39 +03:00
Nekotekina 02fe1ef7ff Use g_fxo for cellSearch
Rename search_t -> search_info
2019-08-22 02:13:39 +03:00
Nekotekina 4ac1e2d8f5 Use g_fxo for vfs_manager 2019-08-22 02:13:39 +03:00
Nekotekina 93d5c0a38e Use g_fxo for cellRec
Rename rec_t -> rec_info
2019-08-22 02:13:39 +03:00
Nekotekina 2740fafa64 Use g_fxo for page_fault_notification_entries 2019-08-22 02:13:39 +03:00
Nekotekina 54952f6ad6 Use g_fxo for LoadedNpdrmKeys_t
Rename to loaded_npdrm_keys
2019-08-22 02:13:39 +03:00
Nekotekina a85a8796d3 Use g_fxo for page_fault_event_entries 2019-08-22 02:13:39 +03:00
Nekotekina 606601441d Use g_fxo for cellMusic
Replace music_t with music_state
2019-08-22 02:13:39 +03:00
Nekotekina 2882220cbd Implement cpu_thread::stop_all() 2019-08-22 02:13:39 +03:00
Nekotekina 8517ccfdfa Add new typemap for always existing objects
Not to be confused with singletons or global variables.
2019-08-22 02:13:39 +03:00
Nekotekina 7db2e2537f Don't call lv2_obj::awake_all with empty list
Fixup after #5883
2019-08-22 02:13:39 +03:00
kd-11 7c5bde4aeb rsx: Update tag timestamp to match newest inherited data
- Avoids memory appearing older when used for depth test without depth write
  The write_barrier before the call will inherit new data but the tag will not update as no new information is added.
2019-08-21 21:17:15 +03:00
kd-11 c67c97844e rsx: Fixup for blit engine range calculations 2019-08-21 21:17:15 +03:00
kd-11 5d1b7eb945 rsx: Fix reference leaks in texture_cache<->surface_cache communication
- Properly commit orphaned blocks not invalidating existing cache structures
- Do not ignore overwritten objects when commiting as unprotected fbo. Avoids stale references to invalidated surface objects.
2019-08-21 21:17:15 +03:00
kd-11 ca8b0da141 gl: Invalidate range before reading to prevent deadlock 2019-08-21 21:17:15 +03:00
kd-11 141072023b rsx: Fix handling of ARGB8 memory
- Load into memory as straightforward BGRA
- Fixes a bug in vulkan caused by byte shuffling in blit engine vs shader access
- Removes the need for memory shuffling when transferring into a rendertarget
2019-08-21 21:17:15 +03:00
kd-11 9cd5325962 rsx: Free memory 'held hostage' by storage sections in the surface cache
- Once the memory has been captured by another surface, release the allocation
2019-08-21 21:17:15 +03:00
kd-11 be98554b40 rsx: Fix surface split logic
- Calculations are supposed to be done based on the properties of the outgoing surface
2019-08-21 21:17:15 +03:00
kd-11 67dac94704 rsx/fp: Zero-initialize FragDepth register to match hw 2019-08-21 21:17:15 +03:00
kd-11 35e61c77e0 gl: Fixup for D24S8 readback 2019-08-21 21:17:15 +03:00
Megamouse 9c64318e8a Qt: Fall back to VERSION in game list 2019-08-21 07:57:44 +02:00
Alex James b0d0f51d8d crypto: implement AES-NI acceleration
This is based off the upstream implementation in mbedTLS as well as an
external pull request [1] for MSVC support (using intrinsics).

1: https://github.com/ARMmbed/mbedtls/pull/1355
2019-08-19 23:39:40 +03:00
JohnHolmesII bd8cbcdb21 Reapply old template depth to compilers (fixes Gentoo building) 2019-08-19 20:12:31 +03:00
kd-11 dca29def5e rsx: Temporary workaround for race condition in blit engine 2019-08-18 20:45:48 +03:00
kd-11 5e299111cc rsx/vk: Restructure surface access barriers and implement RCB/RDB
- Implements render target data load (aka Read Color Buffer/Read Depth Buffer)
- Refactors vulkan surface barrier to be much cleaner.
- Removes redundant surface barrier invocations after doing a merged load
  from surface cache.
- Adds explicit access modes when gathering surfaces from cache.
2019-08-18 20:45:48 +03:00
kd-11 dfe709d464 rsx: Surface cache restructuring
- Further improve aliased data preservation by unconditionally scanning.
  Its is possible for cache aliasing to occur when doing memory split.
- Also sets up for RCB/RDB implementation
2019-08-18 20:45:48 +03:00
JohnHolmesII 5817e2a359 Fix mismatched enum string formats in sys_config 2019-08-18 18:39:17 +02:00
Silent 87ffa04a2b Improvements to XInput vibration:
- use std::chrono to measure 20ms between XInputSetState calls, because clock() measures cpu time and not real time (so calls were made more often than intended)
- fixup data types for cached vibration values to prevent u8 values overflowing and giving false positives on m_dev->newVibrateData
2019-08-18 18:03:20 +02:00
Megamouse b3aff3a1c6 cellKb: fix large ASCII characters for some compilers 2019-08-18 08:18:15 +02:00
Megamouse eedf96e1f4 Qt: fix diacritics in keyboard handler 2019-08-18 08:18:15 +02:00
Megamouse 7408f50d71 cellKb: improve key conversion 2019-08-18 08:18:15 +02:00
Megamouse 86a8b5924a Add option for keyboard layout 2019-08-18 08:18:15 +02:00
Megamouse 8a31c7a7c8 Qt/input: windows workaround to fix shift on the basic keyboard handler 2019-08-18 08:18:15 +02:00
Eladash 62414cee15 Do not allow SYS_SYNC_PRIORITY_INHERIT in sys_semaphore_create (EINVAL) 2019-08-18 04:01:16 +03:00
eladash 0af342a978 PPU Precise: FPCC handling on float ops implemented 2019-08-18 04:01:16 +03:00
Nekotekina dd86aa472d Fix _sys_lwcond_queue_wait
Fixup after #5883
2019-08-18 00:19:31 +03:00
Nekotekina 6535fb0603 Fix _sys_lwcond_signal_all
Fixup after #5883
2019-08-18 00:19:31 +03:00
Nekotekina 11a43e25d7 typeindices.hpp - start index from 0
Starting it from 1 makes it more error-prone to use.
2019-08-17 23:40:51 +03:00
max 92e6dee60f [rpcs3] refactor includes and additional dependencies 2019-08-17 23:30:23 +03:00
max c5440c95c8 [MSbuild] Extend support to v142 toolset
- Added support for current default toolset, explitly specified c++17 standard and 8.1 win sdk.
  - properties were defined via `common_default.props` and `common_default_macros.props`
 Note: There are 2 files because some properties need to be imported before `Microsoft.Cpp.Default.props` , but other common properties can be imported after but they require marco defined in `Microsoft.Cpp.Default.props`.
- Added hidapi and libusb project files to repository to simplify msbuild changes.
2019-08-17 23:30:23 +03:00
yahfz 1444492eab lv2: Allow sys_sync_priority_inherit 2019-08-17 23:11:08 +03:00
eladash 050339bb3e PPU/LV2: Make thread-lists scheduling atomic 2019-08-17 22:46:36 +03:00
Eladash 500a4fa2fb rsx: Fix potential out of range methods execution (can result in segfaults) 2019-08-17 17:26:04 +01:00
Eladash 0d88f037ff Add new accuracy control for PUTLLUC accuracy setting (non-TSX)
With the option enabled GET commands are blocked until the current PUTLLC/PUTLLUC executer on that address finishes

Additional improvements:
- Minor race fix of sys_ppu_thread_exit (wait until the writer finishes)
- Max number of ppu threads bumped to 8
2019-08-17 00:42:46 +03:00
Eladash d8402008dd Stub sys_process_get_number_of_object(object == SYS_SPUPORT_OBJECT) 2019-08-16 23:49:24 +03:00
Eladash 0dce6be8cb Implement lv2_spu_image
- Improved sys_spu_image_.. error checking
- sys_process SYS_SPUIMAGE_OBJECT handling implemented
2019-08-16 23:49:24 +03:00
Eladash 80827aa31a Stub sys_process_get_number_of_object(object == SYS_TRACE_OBJECT) 2019-08-16 23:49:24 +03:00
Eladash 6540fecdc3 Add another pattern to ppu analyzer imports 2019-08-16 22:55:04 +03:00
Pierre-Loup A. Griffais f342f4b826 Work around a crash on startup on current versions of KDE on Linux.
https://bugs.kde.org/show_bug.cgi?id=401637
2019-08-16 20:37:41 +03:00
Pierre-Loup A. Griffais 56011cbddd vk: don't die on VK_SUBOPTIMAL_KHR in AcquireNextImage, and recreate swapchain
vkAcquireNextImageKHR can also return VK_SUBOPTIMAL_KHR and is non-fatal.

However, it's a good idea to still recreate the swap chain later to maintain
optimal presentation paths after temporary occlusion.
2019-08-16 20:09:37 +03:00
msuih 42ff93d30c Add advanced tab 2019-08-16 19:58:19 +03:00
Eladash f2a2dfda3a Improve unknown settings values dialog text message 2019-08-16 09:45:24 +02:00
Eladash f0c267ecb0 Change default Sleep Timers Accuracy setting's value to "Usleep Only" 2019-08-16 09:45:24 +02:00
kd-11 a0f0c418d7 gl:Implement proper support for packed 16-bit rendertargets
- Also some minor refactoring
2019-08-15 14:00:17 +03:00
kd-11 7f85b18b46 gl: Add support for 4444 typeless texture 2019-08-15 14:00:17 +03:00
Megamouse 9f854dba98 Qt: move default stylesheet to stylesheets.h 2019-08-14 23:54:09 +02:00
Megamouse 503d43889d rename rpcs3_app to headless_application 2019-08-14 23:54:09 +02:00
Megamouse 0dc7841d0f Add cli arg for hidpi 2019-08-14 23:54:09 +02:00
Megamouse 13367071b0 update some comments 2019-08-14 23:54:09 +02:00
RipleyTom 2040a11585 header shuffling 2019-08-14 23:54:09 +02:00
Megamouse 8debdfcd09 handle empty callback returns 2019-08-14 23:54:09 +02:00
Megamouse 08c581947d Create headless application [WIP] 2019-08-14 23:54:09 +02:00
Nekotekina 4df1c16099 Implement stx::typeinfo_v (util/typeindices.hpp)
Move and generalize logic from typemap.h
2019-08-14 21:04:25 +03:00
Nekotekina f8f3067deb Always check page_allocated in vm::check_addr 2019-08-14 20:28:34 +03:00
Nekotekina d45c743877 Remove lib_loading_type::automatic
This is former default and is now obsolete.
2019-08-14 20:28:34 +03:00
Nekotekina 4f22559ff0 Remove dumb overloads of atomic_op, fetch_op
And lf_queue::apply.
Fix inlining problem by passing F by value.
2019-08-14 20:28:34 +03:00
Nekotekina cf16ee5eb5 Implement lib_loading_type::liblv2list 2019-08-14 20:28:34 +03:00
Nekotekina ae46333e99 Implement lib_loading_type::liblv2both 2019-08-14 20:28:34 +03:00
RipleyTom 87bf0386c4 Screenshot function 2019-08-14 19:24:42 +02:00
MarioSonic2987 b3f4cd3a95 Update "Enable native user interface" description
Since the merge of native OSK, back in February 2019, RPCS3 is able to support more languages with native UI. However, the description hasn't been updated since then. 

As far as I know, the languages that are now supported are English, French, German, Italian and Spanish. 
Both Greek and Russian use different alphabets from Latin, therefore they aren't supported. Polish or Norwegian uses special Latin characters that aren't covered in extended ASCII character set. Chinese, Japanese and Korean aren't also supported.
2019-08-14 04:44:59 +01:00
Eladash 7fda07eb5b rsx: UB fix (signed vs unsigned mismatch) 2019-08-13 20:48:50 +01:00
Eladash 519fe9309e rsx: Fix nv0039::buffer_notify 2019-08-13 20:48:50 +01:00
Eladash 527b1bb071 rsx: Fix overlapping transfer of nv3089::image_in when out_pitch != in_pitch
or out_pitch != out_bpp * out_w
2019-08-13 20:48:50 +01:00
Eladash 19825366f5 Fixup for fixup 2019-08-13 17:55:45 +01:00
Eladash a902874b01 Fixup after #6286 2019-08-13 13:34:14 +03:00
Eladash a4896eb6df Fix race on cellVdecClose TLS cleanup 2019-08-13 04:56:00 +03:00
Eladash 30c72b105e Fix race on notifying vdec thread in cellVdecGetPicture
Can dereference nullptr if cellVdecClose was called simultaneously.
2019-08-13 04:56:00 +03:00
Eladash 14ac70dfbf Avoid using _sys_ppu_thread_exit in _sys_interrupt_thread_disestablish 2019-08-13 04:56:00 +03:00
Eladash 4b82006984 ppu: Improve LWSYNC
Block load<->load reordering as real lwsync.
2019-08-13 04:56:00 +03:00
eladash 4f00af6000 ppu interpreter: Allow non-ssse3 to use fast path
byte shuffle is now removed which was the barrier for ssse3 check.
2019-08-13 04:56:00 +03:00
Eladash 6d3fc3a386 core config: Expose min/max ranges of integral settings and use it 2019-08-13 04:56:00 +03:00
Eladash a6c94a0eaf Fix possible infinite loop on vm area searching (sys_mmapper_allocate_address)
Specifically when allocation with 0x8000'0000 alignment fails.
2019-08-13 04:56:00 +03:00
Eladash cd4e895c04 Use error_code in mmapper_thread_recover_page_fault 2019-08-13 04:56:00 +03:00
Eladash 629d8e3a51 Fix sys_time_get_current_time() date 2019-08-13 04:56:00 +03:00
Eladash 6d0f2ae58a ppu interpreter: Improve SRD/SLD 2019-08-13 04:56:00 +03:00
Eladash a560498cd4 ppu: Improve FCTIW, FCTIWZ, FCTID and FCTIDZ 2019-08-13 04:56:00 +03:00
Eladash 0a5b6ad928 Add missing EALIGN check for sys_mmapper_search_and_map 2019-08-11 21:43:13 +03:00
Eladash a832581201 Fix sys_vm address boundary checks (fix vsize) 2019-08-11 21:43:13 +03:00
Eladash ecb3b62787 Fix CELL_CAMERA_ERROR_NOT_INIT check in cellCameraSetNotifyEventQueue when camera set to null
Don't worry, this was a duplicated check for null camera setting.
2019-08-11 21:43:13 +03:00
Eladash 96527eee5b idm: Fix bug in ID searching
* ID checking now checks if (id % step) == 0
* Extend possible ID range to allow UINT32_MAX (as long as base is non-zero)
2019-08-11 21:43:13 +03:00
Eladash 5c904bf3e2 Fix max allocations for DECR mode (sys_memory) 2019-08-11 21:43:13 +03:00
Eladash cbcd06d1dc ppu: Stack size allocation improvements 2019-08-11 21:43:13 +03:00
Eladash 3ce18fd960 Implement vm::page_executable (#6330)
Fixes segfaults when attenpting to set segfaults on non-executable memory.
2019-08-11 21:04:17 +03:00
Eladash 94d33003a3 Write zero in attr->pad (sys_memory_get_page_attribute)
Its included in lv2 as well.
2019-08-10 19:47:37 +03:00
Eladash 25e47e0de0 Fix vm::check_addr memory state check 2019-08-10 19:47:37 +03:00
kd-11 8866a3d6a9 rsx: Cleanup for blit engine fixes 2019-08-10 16:45:02 +01:00
msuih 8150095e8f Qt warnings cleanup 2019-08-10 16:15:24 +02:00
Megamouse f051f53e15 Qt: add setting for trophy manager icon background color 2019-08-10 15:13:36 +02:00
Megamouse 2f12226ff9 Qt: add setting for save manager background icon colors + fix icon size 2019-08-10 15:13:36 +02:00
Megamouse d4c635a83c Qt: change default icon background color to something friendlier looking 2019-08-10 15:13:36 +02:00
Megamouse 697128464b Qt: add some sanity checks to prevent list crashes 2019-08-10 15:13:36 +02:00
Megamouse 0559e929d4 fix some warnings 2019-08-10 15:13:36 +02:00
Megamouse efcb46658b Qt: fix initial trophy icon background color 2019-08-10 15:13:36 +02:00
Megamouse 01720afba9 silence some warnings 2019-08-10 11:02:20 +02:00
kd-11 033836d88c rsx: Minor fixup for nv3089::image_in
- Typo scale_x->scale_y
- Remove convoluted temp buffer creation and just use vector instead
2019-08-08 15:48:22 +03:00
Eladash 112ad9dda2 Allow to load liblv2.sprx with manual/both lib loading options (#6274) 2019-08-07 18:41:27 +03:00
RipleyTom 05813c7e90 Fixes suspend+stop threads not stopping 2019-08-04 21:16:19 +03:00
xddxd 6e89e4ebbf Update game_list_frame.cpp 2019-08-04 13:29:45 +02:00
Megamouse 4ad784d614 Qt: select custom configs when opening the custom config folder 2019-08-04 08:45:52 +02:00
Eladash c219417f62 sys_vm: Fix sys_vm_invalidate 2019-08-03 14:29:17 +01:00
Nekotekina 5bd17a44c9 Add fallback implementation for waitable atomics
May improve perf on OSX/BSD
2019-08-02 18:37:23 +03:00
Eladash 72fb3ba794 perf hotfix for sys_timer_usleep 2019-08-01 23:38:09 +03:00
kd-11 f0bd0b5a7c rsx: Conditional render sync optimization
- ZCULL queue was updated to one-per-cb but the conditional render sync hint was not updated.
- Do not unconditionally flush the queue unless the upcoming ref is contained in the active CB.
- This avoids spamming queue flush, which frees up resources and improves performance
2019-07-30 21:13:42 +03:00
Malcolm Jestadt d689a6e47b vk: Don't warn RADV users on LLVM 8.0.1
- The 'back screen' issue on RADV was resolved with LLVM 8.0.1
2019-07-30 19:56:05 +03:00
eladash e40b76b253 sys_lwcond: Extract protocol from lwmutex at creation
This is the only reason theres a need to specify lwmutex_sq id at creation. unlike sys_cond, lwcond isn't connected to lwmutex at the lv2 level.
SYS_SYNC_RETRY fix is done explicitly at the firmware level.
This fixes issues when the original lwcond and lwmutexol data got corrupted or deallocated, this can happen when the program simply memcpy the control data to somewhere else.
Or if it uses direct lv2 the lwcond conrol param can even be NULL which will make it access violate when dereferncing it. (This param is unchecked and can be anything)
2019-07-29 21:58:04 +03:00
eladash 7508ae6e65 Add EAGAIN check for sys_memory_contianer_create 2019-07-29 21:55:59 +03:00
eladash 1e5e0f3b5e make sys_fs_closedir atomic 2019-07-29 21:55:59 +03:00
Nekotekina 949f33c8a4 Fix sys_config_get_io_event syscall name 2019-07-29 21:55:59 +03:00
Nekotekina c6993d3f1c Change bits of waitable atomics
Reduce max waiter count to 2^14.
Refactor code to use waiter_mask and signal_mask constants.
2019-07-29 21:55:59 +03:00
Nekotekina e1db6cef6f Remove ignored bits in waitable atomics
It was not implemented correctly.
2019-07-29 21:55:59 +03:00
Eladash 829047ecdb ppu disasm: Improve ORI and ORIS disassembly 2019-07-29 18:28:39 +03:00
Nekotekina f63e89f9b4 Implement waitable atomics
Moved Atomic.h to util/atomic.hpp
List source files in CMakeLists.txt
2019-07-29 03:04:55 +03:00
Nekotekina ec2db8edbc Correct get_int_t to get_uint_t.
Add get_sint_t.
2019-07-29 00:12:07 +03:00
Eladash 997e3046e3 vm/sys_overlay Improvements
- Implement sys_overlay_load_module_by_fd.
- Implement special segment allocation when ppc_seg flag is specified.
2019-07-28 14:23:58 +03:00
Megamouse 65134f73d6 Qt: properly scale icons in trophy manager 2019-07-27 15:29:05 +02:00
Megamouse 76a1fd5c88 Qt: simplify game list icon resize 2019-07-27 15:29:05 +02:00
kd-11 1de90bdb1f rsx: Improve aliased data preservation
- Carve out inherited region if any
- Perform pitch compatibility test before assigning old_surface
2019-07-27 16:09:21 +03:00
msuih 738cfccbba Save manager improvements 2019-07-27 11:48:37 +02:00
Eladash 230c3d55b6 Fixup 2019-07-27 04:03:29 +01:00
Eladash fcc75c8b0f rsx: Write atomically semaphore updates and fix zcull timestamp 2019-07-26 21:27:55 +03:00
Eladash 22994d15fb Fix cellCamera events support with clocks scaling 2019-07-26 21:27:55 +03:00
Eladash c53f0dd7b5 rsx: Fix gcm unmap events 2019-07-26 21:27:55 +03:00
Megamouse b56b425b19 Emu: set m_title to the actual disc game title 2019-07-25 08:53:07 +02:00
Megamouse b44b44b3c4 Qt: cleanup some comments 2019-07-25 08:53:07 +02:00
Megamouse 71c56b719c Emu/overlays: fix background picture path 2019-07-25 08:53:07 +02:00
Nekotekina 090c71aa7c TSX: Improve cpu_thread::suspend_all implementation
Implement low_lock and vip_lock (for shared_mutex).
Try to simplify suspend_all implementation with updated shared_mutex.
2019-07-24 17:25:52 +03:00
Eladash 49aefc0795 Prefetch MFC list elements (#5345)
* Prefetch mfc list elemets to protect from overwriting

Also move some stuff away from command processing such as a few constant arguments setup
2019-07-24 01:13:45 +03:00
Eladash 85b1152e29 Timers scaling and fixes 2019-07-23 00:09:01 +01:00
Eladash d17be2c2ec Fix similar bug in sys_rsx_context_iomap
TODO: Is there an rsxmem unmap event for those cases?
2019-07-22 15:16:43 +03:00
Eladash cf4d715284 typo fix (to squash) 2019-07-22 15:16:43 +03:00
Eladash 2b721b9e29 correctness fix
Not that it really matters because of gcm's lwmutex but just in case the syscall is useb directly.
2019-07-22 15:16:43 +03:00
Eladash 492c9e3c7c Fix sys_rsx_context_iounmap partial unmapping 2019-07-22 15:16:43 +03:00
Rui Pinheiro 070c3af50f Initial sys_config implementation 2019-07-22 02:44:45 +03:00
Megamouse 6128fffd3e Qt: make text labels in about dialog selectable 2019-07-21 20:07:19 +02:00
Silent 66c1143a65 Improvements to Virtual File System dialog:
- Replace Add Directory and Reset buttons with + and - buttons
- Add a confirmation message before Reset All
- Rename "Okay" to "Save" (to be in line with the rest of the UI) and add a Close option to quit without savin
2019-07-21 13:25:43 +02:00
Silent f5f0a5aa19 Use move semantics with several shared pointers in vfs_dialog, they need not be copied 2019-07-21 13:25:43 +02:00
Megamouse 78ecacabcb input: keep pads intercepted while regular buttons are still pressed 2019-07-21 10:18:59 +02:00
kd-11 9a7c2784f0 rsx: Do not clip scissor to viewport when doing buffer clear 2019-07-20 16:39:32 +03:00
kd-11 e2574ff100 rsx: Support CSAA transparency without multiple rasterization samples enabled 2019-07-19 15:49:08 +03:00
Malcolm Jestadt 79ddf55937 Fix decryption filtering for case sensitive platforms
- Filter for .BIN instead of .bin
2019-07-19 14:46:53 +03:00
kd-11 b5a2f0df68 rsx: Implement separate viewport raster clipping
- Merge viewport raster window and scissor into one clipping region
- Viewport raster clip is different from viewport geometry clipping in
hardware as the latter is configurable separately
2019-07-19 14:21:19 +03:00
Nekotekina 1b140c8e97 SPU Recompiler: optimize JIT memory consumption
Avoid rebuilding trampoline for every function at startup.
This should fix Out of Memory error in some cases.
2019-07-19 04:56:35 +03:00
msuih 95b6883ad4 Tiny typo fix 2019-07-18 19:16:17 +02:00
msuih d9c311737d Keep custom name when adding/removing game-specific config 2019-07-18 19:16:17 +02:00
scribam a268415121 vk: Use macros from Vulkan SDK 2019-07-17 17:56:29 +03:00
kd-11 ea2f4d57fa rsx: Fixups 2019-07-17 13:29:42 +03:00
kd-11 113a49e00c rsx: Handle cyclic references when doing memory inheritance 2019-07-17 13:29:42 +03:00
kd-11 34b06453f9 rsx: Handle lost data due to unused data sections
- After splitting, the sections may not be referenced at all for anything other than just pixel storage
- In such cases, either merge down or sample from the upstream source instead
2019-07-17 13:29:42 +03:00
kd-11 998717659f rsx: Fix reference leak when cloning surfaces 2019-07-17 13:29:42 +03:00
kd-11 009e01a347 rsx: Set up for multi-section inheritance 2019-07-17 13:29:42 +03:00
Alex James 397e5dd1ea Qt/game_list_frame: Ignore file entries when adding disc/game directories
Fixes #6212.
2019-07-16 15:58:52 +03:00
Nekotekina 736ec4035e Fixup for SPU Recompilers, regression after #6210 2019-07-15 19:51:58 +03:00
Nekotekina cb5c26f2b5 Fix SPU Interpreter regression after #6147 2019-07-15 16:34:34 +03:00
Eladash 1e2f81dd33 kernel explorer typo fix 2019-07-15 15:50:40 +03:00
Nekotekina c01f1a8968 Avoid transitive include of vm_ref.h
Add forward declarations of vm::_ref_base
Remove default AT = u32 in _ptr_base and _ref_base (doesn't play well).
2019-07-15 15:46:46 +03:00
Nekotekina cfa1416d64 sys_spu: add vm::temporary_unlock 2019-07-14 18:33:23 +03:00
Nekotekina 1a1eff66bc sys_timer: add vm::temporary_unlock 2019-07-14 18:21:56 +03:00
Nekotekina bc1617758c sys_semaphore: add vm::temporary_unlock 2019-07-14 18:18:03 +03:00
Nekotekina 6126a98111 sys_rwlock: add vm::temporary_unlock 2019-07-14 18:14:15 +03:00
Nekotekina e1293b14f8 sys_net: add vm::temporary_unlock 2019-07-14 18:11:00 +03:00
Nekotekina f5ee8c1292 sys_interrupt: add vm::temporary_unlock 2019-07-14 18:08:18 +03:00
Nekotekina 0a88a23bf5 sys_event: add vm::temporary_unlock 2019-07-14 18:06:02 +03:00
Nekotekina cbfa6cc91f sys_vm: add vm::temporary_unlock 2019-07-14 17:55:26 +03:00
Nekotekina 38d4e3c184 sys_mmapper: add vm::temporary_unlock 2019-07-14 17:51:03 +03:00
Nekotekina 7398cfc950 sys_event_flag: add vm::temporary_unlock 2019-07-14 17:37:58 +03:00
Nekotekina 22e4ef147a SPU TSX: fix "Preferred SPU Threads" 2019-07-14 17:33:20 +03:00
Megamouse 9ff6486c85 Qt: Fix small controller icon in pad settings for high dpi modes 2019-07-14 16:19:02 +02:00
Eladash 3de885c7a6 Dealloc exec cache after sys_prx/overlay_unload_module
Must come before vm::dealloc of it.
2019-07-13 16:59:58 +03:00
Megamouse 3d6c211382 Qt: fix app versions after a patch was removed from the game list 2019-07-13 10:50:41 +02:00
Malcolm Jestadt 94af3b3f03 vk: Fix Linux Vega float16_t workaround
- It was disabling float16_t for non Vega cards
2019-07-12 12:25:46 +03:00
yahfz ae055f6792 Set the default SPU Decoder to LLVM and rename SPU LLVM to "fastest" 2019-07-11 23:39:27 +02:00
Eladash 17c8ac9ab8 rsx: Debugger output text fix 2019-07-12 00:19:56 +03:00
Eladash c4d8ef4340 rsx: Allow to configure vblank rate
Removed "HLE protection" hack from sys_rsx_context_attribute
2019-07-12 00:19:56 +03:00
Eladash efbae02a22 Fix Emu.Stop() with vulkan device enumeration hack 2019-07-11 23:34:29 +03:00
Silent f3551cedb7 rsx: Swap R and B channels in SET_BLEND_COLOR since this color is BGRA, not RGBA 2019-07-11 22:51:01 +03:00
RipleyTom 6c6b973342 Microphone implementation 2019-07-11 20:13:12 +01:00
kd-11 2898309f68 vk: Silence some debug prints
- This message confuses some users
2019-07-11 13:22:13 +03:00
kd-11 fc09572648 rsx: Implement texel border decode
- Texel borders are no longer actually supported in modern APIs
- Removes the border texels and uses border color instead which is incorrect but should work fine
2019-07-11 13:22:13 +03:00
kd-11 d8f753f1e8 rsx: Do not allow framebuffer surfaces that exceed their allocated pitch dimensions
- Truncate surfaces to forcefully fit inside the declared region
2019-07-11 13:22:13 +03:00
Eladash 537d3f2548 Log last function on debug pause or exception, dump cpu_thread state on access violation 2019-07-10 17:35:39 +03:00
Eladash d7a2d42d8f MFC: Fix Tag Status report for sync/eieio/barrier commands 2019-07-10 17:35:39 +03:00
Silent 2016a33277 Fixed behaviour of buttons in Welcome, Find, Settings, VFS and Debugger dialogs - now reacting to button click, not press 2019-07-10 13:14:05 +03:00
Margen67 ab228d6407 Fix #6180 (typo in UI options) 2019-07-10 07:55:01 +02:00
Eladash 78e447e28c rsx: Typo fix 2019-07-09 22:47:55 +03:00
kd-11 2548057ea0 vk: Improve AMD driver support
- Workaround broken fp16 in AMDVLK/RADV
- Do not disable primitive restart as the issue seems to have been fixed
2019-07-09 16:27:59 +03:00
kd-11 956270d9be gl: Add readback/writeback config for format GL_R16 2019-07-09 16:27:59 +03:00
kd-11 c072c511a1 rsx: Add support for slice padding rows when gathering slices for cubemap/3d 2019-07-09 16:27:59 +03:00
kd-11 9ca6546dec vk: When reusing resources, make sure to reinitialize the component layout 2019-07-09 16:27:59 +03:00
kd-11 0cc672dcb3 vk: "Improve" initialization hack
- Change default alpha to 1 from 0
- TODO: Implement memory tagging for synchronizing this
2019-07-09 16:27:59 +03:00
kd-11 219a5382f7 rsx: If no array streams are enabled, mark inline array as disabled (null render) 2019-07-09 16:27:59 +03:00
kd-11 7840cd914e rsx: Fixup nv3089::image_in
- Correct pitch when sourcing from temp block
- Remove obsolete? double transfer that also introduced a stale pointer reference to freed memory
2019-07-09 16:27:59 +03:00
kd-11 c47f4fd59e vk: Fix frame skipping 2019-07-09 16:27:59 +03:00
Nekotekina b9130dd663 Remove redundant const on return value in rsx_methods.h 2019-07-09 12:09:21 +03:00
Nekotekina d1db6a6827 Revert incorrect usage of le_t in name_u64 2019-07-09 12:07:58 +03:00
Eladash 6fba3dd90c Misc correctness improvement
Use let_<u64> for name_64 and prefer it when possible.
2019-07-09 11:52:34 +03:00
Eladash d57b4dc8f3 rsx: Refactor rsx_decode.h and bugfixes 2019-07-09 11:52:34 +03:00
Nekotekina 92c08be387 Build with -fno-strict-aliasing
Doesn't affect MSVC build since MSVC already works in a similar manner.
2019-07-08 19:39:44 +03:00
kd-11 50736263d2 gl: Fix native pitch computation 2019-07-08 18:04:56 +03:00
Eladash 6d65d3424f rsx: Clamp fragment shaders address 2019-07-06 20:58:18 +03:00
Eladash 4c2fb54b99 Fix possible inconsistencies for sys_memory mem stats report 2019-07-04 22:35:22 +03:00
kd-11 ad10eb391e vk: Reuse discarded memory whenever possible instead of recreating new
objects
- Memory allocations are surprisingly expensive when spammed
2019-07-03 15:52:16 +03:00
kd-11 71e809a78b rsx: Implement dma abort in case of a reset after misprediction 2019-07-03 15:52:16 +03:00
kd-11 0f11939faf vk: Refactor gc 2019-07-03 15:52:16 +03:00
kd-11 ae93b417ec vk: Handle emergency commandbuffer close with dangling queries
- TODO: Refactoring
2019-07-03 15:52:16 +03:00
kd-11 d69e8288ad vk: Restructure commandbuffer submission into tagged event IDs
- Tagged eventIDs can be used to safely delete resources that are no
longer used
- TODO: Expand gc to collect images as well
- TODO: Fix the texture cache to avoid over-allocating image resources
2019-07-03 15:52:16 +03:00
kd-11 ce04a797c3 vk: Fix event signal race when speculation fails to avoid a cache miss
- TODO: Proper GC for stale events
2019-07-03 15:52:16 +03:00
Malcolm Jestadt b5d5113803 gl: Workaround slow PBO usage with Mesa
-Mesa is currently fastest with GL_STREAM_COPY
-See a338dc0186
-Also see https://bugs.freedesktop.org/show_bug.cgi?id=111043
2019-07-03 11:28:29 +03:00
msuih 690cdff0d3 Minor fixes
- Fix a typo in OpenAL
- Fix typo in cellHttp.h
- Unused variables in catch
- Use 64-bit shifts
- Use use_count with shared pointers, unique is depracated and getting removed
- Explicitly cast boolean to int
- Signed/unsigned issues with loop variables
- Fix missing return statement (the code path is unreachable, but compiler wants a return)
- */ ouside of comment
- Fix duplicate layout name
2019-07-01 04:33:23 +03:00
msuih 503e023815 Explicitly downcast integers 2019-07-01 04:33:23 +03:00
msuih d57124d075 Explicitly cast size_t to integer types 2019-07-01 04:33:23 +03:00
msuih 146e43b6ec Do not use negative unsigned literals 2019-07-01 04:33:23 +03:00