Zephyron
d7a3c585ae
fix(dma): allow pipelined transfers to prevent assertion failures
...
Remove strict assertion on data_transfer_type and allow PIPELINED
transfers (treating them as NON_PIPELINED). Some games like Marvel
Cosmic Invasion use pipelined transfers, causing crashes.
Fixes assertion at maxwell_dma.cpp:76
Signed-off-by: Zephyron <zephyron@citron-emu.org >
2025-12-13 12:16:07 +10:00
Zephyron
7db12d7e80
video_core: MCI boot fixes and DMA multisized components support
...
Add workarounds for Marvel Cosmic Invasion boot issues:
- Skip first 2 compute dispatches (xbzk@eden-emu.dev )
- Clamp staging buffers to 2GB to prevent Vulkan failures (xbzk@eden-emu.dev )
- Validate staging buffer sizes before uploads (xbzk@eden-emu.dev )
Also improve DMA engine to support multisized components (1-4 bytes)
instead of hardcoded 4-byte components.
Co-authored-by: xbzk <xbzk@eden-emu.dev >
Signed-off-by: Zephyron <zephyron@citron-emu.org >
2025-12-13 09:49:04 +10:00
Zephyron
34800248cc
fix(video_core): Replace assertions with warnings in Fermi2D and BSD sockets
...
- Fermi2D: Log warnings for unsupported operations, layers, depth, and clip
- BSD sockets: Return INVAL for unimplemented getsockopt optnames instead of SUCCESS
Co-authored-by: JPikachu <jpikachu.eden@gmail.com >
Signed-off-by: Zephyron <zephyron@citron-emu.org >
2025-12-08 17:03:51 +10:00
Zephyron
9090a24c2e
feat: add Low GPU Accuracy setting for maximum performance
...
Implements a new "Low" GPU accuracy level that prioritizes performance
over accuracy by aggressively cutting corners in GPU emulation.
Changes:
- Add GpuAccuracy::Low enum and setting infrastructure
- Implement IsGPULevelNormal() helper function
- Skip texture cache checks and query operations
- Use unsafe memory reads for DMA operations
- Disable fence delays and query precision
- Add UI support for desktop (Qt) and Android
Performance optimizations:
- Skips texture cache coherency checks (vk/gl_rasterizer.cpp)
- Non-blocking query synchronization (query_cache.h)
- Unsafe memory operations (dma_pusher.cpp)
- No macro parameter refresh (maxwell_3d.cpp)
- Immediate fence signaling (fence_manager.h)
- Non-precise Vulkan queries (vk_query_cache.cpp)
Ideal for lower-end hardware and users prioritizing FPS over accuracy.
Works on both desktop and Android platforms.
Signed-off-by: Zephyron <zephyron@citron-emu.org >
2025-10-01 21:45:23 +10:00
liamwhite
b2e129eaa5
vk_rasterizer: flip scissor y on lower left origin mode ( #13122 )
2024-02-27 15:40:33 +01:00
FearlessTobi
310c1f50be
scope_exit: Make constexpr
...
Allows the use of the macro in constexpr-contexts.
Also avoids some potential problems when nesting braces inside it.
2024-02-19 16:00:46 +01:00
Fernando S
58cf2ee1f9
Merge pull request #12761 from liamwhite/mp-composite
...
video_core: rewrite presentation for layer composition
2024-02-02 15:08:06 +01:00
Fernando Sahmkow
5cb9fe7819
SwBlitter: Fix Pitch linear reading/writting
2024-01-31 23:02:10 +01:00
Liam
9bdf09bd76
renderer_vulkan: implement layer stack composition
2024-01-31 11:27:21 -05:00
Fernando Sahmkow
23430e6772
Core: Eliminate core/memory dependancies.
2024-01-18 21:12:30 -05:00
Fernando Sahmkow
590d9b7e1d
Core: Clang format and other small issues.
2024-01-18 21:12:30 -05:00
Fernando Sahmkow
0a2536a0df
SMMU: Initial adaptation to video_core.
2024-01-18 21:12:30 -05:00
Viktor Szépe
53085a45e0
Fix typos in video_core
2024-01-07 22:44:55 +00:00
Fernando Sahmkow
d07397931a
MaxwellDMA: Don't flush the outputs of a dma copy.
2023-12-31 21:00:01 +01:00
Ameer J
db8a601cf8
OpenGL: Add GL_PRIMITIVES_GENERATED and GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN queries
2023-12-19 17:32:31 -05:00
Fernando Sahmkow
ae60a5657e
Buffer Cache: Eliminate clears on Indirect buffers
2023-11-18 19:26:14 +01:00
Ameer J
feb60de5c3
shader_recompiler: Fix spelling of "derivate" ( #12067 )
2023-11-18 13:39:47 +01:00
Kelebek1
32ad99701d
Implement vertex array first and subsequent draws
2023-10-14 12:09:35 +01:00
Fernando Sahmkow
2fea1b8407
Query Cache: Fix guest side sample counting
2023-09-23 23:05:30 +02:00
Fernando Sahmkow
282ae8fa51
Query Cache: address issues
2023-09-23 23:05:30 +02:00
Fernando Sahmkow
57401589c2
Macro HLE: Add DrawIndirectByteCount
2023-09-23 23:05:29 +02:00
Fernando Sahmkow
f1a2e36711
Query Cachge: Fully rework Vulkan's query cache
2023-09-23 23:05:29 +02:00
Kelebek1
4f69be8169
Fix DMA engine register offsets
2023-09-21 20:21:00 +01:00
liamwhite
76bddd3673
Merge pull request #11383 from FernandoS27/are-you-a-wabbit
...
Fix regressions that damaged compute indirect & use reinterpret for copies with different byteblocksizes
2023-09-02 14:42:42 -04:00
Fernando Sahmkow
52544933d2
Maxwell3D: Improve Index buffer size estimation.
2023-08-27 22:14:37 +02:00
Fernando Sahmkow
115792158d
VideoCore: Implement DispatchIndirect
2023-08-27 04:26:22 +02:00
Liam
023b9b38cc
general: fix apple clang build
2023-08-09 22:38:37 -04:00
Kelebek1
6f7cb69c94
Use spans over guest memory where possible instead of copying data.
2023-07-02 23:09:48 +01:00
Morph
5a09fa5012
maxwell_dma: Specify dst_operand.pitch instead of a temp var
2023-06-30 21:49:59 -04:00
Kelebek1
ffbaf574ca
Use safe reads in DMA engine
2023-06-26 11:34:02 +01:00
Kelebek1
5da70f7197
Remove memory allocations in some hot paths
2023-06-22 08:05:10 +01:00
Feng Chen
b77a247e8c
video_core: drawtexture support upscale
2023-06-16 20:51:15 +08:00
bunnei
befd477279
android: video_core: Disable some problematic things on GPU Normal.
2023-06-03 00:06:00 -07:00
Kelebek1
bf08bc3c0f
Allow Fermi blit accelerate to add src/dst to the cache if they don't exist already. Use ScratchBuffers in the software blit path.
2023-05-11 06:42:38 +01:00
Fernando Sahmkow
8014dd8259
Texture cache: Only force flush the dma downloads
2023-05-07 23:46:12 +02:00
Fernando Sahmkow
c6cac2ffaa
GPU: Add Reactive flushing
2023-05-07 23:46:12 +02:00
Fernando Sahmkow
56c9730a16
Maxwell3D: only update parameters on High
2023-04-29 00:18:21 +02:00
Fernando S
2311fa7c84
Merge pull request #10069 from liamwhite/log
...
maxwell_3d: fix out of bounds array access in size estimation
2023-04-24 12:36:24 +02:00
Liam
eb7c2314f6
maxwell_3d: fix out of bounds array access in size estimation
2023-04-22 10:35:26 -04:00
Kelebek1
4e14b64bfc
Account for a pre-added offset when using Corner sample mode for 2D blits
2023-04-21 19:08:21 +01:00
Feng Chen
ff2089fdf5
video_core: Keep the definition of DimensionControl consistent with nvidia open doc
2023-03-31 12:33:07 +08:00
liamwhite
638044820d
Merge pull request #9943 from vonchenplus/gentleman
...
video_core: Fix inline_index and draw_texture error
2023-03-13 13:45:17 -04:00
Liam
600f325d87
general: fix spelling mistakes
2023-03-12 11:33:01 -04:00
FengChen
4e42ba54e5
video_core: Invalid index_buffer flag when inline_index draw
2023-03-12 13:21:26 +08:00
Fernando Sahmkow
8a3411b417
Engines: Implement Accelerate DMA Texture.
2023-03-05 12:18:00 +01:00
bunnei
889bfce447
Merge pull request #9802 from Kelebek1/wait_data_cache
...
Re-add the invalidate_texture_data_cache register
2023-02-16 12:27:24 -08:00
Kelebek1
3b50906f00
Reimplement the invalidate_texture_data_cache register
2023-02-14 19:34:10 +00:00
arades79
683019878f
remove static from pointer sized or smaller types for aesthetics, change constexpr static to static constexpr for consistency
...
Signed-off-by: arades79 <scravers@protonmail.com >
2023-02-14 12:35:39 -05:00
arades79
45e13b03f3
add static lifetime to constexpr values to force compile time evaluation where possible
...
Signed-off-by: arades79 <scravers@protonmail.com >
2023-02-14 12:33:11 -05:00
liamwhite
475370c8f8
Merge pull request #9556 from vonchenplus/draw_texture
...
video_core: Implement maxwell3d draw texture method
2023-01-19 14:58:53 -05:00