aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/gpu.cpp
AgeCommit message (Collapse)Author
2019-07-18GPU: Add missing puller methods.Fernando Sahmkow
This adds some missing puller methods. We don't assert them as these are nop operations for us.
2019-07-15gl_rasterizer: Implement compute shadersReinUsesLisp
2019-07-09prefer system reference over global accessorMichael Scire
2019-07-05NVServices: Styling, define constructors as explicit and correctionsFernando Sahmkow
2019-07-05NVFlinger: Correct GCC compile errorFernando Sahmkow
2019-07-05NVServices: Make NVEvents Automatic according to documentation.Fernando Sahmkow
2019-07-05GPU: Correct Interrupts to interrupt on syncpt/value instead of event, ↵Fernando Sahmkow
mirroring hardware
2019-07-05nv_host_ctrl: Make Sync GPU variant always return synced result.Fernando Sahmkow
2019-07-05Gpu: use an std mutex instead of a spin_lock to guard syncpointsFernando Sahmkow
2019-07-05Gpu: Mark areas as protected.Fernando Sahmkow
2019-07-05nv_services: Stub CtrlEventSignalFernando Sahmkow
2019-07-05Gpu: Implement Hardware Interrupt Manager and manage GPU interruptsFernando Sahmkow
2019-07-05video_core: Implement GPU side SyncpointsFernando Sahmkow
2019-04-22Introduce skeleton of the GPU Compute Engine.Fernando Sahmkow
2019-04-22Revamp Kepler Memory to use a subegine to manage uploadsFernando Sahmkow
2019-04-05memory_manager: Improved implementation of read/write/copy block.bunnei
- Fixes graphical issues with Chocobo's Mystery Dungeon EVERY BUDDY! - Fixes a crash with Mario Tennis Aces
2019-03-27video_core/gpu: Amend typo in GPU member variable nameLioncash
smaphore -> semaphore
2019-03-20gpu: Rewrite virtual memory manager using PageTable.bunnei
2019-03-16video_core: Refactor to use MemoryManager interface for all memory access.bunnei
# Conflicts: # src/video_core/engines/kepler_memory.cpp # src/video_core/engines/maxwell_3d.cpp # src/video_core/morton.cpp # src/video_core/morton.h # src/video_core/renderer_opengl/gl_global_cache.cpp # src/video_core/renderer_opengl/gl_global_cache.h # src/video_core/renderer_opengl/gl_rasterizer_cache.cpp
2019-03-06gpu: Refactor a/synchronous implementations into their own classes.bunnei
2019-03-06gpu: Move command processing to another thread.bunnei
2019-03-06gpu: Refactor command and swap buffers interface for asynch.bunnei
2019-03-06gpu: Refactor to take RendererBase instead of RasterizerInterface.bunnei
2019-02-15video_core: Remove usages of System::GetInstance() within the enginesLioncash
Avoids the use of the global accessor in favor of explicitly making the system a dependency within the interface.
2019-02-15core_timing: Convert core timing into a classLioncash
Gets rid of the largest set of mutable global state within the core. This also paves a way for eliminating usages of GetInstance() on the System class as a follow-up. Note that no behavioral changes have been made, and this simply extracts the functionality into a class. This also has the benefit of making dependencies on the core timing functionality explicit within the relevant interfaces.
2019-02-12Merge pull request #2099 from greggameplayer/BGRA8-Framebuffer-Realbunnei
Implement BGRA8 framebuffer format
2019-02-12Merge pull request #2110 from lioncash/namespacebunnei
core_timing: Rename CoreTiming namespace to Core::Timing
2019-02-12core_timing: Rename CoreTiming namespace to Core::TimingLioncash
Places all of the timing-related functionality under the existing Core namespace to keep things consistent, rather than having the timing utilities sitting in its own completely separate namespace.
2019-02-10kepler_compute: Fixup assert and rename enginesReinUsesLisp
When I originally added the compute assert I used the wrong documentation. This addresses that. The dispatch register was tested with homebrew against hardware and is triggered by some games (e.g. Super Mario Odyssey). What exactly is missing to get a valid program bound by this engine requires more investigation.
2019-02-09Implement BGRA8 framebuffer formatgreggameplayer
2019-01-29video_core/GPU Implemented the GPU PFIFO puller semaphore operations. (#1908)Kevin
* Implemented the puller semaphore operations. * Nit: Fix 2 style issues * Nit: Add Break to default case. * Fix style. * Update for comments. Added ReferenceCount method * Forgot to remove GpuSmaphoreAddress union. * Fix the clang-format issues. * More clang formatting. * two more white spaces for the Clang formatting. * Move puller members into the regs union * Updated to use Memory::WriteBlock instead of Memory::Write* * Fix clang style issues * White space clang error * Removing unused funcitons and other pr comment * Removing unused funcitons and other pr comment * More union magic for setting regs value. * union magic refcnt as well * Remove local var * Set up the regs and regs_assert_positions up properly * Fix clang error
2018-12-19Fixed uninitialized memory due to missing returns in canaryDavid Marcec
Functions which are suppose to crash on non canary builds usually don't return anything which lead to uninitialized memory being used.
2018-12-03GPU: Don't try to route PFIFO methods (0-0x40) to the other engines.Subv
2018-12-01Fix debug buildLioncash
A non-existent parameter was left in some formatting calls (the logging macro for which only does anything meaningful on debug builds)
2018-11-27gpu: Move command list profiling to DmaPusher::DispatchCalls.bunnei
2018-11-26gpu: Rewrite GPU command list processing with DmaPusher class.bunnei
- More accurate impl., fixes Undertale (among other games).
2018-11-21Use default values for unknown framebuffer pixel formatFernandoS27
2018-10-18GPU: Improved implementation of maxwell DMA (Subv).bunnei
2018-10-18GPU: Invalidate destination address of kepler_memory writes.bunnei
2018-10-06fermi_2d: Implement simple copies with AccelerateSurfaceCopy.bunnei
2018-09-12GPU: Basic implementation of the Kepler Inline Memory engine (p2mf).Subv
This engine writes data from a FIFO register into the configured address.
2018-09-10gl_rasterizer_cache: Implement RenderTargetFormat::BGRA8_SRGB.bunnei
- Used by Octopath Traveler (with multiple render targets).
2018-08-28gpu: Make memory_manager privateLioncash
Makes the class interface consistent and provides accessors for obtaining a reference to the memory manager instance. Given we also return references, this makes our more flimsy uses of const apparent, given const doesn't propagate through pointers in the way one would typically expect. This makes our mutable state more apparent in some places.
2018-08-20Implemented RGBA8_UINTDavid Marcec
Needed by kirby
2018-08-13renderer_opengl: Implement RenderTargetFormat::RGBA16_UNORM.bunnei
- Used by Breath of the Wild.
2018-08-13Implement RG32UI and R32UIDavid Marcec
Needed for xenoblade
2018-08-13renderer_opengl: Implement RenderTargetFormat::RGBA16_UINT.bunnei
- Used by Breath of the Wild.
2018-08-12renderer_opengl: Implement RenderTargetFormat::RG8_UNORM.bunnei
- Used by Breath of the Wild.
2018-08-11Implement R8_UINT RenderTargetFormat & PixelFormat (#1014)greggameplayer
- Used by Go Vacation
2018-08-11gl_rasterizer: Implement render target format RG8_SNORM.bunnei
- Used by Super Mario Odyssey.