aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/gpu.h
AgeCommit message (Collapse)Author
2019-07-26Merge pull request #2592 from FernandoS27/sync1bunnei
Implement GPU Synchronization Mechanisms & Correct NVFlinger
2019-07-25Merge pull request #2743 from FernandoS27/surpress-assertbunnei
Downgrade and suppress a series of GPU asserts and debug messages.
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-05NVServices: Styling, define constructors as explicit and correctionsFernando 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-11video_core/gpu: Create threads separately from initializationLioncash
Like with CPU emulation, we generally don't want to fire off the threads immediately after the relevant classes are initialized, we want to do this after all necessary data is done loading first. This splits the thread creation into its own interface member function to allow controlling when these threads in particular get created.
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-14gpu: Use host address for caching instead of guest address.bunnei
2019-03-07video_core/gpu: Make GPU's destructor virtualLioncash
Because of the recent separation of GPU functionality into sync/async variants, we need to mark the destructor virtual to provide proper destruction behavior, given we use the base class within the System class. Prior to this, it was undefined behavior whether or not the destructor in the derived classes would ever execute.
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-27common/math_util: Move contents into the Common namespaceLioncash
These types are within the common library, so they should be within the Common namespace.
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-12Merge pull request #2099 from greggameplayer/BGRA8-Framebuffer-Realbunnei
Implement BGRA8 framebuffer format
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-11-26gpu: Rewrite GPU command list processing with DmaPusher class.bunnei
- More accurate impl., fixes Undertale (among other games).
2018-09-17Merge pull request #1329 from raven02/bgr5a1ubunnei
Implement RenderTargetFormat::BGR5A1_UNORM
2018-09-16Implement RenderTargetFormat::BGR5A1_UNORM (Pokken Tournament DX)raven02
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-10Merge pull request #1284 from bunnei/bgra8_srgbbunnei
gl_rasterizer_cache: Implement RenderTargetFormat::BGRA8_SRGB.
2018-09-10video_core: Refactor command_processor.Markus Wick
Inline the WriteReg helper as it is called ~20k times per frame.
2018-09-10video_core: Move command buffer loop.Markus Wick
This moves the hot loop into video_core. This refactoring shall reduce the CPU overhead of calling ProcessCommandList.
2018-09-10gl_rasterizer_cache: Implement RenderTargetFormat::BGRA8_SRGB.bunnei
- Used by Octopath Traveler (with multiple render targets).
2018-09-04command_processor: Use std::array for bound_engines.Markus Wick
subchannel is a 3 bit field. So there must not be more than 8 bound engines. And using a hashmap for up to 8 values is a bit overpowered.
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.
2018-08-11gl_rasterizer: Implement render target format RGBA8_SNORM.bunnei
- Used by Super Mario Odyssey.
2018-08-11Merge pull request #1016 from lioncash/videobunnei
video_core: Get rid of global variable g_toggle_framelimit_enabled
2018-08-11Implement R16S & R16UI & R16I RenderTargetFormats & PixelFormats and more ↵greggameplayer
(R16_UNORM needed by Fate Extella) (#848) * Implement R16S & R16UI & R16I RenderTargetFormats & PixelFormats Do a separate function in order to get Bytes Per Pixel of DepthFormat Apply the new function in gpu.h delete unneeded white space * correct merging error
2018-08-10video_core; Get rid of global g_toggle_framelimit_enabled variableLioncash
Instead, we make a struct for renderer settings and allow the renderer to update all of these settings, getting rid of the need for global-scoped variables. This also uncovered a few indirect inclusions for certain headers, which this commit also fixes.
2018-08-08gl_rasterizer_cached: Implement RenderTargetFormat::B5G6R5_UNORM.bunnei
- Used by Super Mario Odyssey.