aboutsummaryrefslogtreecommitdiff
path: root/src/GPU.cpp
Commit message (Collapse)AuthorAge
* Introduce `Platform::Log` (#1640)Jesse Talavera-Greenberg2023-03-23
| | | | | | | | | | | | | * Add Platform::Log and Platform::LogLevel * Replace most printf calls with Platform::Log calls * Move a brace down * Move some log entries to one Log call - Some implementations of Log may assume a full line * Log the MAC address as LogLevel::Info
* for all people who hate speed, here you can build melonDS againRSDuck2022-08-22
|
* invalidate JIT blocks in ARM7 WVRAM when it's remappedRSDuck2022-08-22
|
* close gaps in VRAM mappingArisotura2022-04-09
|
* update copyright headersArisotura2022-01-09
|
* handle changed VCount+threaded rasteriser more gracefullyRSDuck2021-08-04
|
* Fix some compiler warningsWaluigiWare642021-05-03
|
* update copyright year and add missing GPL headersRSDuck2021-03-12
|
* call Renderer2D::VBlankEnd at vblank endRSDuck2021-03-01
| | | | instead of vblank start
* separate GPU2D registers and rendererRSDuck2021-02-27
|
* directly set VRAMDirty for VRAM BG/OAM writesRSDuck2021-02-23
|
* Allow for a more modular renderer backends (#990)Wunk2021-02-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Draft GPU3D renderer modularization * Update sources C++ standard to C++17 The top-level `CMakeLists.txt` is already using the C++17 standard. * Move GLCompositor into class type Some other misc fixes to push towards better modularity * Make renderer-implementation types move-only These types are going to be holding onto handles of GPU-side resources and shouldn't ever be copied around. * Fix OSX: Remove 'register' storage class specifier `register` has been removed in C++17... But this keyword hasn't done anything in years anyways. OSX builds consider this "warning" an error and it stops the whole build. * Add RestartFrame to Renderer3D interface * Move Accelerated property to Renderer3D interface There are points in the code base where we do: `renderer != 0` to know if we are feeding an openGL renderer. Rather than that we can instead just have this be a property of the renderer itself. With this pattern a renderer can just say how it wants its data to come in rather than have everyone know that they're talking to an OpenGL renderer. * Remove Accelerated flag from GPU * Move 2D_Soft interface in separate header Also make the current 2D engine an "owned" unique_ptr. * Update alignment attribute to standard alignas Uses standardized `alignas` rather than compiler-specific attributes. https://en.cppreference.com/w/cpp/language/alignas * Fix Clang: alignas specifier Alignment must be specified before the array to align the entire array. https://en.cppreference.com/w/cpp/language/alignas * Converted Renderer3D Accelerated to variable This flag is checked a lot during scanline rasterization. So rather than having an expensive vtable-lookup call during mainline rendering code, it is now a public constant bool type that is written to only once during Renderer3D initialization.
* improve and fix NonStupidBitfield also get rid of some UBRSDuck2021-02-09
| | | | fixes optimised lto clang build
* the rasteriser doesn't have to be done on line 144RSDuck2021-01-26
| | | | thanks to the VRAM cache
* fixes to the threadedness of the sw rasteriserRSDuck2021-01-26
| | | | also fix #639 and fix #880
* Fix some compiler warningsWaluigiWare642021-01-25
|
* readd vram invalidation through display captureRSDuck2021-01-07
| | | | also remove stray printf
* fix out of bounds readRSDuck2021-01-07
|
* add palette and OAM dirty flagRSDuck2020-12-23
| | | | currently not used anywhere
* VRAM dirty tracking fix reset/savestate loadRSDuck2020-12-09
|
* rename the class as wellRSDuck2020-12-07
| | | | this is getting emberassing
* lay base for multiple GPU2D backendsRSDuck2020-12-06
|
* Merge vram dirty trackingRSDuck2020-11-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Squashed commit of the following: commit b463a05d4b909372f0cd1ad91caa0c77a25e5901 Author: RSDuck <rsduck@users.noreply.github.com> Date: Mon Nov 30 01:55:35 2020 +0100 minor fix commit ce73cebbdf5da243d7ebade82d8799ded9cd6b28 Author: RSDuck <rsduck@users.noreply.github.com> Date: Mon Nov 30 00:43:08 2020 +0100 fix dirty flags of BG/OBJ mappings not being reset commit fc5d73a6178e3adc444398bdd23de8314b5ca8f8 Author: RSDuck <rsduck@users.noreply.github.com> Date: Mon Nov 30 00:11:13 2020 +0100 use flat vram for gpu2d everywhere commit 34ee9fe2bf04fcfa2a5a1c8d78d70007e606f1a2 Author: RSDuck <rsduck@users.noreply.github.com> Date: Sat Nov 28 19:10:34 2020 +0100 mark VRAM dirty for display capture commit e8778fa2f429c6df0eece19d6a5ee83ae23a0cf4 Author: RSDuck <rsduck@users.noreply.github.com> Date: Sat Nov 28 18:59:31 2020 +0100 use flat VRAM for textures and texpals also skip rendering if nothing changed and a bunch of fixes commit 53f2041e2e1a28b35702a2ed51de885c36689f71 Author: RSDuck <rsduck@users.noreply.github.com> Date: Fri Nov 27 18:29:56 2020 +0100 use vram dirty tracking for extpals also preparations to take this further commit 4cdfa329e95aed26d3b21319c8fd86a04abf20f7 Author: RSDuck <rsduck@users.noreply.github.com> Date: Mon Nov 16 23:32:22 2020 +0100 VRAM dirty tracking
* make OpenGL renderer a build optionRSDuck2020-10-01
| | | | mostly meant for the Switch port
* Merge remote-tracking branch 'remotes/origin/master' into melonDSiArisotura2020-05-30
|\
| * fix bugs, clean up some of the shitArisotura2020-05-28
| |
| * * rework GPU's settings interface, make it config-agnosticArisotura2020-05-28
| | | | | | | | | | * make video settings dialog functional, sorta * fix dialogs that were resizable
| * get the OpenGL renderer going.Arisotura2020-05-25
| | | | | | | | | | | | sorta. (also make the blackmagic_II branch obsolete in the process)
* | Merge commit '4b57416552ec2fa95216e2b044559f215723bf70' into melonDSiArisotura2020-05-30
|\|
| * * add support for a bunch of codes (all of them minus the loop shit, really)Arisotura2020-02-14
| | | | | | | | * hook it betterer so it doesn't asplode
| * update copyright yearsArisotura2020-02-14
| |
| * lay base for AR cheatzorz. baahahhhhArisotura2020-02-14
| |
* | begin renovating melonDSiArisotura2020-05-30
|\|
| * fix potential out-of-bounds writeArisotura2019-07-13
| |
* | add LCD init flag in DISPSTATArisotura2019-06-20
|/
* GPU2D: hardware renders sprites one scanline in advance.Arisotura2019-06-10
| | | | fixes #375 (midframe OAM update)
* fasterer BG/OBJ VRAM readsArisotura2019-06-09
|
* this is the same thing, but, for the sake of consistencyArisotura2019-06-08
|
* fix possible crashArisotura2019-05-25
|
* simpler GPU-compositing. will make it easier to grab neighbor 2D/3D pixels ↵Arisotura2019-05-25
| | | | individually for filtering.
* getting somewhere??Arisotura2019-05-24
|
* welp.Arisotura2019-05-21
| | | | progress
* botch more codeArisotura2019-05-19
|
* also, do master brightnessArisotura2019-05-18
|
* start work on display captureArisotura2019-05-17
| | | | also fix a bug in the compositing shader
* BAHAHAHHHHArisotura2019-05-16
| | | | HARK HARK HARK
* BAHAHAHAHAHAHAHAAArisotura2019-05-16
|
* don't scale the screen gapArisotura2019-05-12
|
* de-hardcode the GL renderer.Arisotura2019-05-12
| | | | | init framebuffer to black. fix bugs.
* split framebuffer.Arisotura2019-05-12
| | | | | setup doublebuffering inside GPU.cpp. avoid copying a whole framebuffer every frame. better performance at higher res.