Commit graph

8089 commits

Author SHA1 Message Date
Eladash 610463a425 cellSysutilGetSystemParamInt(ID_PAD_RUMBLE) changed to return ON status 2019-11-15 20:17:51 +01:00
Eladash da12969898 cellSysUtil: Add a few CELL_SYSUTIL_ERROR_VALUE checks 2019-11-15 20:17:51 +01:00
Eladash 894658f14c cellSysutil: Log error code 2019-11-15 20:17:51 +01:00
Eladash 25382a7dae Restore cellPadSetActDirect's reserved error check 2019-11-15 20:17:51 +01:00
Megamouse a17a5a76a0 overlays: avoid division by zero 2019-11-15 14:53:18 +01:00
Megamouse fb96047d2f overlays: add settings for overlay graphs 2019-11-15 14:53:18 +01:00
Megamouse dd1707bd46 overlays: fix center options when graphs are shown 2019-11-15 14:53:18 +01:00
Megamouse d6b0361a02 overlays: perf_metrics_overlay to seperate header
this is done to prevent severe conflicts with upcoming changes
2019-11-15 14:53:18 +01:00
Megamouse b84fd29abc settings: fix performance overlay margin checkbox 2019-11-15 14:53:18 +01:00
Anuskuss 7e31c30133 Intel iGPU needs workaround on Windows 2019-11-15 12:08:16 +03:00
RipleyTom 8e39c778a1 Cheat engine 2019-11-13 00:53:31 +03:00
Nick Renieris cc59d319e1 overlay: Performance graphs 2019-11-12 20:43:09 +01:00
Emmanuel Gil Peyrot 0ff5938b1f Utilities: Remove unused headers
AtomicPtr.h has never been used since its introduction in
da7472fe81.

Same for Interval.h, since 4fedf5749e.

event.h’s last usage got removed in
70e2873e69.
2019-11-12 19:51:57 +03:00
Nekotekina abbf3c4d16 SPU LLVM: add SPU profiling to compilation thread
Run another thread to collect profile data from SPU threads.
Use this data to prioritize compiling hot spot SPU blocks.
Implement stx::init_mutex::wait_for_initialized() helper.
2019-11-11 23:13:13 +03:00
Eladash a21d7def33 SPU: Don't break blocks on DSYNC instruction in Safe mode (#6731) 2019-11-11 23:12:21 +03:00
kd-11 8234bdb8f0 vk: Check for heap change events after a grow to avoid spec violations
- Avoid referencing the old buffer in stale views. Status can be set
globally if requested during heap creation.
2019-11-10 17:53:12 +03:00
kd-11 5968427a2f vk: Initialize queries before use
- The spec does not guarantee that queries are initialized. In fact, it
now says all queries must be reset before they are used for the first
time.
2019-11-10 17:53:12 +03:00
kd-11 8ea9bc9874 vk: Reduce memory allocation sizes of default heaps
- The heaps will grow as desired, no need to overallocate to cater to
the most resource-hungry games
2019-11-10 17:53:12 +03:00
kd-11 0a32d478df vk: Enable auto-growing of the data heaps for the performance case 2019-11-10 17:53:12 +03:00
kd-11 357e0d2097 vk: Implement explicit runtime flags to manage events like heap sync 2019-11-10 17:53:12 +03:00
kd-11 f359342721 rsx: Implement mutable ring buffers with grow support 2019-11-10 17:53:12 +03:00
kd-11 5f39a594ac rsx: Clean up some unused legacy methods unnecessary after d3d removal 2019-11-10 17:53:12 +03:00
Eladash 3f3ce53c67 Fix string length check in cellGameThemeInstall
vm::ptr::size() returns sizeof type instead.
2019-11-10 14:32:15 +03:00
Eladash e8cc9d1f52 Loader: Fix default sdk version
Note: sdk version checks are unsigned checks, such value results in always true.
2019-11-10 14:32:15 +03:00
Eladash 1986944c61 Implement sysutil_check_name_string
* Fully implement 3, 4, 16 and 17 error checks of cellSaveData.
* cellSysCacheMount restrict characters in ID.
* cellHddGameCheck restricts characters in dirName.
2019-11-10 14:32:15 +03:00
Emmanuel Gil Peyrot 56f82d2701 rsx: Wrap gsl::span definition into Utilities/span.h 2019-11-09 20:00:50 +01:00
Emmanuel Gil Peyrot f29fcc10cf s/GSL/span/ in XML files too
This is completely untested, as I can’t run Visual Studio.
2019-11-09 19:30:06 +01:00
Emmanuel Gil Peyrot 7e4d142682 Remove GSL as we don’t use it anymore 2019-11-09 19:30:06 +01:00
Emmanuel Gil Peyrot f76720ceb0 Remove extraneous ::narrow<int>() calls
GSL’s gsl::span didn’t use the correct type for its index_type, which is
why they were needed.
2019-11-09 19:30:06 +01:00
Emmanuel Gil Peyrot 72cdf0b04c Replace gsl::span’s implementation with tcbrindle’s
This implementation optimises correctly on all relevant compilers,
unlike GSL’s which gave extremely slow code on any compiler other than
MSVC.

Supersedes #6948.
2019-11-09 19:30:06 +01:00
Emmanuel Gil Peyrot 25144caf12 Add tcbrindle’s span implementation 2019-11-09 19:30:06 +01:00
Nekotekina a83cbf63c6 Remove gsl::finally only use 2019-11-09 19:30:06 +01:00
Emmanuel Gil Peyrot ef368c5171 rsx: Replace gsl::byte with C++17’s std::byte 2019-11-09 19:30:05 +01:00
Nekotekina 6ea02c23a0 Fix SSSE3 usage in PPUInterpreter.cpp
Fixup
2019-11-09 20:39:56 +03:00
Nekotekina 1cca00ec3a Fix SSSE3 usage in PPUThread.cpp
Remove legacy ifdefs, allow SSSE3 usage in AppImages.
2019-11-09 20:10:59 +03:00
Nekotekina 191675bf31 Remove gsl::finally only use 2019-11-09 19:11:01 +03:00
Nekotekina 0d629743ca cellSysCache: poison opened cache files on cache clear
Make opened files return CELL_EIO after cache clear.
2019-11-09 14:50:41 +03:00
Nekotekina 73ee6abb0f cellSysCache: return /dev_hdd1 root
It simplifies internal logic a little.
2019-11-09 14:43:19 +03:00
Nekotekina e0bc276205 cellSysCache: keep mounted /dev_hdd1 after exitspawn 2019-11-09 14:43:19 +03:00
kd-11 7072489a6e rsx: Implement point sprite coordinate generation
- When the point sprite flag is set, overrides the input similar to the
2D mask. The returned X and Y values are always the gl_PointCoord values
for the fragment.
- Stacks with the 2D mask to override the z and w coordinates.
2019-11-09 12:50:53 +03:00
Nekotekina 81c61e230f Use std::from_chars in Emulator::SetUsr 2019-11-08 19:27:11 +03:00
Nekotekina ccac9d4777 Remove throwing and catching cpu_flag::stop
Since there is spu_runtime::g_escape function now.
2019-11-08 19:27:11 +03:00
Nekotekina e74a311931 GDB: remove wrong_checksum_exception 2019-11-08 19:27:11 +03:00
Nekotekina 587ae17aa2 Simplify fmt::throw_exception
Gradual exception deprecation: disallow choosing exception type.
However, the function itself can remain here forever.
2019-11-08 19:27:11 +03:00
Nekotekina 742bd633d8 Remove fs::file::set_delete
Since it's Windows-only functionality with limited use.
2019-11-08 19:27:11 +03:00
Nekotekina d6087978b5 Fix vfs::host::unlink (Win32)
Use fs::get_virtual_device properly.
2019-11-08 19:27:11 +03:00
kd-11 63673b1a9f rsx: Implement full color remap for the D24S8->ARGB8 converter 2019-11-08 19:11:59 +03:00
Nekotekina 24fdd24808 Fix vfs::host::remove_all
Separate WIN32-specific logic.
Don't call fs::remove_all on WIN32 path.
2019-11-07 21:21:21 +03:00
RipleyTom 4ff6acf6ba Fixes evdev settings & multiple pads handling 2019-11-07 15:02:01 +03:00
Eladash af0bd7136d PPU Disasm: Fix RC OE enabled instructions view 2019-11-07 14:09:23 +03:00
kd-11 8d1505752f rsx: Validate depth test setup to avoid address contention 2019-11-07 11:32:44 +03:00
Megamouse 77ac875b0b Qt: adjust custom context menu positions 2019-11-06 19:26:29 +01:00
Nekotekina 03b9ee27c5 Virtualize cellSysCache
Allows caches from multiple games to coexist.
Also change the way of handling cache IDs (file-less).
2019-11-06 14:12:43 +03:00
kd-11 508ffcb775 vk: Compute kernel fixups
- Adhere to workgroup count limits as exposed by the GPU vendor.
  They already execute properly even when going beyond the limits but this removes validation noise.
- Fix invocation counts for deswizzle kernel. The count was incorrect if blocksize was not 4, causing a bunch of useless work to be done.
2019-11-05 22:07:22 +03:00
kd-11 99d71fdc2a vk: Implement layer batching for the GPU swizzle decoder
- Handles all LODs per layer meaning cubemaps are now fully handled in 6 passes instead of 6 * (log2(width)) passes.
- Handles all LODs of a 3D texture in one pass as well.
- The improvements do warrant dropping down the number of allowed compute invocations a bit
2019-11-05 22:07:22 +03:00
kd-11 7a0b94f343 vk: Minor compute optimizations
- Remove use of uniform buffers for compute static data. Use push
constants instead.
- Minor touchups to the deswizzle code to avoid redundant data copies.
2019-11-05 22:07:22 +03:00
kd-11 1266b63135 vk: Enable gpu deswizzling 2019-11-05 22:07:22 +03:00
kd-11 9cd3530c98 rsx: Set up framework for hw deswizzle 2019-11-05 22:07:22 +03:00
Nekotekina 531afe0f97 atomic2: fix pessimisations 2019-11-04 22:53:26 +03:00
Nekotekina ec25deed2b atomic2: fix corruption bug 2019-11-04 22:52:45 +03:00
Nekotekina be306afae9 atomic2: add TSX path for multi_cas 2019-11-04 22:52:24 +03:00
Nekotekina 1f9250e39a Linux: disable update check at startup if not running from AppImage 2019-11-04 22:52:03 +03:00
Nekotekina da135fbfcc SPU LLVM: Disable "special" branch patchpoints 2019-11-04 22:52:03 +03:00
kd-11 57d3c9e171 rsx: Take empty queries into account for engines that spam report reads.
- Some games will spam the report queue with requests but have zpass
statistics enabled.
2019-11-04 18:48:41 +03:00
kd-11 2a8f2c64d2 rsx: Implement report transfer deferring
- Allow delaying report flushes triggered by image_in or buffer_notify
- When the report is ready, all the delayed transfers will automatically
be done.
- TODO: Make this configurable?
2019-11-04 18:48:41 +03:00
kd-11 3e0f9dff4d vk: Improve zcull synchronization
- Use zcull sync hints more aggressively
2019-11-04 18:48:41 +03:00
kd-11 fe3c290d03 vk: Reimplement occlusion result reading
- Implement partial result reads
2019-11-04 18:48:41 +03:00
kd-11 51e0eaaddc rsx: Implement backend notification for upcoming zcull reads 2019-11-04 18:48:41 +03:00
kd-11 df63de8f16 rsx: Allow u32 restart index with full index width 2019-11-04 16:56:34 +03:00
kd-11 6b3af09fa5 vk: Improved crash message for missing MSAA features 2019-11-04 16:56:34 +03:00
ipkpjersi 8ed45a0553 Qt: Fixed plurals of time played strings (#6937) 2019-11-03 21:22:23 +01:00
Silent e1638b9326 Fix context menu showing twice in Game List 2019-11-03 20:13:20 +01:00
Eladash 7475be99ab lv2: Check ipc_key value if object is process shared 2019-11-03 14:59:47 +03:00
eladash 33fe0fdd6b Add missng check for key in cellAudioSetNotifyEventQueue
key is checked once according to hw test.
2019-11-03 14:59:47 +03:00
Megamouse 3be92ec52b Qt: implement time played and last played 2019-11-02 12:48:12 +01:00
RipleyTom 35c0c05707 Stop autoupdater renaming file across devices 2019-11-02 12:31:38 +03:00
Nekotekina f75661bfae Fix ALSA and PULSE building on Linux (workaround) 2019-11-01 20:41:16 +03:00
Nekotekina 35249d2578 Implement multi_cas with atomic2 type
stx::atomic2 is a "fat atomic" for use with multi_cas.
stx::multi_cas is minimal transaction routine.
2019-11-01 20:41:16 +03:00
kd-11 bbed791ee0 vk: Add explicit support for identity image views
- Allows bypassing all remap shenanigans to make some operations that
rely on the raw image to work correctly.
2019-11-01 19:35:46 +03:00
Emmanuel Gil Peyrot 03a2d36c7e Audio: don’t build ALSA, PulseAudio or FAudio backends when disabled 2019-10-31 15:46:20 +03:00
kd-11 63bbf11a76 vk: Add video out calibration pass
- Adds gamma correction and RGB range filters to output to match PS3
2019-10-31 14:43:24 +03:00
kd-11 78aefe5b5e rsx/overlays: Add support for other primitive types other than triangle_strips 2019-10-31 14:43:24 +03:00
Nekotekina e3e7051ed3 Minor optimization in BufferUtils.cpp
Don't use PSHUFB for horizontal operations.
Utilize PHMINPOSUW to compute max as well:
 + sse41_hmin_epu16
 + sse41_hmax_epu16
2019-10-30 18:52:34 +03:00
Nekotekina b1968769b7 Minor cleanup in BufferUtils.cpp
Replace inline asm with intrinsic using target attribute trick.
2019-10-30 17:53:51 +03:00
linkmauve cfd5cf6bdb Optimise primitive_restart::upload_untouched() (#6881)
* rsx: Optimise primitive_restart::upload_untouched() with SSE4.1

This optimisation is only applied when skip_restart is false.

I’ve only tested the u16 codepath, as it is the one used in NieR.

In some very unscientific profiling, this function used to take 2.76% of
the total frame time at the save point of the port town, it now takes
about 0.40%.

* rsx: Mark all SSE4.1 functions with attributes on gcc and clang

This assures the compiler we will take care of only calling these
functions after having checked that the CPU does support these
instructions.

* rsx: Add an AVX2 implementation of primitive restart ibo upload

* rsx: Remove redefinition of SSE4.1 instructions

Now that clang is aware that our functions are compiled with SSE4.1, it
lets us generate this code using its intrinsics.

* rsx: Optimise vector to scalar conversion

This is done using minpos and srli intrinsics and generate less code
than before.

Thanks Nekotekina for the suggestion!
2019-10-30 16:42:44 +03:00
kd-11 35794dc3f2 vk: Add checks for alphaToOne support
- This feature is very rarely used, as alphaToCoverage is commonly used as a replacement for blending, not in addition to it.
2019-10-30 01:06:28 +03:00
Eladash f41f5054f7 sys_spu Fixup after #6864 2019-10-29 23:13:16 +03:00
kd-11 eda09489b2 vk: Optionally ignore depth bounds testing on hardware that does not
support it.
2019-10-29 20:03:54 +03:00
kd-11 7a5c20ef85 vk: Minor spec touchups
- Simplify active instance management. While multicontext support will
be required in future, this is better done with multiple logical devices
rather than multiple instances.
- Destroy the WSI surface on exit
- Enable depthBoundsTest explicitly. TODO: Properly check for supported
features.
2019-10-29 20:03:54 +03:00
kd-11 aa3eeaa417 rsx: Separate subresource_layout:dim_in_block and
subresource_layout::dim_in_texel

- These two are not always linked when working with compressed textures.
The actual texels extend past the actual size of the image if the size
is not aligned. e.g if height is 1, the real height is 4, but its not
possible to determine this from the aligned size. It could be 1, 2, 3 or
4 for example.
- Fixes image out-of-bounds writes when uploading from CPU
2019-10-29 20:03:54 +03:00
Eladash b99992d570 sys_spu: Fix SNR and Inbound Mailbox state reset
Also remove bugged ESTAT check at sys_spu_thread_write_spu_mb.
2019-10-29 18:34:28 +03:00
Eladash 739f68271f SPU LLVM: fix MFC CMD enqueuing 2019-10-29 18:16:08 +03:00
Eladash f88a135b5b Fix lv2_config_service_event event id reset 2019-10-29 18:15:26 +03:00
Eladash 114b9498bf Remove unjustified use of idm::import_existing in sys_config 2019-10-29 18:15:26 +03:00
Eladash 8b6383b489 lv2: Correct alignment of some attributes structs 2019-10-29 18:15:41 +03:00
Eladash f7c177d79e Kernel Explorer: Don't hardcode endianness in name64 2019-10-29 18:15:26 +03:00
Eladash 3e4cbf67f6 sys_rwlock_wlock: Fix typo 2019-10-29 18:15:26 +03:00
Eladash 42fc698186 rsx: Enable primitive restart index only when needed (#6889)
* rsx: Enable primitive restart index only when needed

* rsx: Use if with initializer in read_put()
2019-10-28 23:16:27 +03:00
Nekotekina 83cf6e6fa3 Qt: fix crash on startup in game_list_frame::Refresh
QList isn't supposed to be modified concurrently.
Use lf_queue to collect game_info data.
2019-10-28 22:59:56 +03:00
Max 8c3d2363bf [msbuild] 7zlib msbuild changes
- move project file to 3rdparty for consistency
 - add common_default props
 - fixes 7zlib.vcxproj.FileListAbsolute.txt being detected as change
2019-10-28 18:59:16 +03:00
Hula Hoop 200ec5c4b3 Super-important PR (#6900)
* Fix capitalisation errors and typos

* Oops
2019-10-28 17:44:44 +03:00
kd-11 479d92d075 vk: Fix uninitialized (and wrong) variable access 2019-10-28 15:20:45 +03:00
kd-11 b0708367c2 vk: Round lod bias to the nearest 0.5 to lower number of permutations when nearest mipmap sampling is used
- The lambda values will be rounded to the nearest integer anyway
2019-10-28 15:20:45 +03:00
kd-11 3e8dfede1c vk: Modify sampler cache to uniquely identify all the input parameters
- Avoids iteration when variable mipmap counts or lod bias parameters change
2019-10-28 15:20:45 +03:00
kd-11 ad2add9574 rsx:: Use fcmp correctly 2019-10-28 15:20:45 +03:00
kd-11 d04241ad25 rsx: Allow compressed textures to be unaligned in size
- Align based on row length but let the texture itself be of arbitrary dimensions
2019-10-28 15:20:45 +03:00
Emmanuel Gil Peyrot 69e9ee26f6 rsx: Make input_is_swizzled a template parameter
This lowers the relative cost of this function from ~2.25% to ~1.80% on
gcc 9 which I found quite surprising, some of it probably gets inlined
better in the callers, but I haven’t been able to isolate which parts.
2019-10-28 13:28:51 +03:00
Eladash 65e47490c4 cellSysCacheClear/Mount() improved
Clear() error checking simplified a bit
Mount() now clears cache if ID was changed from last or NULL specified.

Implemented vfs::host::remove_all():
Clear() now uses vfs::host::remove_all() to match behaviour on Windows with ps3
2019-10-27 15:56:16 +03:00
Nekotekina 83f253636a SPU LLVM: verbose patchpoints in "giga table" 2019-10-27 13:04:05 +03:00
Nekotekina 16edb5bdd0 SPU Analyser: don't compile on "analyser failed" 2019-10-27 13:04:05 +03:00
Nekotekina 5f00b32867 SPU: fixup for duplicates in recompilers
Fixup for the edge case.
2019-10-27 13:04:05 +03:00
Nekotekina 37dbbce194 SPU LLVM: Enable "Giga table" in Mega mode
Was previously only enabled in Giga mode.
Also fill the table with branch patchpoints.
2019-10-27 13:04:05 +03:00
Megamouse 6fe32887b2 Qt: disable progress_dialog resize 2019-10-27 08:02:45 +01:00
Megamouse 200162cf2a Qt: connect compat error handling to error signal 2019-10-27 08:02:45 +01:00
Megamouse 59747fd708 Qt: add quickstart link to SSL warnings 2019-10-27 08:02:45 +01:00
Nekotekina 8c28c4e8ec SPU: Make recompilers lock-free. 2019-10-26 23:33:18 +03:00
Nekotekina 9ac6ef6494 SPU: cleanup former OOM handling
Remove cpu_flag::jit_return.
It's obsolete now, and worked only in SPU ASMJIT anyway.
2019-10-26 21:24:12 +03:00
MSuih f3ed26e9db Small warnings cleanup (#6671)
* Ignore more warnings

These are intentional

* Signed/unsigned mismatch when comparing

* Explictly cast values

* Intentionally discard a nodiscard value

* Change ppu_tid to u32

* Do not use POSIX function name on Windows

* Qt: Use horizontalAdvance instead of width

* Change progress variables to u32
2019-10-25 13:32:21 +03:00
Megamouse 89a2d04f96 Qt: add mutex to game list creation
should prevent random crashes when accessing maps
2019-10-25 12:10:07 +02:00
arabek 63a0b97dd1 Normalize audio when downmixing to avoid clipping (#6867)
* Normalize audio when downmixing to avoid clipping

Idea came from this topic:
https://hydrogenaud.io/index.php?topic=104214.msg855199#msg855199

Fixes very loud audio in Motorstorm (and probably other games
when playing over headphones/stereo speakers with
Downmix to Stereo option enabled)
2019-10-25 12:56:47 +03:00
Oschowa 6944e180c8 rpcs3qt/settings_dialog: fix Audio Buffering setting for FAudio backend 2019-10-25 00:56:53 +03:00
Oschowa 06433d614a Implement FAudio backend (#6374) 2019-10-24 22:26:29 +03:00
RipleyTom c89ad38ef1 Check if we're in the process of restarting when trying to open the log 2019-10-24 18:36:28 +02:00
Marin Baron 4599d58413 Fix debug build gcc/clang linker.
Create temporary variable to resolve undefined reference.

[ 98%] Linking CXX executable ../bin/rpcs3
/usr/bin/ld : Emu/librpcs3_emu.a(sys_vm.cpp.o) : dans la fonction « sys_vm_t::~sys_vm_t() » :
/mnt/raid/Git/rpcs3/rpcs3/Emu/Cell/lv2/sys_vm.cpp:21 : référence indéfinie vers « id_manager::id_traits<sys_vm_t, void>::invalid »
collect2: erreur: ld a retourné le statut de sortie 1
make[2]: *** [rpcs3/CMakeFiles/rpcs3.dir/build.make:426: bin/rpcs3] Error 1
2019-10-24 14:34:38 +03:00
JohnHolmesII 0842724f94 Update cellVoice.cpp
Caused warnings. Not sure what the actual intention was, this may need to be inverted.
This commit assumes that erase() returning 0 is a sign that deletion
failed, or that there was corruption. There should be a port there.
2019-10-24 14:19:52 +03:00
Emmanuel Gil Peyrot 9253f7d645 Audio: don’t build XAudio2 backend on Linux
The files already had a #ifdef _WIN32, but this avoid even trying to
compile their translation unit.

I was surprised to see XAudio2 being mentioned on Linux, this makes sure
no one else will get this surprise.
2019-10-24 14:16:29 +03:00
Megamouse a360836fef Qt: don't update the gui from QtConcurrent 2019-10-24 00:26:07 +02:00
Megamouse 56a249fd5a Qt: multi thread trophy loading 2019-10-24 00:26:07 +02:00
Megamouse 221508fa07 Qt: indent try and catch block 2019-10-24 00:26:07 +02:00
Megamouse b805238b8a Qt: multi thread game list refresh from drive 2019-10-24 00:26:07 +02:00
Megamouse 5b59c18dcc Qt: multithreaded icon resize 2019-10-24 00:26:07 +02:00
Megamouse d0ea71289e fix weird filters for display sleep files
For some reason kd-11 thought generated files was a good place to put them
2019-10-23 20:35:32 +02:00
Megamouse c88654bc8f Remove VS D3D12 Dependencies 2019-10-23 20:35:32 +02:00
Nekotekina ec1ea466fd atomic.hpp: fix typo 2019-10-23 16:01:14 +03:00
Nekotekina 6e19881b82 Update LLVM (10) 2019-10-23 16:01:14 +03:00
kd-11 d53d7bb598 vk: Restore vega native use of FP16 in shaders
- AMD proprietary drivers should work fine
2019-10-23 12:20:06 +03:00
Emmanuel Gil Peyrot 54d95373d0 Support fullscreen properly on Wayland
The current behaviour when going fullscreen from windowed was to keep
the previous size of the swapchain, with black borders on all sides,
which looks quite ugly.

The root of this issue is that rpcs3 only checks for frame resize if
vkQueuePresent() returns VK_SUBOPTIMAL_KHR, which drivers can’t do on
Wayland, see https://gitlab.freedesktop.org/mesa/mesa/issues/1979
2019-10-23 12:19:46 +03:00
Megamouse 2cc71afdcd Remove further occurrences of DirectX 12 2019-10-23 00:03:20 +02:00
kd-11 e04b6cd7c0 rsx: Copypasta fix
- r1 is always float4 never half4. Its a full-width register unlike the
other outputs which are optionally half-width.
2019-10-23 00:50:24 +03:00
Zion f1d474f932 Bump version built on to 16.04, Update clang to 8, update Qt to 5.12.3 2019-10-22 21:52:01 +03:00
kd-11 00bc3fe658 Drop d3d12 backend 2019-10-22 21:45:14 +03:00
Emmanuel Gil Peyrot 14c63ec014 Fix misleading indent. 2019-10-22 16:11:43 +03:00
Emmanuel Gil Peyrot 9d1b7af2eb Avoid std::move() for copy elision
This could disable zero-copy optimisations, which is the opposite of
what we want.
2019-10-22 16:11:43 +03:00
Eladash 586fe11e22 Fix cellGcm HLE regression
Also correct flags.
2019-10-22 13:45:09 +03:00
Eladash 945abcc6cd rsx: Align down index array offset
* Also use improved to_be_t<> template (recetly ignoring one byte long types) for vm gsl::byte referencing, remove redundent narrow<> cast (same type)
2019-10-22 13:45:09 +03:00
kd-11 3bb70e837a vk: Silly copypasta 2019-10-22 13:44:49 +03:00
kd-11 0b2f9f0f17 rsx: Add support for delayed shader discard.
- Noticed a glitch on AMD hw and windows drivers where discard seems to affect entire 4x4 cells.
- Dead fragments (outside the primitive boundary) could have their discards trigger as they do not have proper access to variables.
- This introduces dead fragments along triangle edges, causing a diagonal line pattern across the screen that is very annoying.
2019-10-22 13:44:49 +03:00
kd-11 901942f24a rsx: Replace pointless f32[4] restriction on texture parameters.
- Use a struct instead to improve readability and remove pointless OpBitCast
2019-10-22 13:44:49 +03:00
kd-11 f7842b765f rsx: Implement packed format renormalization
- Renormalizes arbitrary N-bit values as 8-bit normalized.
- NV hardware performs integer normalization at 8 bits if the size is less than 8.
- This can cause significant arithmetic drift because the error is multiplied by a huge number when sampling.
2019-10-22 13:44:49 +03:00
Ani 407be45069 Partially revert git-version.cmake 2019-10-22 11:42:49 +01:00
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