emufan4568
67c20e04b4
shader_disk_cache: Remove precompiled cache
...
* Serves little purpose at this point and complicates things. Maybe readd later?
2022-08-10 00:04:03 +03:00
emufan4568
609e32e317
rasterizer: Use std::ranges::transform everywhere
2022-08-09 20:34:47 +03:00
emufan4568
2397c82b85
video_core: Commonise rasterizer class
...
* Also added some comments providing some details about attribute loaders
2022-08-09 18:56:14 +03:00
emufan4568
1ded25f68b
video_core: Initial port of shader cache
...
* Need to add backend specific loading
2022-08-09 01:31:35 +03:00
emufan4568
39ca721cac
rasterizer_cache: Return a framebuffer handle from GetFramebufferSurfaces
2022-08-08 14:48:55 +03:00
emufan4568
2d4f762db1
video_core: Commonise rasterizer cache
2022-08-08 14:24:47 +03:00
emufan4568
810df95b81
video_core: Rewrite to backend system
...
* Still doesn't build this is just a massive code dump from all the recent progress
2022-08-08 00:00:52 +03:00
emufan4568
ff9b0dfe2f
global: Fix some warnings
2022-07-21 10:17:34 +03:00
GPUCode
d51c720392
arm_exclusive_monitor: Properly qualify friend class
...
* Otherwise we get compile errors on compilers that are not MSVC
2022-07-21 00:20:36 +03:00
GPUCode
2d8aded953
CMakeLists: Make SDL2 compilation conditional
...
* vcpkg fails to compile SDL2 on MinGW, so better fetch the package from the environment first
2022-07-20 23:58:45 +03:00
GPUCode
8feafd2ac5
common: Include algorithm in log.h
...
* Good job MSVC for giving the worst and most cryptic error message
2022-07-20 21:22:57 +03:00
emufan4568
94696de2b2
vcpkg: Bootstrap before installing packages
2022-07-19 16:23:18 +03:00
emufan4568
371387b44f
externals: Remove unused submodules
2022-07-17 11:59:00 +03:00
emufan4568
d8d14491dd
cmake: Bump minimum required CMake version
2022-07-17 10:03:42 +03:00
emufan4568
6b890987c4
vcpkg: Rework dependency installation
...
* Manifest mode is very convient but doesn't provide the flexibility we
need. The main issue is that there is no way to conditionally install
libraries. To bypass this we can invoke vcpkg directly using a helper
function vcpkg_add_package that installs the library when invoked.
2022-07-17 09:41:41 +03:00
emufan4568
5338e2e3a3
vcpkg: Force static linkage on windows
2022-07-16 19:52:40 +03:00
emufan4568
6b8931c899
cmake: Bump Qt to 5.12.12 LTS
2022-07-16 18:59:46 +03:00
emufan4568
5cad914b73
vcpkg: Fine tune required ffmpeg dependecies
2022-07-16 16:35:46 +03:00
emufan4568
d865780291
vcpkg: Dont't build Qt from source
...
* Currently vcpkg has no mechanism of consistently handling prebuilt
libraries. This means that large libraries like Qt need special
treatment
2022-07-16 16:32:51 +03:00
emufan4568
60f0269569
core: Replace boost::optional with std::optional
2022-07-16 15:10:22 +03:00
emufan4568
ceadee0358
renderer_vulkan: Fix swapchain creation on Win32
2022-07-15 21:34:36 +03:00
SachinVin
a9b96789d7
Core: Port Exclusive memory impl from yuzu
2022-07-15 20:14:15 +03:00
SachinVin
79379f21a4
Common: Add CPU feature detection for ARM64
2022-07-15 20:13:27 +03:00
emufan4568
0e98fb3780
dynarmic: Update dynarmic to upstream
...
* Citra's fork of dynarmic is getting old quite fast and accumulating
technical debt which gets harder and harder to account for as time
goes on. So to have the access to the latest and greatest features we
need to use the upstream version which yuzu also uses. This requires
some extra patches which are contained in the following commits.
2022-07-15 20:06:51 +03:00
emufan4568
d373d74804
vk_shader_gen: Switch shader compiler to glslang
...
* shaderc is notoriously hard to link to and often causes link errors.
glslang seems to work better and is a smaller library overall so
that's a win for the backend.
2022-07-15 19:02:41 +03:00
emufan4568
a9436e01ca
tests: Update test suite for Catch2 3.0.1
2022-07-15 17:17:18 +03:00
emufan4568
e7a6af73c1
renderer_vulkan: Fix type in Win32 surface creation
2022-07-15 16:43:54 +03:00
emufan4568
9850c23a03
cmake: Adjust link libraries to vcpkg produced targets
2022-07-15 16:43:51 +03:00
liushuyu
55e5c4edc9
logging: adapt to changes in fmt 8.1
2022-07-15 16:10:12 +03:00
emufan4568
f990a842da
vcpkg: Enable all glad extensions
2022-07-15 08:48:30 +03:00
emufan4568
b5e4ec35e3
Introduce vcpkg for dependency management
...
* Manually including libraries into the project while a perfectly acceptable solution
leads to slow updates and large maintainance costs. To address this
shortcoming we are introducing a package manager namely vcpkg into the
codebase to handle the download and build of most external dependencies. Conan
was also considered but vcpkg was chosen due to the centralized nature
of the project. To achieve the integration the CMake configuration has
been altered but not by much:
1. Packages handled by vcpkg have been moved from
externals/CMakeLists.txt to the root one to make them available to
all subdirectories.
2. In addition now find_package is used in accordance to the vcpkg
recommendations.
3. All libraries built by vcpkg have been updated to their latest
available version, except for Qt because our codebase isn't
compatible with Qt 6.0 yet.
Currently there are build issues caused by the fmtlib upgrade.
Another question is how to handle large libraries like Qt, Boost and
SDL2 which will be addressed in a later commit.
2022-07-14 18:42:33 +03:00
emufan
b1b61683f2
renderer_vulkan: Fix surface creation
2022-07-04 11:54:01 +03:00
emufan
bbb4f1b040
renderer_vulkan: Fix broken synchronization
...
* The GPU was always 1 tick ahead, making all wait operations nops.
2022-07-03 23:51:19 +03:00
emufan
5f942fb4c9
renderer_vulkan: Drop dependency on Vulkan-SDK
...
* Dynamically fetch vulkan function pointers and checkout Vulkan-Headers.
This way we are not tied by the installed SDK version
2022-07-03 20:38:46 +03:00
emufan
7c72060662
renderer_vulkan: Drop VK prefix
...
* All the classes are in the Vulkan namespace, thus making it superfluous
2022-07-03 16:47:59 +03:00
emufan
5b918cb535
renderer_vulkan: Cleanup unused functions in renderer
2022-07-03 16:44:23 +03:00
emufan
61932f9a6c
renderer_vulkan: Include Vulkan memory allocator
2022-07-03 16:39:23 +03:00
emufan
8a2cc15cd1
Fix some C++ 20 warnings
2022-06-24 10:37:22 +03:00
emufan
18cc68c687
renderer_vulkan: Fix mipmap generation
2022-06-19 12:44:44 +03:00
emufan
69bde2b13b
renderer_vulkan: Fix culling related issues
2022-06-19 00:09:02 +03:00
emufan
816a846cfb
renderer_vulkan: Fix texture allocation and destruction logic
2022-06-18 15:04:15 +03:00
emufan
4dd4f2170d
renderer_vulkan: 2D shapes demo fully functional now
2022-06-16 17:48:03 +03:00
emufan
0eff9ad215
renderer_vulkan: Surface fills and dual screen rendering working
2022-06-16 11:51:23 +03:00
emufan
d4b88ac158
renderer_vulkan: Texture management fixes
2022-06-15 22:34:02 +03:00
emufan
ed9000d0ec
renderer_vulkan: Fix many validation errors
2022-06-14 14:29:52 +03:00
emufan4568
a657ef33e6
More fixes
2022-06-13 16:34:19 +03:00
emufan4568
87db7a6888
Successful build
2022-06-12 18:06:00 +03:00
emufan4568
ba6795b6cc
Refactor Vulkan state and pipeline builders
2022-06-08 00:41:19 +03:00
GPUCode
a6fc19d7d9
renderer_vulkan: Initial rasterizer cache vulkan port
2022-05-30 08:03:49 +03:00
GPUCode
06cecba63f
renderer_vulkan: Include pipeline builder class and finish VulanState
2022-05-20 11:02:25 +03:00