kd-11
a229e30b08
rsx: Implement RSX-compliant polygon offset
2022-10-11 14:00:34 +03:00
kd-11
d6d7ade6e3
vk: Reload state on dynamic state changed
2022-10-09 03:00:39 +03:00
kd-11
3c88477270
Fixup for scissor/viewport invalidation rules
2022-10-07 15:27:54 +03:00
kd-11
ffe8133865
vk: Avoid unnecessary dynamic state updates
2022-10-07 11:53:34 +03:00
kd-11
7140e82189
rsx: Fix program invalidation rules
2022-10-07 11:53:34 +03:00
Nekotekina
b49a1f27eb
Warning fixes
2022-09-17 16:35:02 +03:00
kd-11
f43824762a
rsx: Get rid of an allocation in analyse_vertex_data that adds about 5% overhead.
...
This method is called many thousands of times per frame and that single allocation introduces a small perf hit.
Just get rid of it, it doesn't improve anything to have it there.
2022-09-09 23:17:27 +03:00
kd-11
a401a192b8
Fixup for dst_stage
2022-08-19 14:29:20 +03:00
kd-11
71e35c8b4d
vk: Implement support for VK_EXT_attachment_feedback_loop_layout
2022-08-19 14:29:20 +03:00
kd-11
d846142f0c
vk: Reimplement compliant async texture streaming
...
- Use CONCURRENT queue access instead of fighting with queue acquire/release via submit chains.
The minor benefits of forcing EXCLUSIVE mode are buried under the huge penalty of multiple vkQueueSubmit.
Batching submits does not help alleviate this situation. We simply must avoid interrupting execution.
2022-07-25 21:05:31 +03:00
kd-11
1592ecdc55
rsx: Invalidate transform block on program change
...
- Since each program now does a remap of the outputs, we need to reupload the constants
- This is not a loss, constants are almost always changing between draw calls anyway
2022-03-26 16:10:18 +03:00
kd-11
9a2d4fe46b
rsx: Relocatable transform constants
2022-03-26 16:10:18 +03:00
kd-11
6812fa4764
rsx: Fix surface write coherency when MSAA is active
2022-03-08 22:06:26 +03:00
kd-11
83407c386c
vk: Move renderer types to a separate file
...
- Makes my life easier managing conflicts
2022-02-21 23:58:01 +03:00
kd-11
cef512a123
vk: Spec-compliant async compute
2022-02-13 14:39:42 +03:00
kd-11
2d9f21a2ea
rsx: Lower performance warnings to 'warn' level instead of 'error' level to avoid causing panic for users
2022-02-07 09:25:01 +03:00
kd-11
86919ec0e1
rsx: Validate requested images before attempting to upload them
...
- Do not allow dimensions of 0 to reach the backend APIs
2022-01-30 14:58:51 +03:00
kd-11
3942a464fe
vk: Avoid leaking descriptor copies
2022-01-20 19:21:24 +03:00
kd-11
2331dc3256
vk: Keep the total number of allocated samplers under control
2022-01-20 19:21:24 +03:00
kd-11
000ec71629
Fix invalid descriptor setup if subdraw0 has broken vertex setup
2022-01-17 12:38:10 +03:00
kd-11
4ed92f4155
vk: Fully allow CB change in emit_geometry
...
- upload_vertex_data can trigger a flush to CELL which will result in CB flush.
Ensure CB state is correctly reloaded in such a situation.
2021-10-20 12:05:39 +03:00
kd-11
381c7544fa
Optimize basic descriptor batching
2021-09-28 17:43:15 +03:00
kd-11
4752c4014b
vk: Implement basic descriptor updates batching
2021-09-28 17:43:15 +03:00
kd-11
7f830d555d
vk: Simplify texture cache OOM tracking a bit
2021-09-28 17:43:15 +03:00
Nick Renieris
47e784d5d0
gl/vk: Scale line width & point size by resolution scaling
2021-08-17 19:29:46 +03:00
kd-11
c54ddabe0b
vk: Handle out of memory errors that are deferred during texture binding
...
- Set out-of-memory flag if we have a failure to build a subresource.
- Mark textures as requiring reload in case of references to invalid data.
- TODO: This is overly complicated and can be handled better with a smart restructure.
2021-07-27 10:52:21 +03: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
568af756cc
rsx: Fix expired sampler descriptors
...
- Rebuilding when strict mode is enabled was incomplete.
The copy has to be redone if the source has been updated.
2021-06-06 15:37:47 +03:00
kd-11
9199b1b1d8
vk: Improve compatibility with sub-par drivers and hardware
...
- Adds workarounds for INTEL + MSAA
- Adds support for younger drivers where all features may not be
implemented.
Things that won't out-right break the emulation can be
disabled.
2021-05-30 22:35:34 +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
Megamouse
1f295bba5b
VK: ReSharper warning fixes
2021-04-30 08:23:16 +02:00
kd-11
585837a3f0
vk: Support new fxo usage pattern
2021-03-12 02:27:05 +03:00
kd-11
41f5158247
vk: Sync main pipe with async jobs if any
2021-03-12 02:27:05 +03:00
kd-11
d2993474fb
vk: Lazy-initialize image resource on first use when owned by a separate queue
2021-03-12 02:27:05 +03:00
kd-11
d459da1378
Formatting fixes only
...
- Mostly remove camelcase usage in old code.
- Properly annotate vulkan API imports with _vk prefix to make it clear they are not regular variables.
2021-02-23 23:22:41 +03:00
kd-11
c2cbc62be6
vk: Refactor some uber-headers
...
- VKHelpers was the rug everything was swept under for a long time.
This commit essentially deprecates its usage across most of the backend.
2021-01-10 12:04:31 +03:00
Megamouse
11db3151ae
VK refactoring Part 2 ( #9542 )
2021-01-05 10:49:03 +03:00
Eladash
7db13fdeff
rsx: Move Anisotropic Filter Override to RSX state
2020-12-30 15:37:21 +03:00
kd-11
e449111c33
vk: Fixup for renderpass issues
2020-12-19 12:58:44 +03:00
kd-11
0a865bd9dc
vk: Workaround for validation layers bug
2020-12-17 09:36:20 +03:00
kd-11
0ef5743261
rsx: Fix sampler descriptor updates for framebuffer resources
...
- Each desc manages its own lifetime now instead of relying on global timestamp check
- Fixes situation where same object remains active without update for long
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
b382d3b3e9
Remove ASSUME macro
...
It's dangerous and sometimes bluntly misused feature.
Its optimization potential is near-zero.
2020-12-10 14:08:02 +03:00
Nekotekina
36c8654fb8
Remove HERE macro
...
Some cleanup.
Add location to some functions.
2020-12-10 12:30:22 +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
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
d5f7e7b179
vk: Reimplement GPU query management
2020-10-06 12:02:53 +03:00