kd-11
c2ab3c664c
rsx: Fix stupid overflow
2021-09-17 20:12:08 +03:00
kd-11
53457262d4
rsx: Implement ZPASS results scaling for precise stats
2021-09-06 20:04:03 +03:00
kd-11
472efc08eb
rsx: Implement precise ZCULL stats
2021-09-06 20:04:03 +03:00
Megamouse
0debcfed0a
Silence some warnings
2021-09-02 19:39:42 +02:00
kd-11
a5e455d8ed
rsx/fp: Handle signed operator precedence
...
This was marked TODO for a long time
- Unsigned remap seems to be overriden by gamma mask (Resistance 3)
- We already know sign mask overrides gamma mask from UE3 titles
2021-08-30 11:41:19 +03:00
Eladash
fcfeac818f
Loader: Improve just-in-time installation of disc game files ( #10719 )
...
* rsx: Indexed access to surface attributes
2021-08-19 08:49:59 +03:00
Eladash
a346767a72
rsx: Improve rsx::recover_fifo() to take a hint from driver wake-up delay
2021-08-17 16:40:41 +03:00
Eladash
2ce164be09
rsx: Implement crash-proofing for 308A_COLOR dst address
2021-08-17 16:40:41 +03:00
Eladash
62beaf299f
Remove old RSX instructions viewer ( #10710 )
2021-08-14 21:20:11 +03:00
kd-11
c9afb3daaa
rsx: Significantly reduce the applied subpixel bias when handling unnormalized access
...
- If a large value is set (e.g 0.5) rounding will sample 'up' and we can read the wrong texel
2021-08-10 12:02:19 +03:00
kd-11
99b6963fab
rsx: Improve unnormalized coordinate sampling
...
- Improve rounding when sampling nearest neighbour. This is mostly a problem with NVIDIA
- Implement unnormalized 3D sampling
2021-08-03 00:36:04 +03:00
Eladash
dcb2e8cd9e
rsx: Improve VBLANK accuracy
2021-06-27 16:39:08 +03:00
kd-11
d3ff67ffb5
rsx: Pass vertex attributes streamed via register write in PS3-correct format
...
- TODO: Optimize this, we can avoid the double bswap in FIFO and then in attribute push
Not very important since nobody is doing register push in high-performance path.
2021-06-14 10:24:03 +03:00
Eladash
2169e8d935
Implement serialization.hpp, remove cereal submodule
...
Bump RSX capture version, use new serializer.
2021-06-07 16:28:42 +03:00
Ani
a49446c9e9
Replace gsl::span for std::span (c++20) ( #7531 )
...
* Replace gsl::span for std::span (c++20)
* Replace gsl::byte with std::byte
Co-authored-by: Bevan Weiss <bevan.weiss@gmail.com>
2021-05-30 17:10:46 +03:00
Nekotekina
2491aad6f2
types.hpp: implement min_v<>, max_v<>, SignedInt, UnsignedInt, FPInt concepts
...
Restrict smax to only work with signed values for consistency.
Cleanup <climits> includes.
Cleanup <limits> includes.
2021-05-23 19:43:51 +03:00
kd-11
c5a06dab0a
rsx: Refactor program texture state handling to be persistent across shader swaps
2021-05-15 23:51:12 +03:00
Eladash
acded1e08a
rsx: Move sys_rsx info to rsx::thread ( #10258 )
2021-05-09 19:16:14 +01:00
Megamouse
71d58e3a67
rsx: remove unused tile functions
2021-04-30 08:23:16 +02:00
Megamouse
a16d8ba3ea
More random changes
2021-04-11 14:01:51 +03:00
Nekotekina
deacf05769
Enable -Wdeprecated-copy
...
Some classes violated the Rule of 3(5) in their special operator definitions.
2021-03-31 11:27:09 +03:00
Eladash
1e71deb0db
rsx: Compile shaders when CELL is not running
2021-03-30 11:13:47 +03:00
xddxd
9d895e6b15
Scheduler overhaul
2021-03-26 00:29:44 +03:00
Nekotekina
b3fb6d7d18
Add and fix -Wredundant-decls (GCC)
2021-03-23 22:48:57 +03:00
Nekotekina
a4fdbf0a88
Enable -Wstrict-aliasing=1 (GCC)
...
Fixed partially.
2021-03-09 03:10:15 +03:00
Nekotekina
87af905018
Enable -Wunused-parameter
2021-03-06 18:07:08 +03:00
Nekotekina
ea5e837bd6
fixed_typemap.hpp: return reference
2021-03-02 16:08:14 +03:00
Eladash
447d2b6f93
Atomic RSX capture writes
2021-02-23 11:29:23 +03:00
Nekotekina
8e6e57de86
Enable -Wunused-function warning
2021-02-15 14:39:53 +03:00
Eladash
f43260bd58
Atomic waiting refactoring ( #9208 )
...
* Use atomic waitables instead instead of global thread wait as often as possible.
* Add ::is_stopped() and and ::is_paued() which can be used in atomic loops and with atomic wait. (constexpr cpu flags test functions)
* Fix notification bug of sys_spu_thread_group_exit/terminate. (old bug, enhanced by #9117 )
* Function time statistics at Emu.Stop() restored. (instead of current "X syscall failed with 0x00000000 : 0")
2021-02-13 17:50:07 +03:00
Eladash
2005c89baa
memory viewer: Implement RSX mode
...
* Set the ground for RSX modes of register editor and insttruction editor, do not use shared ptrs directly.
* Make register editor and instruction editor modeless to allow to copypaste values from thread context etc in the background.
2021-02-02 01:05:36 +03:00
Eladash
70346028c5
Fix GCM HLE
...
Oops.
2021-01-29 10:31:15 +03:00
Eladash
0652870204
New RSX Debugger
2021-01-28 17:40:26 +03:00
Nekotekina
67dd6754a6
Seal cereal includes in util/cereal.cpp
2021-01-28 10:48:53 +03:00
Nekotekina
ee288340b0
Implement thread_ctrl::scoped_priority
...
RAII priority control (+1, or -1)
2021-01-25 21:49:16 +03:00
Eladash
79513f06a4
rsx/gui: Delay game window pop-up until first frame
2021-01-23 12:45:53 +03:00
Nekotekina
241989c5fa
Fix new warnings
...
Added CELL_GCM_CONTEXT_DMA_NOTIFY_MAIN_0+ enums.
Added CELL_GCM_CONTEXT_DMA_TO_MEMORY_GET_NOTIFY0+ enums.
Co-authored-by: Eladash <elad3356p@gmail.com>
2021-01-20 12:27:37 +03:00
Eladash
dbecf0fa50
Introducing RSX debugger entry (main debugger)
2021-01-19 22:55:12 +03:00
Nekotekina
db8e6fe7a7
Enable -Wunused-variable
2021-01-12 14:34:14 +03:00
kd-11
18c120ab9f
rsx: Revert an accidental deletion
2020-12-28 21:49:11 +03:00
kd-11
bee76fc8d1
rsx: Refactor shader codegen and fix shadow sampling on depth-float
2020-12-25 02:39:08 +03:00
Nekotekina
bd269bccaf
types.hpp: remove intrinsic includes
...
Replace v128 with u128 in some places.
Removed some unused files.
2020-12-21 21:11:25 +03:00
Nekotekina
eec11bfba9
Move align helpers to util/asm.hpp
...
Also add some files:
GLTextureCache.cpp
VKTextureCache.cpp
2020-12-18 18:07:42 +03:00
kd-11
235db57f0e
rsx: Do not reset vertex program texture mask when updating ucode analysis
...
- Fixes incorrect texture type detection in some games after program env/ucode separation
2020-12-17 09:36:20 +03:00
kd-11
fb1c790350
rsx: Make debug overlay dynamic
2020-12-16 10:10:06 +03:00
kd-11
f83c2f0b6b
rsx: Restructure and simplify some header include chains
2020-12-13 15:38:35 +03:00
kd-11
d775c8dc73
rsx: Move shader analysis+prefetch to the end of the draw call
2020-12-13 15:38:35 +03:00
Nekotekina
36c8654fb8
Remove HERE macro
...
Some cleanup.
Add location to some functions.
2020-12-10 12:30:22 +03:00
Nekotekina
5d934c8759
Improve narrow() and size32() with src_loc detection
2020-12-09 16:26:20 +03:00
Nekotekina
e055d16b2c
Replace verify() with ensure() with auto src location.
...
Expression ensure(x) returns x.
Using comma operator removed.
2020-12-09 15:43:38 +03:00
Eladash
2602be426f
Allow emulation to work without firmware ( #9367 )
...
* Allow emulation to work without firmware
* Fix HLE prx path detection.
* Fix manual list loading bugs.
* Fix HLE gcm
* GUI: Fix fonts search
* GUI: Hardcode sprx list
Do not depend on /dev_flash/sys/external/ contents.
2020-12-07 20:10:34 +03:00
Nekotekina
eb66302907
atomic.hpp: replace std::atomic with atomic_t
...
Dual dependency is nothing good.
2020-12-07 17:13:12 +03:00
kd-11
3a0b3a85a5
rsx: Separate program environment state from program ucode state
...
- Allows for conservative texture uploads
- Allows to update a program object without running full ucode analysis for no reason
2020-12-07 00:45:27 +03:00
RipleyTom
af8c661a64
Remove BOM markers
2020-12-06 15:30:12 +03:00
kd-11
2aa5c437e8
rsx: Fix upscaled image reconstruction
...
- Base the upscaling on the real source and not the "attr" parameter.
- In case of reconstruction, the source is much larger than the subslice in "attr"
2020-11-30 01:20:17 +03:00
kd-11
67f48ce21c
rsx: Fix uncaught depth-func changes
...
- Depth func of always or never usually disqualifies depth testing.
Invalidate contested surfaces when depth func is changed.
2020-11-30 00:46:36 +03:00
kd-11
3ddfa288cf
rsx: Use multithreaded shader compiler backend
2020-11-21 20:43:15 +03:00
kd-11
0e7a705254
rsx: Resolution scaling overhaul
...
- Enforce square pixels instead of per-axis scaling
2020-11-18 09:29:34 +03:00
Nekotekina
1c99a2e7fb
vm: add map_self() method to utils::shm
...
Add complementary unmap_self() method.
Move VirtualMemory to util/vm.hpp
Minor associated include cleanup.
Move asm.h to util/asm.hpp
2020-11-08 16:43:15 +03:00
Nekotekina
605d57c541
sys_event: cleanup (replace vm::temporary_unlock)
...
Also made minor changes in sys_rsx.cpp.
Removed unused exception std headers.
2020-10-30 17:49:07 +03:00
kd-11
18ca3ed449
rsx: Block-level reservation access
2020-10-25 20:21:04 +03:00
Nekotekina
306593a0c5
Revert "atomic.cpp: fixup for WaitOnAddress path"
...
This reverts commit 3b8bce1bed .
2020-10-21 09:54:22 +03:00
Nekotekina
3b8bce1bed
atomic.cpp: fixup for WaitOnAddress path
...
Also fix wait quantum.
2020-10-21 08:18:27 +03:00
kd-11
65ead08880
rsx: Refactor and improve image memory manipulation routines
2020-08-27 12:52:28 +03:00
kd-11
a5ac5a9861
rsx: Separate uint depth formats from float depth formats
2020-08-27 12:52:28 +03:00
kd-11
4df933275b
rsx: Propagate raster type of fbo sourced data throughout the pipeline.
...
- Tracks which kind of raster was done (Z-ordered vs linear) throughout the application.
- This allows to identify if data is in the expected format or not.
2020-08-02 16:14:11 +03:00
kd-11
ab3d36f0f3
rsx: Fix depth bounds test
...
- Allow depth bounds test to access the Z buffer even when depth test is disabled.
2020-07-10 15:59:15 +03:00
kd-11
3fe8499956
rsx: Improve ZCULL queued requests finalization
...
- Unifies the code
- Allows conditionals to be evaluated with a forwarder present
2020-07-05 16:58:44 +03:00
kd-11
c9c0d7361d
rsx: Implement fast ZCULL barrier when query object is already known
2020-07-02 20:11:57 +03:00
kd-11
d7ffc8b4ac
rsx: Fix leaking ZCULL queries after a barrier
...
- Multiple queries can be queued up, process them all before completing the barrier
2020-07-02 20:11:57 +03:00
kd-11
2e737ad483
rsx: Fix surface option invalidation
...
- Depth buffers can be in special "read" state when writes are disabled. Account for this.
2020-06-14 23:30:03 +03:00
Eladash
e2248332ae
rsx: Make "Disable ZCull Occlusion" setting dynamic
2020-06-14 18:45:46 +01:00
kd-11
3663a8ab4d
rsx: Improve surface options invalidation
2020-06-14 20:13:12 +03:00
kd-11
ce587f43a0
rsx: Implement signed normalized texture formats
...
- Already partially supported via EXP option in the shader opcode, but format decoding was disabled.
- Noticed in some UE3 games which use _SNORM variants on PC but _UNORM on rpcs3
2020-06-12 20:19:20 +03:00
kd-11
650152e05f
rsx: Fix fragment state updates
...
- Fix copypasta for POLYGON_STIPPLE_PATTERN vs SET_POLYGON_STIPPLE method binding
- Use proper enums for ROP_control bits to avoid confusion
2020-06-03 22:05:33 +03:00
kd-11
1677618c75
rsx: Implement stippled rendering
2020-05-30 14:47:10 +03:00
Nekotekina
7824419bbf
Remove std::rotr usage for now
...
It seems to be missing on some std implementations.
2020-05-14 21:42:44 +03:00
kd-11
a1b6415c5a
rsx: Fix alpha ref
...
- The alpha ref register is compared directly to the ROP output register in realhw
- alpha ref content must match bit-width of ROP register, which means fp16 values are possible
2020-05-08 00:02:47 +03:00
Megamouse
8f0af6a6fe
rsx/interpreter: merge shader settings
...
- merge disable_asynchronous_shader_compiler and interpreter_mode
- removes disable_asynchronous_shader_compiler setting
- Adds the resulting settings as radio buttons to the gui tab
2020-04-30 15:02:59 +03:00
Eladash
833ace1190
rsx: Fix zcull time to not time travel to the future
2020-04-28 21:07:15 +03:00
Megamouse
18219afbf7
Qt: move rsx capture to Utilities menu
2020-04-22 21:43:03 +02:00
Eladash
b94e4247cc
rsx: More strict zcull stats enabling
2020-04-21 16:18:32 +01:00
rexys
8f3b04cbd6
rsx: Fix is_fifo_idle with hle gcm
2020-04-16 12:59:19 +03:00
Megamouse
cf229a8e9f
some more dynamic settings
2020-04-15 18:25:25 +02:00
scribam
f37adc4188
Add fallthrough attribute
2020-04-14 17:06:58 +03:00
Nekotekina
4d8bfe328b
Replace rotate utils with std::rotl
...
More include cleanup.
2020-04-14 16:05:58 +03:00
Eladash
504ba8d824
rsx: Fix grammer issue (binded -> bound)
2020-04-11 21:21:15 +03:00
Eladash
8228fa1ece
sys_rsx: Warn if RSX is not idle during crucial points
2020-04-11 21:21:15 +03:00
Eladash
f7536bbce0
sys_rsx: Fix gcm events spam
...
In realhw the events are only sent if they are masked in driver_info->handlers as well.
2020-04-07 20:43:28 +03:00
Eladash
3f48450408
sys_rsx: Minor atomicity fixes
2020-04-07 20:43:28 +03:00
Eladash
e7d5d17fd8
rsx: Adjust FIFO recovery to be a bit more merciful
2020-04-05 17:40:23 +03:00
Eladash
c2c5005278
rsx: Fix and improve fp program data invalidation
2020-04-02 20:42:12 +03:00
Eladash
2ed370093e
rsx: Get rid of invalid_command_interrupt_raised
2020-04-02 20:42:12 +03:00
Eladash
9d971e3b07
rsx: More strict infinite desync detection
...
6 desyncs per second for 1.5 seconds is pretty bad already.
2020-03-26 17:52:45 +03:00
Eladash
38c8dd98b4
rsx: Implement basic infinite FIFO desync detection
2020-03-26 15:22:45 +03:00
Eladash
08e66ab14c
Minor warning fixes
2020-03-23 21:37:37 +03:00
Eladash
cccc32fa9d
sys_lwmutex/lwcond: track lwcond waiters ( #7826 )
...
In lwmutex destroy syscall, wait for pending waiters.
2020-03-23 10:30:17 +03:00
Eladash
f3877d11e8
rsx: Fix initial boolean state of m_textures_dirty and m_vertex_textures_dirty
2020-03-12 21:36:43 +01:00
Eladash
c04abac630
rsx capture: Fix exceptions handler, fix tiny race condition on capture new capture
2020-03-12 21:36:43 +01:00
Nekotekina
04dedb17eb
Disable exception handling.
...
Use -fno-exceptions in cmake.
On MSVC, enable _HAS_EXCEPTION=0.
Cleanup throw/catch from the source.
Create yaml.cpp enclave because it needs exception to work.
Disable thread_local optimizations in logs.cpp (TODO).
Implement cpu_counter for cpu_threads (moved globals).
2020-03-12 16:03:08 +03:00