aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/macro
Commit message (Collapse)AuthorAgeFilesLines
* [common, core] remove uneeded memory indirection overhead at startup (#3306)lizzie2026-01-168-2017/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* [port] NetBSD and improper ctor for SpinLock fixes (#3092)lizzie2025-11-301-1/+11
| | | | | | | | | | | | | | | So when libc starts it has to start at an entry point located into crt0, now most OSes will do "enough" setup to allow mprotect() and mmap() to be called in static ctors (remember they're called BEFORE main) By some stupid miracle, NetBSD doesn't; this means that using those functions on NetBSD will result in spurious results The reason why is still unknown to me, but this is also combined with the fact that allocating a big chunk of memory for the JIT will make NetBSD refuse to mprotect()/mmap() it in low memory situations (even when space is available); so I take the same approach as with solaris Also I now make it so fastmem handlers are NOT registered for OSes that disabled fastmem, this is because they pollute sigsegv and makes debugging stupidier Signed-off-by: lizzie lizzie@eden-emu.dev Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3092 Reviewed-by: Caio Oliveira <caiooliveirafarias0@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>
* [meta] fix license headers (#2547)lizzie2025-09-211-0/+3
| | | | | | | 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>
* [cmake] enable clang-cl and WoA builds (#348)lizzie2025-09-091-1/+1
| | | | | | | | | | | | | | 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>
* [meta] remove MicroProfile (#185)crueter2025-08-063-15/+9
| | | | | | Signed-off-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/185 Reviewed-by: Lizzie <lizzie@eden-emu.dev>
* User Data Migration from Citron, Sudachi, and Yuzu (#91)swurl2025-05-081-1/+1
| | | | | | | | | | | | 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>
* externals: Downgrade dynarmic to `ae99622` and xbyak to `0d67fd15`; modify ↵Briar2025-04-041-2/+2
| | | | ABI parameter handling in macro_jit_x64.cpp
* scope_exit: Make constexprFearlessTobi2024-02-191-4/+4
| | | | | Allows the use of the macro in constexpr-contexts. Also avoids some potential problems when nesting braces inside it.
* gl_rasterizer: Implement DrawTransformFeedback macroAmeer J2023-12-191-2/+5
|
* Macro HLE: Add DrawIndirectByteCountFernando Sahmkow2023-09-231-5/+30
|
* Query Cachge: Fully rework Vulkan's query cacheFernando Sahmkow2023-09-231-0/+24
|
* Mark decompiled macros as decompiled on dump, dump shaders after translationKelebek12023-08-251-8/+16
|
* video_core/macro: Make use of Common::HashValueMorph2023-03-251-3/+3
|
* MacroHLE: eliminate 2 rushed macros.Fernando Sahmkow2023-01-051-42/+0
|
* yuzu-ui: Add setting for disabling macro HLEFernando Sahmkow2023-01-041-4/+5
|
* Video_core: Address feedbackFernando Sahmkow2023-01-042-109/+249
|
* video_core: fix buildLiam2023-01-011-1/+2
|
* MacroHLE: Final cleanup and fixes.Fernando Sahmkow2023-01-011-70/+28
|
* DMAPusher: Improve collection of non executing methodsFernando Sahmkow2023-01-011-0/+3
|
* Revert Buffer cache changes and setup additional macros.Fernando Sahmkow2023-01-012-7/+120
|
* MacroHLE: Add HLE replacement for base vertex and base instance.Fernando Sahmkow2023-01-011-59/+56
|
* MacroHLE: Add Index Buffer size estimation.Fernando Sahmkow2023-01-011-7/+13
|
* MacroHLE: Refactor MacroHLE system.Fernando Sahmkow2023-01-014-113/+345
|
* MacroHLE: Implement DrawIndexedIndirect & DrawArraysIndirect.Fernando Sahmkow2023-01-011-16/+29
|
* MacroHLE: Add MultidrawIndirect HLE Macro.Fernando Sahmkow2023-01-011-26/+27
|
* video_core: Implement maxwell3d draw manager and split draw logicFeng Chen2022-12-081-52/+17
|
* Merge pull request #9252 from liamwhite/radv-superioritybunnei2022-11-191-1/+15
|\ | | | | maxwell3d: HLE multi-layer clear macro
| * maxwell3d: full HLE for multi-layer clearsLiam2022-11-171-11/+5
| |
| * maxwell3d: HLE multi-layer clear macroLiam2022-11-161-1/+21
| |
* | Add break for default casesKyle Kienapfel2022-11-132-0/+3
|/ | | | | | | | | | | Visual Studio has an option to search all files in a solution, so I did a search in there for "default:" looking for any missing break statements. I've left out default statements that return something, and that throw something, even if via ThrowInvalidType. UNREACHABLE leads towards throw R_THROW macro leads towards a return
* Initial ARM64 supportLiam2022-11-091-0/+3
|
* video_coare: Reimplementing the maxwell drawing trigger mechanismFengChen2022-10-213-32/+19
|
* Update 3D regsKelebek12022-10-071-24/+24
|
* VideoCore: Add option to dump the macros.Fernando Sahmkow2022-10-061-0/+1
|
* Merge pull request #9005 from liamwhite/micro-fitbunnei2022-10-041-11/+5
|\ | | | | macro_jit_x64: cancel exit for taken branch
| * macro_jit_x64: cancel exit for taken branchLiam2022-10-011-11/+5
| |
* | Merge pull request #9010 from liamwhite/buttwisebunnei2022-10-041-37/+9
|\ \ | | | | | | macro_jit_x64: fix miscompilation of bit extraction operations
| * | macro_jit_x64: fix miscompilation of bit extraction operationsLiam2022-10-011-37/+9
| |/
* / MacroHLE: Add MultidrawIndirect HLE Macro.Fernando Sahmkow2022-10-011-1/+62
|/
* general: fix compilation on MinGW GCC 12Liam2022-06-131-1/+1
|
* common: Change semantics of UNREACHABLE to unconditionally crashLiam2022-06-132-2/+1
|
* video_core/macro: clear code on upload address assignmentLiam2022-05-102-0/+8
|
* VideoCore: Add option to dump the macros.Fernando Sahmkow2022-05-081-0/+27
| | | | Co-Authored-By: liamwhite <liamwhite@users.noreply.github.com>
* video_core/macro_jit_x64: warn on invalid parameter accessLiam2022-05-081-3/+21
|
* general: Convert source file copyright comments over to SPDXMorph2022-04-238-24/+16
| | | | | 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.
* common/xbyak_api: Make BuildRegSet() constexprLioncash2022-01-261-1/+1
| | | | | This allows us to eliminate any static constructors that would have been emitted due to the function not being constexpr.
* video_core/macro: Add missing <cstring> headerLioncash2022-01-251-2/+3
| | | | Necessary since memcpy is used.
* video_core/macro_interpreter: Move impl class to the cpp fileLioncash2022-01-252-84/+86
| | | | | Keeps the implementation hidden from the intended API and lessens the header dependencies on the interpreter's header.
* video_core/macro_hle: Return unique_ptr directly from GetHLEProgram()Lioncash2022-01-253-7/+7
| | | | Same behavior, but less code and header dependencies.
* video_core/macro: Remove unused parameter from Execute()Lioncash2022-01-252-3/+2
| | | | Simplifies the function interface.