eden-miror/src/video_core/renderer_vulkan
Zephyron 34693001aa Add Windows support to Hybrid Memory Manager
This commit adds Windows-specific implementation of the fault-managed memory
system, providing similar functionality to the existing Linux/Android implementation.

Key changes:
- Added Windows-specific memory management using VirtualAlloc/VirtualFree
- Implemented Windows vectored exception handler for page fault handling
- Added proper memory protection and page fault handling on Windows
- Updated memory snapshot functionality to work on Windows
- Added proper cleanup of Windows-specific resources
- Fixed type conversion issues in memory management code
- Added proper error handling for Windows memory operations
- Fixed VRAM Memory Layout Mode to allow up to 12Gb

The implementation uses Windows-specific APIs:
- VirtualAlloc/VirtualFree for memory management
- AddVectoredExceptionHandler for page fault handling
- VirtualProtect for memory protection management

This change maintains feature parity with the Linux/Android implementation
while using Windows-native APIs for better performance and reliability.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-04-12 23:42:24 -03:00
..
present scope_exit: Make constexpr 2024-02-19 16:00:46 +01:00
blit_image.cpp video_core: Add new shader format conversion pipelines 2025-04-11 17:05:30 -03:00
blit_image.h video_core: Add new shader format conversion pipelines 2025-04-11 17:05:30 -03:00
fixed_pipeline_state.cpp Fix typos in video_core 2024-01-07 22:44:55 +00:00
fixed_pipeline_state.h Fix typos in video_core 2024-01-07 22:44:55 +00:00
maxwell_to_vk.cpp Implement X8_D24 format 2023-10-06 00:58:30 +01:00
maxwell_to_vk.h Update 3D regs 2022-10-07 14:13:45 +01:00
pipeline_helper.h Core: Eliminate core/memory dependancies. 2024-01-18 21:12:30 -05:00
pipeline_statistics.cpp Update fmt to allow for v11 2025-04-10 01:11:22 +02:00
pipeline_statistics.h general: Convert source file copyright comments over to SPDX 2022-04-23 05:55:32 -04:00
renderer_vulkan.cpp Add Windows support to Hybrid Memory Manager 2025-04-12 23:42:24 -03:00
renderer_vulkan.h feat(video_core): Implement HybridMemory for advanced Vulkan memory management 2025-04-12 23:41:26 -03:00
vk_blit_screen.cpp gpu: dependency-inject scaling/antialiasing filter state for capture layers 2024-02-09 09:20:53 -05:00
vk_blit_screen.h gpu: dependency-inject scaling/antialiasing filter state for capture layers 2024-02-09 09:20:53 -05:00
vk_buffer_cache.cpp VideoCore: Move Slot Vector to Common 2024-02-04 20:01:47 +01:00
vk_buffer_cache.h Buffer Cache: Refactor to use Range sets instead 2024-02-05 11:06:52 +01:00
vk_buffer_cache_base.cpp Buffer Cache: Fully rework the buffer cache. 2023-04-29 00:46:31 +02:00
vk_command_pool.cpp general: fix spelling mistakes 2023-03-12 11:33:01 -04:00
vk_command_pool.h general: Convert source file copyright comments over to SPDX 2022-04-23 05:55:32 -04:00
vk_compute_pass.cpp renderer_vulkan: Implement MSAA copies 2023-09-25 09:20:32 -04:00
vk_compute_pass.h renderer_vulkan: Implement MSAA copies 2023-09-25 09:20:32 -04:00
vk_compute_pipeline.cpp WIP: Enhance shader compilation performance and control 2025-04-12 23:37:11 -03:00
vk_compute_pipeline.h renderer_vulkan: separate guest and host compute descriptor queues 2023-05-10 13:46:48 -04:00
vk_descriptor_pool.cpp vk_descriptor_pool: Disallow descriptor set free 2023-07-27 18:08:56 +03:00
vk_descriptor_pool.h Rework time service to fix time passing offline. 2024-01-24 04:26:55 +00:00
vk_fence_manager.cpp Clang format and ddress feedback 2023-04-24 12:38:47 +02:00
vk_fence_manager.h Query Cache: address issues 2023-09-23 23:05:30 +02:00
vk_graphics_pipeline.cpp WIP: Enhance shader compilation performance and control 2025-04-12 23:37:11 -03:00
vk_graphics_pipeline.h renderer_vulkan: separate guest and host compute descriptor queues 2023-05-10 13:46:48 -04:00
vk_master_semaphore.cpp renderer_vulkan: Introduce separate cmd buffer for uploads 2023-11-12 20:27:39 +01:00
vk_master_semaphore.h renderer_vulkan: Introduce separate cmd buffer for uploads 2023-11-12 20:27:39 +01:00
vk_pipeline_cache.cpp WIP: Enhance shader compilation performance and control 2025-04-12 23:37:11 -03:00
vk_pipeline_cache.h Optimize SpiriV output 2025-04-12 22:54:32 -03:00
vk_present_manager.cpp renderer_vulkan: recreate swapchain when frame size changes 2024-01-16 16:09:39 -05:00
vk_present_manager.h renderer_vulkan: bound async presentation queue growth 2023-12-14 15:54:56 -05:00
vk_query_cache.cpp general: workarounds for SMMU syncing issues (#12749) 2024-02-27 15:42:15 +01:00
vk_query_cache.h SMMU: Initial adaptation to video_core. 2024-01-18 21:12:30 -05:00
vk_rasterizer.cpp Implement LogicOP Workaround for Vulkan on AMD GPUs 2025-04-08 19:17:28 +02:00
vk_rasterizer.h video_core: simplify accelerated surface fetch and crop handling between APIs 2024-01-31 11:27:20 -05:00
vk_render_pass_cache.cpp Get out of render pass before query barriers, fix image names with samples > 1, remove image alias bit 2023-10-11 17:15:35 +01:00
vk_render_pass_cache.h general: fix compile for Apple Clang 2022-11-22 22:22:28 -05:00
vk_resource_pool.cpp general: fix spelling mistakes 2023-03-12 11:33:01 -04:00
vk_resource_pool.h general: Convert source file copyright comments over to SPDX 2022-04-23 05:55:32 -04:00
vk_scheduler.cpp Vulkan: Add a final barrier to the upload command buffer 2023-11-12 20:58:30 +01:00
vk_scheduler.h Fix one more typo 2024-01-15 23:34:11 +00:00
vk_shader_util.cpp video_core: Enhance Vulkan shader compilation with async threading system 2025-04-12 23:39:24 -03:00
vk_shader_util.h video_core: Enhance Vulkan shader compilation with async threading system 2025-04-12 23:39:24 -03:00
vk_staging_buffer_pool.cpp Update fmt to allow for v11 2025-04-10 01:11:22 +02:00
vk_staging_buffer_pool.h renderer_vulkan: Introduce separate cmd buffer for uploads 2023-11-12 20:27:39 +01:00
vk_state_tracker.cpp renderer_vulkan: fix viewport swizzle dirty state tracking 2023-10-27 14:23:47 -04:00
vk_state_tracker.h Vulkan: rework stencil tracking. 2023-01-03 16:29:16 -05:00
vk_swapchain.cpp Simplify VkResult lookup 2024-01-22 03:10:43 +00:00
vk_swapchain.h renderer_vulkan: do not recreate swapchain for srgb 2023-12-03 16:43:54 -05:00
vk_texture_cache.cpp feat(vulkan): implement enhanced texture and shader management 2025-04-12 23:39:19 -03:00
vk_texture_cache.h feat(vulkan): implement enhanced texture and shader management 2025-04-12 23:39:19 -03:00
vk_texture_cache_base.cpp general: Convert source file copyright comments over to SPDX 2022-04-23 05:55:32 -04:00
vk_texture_manager.cpp feat(vulkan): implement enhanced texture and shader management 2025-04-12 23:39:19 -03:00
vk_texture_manager.h feat(vulkan): implement enhanced texture and shader management 2025-04-12 23:39:19 -03:00
vk_turbo_mode.cpp vk_descriptor_pool: Disallow descriptor set free 2023-07-27 18:08:56 +03:00
vk_turbo_mode.h android: vk_turbo_mode: Remove unnecessary device recreation. 2023-06-03 00:06:08 -07:00
vk_update_descriptor.cpp renderer_vulkan: Fix crashing when updating descriptors 2023-05-01 23:13:24 +03:00
vk_update_descriptor.h renderer_vulkan: allow up to 7 swapchain images 2023-12-16 18:59:44 -05:00