kd-11
7b9fb7ad9c
rsx: refactor rsx_utils a bit
...
- Move obviously standalone things to their own utility files
2021-09-28 17:43:15 +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
6f901636bf
rsx: Fix vertical windows' clip
2021-07-18 13:44:23 +02:00
kd-11
194bfc54d1
rsx: Implement dynamic vertex offset updates
...
- Vertex offsets can be updated mid-draw to dynamically render different meshes without breaking up draws
2021-06-30 10:07:33 +03:00
kd-11
2c7c1c501d
rsx: Implement support for extended vertex programs
...
- Some games are kinda pushing it with RSX register space and spilling VP data into adjacent unused space.
2021-06-28 10:52:05 +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
Nekotekina
7dae376646
Implement fill_array() utility
2021-04-19 12:33:32 +03: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
Nekotekina
b3fb6d7d18
Add and fix -Wredundant-decls (GCC)
2021-03-23 22:48:57 +03:00
Nekotekina
fb29933d3d
Add usz alias for std::size_t
2020-12-18 12:23:53 +03:00
kd-11
f83c2f0b6b
rsx: Restructure and simplify some header include chains
2020-12-13 15:38:35 +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
RipleyTom
af8c661a64
Remove BOM markers
2020-12-06 15:30:12 +03:00
kd-11
3c43d8fe05
rsx: Fix execution barrier insertion
...
- In case of element re-arrangement, the barrier should obey the current insertion pointer
2020-09-04 09:34:13 +03:00
kd-11
a5ac5a9861
rsx: Separate uint depth formats from float depth formats
2020-08-27 12:52:28 +03:00
kd-11
182b20c33d
rsx: Fix draw count append when draw ranges are out of order
...
- It is common for draw counts to truncate at 256 even when it makes no sense to do so.
- e.g 256 is not a multiple of 3 so triangles will glitch out
2020-07-14 16:04:44 +03:00
kd-11
1677618c75
rsx: Implement stippled rendering
2020-05-30 14:47:10 +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
Eladash
72c0aed4c1
rsx: Reset vertex program/constants at each boot
2020-04-02 20:42:12 +03:00
Eladash
c2c5005278
rsx: Fix and improve fp program data invalidation
2020-04-02 20:42:12 +03:00
Eladash
d97e9f7b4a
rsx: Batch vertex program load methods
2020-04-02 20:42:12 +03:00
Eladash
158e34faca
rsx: Reset all method registers at rsx_state::init()
2020-03-25 17:51:59 +03:00
gamerforEA
c0fbf3091e
Remove unnamed namespaces from headers
2020-02-27 00:38:55 +03:00
Eladash
9690854e58
Some cleanup
...
* Prefer default initializer over std::memset 0 when possible and more readable.
* Use std::format in trophy files name obtaining.
* Use vm::ptr<>::operator bool() instead of comparing vm::ptr to vm::null or using addr().
* Add a few std::memset calls in hle where it matters (or in some places just to document an actual firmware memcpy call).
2019-12-31 22:27:27 +03:00
Nekotekina
28eacc616a
C-style cast cleanup III
2019-12-01 00:32:44 +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
kd-11
df63de8f16
rsx: Allow u32 restart index with full index width
2019-11-04 16:56:34 +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
kd-11
2962e05f26
rsx: Implement per-RTT color masks
...
- Also refactors and simplifies some common code in surface store and rsx core
2019-08-27 21:59:02 +03:00
kd-11
3e28e4b1e0
rsx/decompiler: Restructure program register behavior
...
- Fix reading of varying registers in FP
Different registers have different behavior
- Always write to varying registers. If a register is not written to, it is initialized to (0, 0, 0, 1)
- Reimplements two-sided lighting correctly without hacks
- Also bumps shader cache version
2019-08-26 20:03:31 +03:00
kd-11
f9aea076ae
rsx: Implement depth_buffer_float support.
...
- Since this is transparent to the application at all time, it only becomes a problem when doing memory transfer or DEPTH->RGBA conversion in shaders.
2019-08-26 20:03:31 +03:00
Nekotekina
b9130dd663
Remove redundant const on return value in rsx_methods.h
2019-07-09 12:09:21 +03:00
Eladash
d57b4dc8f3
rsx: Refactor rsx_decode.h and bugfixes
2019-07-09 11:52:34 +03:00
scribam
44265aa27d
rsx: Apply Clang-Tidy fix "modernize-use-equals-default"
2019-06-12 15:11:52 +03:00
kd-11
3a4e3fa53a
rsx: Fix use-after-modify condition when inserting a draw command out of order
...
- Fixes barrier->range rebase after the insert
2019-03-22 21:27:15 +03:00
kd-11
f4ebcb0029
rsx: Properly decode packed renders from the type flag
...
- Seems to occupy bits [8-9]
2019-03-10 16:09:05 +03:00
kd-11
417a2e6731
rsx: Refactor index buffers
...
- Index offset is ignored anyway and only used to calculate vertex attribute divisor index
- Specialized optimization for untouched xfer without primitive restart
2019-01-25 14:34:22 +03:00
eladash
835a552d8d
rsx: Implement cellGcmSetNotify
2018-12-15 19:40:18 +03:00
eladash
fa5652fceb
rsx image_in: Implement negative scaling
2018-12-04 13:01:29 +03:00
eladash
6ecf2fb3d0
rsx: default lv2 semaphore context + dma_4097
...
extracted from vsh
2018-12-04 13:01:29 +03:00
kd-11
504ab5a6d4
rsx: Minor cleanup to silence stupid compiler warnings
2018-12-03 20:01:23 +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
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
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
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
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
eladash
a8ea576b22
rsx/cellgcm: Implemet initialization registers reset
2018-09-20 01:05:40 +03:00