eden-miror/src/video_core/renderer_opengl
lizzie 2068b5d452
Some checks failed
tx-src / sources (push) Has been cancelled
Check Strings / check-strings (push) Has been cancelled
[vk] Clamp dynamic descriptors based on device limits (#4115)
Should fix this specific crash
```
* thread #82, name = 'GPU', stop reason = Exception 0xc0000005 encountered at address 0x7ff7e5193e89: Access violation reading location 0x00000098
  * frame #0: 0x00007ff7e5193e89 eden.exe`std::unique_ptr<Vulkan::Scheduler::CommandChunk,std::default_delete<Vulkan::Scheduler::CommandChunk> >::operator->(this=<unavailable>) at memory:3453 [inlined]
    frame #1: 0x00007ff7e5193e81 eden.exe`void Vulkan::Scheduler::DispatchWork(this=0x0000000000000000) at vk_scheduler.cpp:146
    frame #2: 0x00007ff7e5193d8f eden.exe`void Vulkan::Scheduler::WaitWorker(this=<unavailable>) at vk_scheduler.cpp:133
    frame #3: 0x00007ff7e54f472e eden.exe`void Vulkan::UpdateDescriptorQueue::Acquire(this=0x0000026c77cfb4b8) at vk_update_descriptor.cpp:41
    frame #4: 0x00007ff7e5537a43 eden.exe`void Vulkan::ASTCDecoderPass::Assemble(this=0x0000026c794fba10, image=0x0000026cfb794850, map=0x00000025e28fcb30, swizzles=<unavailable>) at vk_compute_pass.cpp:603
    frame #5: 0x00007ff7e55043e1 eden.exe`void Vulkan::TextureCacheRuntime::AccelerateImageUpload(this=<unavailable>, image=0x0000026cfb794850, map=0x00000025e28fcb30, swizzles=size=10, z_start=0, z_count=0) at vk_texture_cache.cpp:2482
    frame #6: 0x00007ff7e5516592 eden.exe`void VideoCommon::TextureCache<struct Vulkan::TextureCacheParams>::UploadImageContents<struct Vulkan::StagingBufferRef>(this=<unavailable>, image=0x0000026cfb794850, staging=0x00000025e28fcb30) at texture_cache.h:1147
    frame #7: 0x00007ff7e551523d eden.exe`void VideoCommon::TextureCache<struct Vulkan::TextureCacheParams>::RefreshContents(this=0x0000026c794fd800, image=0x0000026cfb794850, image_id=(index = 3801072224)) at texture_cache.h:1133
    frame #8: 0x00007ff7e5517b50 eden.exe`struct Common::SlotId VideoCommon::TextureCache<struct Vulkan::TextureCacheParams>::JoinImages(this=0x0000026c794fd800, info=<unavailable>, gpu_addr=25374426112, cpu_addr=2254181376) at texture_cache.h:1644
    frame #9: 0x00007ff7e5516ff6 eden.exe`struct Common::SlotId VideoCommon::TextureCache<struct Vulkan::TextureCacheParams>::InsertImage(this=0x0000026c794fd800, info=0x00000025e28fd270, gpu_addr=25374426112, options=0x0) at texture_cache.h:1513
    frame #10: 0x00007ff7e5516a60 eden.exe`struct Common::SlotId VideoCommon::TextureCache<struct Vulkan::TextureCacheParams>::FindOrInsertImage(this=0x0000026c794fd800, info=0x00000025e28fd270, gpu_addr=25374426112, options=0x0) at texture_cache.h:1194
    frame #11: 0x00007ff7e5515a13 eden.exe`struct Common::SlotId VideoCommon::TextureCache<struct Vulkan::TextureCacheParams>::CreateImageView(this=0x0000026c794fd800, config=0x00000025e28fd370) at texture_cache.h:1173
    frame #12: 0x00007ff7e550cd64 eden.exe`struct Common::SlotId VideoCommon::TextureCache<struct Vulkan::TextureCacheParams>::VisitImageView(this=0x0000026c794fd800, index=4586, compute=<unavailable>) at texture_cache.h:554
    frame #13: 0x00007ff7e550d181 eden.exe`void VideoCommon::TextureCache<struct Vulkan::TextureCacheParams>::FillImageViews(this=0x0000026c794fd800, views=size=5, compute=<unavailable>, blacklist=<unavailable>) at texture_cache.h:227
    frame #14: 0x00007ff7e58896e4 eden.exe`Vulkan::GraphicsPipeline::ConfigureImpl<Vulkan::(anonymous namespace)::SimpleStorageSpec>(this=0x0000026f865c1a60, is_indexed=<unavailable>) at vk_graphics_pipeline.cpp:415
    frame #15: 0x00007ff7e5889479 eden.exe`<lambda_1>::operator(pl=<unavailable>, is_indexed=<unavailable>) at vk_graphics_pipeline.h:123 [inlined]
    frame #16: 0x00007ff7e5889474 eden.exe`<lambda_1>::__invoke(pl=<unavailable>, is_indexed=<unavailable>) at vk_graphics_pipeline.h:123
    frame #17: 0x00007ff7e519d2a8 eden.exe`Vulkan::GraphicsPipeline::Configure(this=0x0000026f865c1a60, is_indexed=<unavailable>) at vk_graphics_pipeline.h:105 [inlined]
    frame #18: 0x00007ff7e519d29d eden.exe`Vulkan::RasterizerVulkan::PrepareDraw<`lambda at D:\a\g\g\eden-source\src\video_core\renderer_vulkan\vk_rasterizer.cpp:256:29'>(this=0x0000026c764f9368, is_indexed=<unavailable>, draw_func=0x00000025e28fdb80) at vk_rasterizer.cpp:244
    frame #19: 0x00007ff7e519d1db eden.exe`void Vulkan::RasterizerVulkan::Draw(this=<unavailable>, is_indexed=<unavailable>, instance_count=<unavailable>) at vk_rasterizer.cpp:256
    frame #20: 0x00007ff7e50d9025 eden.exe`void Tegra::HLE_DrawIndexedIndirect::Fallback(this=0x0000026f2af85118, maxwell3d=0x0000026ccbf9eb00, parameters=size=6) at macro.cpp:178
    frame #21: 0x00007ff7e50d8f21 eden.exe`void Tegra::HLE_DrawIndexedIndirect::Execute(this=0x0000026f2af85118, maxwell3d=0x0000026ccbf9eb00, parameters=size=6) at macro.cpp:129
    frame #22: 0x00007ff7e50db607 eden.exe`Tegra::MacroEngine::Execute::<lambda_0>::operator(this=0x00000025e28fde70, acm= Active Type = Tegra::HLE_DrawIndexedIndirect ) at macro.cpp:1362
    frame #23: 0x00007ff7e50dada0 eden.exe`void Tegra::MacroEngine::Execute(this=0x0000026ccbfaa020, maxwell3d=0x0000026ccbf9eb00, method=418, parameters=<unavailable>) at macro.cpp:1392
    frame #24: 0x00007ff7e4ef062b eden.exe`void Tegra::Engines::Maxwell3D::CallMacroMethod(this=0x0000026ccbf9eb00, method=<unavailable>, parameters=<unavailable>) at maxwell_3d.cpp:390
    frame #25: 0x00007ff7e4ef04be eden.exe`void Tegra::Engines::Maxwell3D::ProcessMacro(this=0x0000026ccbf9eb00, method=<unavailable>, base_start=<unavailable>, amount=5, is_last_call=<unavailable>) at maxwell_3d.cpp:223
    frame #26: 0x00007ff7e4ef1673 eden.exe`void Tegra::Engines::Maxwell3D::CallMultiMethod(this=<unavailable>, method=<unavailable>, base_start=0x000001ea398e22f4, amount=<unavailable>, methods_pending=5) at maxwell_3d.cpp:419
    frame #27: 0x00007ff7e4ef535a eden.exe`void Tegra::DmaPusher::CallMultiMethod(this=<unavailable>, base_start=0x000001ea398e22f4, num_methods=<unavailable>) const at dma_pusher.cpp:201
    frame #28: 0x00007ff7e4ef5023 eden.exe`void Tegra::DmaPusher::ProcessCommands(this=0x0000026ccbfba698, commands=size=36) at dma_pusher.cpp:120
    frame #29: 0x00007ff7e4ef4ced eden.exe`bool Tegra::DmaPusher::Step(this=0x0000026ccbfba698) at dma_pusher.cpp:88
    frame #30: 0x00007ff7e4ef49f8 eden.exe`void Tegra::DmaPusher::DispatchCalls(this=0x0000026ccbfba698) at dma_pusher.cpp:40
    frame #31: 0x00007ff7e4ede797 eden.exe`void Tegra::Control::Scheduler::Push(this=<unavailable>, channel=-493895072, entries=0x00000025e28fe2e0) at scheduler.cpp:31
    frame #32: 0x00007ff7e4eedc7b eden.exe`VideoCommon::GPUThread::ThreadManager::StartThread::<lambda_0>::operator(this=<unavailable>, stop_token=stop_token @ 0x00000025e28ffb40) at gpu_thread.cpp:42 [inlined]
    frame #33: 0x00007ff7e4eedae8 eden.exe`std::invoke(_Obj=<unavailable>, _Arg1=0x0000026ccb3edef0) at type_traits:1680 [inlined]
    frame #34: 0x00007ff7e4eedac1 eden.exe`std:🧵:_Invoke<std::tuple<`lambda at D:\a\g\g\eden-source\src\video_core\gpu_thread.cpp:29:27',std::stop_token>,0,1>(_RawVals=0x0000026ccb3edef0) at thread:60
    frame #35: 0x00007ff8e87a37b0 ucrtbase.dll`wcsrchr + 336
    ```

Signed-off-by: lizzie <lizzie@eden-emu.dev>

Co-authored-by: CamilleLaVey <camillelavey99@gmail.com>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4115
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
2026-06-30 04:33:30 +02:00
..
present [opengl] remove leftover invalid uniform 2ui being sent every frame x every fb (doesnt exist on opengl_present.frag) (#3358) 2026-01-21 00:12:18 +01:00
blit_image.cpp [meta] fix license headers (#2547) 2025-09-21 21:58:59 +02:00
blit_image.h video_core: Implement maxwell3d draw texture method 2023-01-05 12:41:28 +08:00
gl_blit_screen.cpp [video_core/host_shaders] add Snapdragon GSRv1 fragment shaders (#3307) 2026-05-24 01:38:19 +02:00
gl_blit_screen.h gpu: dependency-inject scaling/antialiasing filter state for capture layers 2024-02-09 09:20:53 -05:00
gl_buffer_cache.cpp [meta] fix license headers (#2547) 2025-09-21 21:58:59 +02:00
gl_buffer_cache.h [*] change all std::unordered_map and std::unordered_set into ankerl::unordered_dense::map/set variants (#3442) 2026-02-10 03:34:07 +01:00
gl_buffer_cache_base.cpp Buffer Cache: Fully rework the buffer cache. 2023-04-29 00:46:31 +02:00
gl_compute_pipeline.cpp [video_core] fix redundant resize-copy overload and just use default-init resize, to reduce stutter on Mario BP (#3874) 2026-05-29 03:28:47 +02:00
gl_compute_pipeline.h shaders: Track local memory usage 2023-06-25 18:59:33 -04:00
gl_device.cpp [opengl] query GL_MAX_CLIP_DISTANCES instead of hardcoding 8 (#4095) 2026-06-15 04:30:40 +02:00
gl_device.h [opengl] query GL_MAX_CLIP_DISTANCES instead of hardcoding 8 (#4095) 2026-06-15 04:30:40 +02:00
gl_fence_manager.cpp OpenGL: Prefer glClientWaitSync for OGLSync objects 2023-03-08 20:29:25 -05:00
gl_fence_manager.h Fence Manager: implement async fence management in a sepparate thread. 2023-04-23 04:48:50 +02:00
gl_graphics_pipeline.cpp [video_core] fix redundant resize-copy overload and just use default-init resize, to reduce stutter on Mario BP (#3874) 2026-05-29 03:28:47 +02:00
gl_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
gl_query_cache.cpp Core: Clang format and other small issues. 2024-01-18 21:12:30 -05:00
gl_query_cache.h Core: Clang format and other small issues. 2024-01-18 21:12:30 -05:00
gl_rasterizer.cpp [video_core] fix redundant resize-copy overload and just use default-init resize, to reduce stutter on Mario BP (#3874) 2026-05-29 03:28:47 +02:00
gl_rasterizer.h renderer_opengl: isolate core presentation code 2024-01-31 11:27:20 -05:00
gl_resource_manager.cpp [meta] remove MicroProfile (#185) 2025-08-06 07:48:11 +02:00
gl_resource_manager.h gl_rasterizer: Implement DrawTransformFeedback macro 2023-12-19 19:54:57 -05:00
gl_shader_cache.cpp [vk] Clamp dynamic descriptors based on device limits (#4115) 2026-06-30 04:33:30 +02:00
gl_shader_cache.h [spirv] nuke spirv-opt (#3877) 2026-04-25 21:54:27 +02:00
gl_shader_context.h video_core: preallocate fewer IR blocks 2023-06-14 21:37:57 -04:00
gl_shader_manager.cpp OpenGL: Limit lmem warmup to NVIDIA 2023-06-25 19:06:51 -04:00
gl_shader_manager.h OpenGL: Add Local Memory warmup shader 2023-06-25 18:43:23 -04:00
gl_shader_util.cpp [common/logging] Simplify logging logic and fix issues when logging before system is created (#3688) 2026-03-12 18:29:15 +01:00
gl_shader_util.h chore: make yuzu REUSE compliant 2022-07-27 12:53:49 +02:00
gl_staging_buffer_pool.cpp [cmake] enable clang-cl and WoA builds (#348) 2025-09-09 20:47:49 +02:00
gl_staging_buffer_pool.h gl_texture_cache: Enable async downloads 2023-08-13 23:17:59 -05:00
gl_state_tracker.cpp [video_core, hle] remove redundant parent references in system structs (#3908) 2026-06-23 06:31:25 +02:00
gl_state_tracker.h [meta] fix license headers (#2547) 2025-09-21 21:58:59 +02:00
gl_texture_cache.cpp [clang, opengl] fix opengl build on PGO build and clang-cl on windows (#3332) 2026-01-18 02:35:57 +01:00
gl_texture_cache.h [*] change all std::unordered_map and std::unordered_set into ankerl::unordered_dense::map/set variants (#3442) 2026-02-10 03:34:07 +01:00
gl_texture_cache_base.cpp general: Convert source file copyright comments over to SPDX 2022-04-23 05:55:32 -04:00
maxwell_to_gl.h [vk, opengl] macro-ify PixelSurface and SurfaceFormat lists (#3060) 2025-12-30 21:30:34 +01:00
renderer_opengl.cpp [common/logging] Simplify logging logic and fix issues when logging before system is created (#3688) 2026-03-12 18:29:15 +01:00
renderer_opengl.h [common] replace Common::BitCast with libc++ provided one (#2774) 2025-10-22 02:56:28 +02:00
util_shaders.cpp gl 2023-08-06 14:54:57 -04:00
util_shaders.h OpenGL: Make use of persistent buffer maps in buffer cache downloads 2023-05-28 00:38:46 -04:00