lizzie
b75e81af5e
[video_core/engines] implement stub NV01 timer, inline other channel engines ( #3640 )
...
Signed-off-by: lizzie <lizzie@eden-emu.dev >
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3640
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com >
Reviewed-by: DraVee <chimera@dravee.dev >
Co-authored-by: lizzie <lizzie@eden-emu.dev >
Co-committed-by: lizzie <lizzie@eden-emu.dev >
2026-03-06 15:05:39 +01:00
lizzie
c70b857c4f
[video_core/engines] Macro HLE inline ( #3653 )
...
Should slightly boost perf on android, Desktop is mainly unaffected (for now)
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3653
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com >
Reviewed-by: DraVee <chimera@dravee.dev >
Co-authored-by: lizzie <lizzie@eden-emu.dev >
Co-committed-by: lizzie <lizzie@eden-emu.dev >
2026-03-06 15:04:38 +01:00
lizzie
a8093c2a3c
[*] change all std::unordered_map and std::unordered_set into ankerl::unordered_dense::map/set variants ( #3442 )
...
mainly doing this to reduce memory footprint; we all know how nice ankerl::unordered_dense is
in theory 4x faster - in practice these maps arent that "hot" anyways so not likely to have much perf gained
i just want to reduce mem fragmentation to ease my porting process, plus it helps other platforms as well (ahem weak Mediatek devices) :)
Signed-off-by: lizzie <lizzie@eden-emu.dev >
Co-authored-by: Caio Oliveira <caiooliveirafarias0@gmail.com >
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3442
Reviewed-by: DraVee <dravee@eden-emu.dev >
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com >
Co-authored-by: lizzie <lizzie@eden-emu.dev >
Co-committed-by: lizzie <lizzie@eden-emu.dev >
2026-02-10 03:34:07 +01:00
lizzie
83a28dc251
[common, core] remove uneeded memory indirection overhead at startup ( #3306 )
...
for core stuff:
just remove unique ptrs that dont need any pointer stability at all (afterall its an allocation within an allocation so yeah)
for fibers:
Main reasoning behind this is because virtualBuffer<> is stupidly fucking expensive and it also clutters my fstat view
ALSO mmap is a syscall, syscalls are bad for performance or whatever
ALSO std::vector<> is better suited for handling this kind of "fixed size thing where its like big but not THAT big" (512 KiB isn't going to kill your memory usage for each fiber...)
for core.cpp stuff
- inlines stuff into std::optional<> as opposed to std::unique_ptr<> (because yknow, we are making the Impl from an unique_ptr, allocating within an allocation is unnecessary)
- reorganizes the structures a bit so padding doesnt screw us up (it's not perfect but eh saves a measly 44 bytes)
- removes unused/dead code
- uses std::vector<> instead of std::deque<>
no perf impact expected, maybe some initialisation boost but very minimal impact nonethless
lto gets rid of most calls anyways - the heavy issue is with shared_ptr and the cache coherency from the atomics... but i clumped them together because well, they kinda do not suffer from cache coherency - hopefully not a mistake
this balloons the size of Impl to about 1.67 MB - which is fine because we throw it in the stack anyways
REST OF INTERFACES: most of them ballooned in size as well, but overhead is ok since its an allocation within an alloc, no stack is used (when it comes to storing these i mean)
Signed-off-by: lizzie lizzie@eden-emu.dev
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3306
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com >
Reviewed-by: MaranBr <maranbr@eden-emu.dev >
Co-authored-by: lizzie <lizzie@eden-emu.dev >
Co-committed-by: lizzie <lizzie@eden-emu.dev >
2026-01-16 23:39:16 +01:00
lizzie
191e4c75a1
[meta] fix license headers ( #2547 )
...
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2547
Reviewed-by: MaranBr <maranbr@eden-emu.dev >
Co-authored-by: lizzie <lizzie@eden-emu.dev >
Co-committed-by: lizzie <lizzie@eden-emu.dev >
2025-09-21 21:58:59 +02:00
lizzie
9d2681ecc9
[cmake] enable clang-cl and WoA builds ( #348 )
...
Compilation and CMake fixes for both Windows on ARM and clang-cl, meaning Windows can now be built on both MSVC and clang on both amd64 and aarch64.
Compiling on clang is *dramatically* faster so this should be useful for CI.
Co-authored-by: crueter <crueter@eden-emu.dev >
Co-authored-by: crueter <crueter@crueter.xyz >
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/348
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com >
Reviewed-by: crueter <crueter@eden-emu.dev >
Co-authored-by: lizzie <lizzie@eden-emu.dev >
Co-committed-by: lizzie <lizzie@eden-emu.dev >
2025-09-09 20:47:49 +02:00
Viktor Szépe
e895ebb546
Fix typos in video_core
2024-01-07 22:44:55 +00:00
Fernando Sahmkow
5ea12207f3
Query Cachge: Fully rework Vulkan's query cache
2023-09-23 23:05:29 +02:00
Feng Chen
c7675caf71
video_core: Keep the definition of DimensionControl consistent with nvidia open doc
2023-03-31 12:33:07 +08:00
Feng Chen
79268b94de
video_core: Implement maxwell3d draw texture method
2023-01-05 12:41:28 +08:00
Fernando Sahmkow
1fdf24a081
Video_core: Address feedback
2023-01-04 14:39:42 -05:00
Fernando Sahmkow
efd5661978
Vulkan: rework stencil tracking.
2023-01-03 16:29:16 -05:00
Fernando Sahmkow
e6e49e584f
MacroHLE: Final cleanup and fixes.
2023-01-01 16:43:58 -05:00
Fernando Sahmkow
4bf1ee5bdc
DMAPusher: Improve collection of non executing methods
2023-01-01 16:43:57 -05:00
Fernando Sahmkow
d2643a61c3
Revert Buffer cache changes and setup additional macros.
2023-01-01 16:43:57 -05:00
Fernando Sahmkow
12a76465b9
MacroHLE: Reduce massive calculations on sizing estimation.
2023-01-01 16:43:57 -05:00
Fernando Sahmkow
7842543573
MacroHLE: Add HLE replacement for base vertex and base instance.
2023-01-01 16:43:57 -05:00
Fernando Sahmkow
209ce46a9f
MacroHLE: Add Index Buffer size estimation.
2023-01-01 16:43:57 -05:00
Fernando Sahmkow
b4fcb0b2b2
MacroHLE: Refactor MacroHLE system.
2023-01-01 16:43:57 -05:00
Fernando Sahmkow
b5b0ec9429
MacroHLE: Implement DrawIndexedIndirect & DrawArraysIndirect.
2023-01-01 16:43:57 -05:00
Feng Chen
ad05d9fe1e
video_core: Implement maxwell3d draw manager and split draw logic
2022-12-08 10:12:19 +08:00
liamwhite
dc25fddedb
Merge pull request #9353 from vonchenplus/draw_indexed
...
video_core: Fine tuning the index drawing judgment logic
2022-12-03 10:43:34 -05:00
Feng Chen
f7e82d2fd6
video_core: Fine tuning the index drawing judgment logic
2022-12-01 19:14:58 +08:00
Lioncash
a3ed3c8340
maxwell_3d: Mark shifted value as unsigned
...
Otherwise this is technically creating a signed int result that gets
converted. Just a consistency change.
While we're in the area, we can mark Samples() as const.
2022-11-29 08:39:33 -05:00
Lioncash
0d9c723df4
engines: Remove unnecessary casts
...
In a few cases we have some casts that can be trivially removed.
2022-11-29 08:38:46 -05:00
FengChen
607a965c57
video_core: Optimize maxwell drawing trigger mechanism
2022-11-22 17:53:26 +08:00
Liam
e219606128
maxwell3d: full HLE for multi-layer clears
2022-11-17 08:31:43 -05:00
Liam
bc9a3c2033
maxwell3d: HLE multi-layer clear macro
2022-11-16 22:28:58 -05:00
Kelebek1
a5b76126e1
Fix regs regression with OpenGL two-sided stencil, and re-add data invalidation reg
2022-11-11 04:04:36 +00:00
Morph
fc301cf777
ir/texture_pass: Use host_info instead of querying Settings::values ( #9176 )
2022-11-11 03:32:53 +01:00
FengChen
2636c9f876
video_core: Fix drawing trigger mechanism regression
2022-10-27 13:26:52 +08:00
FengChen
f9f995c56a
video_core: Implement maxwell inline_index method
2022-10-22 16:58:23 +08:00
FengChen
8eed4e7ee5
video_coare: Reimplementing the maxwell drawing trigger mechanism
2022-10-21 17:09:22 +08:00
Morph
6e9ed95246
renderer_(opengl/vulkan): Fix tessellation clockwise parameter
...
This should be assigned CW only on Triangles_CW rather than not Triangles_CCW, making CCW the default winding order rather than CW.
2022-10-13 15:52:56 -04:00
Kelebek1
bc29a3a188
Fix stencil func registers, make clip control equivalent to how it was before, but surely wrong.
2022-10-10 20:59:57 +01:00
Kelebek1
37845e1228
Update 3D regs
2022-10-07 14:13:45 +01:00
Liam
c1771c98f3
common: Change semantics of UNREACHABLE to unconditionally crash
2022-06-13 20:09:00 -04:00
Billy Laws
a1216cfeee
Maxwell3D: Fix 3D semaphore counter type 0 handling
...
Counter type 0 actually releases the semaphore payload rather than a constant zero as was previously thought. This is required by Skyrim.
2022-06-02 21:46:38 +01:00
Morph
2b87305d31
general: Convert source file copyright comments over to SPDX
...
This formats all copyright comments according to SPDX formatting guidelines.
Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
2022-04-23 05:55:32 -04:00
Liam
3bffb0464b
maxwell3d: add small_index_2 register
2022-04-14 09:57:06 -04:00
ameerj
b837219423
video_core: Reduce unused includes
2022-03-19 15:01:31 -04:00
Fernando S
387c4c4dee
Merge pull request #8023 from ameerj/kirby-pop-in
...
maxwell_3d: Implement a safer CB data upload
2022-03-16 12:14:08 +01:00
ameerj
fc50392101
maxwell_3d: Implement a safer CB data upload
...
This makes constant buffer uploads safer and more accurate by updating the GPU memory as soon as the CB Data method is invoked. The previous implementation was deferring the updates until a different maxwell 3d method was detected, then writing all CB data at once.
2022-03-14 19:18:36 -04:00
byte[]
7c081ca937
Maxwell3D: Link to override constant definition in nouveau
2022-03-14 11:06:25 -04:00
Liam
6202688c91
Maxwell3D: Use override constants from nouveau
...
This fixes some incorrect rendering in Sunshine
2022-03-14 10:11:58 -04:00
Liam
db6b7f70b7
Maxwell3D: Restrict topology override effect to after the register is set
2022-03-11 19:42:12 -05:00
Liam
de42319556
Maxwell3D: read small-index draw and primitive topology override registers
...
This allows Galaxy and Sunshine to render for the first time.
2022-03-10 19:21:04 -05:00
Fernando Sahmkow
9ebf1c00bd
Rasterizer: Refactor inlineToMemory.
2022-02-01 01:47:28 +01:00
Fernando Sahmkow
19270ae4e6
Rasterizer: Implement Inline2Memory Acceleration.
2022-01-29 22:53:27 +01:00
ameerj
f222d1e4ce
common/logging: Move Log::Entry declaration to a separate header
...
This reduces the load of requiring to include std::chrono in all files which include log.h
2021-10-01 20:48:49 -04:00