aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/macro/macro_hle.cpp
Commit message (Collapse)AuthorAgeFilesLines
* [common, core] remove uneeded memory indirection overhead at startup (#3306)lizzie2026-01-161-606/+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>
* [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>
* 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
|
* MacroHLE: eliminate 2 rushed macros.Fernando Sahmkow2023-01-051-42/+0
|
* Video_core: Address feedbackFernando Sahmkow2023-01-041-108/+248
|
* 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-011-7/+115
|
* 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-011-111/+334
|
* 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
|
* maxwell3d: full HLE for multi-layer clearsLiam2022-11-171-11/+5
|
* maxwell3d: HLE multi-layer clear macroLiam2022-11-161-1/+21
|
* video_coare: Reimplementing the maxwell drawing trigger mechanismFengChen2022-10-211-30/+17
|
* Update 3D regsKelebek12022-10-071-24/+24
|
* MacroHLE: Add MultidrawIndirect HLE Macro.Fernando Sahmkow2022-10-011-1/+62
|
* general: Convert source file copyright comments over to SPDXMorph2022-04-231-3/+2
| | | | | 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.
* video_core/macro_hle: Return unique_ptr directly from GetHLEProgram()Lioncash2022-01-251-2/+2
| | | | Same behavior, but less code and header dependencies.
* video_core/macro_hle: Move impl class into cpp fileLioncash2022-01-251-11/+19
| | | | | | | | Given it's intended to be an internal implementation class, we can move it into the cpp file to ensure that. This also lets us move some header dependencies into the cpp file as well.
* video_core: Resolve more variable shadowing scenariosLioncash2020-12-041-3/+3
| | | | | | Resolves variable shadowing scenarios up to the end of the OpenGL code to make it nicer to review. The rest will be resolved in a following commit.
* video_core: Initialize renderer with a GPUReinUsesLisp2020-08-221-3/+3
| | | | | Add an extra step in GPU initialization to be able to initialize render backends with a valid GPU instance.
* Merge pull request #4369 from lioncash/hle-macroLC2020-07-171-10/+7
|\ | | | | macro_hle: Remove unnecessary std::make_pair calls
| * macro_hle: Remove unnecessary static keywordsLioncash2020-07-161-7/+4
| | | | | | | | | | These functions are already in an anonymous namespace which makes the functions internally linked.
| * macro_hle: Remove unnecessary std::make_pair callsLioncash2020-07-161-3/+3
| | | | | | | | | | | | | | The purpose of make_pair is generally to deduce the types within the pair without explicitly specifying the types, so these usages were generally unnecessary, particularly when the type is enforced by the array declaration.
* | macro_hle: Simplify shift expression in HLE_771BB18C62444DA0()Lioncash2020-07-161-2/+1
|/ | | | | | | | Given the expression involves a 32-bit value, this simplifies down to just: 0x3ffffff. This is likely a remnant from testing that was never cleaned up. Resolves a -Wshift-overflow warning.
* addressed issuesDavid Marcec2020-06-241-4/+6
|
* clear mme draw modeDavid Marcec2020-06-241-0/+3
| | | | We already draw, so we can clear it
* Addressed issuesDavid Marcec2020-06-241-10/+10
|
* Fix constbuffer for 0217920100488FF7David Marcec2020-06-241-6/+6
|
* Macro HLE supportDavid Marcec2020-06-241-0/+108