Commit graph

6439 commits

Author SHA1 Message Date
kd-11 f4c28eceef rsx: Fix null renderer 2018-12-03 20:01:23 +03:00
kd-11 9d0042f509 rsx: Fixup for the flattener
- Reset the flattener before use
- Better detection of FIFO misalignment
2018-12-03 20:01:23 +03:00
scribam 24a8d0aeef sceNp: add SCE_NP_ERROR_ID_NOT_FOUND for sceNpBasic*Entry* functions 2018-12-03 15:26:29 +03:00
RipleyTom 7f3eaed435 Fullscreen fix 2018-12-03 14:16:47 +03:00
RipleyTom 25414953e0 Fixes maximize window to properly update the render surface in Vulkan 2018-12-01 22:20:59 +03:00
msuih 8afc035aac Category filter for PS1/PS2/PSP games 2018-12-01 16:56:56 +01:00
kd-11 ec768afbd9 rsx: Flip workarounds for applications that flip via syscall
- Do not assume flip marks end-of-frame if executed via syscall
- Also disables skip_frame for these applications as there is no frame boundary
- NOTE: QUEUE_HEAD cannot be relied on as it is seemingly possible to flip the same head and not need to queue it
2018-11-30 23:51:25 +03:00
kd-11 2168159d03 gl: Fix flip regression
- Restore graphics state after flip (including active fbo) because flip can be made through a syscall
2018-11-30 23:51:25 +03:00
kd-11 b96ed5cd4e gl: Do not rely on driver statistics for s3TC textures; they are inconsistent. 2018-11-30 23:51:25 +03:00
kd-11 f1c3b46d60 rsx: Fixup - undo vertex cache 'improvements' 2018-11-30 23:51:25 +03:00
kd-11 5b6e1420f3 rsx: Pipeline barriers fixed up
- Ensure barriers are invoked even if no draw occurs!
-- Ensures that deferred commands are executed eventually
2018-11-30 23:51:25 +03:00
kd-11 8a186bb97e rsx: Fix insertion of execution barriers
- Ignore barriers inserted after BEGIN but before any draw commands are emitted
- Properly process tail barriers inserted before END but after draw commands are submitted
- Ignore execution barriers with no effect (same register value written)
2018-11-30 23:51:25 +03:00
kd-11 1d19f71a46 rsx: Re-enable fifo error reset 2018-11-30 23:51:25 +03:00
kd-11 718a04c84f fixup: Clear disabled attrib entries 2018-11-30 23:51:25 +03:00
kd-11 833c25894f [WIP] rsx: Rebase cleanup 2018-11-30 23:51:25 +03:00
kd-11 5193c99973 rsx: Enable dynamic FIFO preprocessing
- Tries to detect when FIFO preprocessing is beneficial and only enables optimizations if the benefit outweighs the cost
- Current threshold is at least 500 draw calls saved at over 2000 draw calls to justify the overhead
- TODO: More tuning for other CPUs
2018-11-30 23:51:25 +03:00
kd-11 7b065d7781 rsx: Fixup; input attributes blob decoding
- Use an unstructured blob and index into the vec4 structures to extract the real data
2018-11-30 23:51:25 +03:00
kd-11 846daadd5d rsx: Fixups
- Improve vertex attribute layout format. Allows for full 16-bit attribute divisor
- Use actual pitch when declaring framebuffer rsx pitch instead of register value in case of swizzle? rendering
2018-11-30 23:51:25 +03:00
kd-11 2e32777375 rsx: Scrap the prebuffered queue approach
- Basically starting over
- The cost of making command copies into the queue has a measurable impact
2018-11-30 23:51:25 +03:00
kd-11 9deecd506a fixup: It is possible for NOP commands to contain other garbage 2018-11-30 23:51:25 +03:00
kd-11 26a56ef1f1 vk: Spec compliance.
- TODO: Implement push_constants path instead of copy + bind descriptor sets
2018-11-30 23:51:25 +03:00
kd-11 d6b4440ef9 gl: Separate vertex env from program env 2018-11-30 23:51:25 +03:00
kd-11 435afcb865 rsx: Fix fifo draw barriers 2018-11-30 23:51:25 +03:00
kd-11 2d88e41583 rsx: Fix some checks when using inlined array rendering 2018-11-30 23:51:25 +03:00
kd-11 54ec363e88 rsx: Critical pipeline fixes
- Fix scissor and viewport binding behavior
- Fixes recovery if empty scissor is specified and then 'fixed' later
- Optimizes state binding a bit
2018-11-30 23:51:25 +03:00
kd-11 1ad76ad331 rsx: Restructure programs
- Also re-enable pipeline optimizations
2018-11-30 23:51:25 +03:00
kd-11 b0a6b72ce8 rsx: Optimizations
- Replace a few more vectors with simple_array<T>
- Avoid unnecessary string comparisons in backends. We already know referenced textures from the program analysers!
2018-11-30 23:51:25 +03:00
kd-11 677b16f5c6 rsx: Fixups
- Also fix visual corruption when using disjoint indexed draws

- Refactor draw call emit again (vk)

- Improve execution barrier resolve
  - Allow vertex/index rebase inside begin/end pair
  - Add ALPHA_TEST to list of excluded methods [TODO: defer raster state]

- gl bringup

- Simplify
  - using the simple_array gets back a few more fps :)
2018-11-30 23:51:25 +03:00
kd-11 e01d2f08c9 rsx: Refactor FIFO
- Removes fifo structures from common RSXThread
- Sets up a dedicated FIFO controller
- Allows for configurable queue optimizations
2018-11-30 23:51:25 +03:00
Nekotekina 96cabeadff Rewrite condition variables
Implement helper functions balanced_wait_until and balanced_awaken
They include new path for Windows 8.1+ (WaitOnAddress)

shared_mutex, cond_variable, cond_one, cond_x16 modified to use it
Added helper function utils::popcnt16
Replace most semaphore<> with shared_mutex
2018-11-29 01:30:05 +03:00
Nekotekina f442a8a84c SPU TG: add thread group stop counter
Fix possible race condition introduced by waiting on `running` value
2018-11-27 23:37:26 +03:00
Nekotekina febe4d4a10 Implement class cond_x16
Use as reservation notifier
Limited to 16 threads but allows more precise control of contention
2018-11-26 00:23:29 +03:00
Nekotekina 7f1cbb1136 Fix 16 bit audio mode
Pointed by @ruipin, some backends may be affected
Reuse float buffer for conversion result
2018-11-24 02:55:29 +03:00
eladash 4baa159523 cellFsOpen flag fix 2018-11-24 02:54:48 +03:00
Megamouse 0526bfd7de Support trophy manager moc'ing in vcxproj 2018-11-23 20:29:43 +01:00
msuih bf0e6ca174 Load trophies in another thread 2018-11-23 20:29:43 +01:00
kd-11 f505ac7b63 qt/gs_frame: Hotfix
- Dynamically check the loaded QT library version in case of mismatch
- Fixes using 5.11.1 builds with non-buggy libraries and vice versa
2018-11-22 10:21:13 +03:00
eladash 3c7f02d99d Fix libcamera regression 2018-11-19 19:05:39 +03:00
vit9696 634a5fa31c Fix macOS compilation 2018-11-19 14:39:33 +03:00
Nekotekina 65ca934452 cellSaveData: fix truncation size (regression) 2018-11-17 14:40:11 +03:00
Nekotekina 12ceceff19 cellSaveData: restore atime/mtime for unmodified files 2018-11-17 14:40:11 +03:00
isJuhn 225310e04b Add null alloc_addr checks to sys_memory_allocate and sys_memory_allocate_from_container 2018-11-16 18:37:07 +00:00
RipleyTom f4fb5200a0 cellVdecGetPicture accurate error checking 2018-11-15 20:06:49 +03:00
Nekotekina 0044eb44e2 Cleanup after #5310 (SPU thread groups)
Move lambda into a cpu_stop()
Use running thread counter to synchronize with sys_spu_thread_group_join()
Use SPU_STATUS_STOPPED_BY_STOP exclusively for sys_spu_thread_exit() as before
Remove unnecessary waiting in sys_spu_thread_group_exit()
Rollback some minor unnecessary changes
Use shared_mutex in SPU TG
2018-11-14 12:50:24 +03:00
RipleyTom 0e0a82e536 Ensures threads are stopped in join 2018-11-13 10:19:28 +03:00
eladash 2e1aec4de8 Implement sys_spu_thread_tryreceive_event 2018-11-12 21:12:33 +03:00
RipleyTom fada8b6594 Increases stack allocation for callbacks. 2018-11-12 15:09:26 +03:00
eladash 57b7892de6 Fix typo in sys_fs_mkdir
create_path is a less resticted version of create_dir, it doesnt check for EEXIST for one.
2018-11-12 13:28:58 +03:00
eladash 37b6afaf2c rsx: inlined array stride fix 2018-11-11 23:17:07 +03:00
RipleyTom 986bb24326 Extra check when opening pup file 2018-11-10 12:41:47 +03:00
Nekotekina 2fd384ae95 SPU LLVM: check state in every callable chunk
It's often redundant but may be necessary
2018-11-09 16:19:59 +03:00
Nekotekina c17a98030a qt: Add supporters 2018-11-09 16:19:59 +03:00
eladash 90f816595a Fix cellPadGetData
* Remove complete buffer clear
* If pressure sensitivity option is not specified, write zeroes (should this be handled from our actual controller handler?)
* Check sensor setting before reporting changes
2018-11-07 15:46:51 +03:00
eladash 3332a10052 ppu: Fix threads scheduler
*Set priority under a lock
*Fix yield command making threads going out of scheduler control by removing it from the queue (not a bug that affects compatibility)
2018-11-07 13:06:29 +03:00
eladash 3fd17e43a3 lv2: Fix lwcond_queue_wait lock acquiring 2018-11-07 13:06:29 +03:00
eladash 3faaf9e7fb lv2: Fix lwmutex locking 2018-11-07 13:06:29 +03:00
eladash 777f36e604 Fix error code checking of sys_lwcond_signal_x 2018-11-07 13:06:29 +03:00
Ani 2abbedcc50 gui: Fix OpenCorrectionDialog message
It was incorrectly trying to get the previous setting value after updating the setting
2018-11-07 00:04:22 +01:00
RipleyTom 9831bc6bc9 Bluetooth returns select as KEY_BACK for XBOX ONE controller. (#5303) 2018-11-05 14:25:38 +00:00
Nekotekina 488928eca2 Fix SPU STOP instruction
Check thread state after STOP instruction
2018-11-05 14:35:50 +03:00
Nekotekina f06e6be2c1 Disable npc update for SPU thread groups 2018-11-05 13:14:11 +03:00
Nekotekina eaa17b7f7c cellSaveData: anti-corruption precautions
Try to commit changes atomically
2018-11-05 13:14:11 +03:00
Nekotekina 6104685ad6 Implement cond_one sync primitive
Change futex() args to use unsigned int
2018-11-05 13:14:11 +03:00
Nekotekina 06253c8489 Implement "Initialize Directories" options
If disabled, /dev_hdd0, /dev_hdd1, etc, are not created automatically.
2018-11-05 13:14:11 +03:00
eladash 75221a6078 rsx: Fix inlined vertex array validation 2018-11-04 22:57:18 +03:00
eladash 43b75ccf04 cellGame: Add missing nullptr checks
if the param is null pointer, the library simply skips writing into it. also fix the order of writes.
2018-11-02 19:47:37 +03:00
HexyFify 98f2967aac Update firmware latest version to 4.83 2018-11-02 00:51:42 +00:00
Zion Nimchuk fa134337d9 Fix issue with memory validation 2018-11-02 03:21:36 +03:00
eladash 3a7f5b970f ppu: Fix stack base 2018-11-02 02:16:29 +03:00
eladash 7056b5fc70 rsx-debugger: add forgotten super ptrs 2018-10-30 22:33:59 +03:00
eladash 68a8efdc33 rsx-debugger: auto jump into get address on startup 2018-10-30 22:33:59 +03:00
eladash fb30c8a937 rsx enums: fix typos 2018-10-30 22:33:59 +03:00
eladash 5270dc1c9e rsx-debugger: fix ret and nop cmd display 2018-10-30 22:33:59 +03:00
eladash 4069470585 rsx-debugger: ignore invalid cmds
basically ignore all non method cmds when scrolling to the next command, not only branches.
2018-10-30 22:33:59 +03:00
eladash 2058d024ce Fix cellGcmInit (workaround) 2018-10-28 20:09:09 +03:00
Megamouse d56c85fe01 RSX/Capture: fix filePath and remove strict mode check (#5283)
- Fixes regression introduced by kd-11 when merging in jarves' flip rework.
2018-10-27 13:06:50 +03:00
Megamouse 1cf62e9ded Qt: add option to add games to the main menu 2018-10-27 02:37:59 +02:00
Megamouse 586c0ea1d0 Qt: rename deleteLLVMCache to removePPUCache 2018-10-23 22:35:50 +02:00
Dennis Luxen 36d4614d12 Fix a warning that shift overflows data type width (#5116) 2018-10-23 18:49:01 +03:00
eladash dfacdd8a40 fixup for rsx debugging tools segfaults 2018-10-23 18:02:03 +03:00
eladash 5ee351234c rsx-capture: unbreak 2018-10-23 18:02:03 +03:00
Megamouse eba2216c4a fix evdev device list 2018-10-20 22:08:58 +02:00
eladash d14c8a03b3 typo fix 2018-10-20 22:27:48 +03:00
Zion Nimchuk 966c3fea5b Fix command line arguments, add --version and set Qt application name 2018-10-20 20:42:25 +02:00
Megamouse aed83e69c9 Qt: add tick marks to Master Volume Slider 2018-10-20 19:19:54 +02:00
Megamouse 6e08d8e746 Qt: also enable/disable overlay centering checkboxes 2018-10-20 19:19:54 +02:00
Megamouse c9d8cd3613 Qt: refactor settings_dialog and add EnhanceSlider 2018-10-20 19:19:54 +02:00
Megamouse da5385686c Qt: add master volume slider to the audio tab 2018-10-20 19:19:54 +02:00
Zion Nimchuk db40cbda58 Qt: set Vulkan surface in gs_frame 2018-10-20 18:49:04 +02:00
msuih 56ea45f9d5 Add setting for master volume 2018-10-20 16:35:01 +03:00
elad 6829fa0286 rsx: Improve inlined arrays (#5248)
* rsx: Implement register reads in inlined arrays

* rsx: Check for disabled streams in inlined arrays
2018-10-20 16:00:53 +03:00
Nekotekina 1b37e775be Migration to named_thread<>
Add atomic_t<>::try_dec instead of fetch_dec_sat
Add atomic_t<>::try_inc
GDBDebugServer is broken (needs rewrite)
Removed old_thread class (former named_thread)
Removed storing/rethrowing exceptions from thread
Emu.Stop doesn't inject an exception anymore
task_stack helper class removed
thread_base simplified (no shared_from_this)
thread_ctrl::spawn simplified (creates detached thread)
Implemented overrideable thread detaching logic
Disabled cellAdec, cellDmux, cellFsAio
SPUThread renamed to spu_thread
RawSPUThread removed, spu_thread used instead
Disabled deriving from ppu_thread
Partial support for thread renaming
lv2_timer... simplified, screw it
idm/fxm: butchered support for on_stop/on_init
vm: improved allocation structure (added size)
2018-10-19 22:22:35 +03:00
Nekotekina 430e2243ac Fix audio_thread buffer deallocation race 2018-10-19 22:22:35 +03:00
Nekotekina 73d35b0236 Remove CALL_FUNC, implement ppu_execute<>() 2018-10-19 22:22:35 +03:00
Megamouse 4ab777b429 Add title to emulator message dialogs 2018-10-14 23:14:46 +03:00
msuih 48416e81eb Save compatibility draw state 2018-10-13 17:05:36 +02:00
msuih 90688c4970 Compatibility status to grid view
Includes icon drawing, menu option and settings entry.
2018-10-13 14:43:23 +02:00
scribam 8540399ecb ppu-interpreter: improve vminfp instruction 2018-10-12 21:30:14 +03:00
elad 623f1b35f6 rsx_capture/gcm: Fix tile binding (#5246)
* gcm: Fix tile offset setting

highest bit signifyies location, so ignore that while reading the offset.

* rsx-capture: Fix tile binding

fixes division by zero when dividing by pitch when the tile is not bound.

* rsx-capture: Fix zcull binding
2018-10-12 19:05:08 +03:00
eladash 83b6c98563 rsx: Fix u16 index arrays overflow
Force u32 index array destinations to avoid overflows when adding vertex base index.
2018-10-08 16:39:47 +03:00
eladash e361e0daa6 rsx: Fix restart index check for u16 index arrays
Dont ignore upper bits of the restart index with u16 types
2018-10-08 16:39:47 +03:00
scribam 39272eef45 ppu-interpreter: improve vsl/vsr instructions 2018-10-08 00:15:26 +03:00
scribam cc846eb670 ppu-interpreter: improve fnmadd/fnmadds instructions (#5183)
* ppu-interpreter: improve fnmadd instruction

* ppu-interpreter: improve fnmadds instruction
2018-10-04 00:49:19 +03:00
Megamouse 49e5212a8f RSX/Overlays: Add option for japanese button layout 2018-10-03 23:08:33 +02:00
Megamouse 76da3fa907 RSX/Overlays: don't press buttons on every iteration 2018-10-03 21:37:05 +02:00
Megamouse 9693d1c3a3 RSX/Overlays: formatted comments 2018-10-03 21:37:05 +02:00
eladash 348db050ae rsx: Fix texture height read 2018-10-03 20:57:46 +03:00
eladash 62f97f2e5f rsx: Fix default texture dimensions
haha
2018-10-03 20:57:46 +03:00
eladash fa723f6dc4 rsx: Fix texture depth read 2018-10-03 20:57:46 +03:00
eladash 4174d7274d sys_rsx: fix log spam 2018-10-03 20:57:46 +03:00
eladash a92ae827c1 rsx: Remove texture mipmap hack 2018-10-03 20:57:46 +03:00
eladash 6586090307 rsx: Remove texture size hack 2018-10-03 20:57:46 +03:00
eladash eacd1b8f13 rsx: Remove texture address hack 2018-10-03 20:57:46 +03:00
Nekotekina 1b740995a4 Refactor audio_thread (g_idm) 2018-10-02 23:26:54 +03:00
Megamouse c9adb52f63 Qt: Add shader loading screen options to the settings dialog 2018-10-02 09:28:58 +02:00
Nekotekina 1456678316 Refactor audio/camera/mic threads 2018-10-02 02:22:26 +03:00
Nekotekina 19a64e0e94 Add g_typemap and g_idm alias
Future idm/fxm replacement
2018-10-02 02:22:26 +03:00
Nekotekina da6ce80f4f Make vm::get_super_ptr return contiguous memory
Cleanup RSX code complexity
2018-09-27 23:37:13 +03:00
eladash 72ba062b1a rsx: Fix pfifo ret opcode 2018-09-27 17:47:32 +03:00
eladash a47ebad24c rsx: Fix pfifo nop cmd 2018-09-27 17:47:32 +03:00
Nekotekina 306f95a9ae New named_thread template (preview)
Old class named_thread renamed to old_thread
It's too hard to move in a single commit
2018-09-27 14:04:16 +03:00
Nekotekina 4ef384a161 Fix cellVdecClose
Thanks Micaelis#6971
2018-09-27 14:04:16 +03:00
Nekotekina 680aaf21f0 Fix consistency in Emu::Stop()
Don't clear force_boot on shortcut Load()
2018-09-27 12:16:43 +03:00
Nekotekina b2f29cd4d4 LLVM: remove false alarm errors
Writable sections ARE supported
2018-09-27 12:16:43 +03:00
Nekotekina a605dd0a3f Add missing deleted operators 2018-09-27 12:16:43 +03:00
Nekotekina a8a8cd88a0 Implement lf_queue<>, lf_value<>
lf_queue<>: unbound FIFO queue with dynamic linked-list
lf_value<>: concurrently-assignable value readable without locking at the cost of memory (using dynamic linked list)

Add atomic_t<>::compare_exchange
2018-09-27 12:16:43 +03:00
kd-11 bdf85ed900 rsx: Fixup for vertex attrib parsing
- POS does not have to be fetched from ATTR[0]
  - Confirmed with UC1 that uses WEIGHT for positions
  - At least one POS stream has to exist to feed the position attribute which cannot repeat for a single triangle
2018-09-26 19:41:50 +03:00
kd-11 6a9f234dc7 rsx: Fixup flip behaviour
- handle_emu_flip is very heavy, only fire
2018-09-26 19:41:50 +03:00
eladash f056ef7a80 rsx-capture: Save initial method registers state 2018-09-26 17:55:08 +03:00
eladash 5b0ed1e2eb rsx-capture: Map dynamically rsx data injection addresses 2018-09-26 17:55:08 +03:00
eladash 8e268aedc7 rsx-capture: Rewrite FIFO commands allocation 2018-09-26 00:58:24 +03:00
kd-11 f72157bcec rsx: Fix vertex attrib parsing 2018-09-25 22:03:35 +03:00
kd-11 dab30c0051 rsx: Disable predictions if 50% of predictions are wrong
- This happens often in loading screens where the memory usage pattern is often randomized by loading in of assets
2018-09-24 21:19:38 +03:00
kd-11 a3d44b5e1f rsx: Cleanup changes for the flip patch 2018-09-24 16:44:02 +03:00
Jake 699eadc84f rsx: Move render flip from rsx queue command to flip command 2018-09-24 16:44:02 +03:00
Rui Pinheiro 35139ebf5d Texture cache cleanup, refactoring and fixes 2018-09-24 15:26:40 +03:00
Rui Pinheiro 8b3d1c2c91 Implement address_range utility class 2018-09-24 15:26:40 +03:00
Rui Pinheiro f3029b2b42 Change Cell->RSX map/unmap notifications
This allows for further flexibility on the RSX side, allowing us to fix
some bugs and crashes in later commits.
2018-09-24 15:26:40 +03:00
eladash 06572c6011 rsx: Fix vertex count if all the streams are disabled 2018-09-24 13:25:05 +03:00
eladash e0a676a3fe rsx: Fix vertex arrays fetch with inlined draws 2018-09-24 13:25:05 +03:00
eladash e8474145a5 rsx: Remove shader address verification
this came from a misunderstanding of the register's use
2018-09-24 13:25:05 +03:00
Megamouse b7e010bbd0 Fix Emu.Restart() 2018-09-23 01:49:58 +01:00
Jan Beich 0da556e1f8 build/cmake: properly disable assert() globally for release builds
Assertion failed: (ObjectBufferMap.find(Key) == ObjectBufferMap.end() && "Second attempt to perform debug registration."), function NotifyObjectEmitted, file llvm/lib/ExecutionEngine/GDBRegistrationListener.cpp, line 168.
2018-09-22 10:35:45 +03:00
Jan Beich efb3b08f87 build/cmake: ADDITIONAL_LIBS satisfy dependency by other libraries
/usr/bin/ld: undefined reference to symbol `libiconv_open' (try adding -liconv)
2018-09-22 10:35:45 +03:00
Jan Beich 1c8fc6852a build/cmake: build everything with -pthread, not just GLEW
error: POSIX thread support was disabled in PCH file but is currently enabled
2018-09-22 10:35:45 +03:00
kd-11 dafc914bcc rsx: temporary hack
- Removes all use of valid_count as a metric until the new refactor is merged
2018-09-21 16:32:23 +03:00
kd-11 2b6e6a9ae9 gl: Fix problems with framebuffer reuse
- Matching attachments with resource id fails because drivers are reusing
  handles!
- Properly sets up stale fbo ref counting and removal
- Properly sets up resource reference test with subsequent removal to
  avoid using a broken fbo entry
2018-09-21 16:32:23 +03:00
kd-11 fc486a1bac rsx: Preserve memory order when doing flush
- Orders flushing to preserve memory at all cost
- Avoids false positive where flushing overlapping sections can falsely invalidate another with head/tail test
2018-09-21 16:32:23 +03:00
kd-11 23dc9d54e3 rsx: Fix flip source selector 2018-09-21 16:32:23 +03:00
kd-11 a21bdb9f45 rsx; blit engine fixes
- Forcefully downloads and reuploads data from the CPU in case of unexpected overlaps
- Properly detect correct size of newly created blit targets
- Remember to clear any existing views when changing the default component map!
2018-09-21 16:32:23 +03:00
eladash 1a6c819176 cellgcm: Fix SET_REFERENCE initial value 2018-09-20 01:05:40 +03:00
eladash e6b68b260a rsx: Improve FIFO mem faults handling
increase the delay between faults, reduce log spam by allowing the messages to stack up
2018-09-20 01:05:40 +03:00
eladash a8ea576b22 rsx/cellgcm: Implemet initialization registers reset 2018-09-20 01:05:40 +03:00
Nekotekina 59090f6d26 VFS: fix /host_root 2018-09-19 14:15:38 +03:00
Nekotekina dce14a359a Rename lv2_spu_group::num to max_num 2018-09-19 14:15:15 +03:00
Lassi Hämäläinen 9a457400e7 CMake: Fix Qt resource files not included in build
- Move Qt resource initialization to rpcs3_qt target
2018-09-19 01:59:27 +03:00
Lassi Hämäläinen 566c88802e CMake: LLVM, Pulse, Alsa and libevdev being disabled
- These dependencies have #defines which enable code related to them
  in rpcs3 and rpcs3_ui targets. They are only used in rpcs3_emu but
  HAVE_* defines have to be defined in rpcs3 and rpcs3_ui targets also,
  so they have to have PUBLIC visibility so defines carried over

CMake: Fix Alsa and Pulse audios being disabled

- HAVE_PULSE and HAVE_ALSA were not defined in rpcs3 target

Fixup libevdev
2018-09-19 01:59:27 +03:00
kd-11 d6dc1493cb rsx/overlays: Implement blur, darkening and ability to disable custom background 2018-09-18 16:24:13 +03:00
kd-11 9f61fb5a78 overlays: Allow custom background for message dialog 2018-09-18 16:24:13 +03:00
Lassi Hämäläinen 7aef811ff7 CMake: Refactor CMake build (#5032)
* CMake: Refactor build to multiple libraries

- Refactor CMake build system by creating separate libraries for
  different components
- Create interface libraries for most dependencies and add 3rdparty::*
  ALIAS targets for ease of use and use them to try specifying correct
  dependencies for each target
- Prefer 3rdparty:: ALIAS when linking dependencies
- Exclude xxHash subdirectory from ALL build target
- Add USE_SYSTEM_ZLIB option to select between using included ZLib and
  the ZLib in CMake search path

* Add cstring include to Log.cpp

* CMake: Add 3rdparty::glew interface target

* Add Visual Studio CMakeSettings.json to gitignore

* CMake: Move building and finding LLVM to 3rdparty/llvm.cmake script

- LLVM is now built under 3rdparty/ directory in the binary directory

* CMake: Move finding Qt5 to 3rdparty/qt5.cmake script

- Script has to be included in rpcs3/CMakeLists.txt because it defines
  Qt5::moc target which isn't available in that folder if it is
  included in 3rdparty directory
- Set AUTOMOC and AUTOUIC properties for targets requiring them (rpcs3
  and rpcs3_ui) instead of setting CMAKE_AUTOMOC and CMAKE_AUTOUIC so
  those properties are not defined for all targets under rpcs3 dir

* CMake: Remove redundant code from rpcs3/CMakeLists.txt

* CMake: Add BUILD_LLVM_SUBMODULE option instead of hardcoded check

- Add BUILD_LLVM_SUBMODULE option (defaults to ON) to allow controlling
  usage of the LLVM submodule.
- Move option definitions to root CMakeLists

* CMake: Remove separate Emu subtargets

- Based on discussion in pull request #5032, I decided to combine
  subtargets under Emu folder back to a single rpcs3_emu target

* CMake: Remove utilities, loader and crypto targets: merge them to Emu

- Removed separate targets and merged them into rpcs3_emu target as
  recommended in pull request (#5032) conversations. Separating targets
  probably later in a separate pull request

* Fix relative includes in pad_thread.cpp

* Fix Travis-CI cloning all submodules needlessly
2018-09-18 13:07:33 +03:00
eladash 05cd3712a3 spu: Fix MMIO index checking 2018-09-17 17:24:54 +03:00
elad 0d4f0f95cc rsx: Clamp texture offsets (#5137)
* rsx: Clamp texture offsets

* rsx: Remove texture location check/hack
2018-09-17 10:55:17 +03:00
Nekotekina ed8aa774bb Optimize logging via logs::channel
Use constant-initialized severity subobjects instead of temporaries
2018-09-16 00:36:20 +03:00
Nekotekina b94e98aed5 Rewrite sys_fs_opendir
Rewrite lv2_dir object
Support split files and mount points
2018-09-15 17:18:40 +03:00
Nekotekina c5676e5649 Remove thread_ctrl::atexit
It was only a workaround for poor C++11 thread_local support
2018-09-15 17:09:56 +03:00
Nekotekina f2229a5f53 PPU reservations: ensure aligned atomic ops
Store aligned 64 bits to ppu.rdata
Don't save reservation size
2018-09-15 17:09:56 +03:00
Nekotekina e8b5555630 Rewrite vfs::get and vfs::mount
Preprocess . and .. correctly
Don't use recursive locking
Also use std::string_view
Fix format system for std::string and std::string_view
Fix fmt::merge for std::string_view
2018-09-15 17:09:56 +03:00
kd-11 16dcbe8c74 rsx/vp: Fix ARL opcode properly
- NOTE: The address swizzle index is only for use as src. The address registers are only used one channel at a time.
- When the destination of ARL, the encoding is the same as the other temp registers
2018-09-15 11:57:06 +03:00
Megamouse ed7012c9db cellKb/Qt: Improve basic keyboard
Sadly the shift in Qt is a bit counter productive.
You'll have to hack another key as shift until i figured it out
2018-09-13 22:01:30 +02:00
elad d24f9194f7 typo fix
shader's location is decremented by one to match cellGcm's constants.
2018-09-13 16:49:58 +03:00
eladash b9ad578b00 rsx: Add a default shader address state 2018-09-13 16:49:58 +03:00
Dzmitry Malyshau d28c0d16f8 [vk] don't ask for VK_FORMAT_UNDEFINED support 2018-09-13 16:04:50 +03:00
scribam 4cb98014a2 rsx: tiny zcull optimizations 2018-09-13 12:43:40 +03:00
eladash cd11ae5d8b ppu: Fix extreme reservation corner case 2018-09-12 23:17:53 +03:00
eladash efbd77deb4 rsx: dont silently ignore null shader address 2018-09-12 00:40:20 +03:00
Dzmitry Malyshau 7c4693e271 [vk] Throw an exception on using a repder pass that the driver doesn't support 2018-09-11 23:44:56 +03:00
Dzmitry Malyshau 89ddeda24a [vk] check for attachment format properties before pre-creating render passes 2018-09-11 23:44:56 +03:00
scribam f294729b28 ppu: improve lvebx/lvehx/lvewx instructions 2018-09-11 21:20:52 +03:00
scribam 3072571a4f cpu: use correct type when defining llvm value is_int constexpr 2018-09-10 19:59:37 +03:00
scribam c8c8ce5e9e rsx: add virtual destructor for default_vertex_cache 2018-09-10 19:59:37 +03:00
kd-11 f413996362 rsx: Minor texture cache fixes
- Retag resources reprotected under flush_always rules
- Properly check for blit resource fitting taking into account format
mismatch, pitch mismatch and typeless transfers
2018-09-10 15:43:28 +03:00
Nekotekina 2226125728 atomic_t<>: remove inline assignment
Add atomic_op/fetch_op overloads with template argument (may be removed in future)
Remove args... in atomic_op (capturing lambda is preferred)
2018-09-09 12:59:24 +03:00
Nekotekina 3ac1b46df2 Add option "HLE lwmutex"
Replaces lwmutex/lwcond implementation with alternative one
2018-09-09 01:02:19 +03:00
Alex James 5237779136 cellCamera: Fix check_dev_num call in cellCameraOpenEx 2018-09-08 20:07:10 +03:00
Nekotekina fb5cdf9769 atomic_t<>: extend fetch_op to support cancellation
Use std::invoke inside atomic_op/fetch_op
Remove op_fetch because it's easily replaced
Add fetch_dec_sat algorithm (conditional decrement)
2018-09-08 00:32:04 +03:00
Nekotekina ed9fb8405b Move rotate/cntlz/cnttz helpers to Utilities/asm.h 2018-09-08 00:32:04 +03:00
Nekotekina ee96807305 Remove explicit_bool_t, ignore, multicast<>
Remove vm::ptr operator %
This was a bad idea but explicit_bool_t was created almost for it
Other removed types are unused and have little to no meaning
2018-09-08 00:32:04 +03:00
Nekotekina 99ffc3fca9 Use std::invoke_result_t
Also simplify idm code
2018-09-08 00:32:04 +03:00
Nekotekina d750e955c3 Use std::uncaught_exceptions()
Also remove wrong attributes
2018-09-08 00:32:04 +03:00
Dzmitry Malyshau 4e09573937 [vk] Check for BGRA8 linear image to support blitting 2018-09-07 22:02:02 +03:00
Dzmitry Malyshau b454dde871 [vk] fix cubic view construction 2018-09-07 19:11:34 +01:00
Ofek d7b0344091 Fix trophy regression
Hopefully
Correct status order
2018-09-07 20:04:37 +03:00
Dzmitry Malyshau 27474316fd Add missing virtual desctructors (#5094) 2018-09-07 14:35:40 +03:00
Zion Nimchuk 46812d46ba better stub sceNpUtilBandwidthTestGetStatus 2018-09-07 12:38:51 +03:00
kd-11 66610a28af rsx/common: Clean up shared glsl header to minimize string concat operations 2018-09-06 21:11:11 +03:00
kd-11 346b97f871 rsx: Preserve fog coordinate across shader stages
- The x value contains the VP output value interpolated across primitive surface
- The y coordinate contains the fog fraction according to the selected fog formula
2018-09-06 21:11:11 +03:00
scribam 343656f66d cleanup: remove unnecessary return and namespace declaration 2018-09-06 13:15:59 +03:00
scribam 2834c88de7 cleanup: remove intermediate const char* variables 2018-09-06 13:15:59 +03:00
scribam f83d381e1e clang-tidy: use nullptr 2018-09-06 13:15:59 +03:00
scribam c4cff9b543 clang-tidy: remove redundant "apply_swizzle_remap" declaration 2018-09-06 13:15:59 +03:00
scribam d7bb59cd99 c++17: use std::size 2018-09-06 13:15:59 +03:00
scribam 7724161c14 c++17: use std::clamp 2018-09-06 13:15:59 +03:00
scribam 02ba529eea sys_usbd: add sys_usbd_event_port_send function 2018-09-05 19:53:09 +03:00
Nekotekina ca5158a03e Cleanup semaphore<> (sema.h) and mutex.h (shared_mutex)
Remove semaphore_lock and writer_lock classes, replace with std::lock_guard
Change semaphore<> interface to Lockable (+ exotic try_unlock method)
2018-09-03 23:00:36 +03:00
Nekotekina 5e556a87ff Adjust cellMic log levels 2018-09-03 21:40:36 +03:00
Nekotekina ce4c4696dd Try to get rid of SIZE_32 macro 2018-09-03 21:40:36 +03:00
Nekotekina 7bccdbf157 Make vm::var unmoveable
Fix bugs with discarding vm::make_var result
2018-09-03 21:40:36 +03:00
Nekotekina 8abe6489ed Mega-cleanup for atomic_t<> and named bit-sets bs_t<>
Remove "atomic operator" classes
Remove test, test_and_set, test_and_reset, test_and_complement global functions
Simplify atomic_t<> with constexpr if, remove some garbage
Redesign bs_t<> to use class, mark its methods constexpr
Implement atomic_bs_t<> for optimizations
Remove unused __bitwise_ops concept (should be in other header anyway)
Bitsets can now be tested via safe bool conversion
2018-09-03 21:40:36 +03:00
Nekotekina 69f0ad0d68 Remove ALIGN_32 macro
It's never used in expressions like SIZE_32(T) * n, so it doesn't help to fix any warning issued due to truncation.
2018-09-03 21:40:36 +03:00
kd-11 dea5193fd7 rsx: Fix FP temp register count 2018-09-03 21:39:18 +03:00
Rui Pinheiro 1175658bd5 Fix cellMic regression from #4467
cellMicEnd would get stuck waiting for the cellMic thread to finish, but
it never does because micInited is still true.

Fixes Resistance: Fall of Mankind getting stuck after the menu
2018-09-03 19:49:41 +02:00
kd-11 2e0ecb556c rsx: Possible fix for UB data type consistency 2018-09-03 18:24:20 +03:00
kd-11 5a08b690d5 gl: always clean up the heap when using legacy buffers 2018-09-03 18:24:20 +03:00
kd-11 815f4aa63b vk: Improve logging of device names and driver versions 2018-09-03 18:24:20 +03:00
kd-11 e23435a190 vk: whitespace fix only 2018-09-03 18:24:20 +03:00
kd-11 85d38b5751 d3d12: restore working graphics 2018-09-03 18:24:20 +03:00
kd-11 6399833182 rsx: Fix endianness order when immediate mode register is updated, but used as register lookup
- Simplify the code by unifying all the register-backed memory
2018-09-03 18:24:20 +03:00
eladash 9acaee563b Fix sys_memory_free 2018-09-01 22:44:20 +04:00
scribam bf89b709cb Remove useless #include 2018-08-31 20:13:54 +04:00
scribam c2973d2b82 Update ConfigureCompiler.cmake to check for the same compiler versions as those set in README.md 2018-08-31 20:13:54 +04:00
scribam 7d0e94ab0a Compilation fixes for optional on osx 2018-08-31 20:13:54 +04:00
scribam 6c62d042c5 3rdparty: remove optional submodule 2018-08-31 20:13:54 +04:00
Lassi Hämäläinen 79cf2832ae Remove Utilities/variant.hpp and use C++17 variant
- Remove also Utilities/variant_visitor.hpp
- Fix variant and variant_visitor usages and #includes
2018-08-31 17:49:59 +04:00
Nekotekina 85fa0942e7 vm: allow 4k-aligned allocations for vm::stack
Fix utils::shm::map logic for MapViewOfFileEx
2018-08-30 14:56:45 +03:00
Nekotekina c49c7de427 sys_fs_stat: support split files
Was forgotten after sys_fs_open
2018-08-30 14:56:45 +03:00
Megamouse f933947a27 keyboard_pad_handler: fix mouse for multimonitor fullscreen 2018-08-30 07:38:11 +02:00
Megamouse e53ca429a1 Adjust to US keyboard... sigh 2018-08-30 07:38:11 +02:00
Megamouse 1fbd918d59 Qt: implement first Mouse Movement for keyboard pad handler 2018-08-30 07:38:11 +02:00
elad 685eaedbf9 rsx: Fix typos (#5054) 2018-08-30 00:47:48 +03:00
Ani 4357892081 Bump CMake Requirement to 3.8.2+
With older builds CMake will error out with `CXX_STANDARD is set to invalid value '17'`

CXX_STANDARD 17 was added on CMake 3.8.X as found in the 3.8.2 documentation: https://cmake.org/cmake/help/v3.8/prop_tgt/CXX_STANDARD.html

Also removes leftover from old VS2015/2017 mixed instructions, removes "Not GCC 6.1" since we require 7.3+ now and bumps Xcode to 10. Proper MacOS instructions will be added afterwards by someone else.
2018-08-29 22:01:57 +01:00
Ofek 4c1459534d Trophy fixes 2018-08-29 16:56:17 +03:00
Megamouse 686d3eb1df cellMsgDialog: improvements 2018-08-29 16:09:00 +03:00
Megamouse 00b31c27a3 cellGame: implement error messages and some stubs 2018-08-29 16:09:00 +03:00
Megamouse 7208aa37cc cellMsgDialog: introduce open_msg_dialog 2018-08-29 16:09:00 +03:00
Megamouse d4285fb196 cellGameExec: add param checks 2018-08-29 16:09:00 +03:00
Zion Nimchuk f9cab3270f Initial work on cellMic 2018-08-29 15:15:18 +03:00
jmatich b5dbd44087 Compilation fixes for Mingw64 (MSYS2) (#4899)
fix compilation on mingw
2018-08-29 14:27:10 +03:00
eladash 37ee0a2f55 Rsx/cellgcm: complete rsx_state::reset() 2018-08-29 13:37:50 +03:00
eladash fc50e6abcb Rsx: remove method registers reset
cellGcm manually resets registers each flip, tested with cellGcmSetFlip
2018-08-29 13:37:50 +03:00
Dzmitry Malyshau c452b43ebc Basic support for Vulkan Portability on OSX 2018-08-28 21:20:11 +03:00
eladash acf1286b49 Rsx: fix unknown cull faces 2018-08-28 10:47:24 +03:00
eladash 38a72cc6ee Rsx: fix flip method registers reset
driver flip does not reset registers
2018-08-28 10:47:24 +03:00
eladash e279bdb304 Rsx: add missing default vertex shader attributes registers states 2018-08-28 10:47:24 +03:00
zarroboogs 23f5cee653 Git Revision Fix (#5043)
* fix shotrened git revision in version string
2018-08-27 22:53:45 +04:00
Nekotekina 7b4f70390d Don't use decltype(spu_opcode_t::...)
Add static constant for this purpose
Try to fix MSVC bug warning C4573
2018-08-25 21:06:24 +03:00
Nekotekina 363811981d Reintroduce LOG_CHANNEL
Groundwork for further improvements
2018-08-25 15:39:00 +03:00
Nekotekina a93a40e8d9 Disable texture_cache::emit_once (MSVC crash) 2018-08-25 01:58:28 +03:00
Nekotekina 1c6c24f8ac Update GSL and yaml-cpp submodules 2018-08-25 01:15:47 +03:00
Nekotekina 923314aef5 Rewrite texture_cache::emit_once
Also trying to workaround MSVC bug
2018-08-25 01:15:47 +03:00
Nekotekina bb19feca96 Workaround MSVC bug
It fails to parse Args... in fmt::get_type_info<>()
2018-08-25 01:15:47 +03:00