eden/src/video_core/renderer_vulkan
Ghost c47f6615d3
[vk, opengl] Prevent GPU draw call if CBUF binding fails (cbuf0 error handling) (#2)
Add defensive checks to cancel draw calls early if any graphics storage buffer (CBUF) fails to bind properly.

- Modified BindGraphicsStorageBuffer to return false on invalid buffer ID.,
- ConfigureImpl (both OpenGL and Vulkan) now propagates binding failure.,
- Pipeline::Configure returns false if CBUF binding fails.,
- PrepareDraw cancels rendering if pipeline configuration fails.,

This avoids undefined GPU behavior, draw corruption, or crashes caused by uninitialized or invalid constant buffer (CBUF0) access, particularly in games with faulty or missing shader bindings.
Eden Collaborator: <edencollaborator@eden-emu.org>
Authored-by: CamilleLaVey <camillelavey@eden-emu.org>
Signed-off-by: Bix <bix@bixed.xyz>

Co-authored-by: Bix <114880614+Bixbr@users.noreply.github.com>
Co-authored-by: crueter <crueter@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2
Co-authored-by: Ghost <>
Co-committed-by: Ghost <>
2025-07-13 19:27:39 +02:00
..
present [VK] Rework SPIRV Shader Optimization (#238) 2025-07-03 01:13:33 +00:00
blit_image.cpp [frontend, web] refactor: web service frontend rewrite (#221) 2025-07-01 01:44:12 +00:00
blit_image.h Some fixes before Release (#92) 2025-05-08 23:03:52 +00: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 Vulkan 1.4 and New Extensions (#93) 2025-05-09 14:19:51 +00: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 [vk, frontend] RAII Toggle (#247) 2025-07-03 16:35:02 +00:00
renderer_vulkan.h Revert "THIS NEEDS TO BE CHECKED BEFORE MERGE: RAII fix, initial MSAA, some fixes for memory misallocation (#116)" 2025-05-19 15:22:08 -04:00
vk_blit_screen.cpp renderer: add area sampling scaling method (#201) 2025-06-21 13:35:04 +00: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 Revert some wip changes 2025-04-28 16:14:42 -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 [vk, opengl] Prevent GPU draw call if CBUF binding fails (cbuf0 error handling) (#2) 2025-07-13 19:27:39 +02:00
vk_graphics_pipeline.h [vk, opengl] Prevent GPU draw call if CBUF binding fails (cbuf0 error handling) (#2) 2025-07-13 19:27:39 +02: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 [VK] Rework SPIRV Shader Optimization (#238) 2025-07-03 01:13:33 +00:00
vk_pipeline_cache.h Optimize SpiriV output 2025-04-12 22:54:32 -03:00
vk_present_manager.cpp fix a large variety of issues (#101) 2025-05-11 23:58:25 +00:00
vk_present_manager.h fix a large variety of issues (#101) 2025-05-11 23:58:25 +00:00
vk_query_cache.cpp fix a large variety of issues (#101) 2025-05-11 23:58:25 +00:00
vk_query_cache.h SMMU: Initial adaptation to video_core. 2024-01-18 21:12:30 -05:00
vk_rasterizer.cpp [vk, opengl] Prevent GPU draw call if CBUF binding fails (cbuf0 error handling) (#2) 2025-07-13 19:27:39 +02:00
vk_rasterizer.h [vk] Add some dynamic handling in the pipeline (#142) 2025-06-16 22:36:30 +00: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 Revert some wip changes 2025-04-28 16:14:42 -03:00
vk_shader_util.h Revert some wip changes 2025-04-28 16:14:42 -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 [vk] Add some dynamic handling in the pipeline (#142) 2025-06-16 22:36:30 +00:00
vk_state_tracker.h [vk] Add some dynamic handling in the pipeline (#142) 2025-06-16 22:36:30 +00:00
vk_swapchain.cpp fix a large variety of issues (#101) 2025-05-11 23:58:25 +00:00
vk_swapchain.h fix a large variety of issues (#101) 2025-05-11 23:58:25 +00:00
vk_texture_cache.cpp Initial MSAA fix (Download and Upload) (#145) 2025-06-05 19:06:55 +00:00
vk_texture_cache.h Initial MSAA fix (Download and Upload) (#145) 2025-06-05 19:06:55 +00: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 Some fixes before Release (#92) 2025-05-08 23:03:52 +00: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