Commit graph

1989 commits

Author SHA1 Message Date
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
eladash
37b6afaf2c rsx: inlined array stride fix 2018-11-11 23:17:07 +03:00
eladash
75221a6078 rsx: Fix inlined vertex array validation 2018-11-04 22:57:18 +03:00
eladash
fb30c8a937 rsx enums: fix typos 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
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
eladash
5ee351234c rsx-capture: unbreak 2018-10-23 18:02:03 +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
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
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
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
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
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