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 <>
9 months ago
lizzie
5091759a47
[vk, opengl] defer checks to topmost call (avoid unnecessary call) ( #40 )
Co-authored-by: crueter <crueter@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/40
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
9 months ago
Gamer64
a002730d68
[VK] Rework SPIRV Shader Optimization ( #238 )
The actual SPIRV Shader Optimization option doesn't seem to do anything as long as it isn't vinculed, so let's rework it to make it work
Co-authored-by: Gamer64 <76565986+Gamer64ytb@users.noreply.github.com>
Co-authored-by: echosys <echosys@noreply.localhost>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/238
9 months ago
JPikachu
2946cdbd2d
renderer: add area sampling scaling method ( #201 )
Adds Area Sampling to the list of scaling options. Works well to achieve a high-quality, smooth super-sampling effect. Dolphin has had this for a while and so has Ryujinx, so lui decided to port it.
Adapted from these two PRs:
https://github.com/Ryujinx/Ryujinx/pull/7304
https://github.com/dolphin-emu/dolphin/pull/11999
Credit: Torzu, lui
Reviewed-on: http://vub63vv26q6v27xzv2dtcd25xumubshogm67yrpaz2rculqxs7jlfqad.onion/torzu-emu/torzu/pulls/57
Co-authored-by: lui <lui@vub63vv26q6v27xzv2dtcd25xumubshogm67yrpaz2rculqxs7jlfqad.onion>
Co-committed-by: lui <lui@vub63vv26q6v27xzv2dtcd25xumubshogm67yrpaz2rculqxs7jlfqad.onion>
Co-authored-by: lui <lui@vub63vv26q6v27xzv2dtcd25xumubshogm67yrpaz2rculqxs7jlfqad.onion>
Co-authored-by: crueter <swurl@swurl.xyz>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/201
Co-authored-by: JPikachu <jpikachu.eden@gmail.com>
Co-committed-by: JPikachu <jpikachu.eden@gmail.com>
9 months ago
swurl
f786802b9b
User Data Migration from Citron, Sudachi, and Yuzu ( #91 )
Includes citron, sudachi, yuzu
currently broken, because the eden dir is always made early?
Signed-off-by: swurl <swurl@swurl.xyz>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/91
Co-authored-by: swurl <swurl@swurl.xyz>
Co-committed-by: swurl <swurl@swurl.xyz>
11 months ago
MrPurple666
b695ca5a2a
Revert some wip changes
11 months ago
Zephyron
991770b84f
build: fix linux compilation
- Removes unnecessary \ from Copyright Line Causing Linux Builds To Fail
Signed-off-by: Zephyron <zephyron@citron-emu.org>
1 year ago
Zephyron
c57a5fef92
WIP: Enhance shader compilation performance and control
This commit adds new settings and optimizations for shader compilation:
- Add new settings:
- use_enhanced_shader_building: Enable enhanced shader compilation
- shader_compilation_priority: Control shader compilation priority
- Improve shader compilation performance:
- Optimize worker thread allocation based on CPU cores
- Add smarter async shader compilation heuristics
- Prioritize vertex and fragment shader compilation
- Add performance tracking and logging
- Add performance monitoring:
- Track shader compilation times
- Log slow shader compilations
- Monitor async shader compilation statistics
This is a work in progress commit. Further optimizations and refinements
will be needed based on testing and feedback.
Signed-off-by: Zephyron <zephyron@citron-emu.org>
1 year ago
Pavel Barabanov
38737f26e5
Optimize SpiriV output
12 months ago
JPikachu
52eab40fc8
Implement LogicOP Workaround for Vulkan on AMD GPUs
This fixes black sewers in Paper Mario: TTYD
Credit: Antique - [Sudachi] Dev (https://sudachi.emuplace.app/ )
12 months ago
darktux
2032d035a3
Removed telemetry and anonymized SCM (git) strings
2 years ago
darktux
616619c8f7
Port changes from Early Access
2 years ago
liamwhite
a918ce6fe9
vk_rasterizer: flip scissor y on lower left origin mode ( #13122 )
2 years ago
Liam
71a6d3596a
renderer_opengl: declare geometry stream support in profile
2 years ago
FearlessTobi
4d55e58ee4
scope_exit: Make constexpr
Allows the use of the macro in constexpr-contexts.
Also avoids some potential problems when nesting braces inside it.
2 years ago
Liam
ba17a8c2b8
gpu: dependency-inject scaling/antialiasing filter state for capture layers
2 years ago
Liam
ce72818075
nvnflinger/gpu: implement applet capture
2 years ago
Liam
1c32e4157c
nvnflinger/gpu: implement blending
2 years ago
Liam
85abd0243e
video_core: defensively program around unmapped device pointers
2 years ago
Fernando Sahmkow
80d505b5cf
Buffer Cache: Refactor to use Range sets instead
2 years ago
Fernando Sahmkow
4d97c54676
VideoCore: Move Slot Vector to Common
2 years ago
Liam
5ec76db392
nvnflinger/gpu: implement layer stack composition
2 years ago
Liam
d2f98ce312
renderer_opengl: implement layer stack composition
2 years ago
Liam
2a314f9e2e
renderer_opengl: split up blit screen resources into antialias and window adapt passes
2 years ago
Liam
64eb14d45a
renderer_opengl: move out ownership of FSR resources
2 years ago
Liam
dbcfa26891
renderer_opengl: move out FSR shader source construction
2 years ago
Liam
bd9c228844
renderer_opengl: split out FXAA
2 years ago
Liam
5d9ae38249
renderer_opengl: split out SMAA
2 years ago
Liam
e8fa898313
renderer_opengl: isolate core presentation code
2 years ago
Liam
cd8049a5e2
video_core: consistently account for resolution scaling when rendering
2 years ago
Liam
84678c7014
video_core: simplify accelerated surface fetch and crop handling between APIs
2 years ago
Fernando Sahmkow
241c64e43b
Core: Eliminate core/memory dependancies.
2 years ago
Fernando Sahmkow
b206089ea7
Core: Clang format and other small issues.
2 years ago
Fernando Sahmkow
f11218a03e
SMMU: Implement physical memory mirroring
2 years ago
Fernando Sahmkow
9db159da71
SMMU: Initial adaptation to video_core.
2 years ago
Liam
a952270b5c
shader_recompiler: use float image operations on load/store when required
2 years ago
Ameer J
b09ab3540d
gl_device: Remove AMD blacklists that are no longer applicable
2 years ago
Ameer J
ecd92c9b2b
gl_rasterizer: Less spammy log for unimplemented resets
2 years ago
Ameer J
2fc6f3fcfd
gl_rasterizer: Implement DrawTransformFeedback macro
2 years ago
Ameer J
d5b1a5f27d
OpenGL: Add GL_PRIMITIVES_GENERATED and GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN queries
2 years ago
Ameer J
5fea802712
gl_rasterizer: Silence spammy logs
2 years ago
Ameer J
86b262e42d
gl_buffer_cache: Reintroduce NV_vertex_buffer_unified_memory
Workaround Nvidia drivers complaining when a buffer is bound as both a vertex buffer and transform feedback buffer
2 years ago
Liam
6611ba122b
shader_recompiler: ignore clip distances beyond driver support level
2 years ago
Ameer J
ede1dd9d8b
gl_buffer_cache: Fix tfb binding typo
2 years ago
Liam
eb10ce6fdd
renderer_opengl: remove srgb conversion logic
2 years ago
Liam
8a97178a89
renderer_vulkan: do not recreate swapchain for srgb
2 years ago
Liam
a0ed6c0653
vulkan_device: add names for more driverID enumeration values
2 years ago
Ameer J
9c3cc36abc
gl_buffer_cache: Batch vertex/tfb buffer binding
2 years ago
Ameer J
a3ba9c64d7
gl_graphics_pipeline: GLASM: Fix transform feedback attribs buffer mode
GL_SEPARATE_ATTRIBS only applies when multiple buffers are being used, else GL_INTERLEAVED_ATTRIBS handles the cases for a single buffer with potentially more than one attribute
2 years ago
GPUCode
4b853ff5cf
renderer_vulkan: Introduce separate cmd buffer for uploads
3 years ago