Commit graph

229 commits

Author SHA1 Message Date
kd-11
7ab1792ef7 rsx: Implement conditional locks 2017-08-06 14:29:42 +03:00
Jake
d9a693019b rsx/gcm: Implement rsx dma. Refactor gcm/rsx to not be as codependent 2017-08-02 01:33:12 +03:00
mp-t
607d2486ea Code review (#3114)
* Fix always-true conditions in sceNp module

* gl_render_targets: useless check on unsigned variable, possible bug

* fixed UB in crypto utility functions

* copy-paste error in vk::init_default_resources

* pass strings by const ref

* Dont copy vectors. Make sure copies are not needed because functions are used in a multi-threaded context.
2017-08-01 20:22:33 +03:00
kd-11
f613901eac gl/vk: Do not trust gcm buffer size to match internal rendering resolution
- Should fix games with strange scaling artifacts due to upscaling from lower resolutions
2017-07-27 14:33:30 +03:00
kd-11
4cd5624fa7 rsx/vk/gl: Refactoring - Also adds a vertex cache to openGL as well 2017-07-27 14:33:30 +03:00
kd-11
fb7ccbd7b4 vulkan: Workaround to avoid lockup due to double fault
- TODO: Ensure no page faults occur within a page-fault handler!
2017-07-27 14:33:30 +03:00
kd-11
dd19622823 vulkan: Texture cache rewritten - Use a map of vectors instead of a flat array 2017-07-27 14:33:30 +03:00
kd-11
46fa6e47fe rsx/vk: Vertex cache rewritten, add option to disable it as well
- Also enable SPU loop detection by default while were at it
2017-07-27 14:33:30 +03:00
kd-11
3b03f9a010 vulkan: Avoid double flushing if a texture is externally synchronized 2017-07-24 16:52:42 +03:00
kd-11
a24780fe5e vulkan: Avoid cache miss whenever possible if WCB is enabled 2017-07-24 16:52:42 +03:00
kd-11
425821863b vulkan; Add a weak vertex cache with single frame validity 2017-07-24 16:52:42 +03:00
kd-11
6557bf1b20 rsx: More aggressive thread scheduling for vertex processing
- Significantly helps vertex performance
- Not recommended as more threads will harm performance if the PC does not have the cores for it
2017-07-24 16:52:42 +03:00
kd-11
df8fa74e2a vulkan hotfix (#3046)
* Rework vertex attribute binding for vulkan. Allows always providing a buffer view to the pipeline even if the game has the attribute disabled as long as it is consumed by the vertex shader.
2017-07-22 01:54:28 +03:00
kd-11
2526626646 rsx: Surface cache bug fixes
- Properly handle data 'transfer' when recycling frame buffer images
- Clear 'recycled' surfaces before use
2017-07-19 23:28:33 +03:00
kd-11
94c1b74a17 fix build; restore asmjit reader_lock for now 2017-07-19 23:28:33 +03:00
kd-11
05ffb50037 vk/rsx: Bug fixes and improvements
- Improvements to framebuffer usage; Avoid creating new resources every frame
- Handle null fragment program properly
- Collect vertex upload statistics

- vk: Pre-initialize 'unused' varying registers in the vertex shader in case it gets matched with a fs that consumes it
 -- Fixes a crash about fog_c not being declared

gl/dx12/vk: Handle null fragment program

- cleanup - use yield semantic instead of sleep(0) as yield is more cross-platform
 -- sleep(0) is a windows specific scheduler hint
2017-07-19 23:28:33 +03:00
kd-11
f69121116a rsx/vk: Optimize framebuffer lifetime management
- Significant gains due to avoiding aggressive create-delete cycles every frame
2017-07-19 23:28:33 +03:00
raven02
2e47c42367 Add Stretch to Display Area option (#2961) 2017-07-08 16:06:11 +03:00
kd-11
9e7a42d057 rsx: Minor bug fixes
- vk: Do not select first available format when choosing a swapchain format
- gl/vk: Ignore rendering zero sized framebuffers/scissors
- fp: Re-enable range clamp on fp16 registers; fix fx12 clamping [-2, 2]
2017-07-08 14:52:16 +03:00
kd-11
c788331e45 vk: Fix layout transitions 2017-07-08 14:52:16 +03:00
kd-11
3d935b64f2 rsx/gl/vk: Enable contents transfer when a new framebuffer is created and not cleared 2017-07-08 14:52:16 +03:00
kd-11
e9b8f94fb1 rsx/gl/vk: Enable frame skipping 2017-07-08 14:52:16 +03:00
kd-11
b95ffaf4dd rsx: Implement skip draw. Also, start working on MT vertex upload 2017-07-08 14:52:16 +03:00
Zangetsu38
253e7a90b8 vk: add "add_signed" in blend op. 2017-06-30 18:40:40 +03:00
kd-11
a69f19a9ab rsx/decompilers: Avoid std::endl like the plague. It adds extra processing overhead 2017-06-29 13:13:19 +03:00
kd-11
3651e67a25 vk: Fix mapping of output colors to render target ranges 2017-06-29 13:13:19 +03:00
kd-11
1887e2460f rsx: Use loose memory protection on textures since they're almost guaranteed to be wholly moved when changing. Speedup. 2017-06-29 13:13:19 +03:00
kd-11
6e578c4fde rsx: Initialize declared but unset varying variables to all ones 2017-06-29 13:13:19 +03:00
kd-11
47e5074dc5 rsx: Emulated index buffers are based on vertex 0 with no disjoint ranges
- Drop the 'first' argument as it is unused for now
2017-06-29 13:13:19 +03:00
kd-11
72edf26fb8 rsx/gui: Add a strict mode toggle. Also reorganizes the graphics tab a bit
code cleanup
2017-06-22 23:36:15 +03:00
kd-11
28f3e9a65b vk: Move resource init/destroy to constructor and destructor 2017-06-22 23:36:15 +03:00
kd-11
590bb7cbe4 rsx: Bug fixes
rsx: Give more info when ring buffer allocations fail
2017-06-22 23:36:15 +03:00
kd-11
798f90dac2 rsx/ui: Make a few settings configurable via the GUI 2017-06-22 23:36:15 +03:00
kd-11
b2e906f4cc rsx: Code cleanup. Fixes several dozen warnings
- Wrap unused parameters as comments to prevent C1400
- Fix sized variable conversions with explicit casts
2017-06-22 23:36:15 +03:00
kd-11
13825c9ef7 vk: Proper shutdown to avoid destroying resources still in use 2017-06-22 23:36:15 +03:00
kd-11
6013b0782e vk: Avoid constantly reinitializing the SH context when compiling SPIRV. Speedup 2017-06-22 23:36:15 +03:00
kd-11
5f180e0b30 vk: Prefer optimal formats when clearing buffers 2017-06-22 23:36:15 +03:00
kd-11
86adc42739 rsx/gl/vk: Invert default stencil values
- Fixes stencil volume shadows in a few games. This is part of the surface invalidation workarounds
2017-06-22 23:36:15 +03:00
kd-11
98cf72e0fb rsx: Fix clip space computations 2017-06-22 23:36:15 +03:00
kd-11
75964c686f rsx/gl/vk: Fix some warnings and whitespace issues (LF vs CRLF) 2017-06-22 23:36:15 +03:00
kd-11
0cb6dee474 vk/gl: Do not sample currently bound render targets
- Create temporary copies for use with the draw call instead
2017-06-22 23:36:15 +03:00
kd-11
db1a90d828 rsx: Discard surface store contents once per frame (temp workaround)
Need to find the proper command issued to discard all surfaces
2017-06-22 23:36:15 +03:00
kd-11
110974af0b vk/gl: Fix sampling of shadow2D textures 2017-06-22 23:36:15 +03:00
kd-11
b50d5107b3 rsx/vk/gl: Minor fixes 2017-06-22 23:36:15 +03:00
kd-11
6a9eef0382 rsx/gl/vk: Enable use of native PCF shadows 2017-06-22 23:36:15 +03:00
kd-11
5f66d0b996 rsx/wip: Fix depth surface reuse and clearing (fixes shadows) 2017-06-22 23:36:15 +03:00
kd-11
701728ecd7 rsx: Fix depth-as-rgba read in fp 2017-06-22 23:36:15 +03:00
Jake
23d1ddbb8e Dx12/Vulk: Fix KernelBase.dll crash (#2870) 2017-06-13 11:36:42 +03:00
kd-11
9aa632bcc1 rsx/vk: Fixes for ring buffer allocation and image clipping (#2850) 2017-06-10 23:32:17 +03:00
kd-11
12da498001 vk: API bug fixes - Improve spec conformity
explicitly request anisotropic filtering and BC compression

clean up a leaking framebuffer handle reference when using debug overlay

Wait for device instead of queue to ensure no conflict during renderer shutdown

Clip scissor regions when doing surface clears
2017-06-08 19:08:44 +03:00