Commit graph

37 commits

Author SHA1 Message Date
kd-11
2ae9753d79 vk: Lazy register/derigeter of hot data 2025-06-25 23:06:04 +03:00
kd-11
ae74aa336f vk: Use write commands instead of copy commands to avoid dependencies 2025-06-25 23:06:04 +03:00
kd-11
20b54f3086 vk: Correctly initialize descriptor copy data 2025-06-25 23:06:04 +03:00
kd-11
aac4fbe941 vk: Fix graphical bugs and crashes 2025-06-25 23:06:04 +03:00
kd-11
356b2f5910 vk: Rewrite program binding management to use "separate shader objects" concept. 2025-06-25 23:06:04 +03:00
kd-11
4d493bbb80 vk: Fix build 2025-06-25 23:06:04 +03:00
kd-11
49729086ac vk: Move descriptor management to the pipeline layer
- Frees up callers from managing descriptors themselves (ewww)
- Makes descriptor reuse possible
- Opens up the door to techniques like descriptor_buffer by abstracting away management to an implementation detail
2025-06-25 23:06:04 +03:00
kd-11
4594c912a6
rsx: Move SPIRV stuff into common code 2024-03-27 19:20:21 +02: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
Megamouse
1f295bba5b VK: ReSharper warning fixes 2021-04-30 08:23:16 +02: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
d9eb31000d VK: refactoring part 1 2020-12-31 22:57:17 +03:00
Nekotekina
77352a2a86 Replace uint32_t with u32 2020-12-18 12:23:53 +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
b4bf48c33b vk: Integrate shader interpreter 2020-04-30 15:02:59 +03:00
Nekotekina
7a8772dafa Replace std::string::npos with umax 2020-03-05 14:05:23 +03:00
Nekotekina
15391f45d0 Modernize RSX logging (rsx_log variable) 2020-02-01 11:52:22 +03:00
kd-11
db5d03c340 vk: Generate dynamic binding table based on the capability of the drivers
- This alleviates constraints imposed on shaders to allow running on some not-so-great platforms.
2020-01-09 15:38:23 +03:00
kd-11
6a32f716db rsx: Reimplement vertex layout streaming
- Remove string comparisons from the hot-path!
- Use attribute streaming and push constants to avoid forcing a descriptor block copy every other draw call/pass.
  While this isn't so bad on nvidia cards, it makes AMD cards a slideshow.
2019-06-25 20:50:54 +03:00
kd-11
4a5bbba277 rsx: Enable MSAA
- vk: Enable depth buffer resolve+unresolve
- vk: Add AMD stenciling extension support
- rsx: Temporarily disables MSAA-compatible hacks such as transparency AA
- TODO: Add paths to optionally disable MSAA
2019-06-14 16:19:52 +03:00
kd-11
4b79ef1ad9 rsx: Implement stencil mirror views
- Implements a mirror view of D24S8 data that accesses the stencil components.
  Finishes the implementation of TEX2D_DEPTH_RGBA as the stencil component was previously missing from the reconstructed data
- Add a few missing destructors
  Image classes are inherited a lot and I forgot to make the dtors virtual
2018-12-24 09:05:19 +03:00
kd-11
1ad76ad331 rsx: Restructure programs
- Also re-enable pipeline optimizations
2018-11-30 23:51:25 +03:00
kd-11
2afcf369ec vk: Add synchronous compute pipelines
- Compute is now used to assist in some parts of blit operations, since there are no format conversions with vulkan like OGL does
- TODO: Integrate this into all types of GPU memory conversion operations instead of downloading to CPU then converting
2018-06-18 17:32:22 +03:00
kd-11
6a707f515e vk/gl: Factorize shared GLSL code
- prep vulkan for shared glsl backend
2017-08-16 23:58:30 +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
b95ffaf4dd rsx: Implement skip draw. Also, start working on MT vertex upload 2017-07-08 14:52:16 +03:00
kd-11
ba968048c9 vk: Minor fixes to vertex counting and lower exception to notice if var does not exist 2017-03-26 16:22:53 +03:00
kd-11
5b0fddd3e8 gl/vk: Fix stencil ops 2017-03-25 15:07:43 +03:00
Nekotekina
a7e808b35b EXCEPTION macro removed
fmt::throw_exception<> implemented
::narrow improved
Minor fixes
2016-08-08 19:19:32 +03:00
Vincent Lejeune
6f9f5f7918 vulkan: Create program in program_state_cache<>::build_pipeline 2016-03-21 22:10:34 +01:00
Vincent Lejeune
24eb544046 vulkan: Move descriptor sets and layout in VKGSRender class
They're now shared between all programs.
2016-03-18 00:08:28 +01:00
Vincent Lejeune
6229733fbb vulkan: Use a shared pipeline layout 2016-03-17 20:03:09 +01:00
Vincent Lejeune
63ad2cce72 vulkan: Use ring allocation for uniform/index buffers by using simpler memory_block and buffer class. 2016-03-15 22:03:24 +01:00
kd-11
bd52bcf8d4 Fix nvidia crash (API version). Fix linux builds
Properly set up vulkan API version when creating instance

Fix gcc error about passing function result by reference

Fix alot of warnings in VKGSRender project

More fixes for gcc

Fix texture create function
2016-03-10 23:55:25 +03:00
kd-11
3b6e3fb3b4 Rework vertex upload code and fix indexed renders
Rebase on current master; Refactor vertex upload code

Fix build; Minor fixes

Start preparations for merge

Fix generic indexed drawing bugs

Define WIN32_KHR only for windows

Remove linking against vulkan-1.lib
2016-03-10 23:55:25 +03:00