Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | General: Recover Prometheus project from harddrive failure | Fernando Sahmkow | 2020-06-27 | 1 | -2/+3 |
| | | | | | | | This commit: Implements CPU Interrupts, Replaces Cycle Timing for Host Timing, Reworks the Kernel's Scheduler, Introduce Idle State and Suspended State, Recreates the bootmanager, Initializes Multicore system. | ||||
* | Update src/video_core/gpu.cpp | bunnei | 2020-05-05 | 1 | -1/+1 |
| | | | Co-authored-by: David <25727384+ogniK5377@users.noreply.github.com> | ||||
* | Update src/video_core/gpu.cpp | bunnei | 2020-05-05 | 1 | -1/+1 |
| | | | Co-authored-by: David <25727384+ogniK5377@users.noreply.github.com> | ||||
* | Clang Format and Documentation. | Fernando Sahmkow | 2020-04-28 | 1 | -2/+4 |
| | |||||
* | VideoCore/GPU: Delegate subchannel engines to the dma pusher. | Fernando Sahmkow | 2020-04-28 | 1 | -1/+21 |
| | |||||
* | VideoCore/Engines: Refactor Engines CallMethod. | Fernando Sahmkow | 2020-04-28 | 1 | -5/+5 |
| | |||||
* | Clang Format. | Fernando Sahmkow | 2020-04-23 | 1 | -5/+7 |
| | |||||
* | GPU: Add Fast GPU Time Option. | Fernando Sahmkow | 2020-04-23 | 1 | -1/+5 |
| | |||||
* | DMAPusher: Propagate multimethod writes into the engines. | Fernando Sahmkow | 2020-04-23 | 1 | -4/+43 |
| | |||||
* | Address Feedback. | Fernando Sahmkow | 2020-04-22 | 1 | -2/+2 |
| | |||||
* | GPU: Implement Flush Requests for Async mode. | Fernando Sahmkow | 2020-04-22 | 1 | -0/+22 |
| | |||||
* | ThreadManager: Sync async reads on accurate gpu. | Fernando Sahmkow | 2020-04-22 | 1 | -1/+1 |
| | |||||
* | OpenGL: Implement Fencing backend. | Fernando Sahmkow | 2020-04-22 | 1 | -1/+1 |
| | |||||
* | GPU: Delay Fences. | Fernando Sahmkow | 2020-04-22 | 1 | -0/+4 |
| | |||||
* | GPU: Refactor synchronization on Async GPU | Fernando Sahmkow | 2020-04-22 | 1 | -0/+3 |
| | |||||
* | dma_pusher: Remove reliance on the global system instance | Lioncash | 2020-04-19 | 1 | -1/+1 |
| | | | | | With this, the video core is now has no calls to the global system instance at all. | ||||
* | Frontend/GPU: Refactor context management | James Rowe | 2020-03-25 | 1 | -4/+6 |
| | | | | | | | | | | | | | | | | | | | | Changes the GraphicsContext to be managed by the GPU core. This eliminates the need for the frontends to fool around with tricky MakeCurrent/DoneCurrent calls that are dependent on the settings (such as async gpu option). This also refactors out the need to use QWidget::fromWindowContainer as that caused issues with focus and input handling. Now we use a regular QWidget and just access the native windowHandle() directly. Another change is removing the debug tool setting in FrameMailbox. Instead of trying to block the frontend until a new frame is ready, the core will now take over presentation and draw directly to the window if the renderer detects that its hooked by NSight or RenderDoc Lastly, since it was in the way, I removed ScopeAcquireWindowContext and replaced it with a simple subclass in GraphicsContext that achieves the same result | ||||
* | video_core/gpu: Remove unused functions | ReinUsesLisp | 2020-02-25 | 1 | -65/+0 |
| | |||||
* | Revert "video_core: memory_manager: Use GPU interface for cache functions." | bunnei | 2020-02-15 | 1 | -1/+1 |
| | |||||
* | GPU: Address Feedback. | Fernando Sahmkow | 2020-02-13 | 1 | -6/+8 |
| | |||||
* | GPU: Implement GPU Clock correctly. | Fernando Sahmkow | 2020-02-10 | 1 | -1/+13 |
| | |||||
* | video_core: memory_manager: Use GPU interface for cache functions. | bunnei | 2020-02-08 | 1 | -1/+1 |
| | |||||
* | video_core: Block in WaitFence. | Markus Wick | 2019-12-30 | 1 | -3/+4 |
| | | | | | | | This function is called rarely and blocks quite often for a long time. So don't waste power and let the CPU sleep. This might also increase the performance as the other cores might be allowed to clock higher. | ||||
* | Merge pull request #2912 from FernandoS27/async-fixes | bunnei | 2019-10-16 | 1 | -0/+13 |
|\ | | | | | General fixes to Async GPU | ||||
| * | AsyncGpu: Address Feedback | Fernando Sahmkow | 2019-10-11 | 1 | -1/+1 |
| | | |||||
| * | GPU_Async: Correct fences, display events and more. | Fernando Sahmkow | 2019-10-05 | 1 | -0/+13 |
| | | | | | | | | | | | | | | This commit uses guest fences on vSync event instead of an articial fake fence we had. It also corrects to keep signaling display events while loading the game as the OS is suppose to send buffers to vSync during that time. | ||||
* | | video_core/gpu: Remove use of the global system accessor | Lioncash | 2019-10-15 | 1 | -1/+1 |
|/ | | | | | We can just make use of the reference member variable instead of accessing the global system instance. | ||||
* | video_core: Implement RGBX16F PixelFormat | FearlessTobi | 2019-09-22 | 1 | -0/+1 |
| | |||||
* | Merge pull request #2793 from ReinUsesLisp/bgr565 | bunnei | 2019-09-04 | 1 | -12/+0 |
|\ | | | | | renderer_opengl: Implement RGB565 framebuffer format | ||||
| * | renderer_opengl: Use VideoCore pixel format | ReinUsesLisp | 2019-08-21 | 1 | -12/+0 |
| | | |||||
* | | video_core: Silent miscellaneous warnings (#2820) | Rodrigo Locatti | 2019-08-30 | 1 | -2/+2 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * texture_cache/surface_params: Remove unused local variable * rasterizer_interface: Add missing documentation commentary * maxwell_dma: Remove unused rasterizer reference * video_core/gpu: Sort member declaration order to silent -Wreorder warning * fermi_2d: Remove unused MemoryManager reference * video_core: Silent unused variable warnings * buffer_cache: Silent -Wreorder warnings * kepler_memory: Remove unused MemoryManager reference * gl_texture_cache: Add missing override * buffer_cache: Add missing include * shader/decode: Remove unused variables | ||||
* | | GPU: Flush commands on every dma pusher step. | Fernando Sahmkow | 2019-07-26 | 1 | -0/+4 |
|/ | | | | | | This commit ensures that the host gpu is constantly fed with commands to work with, while the guest gpu keeps producing the rest of the commands. This reduces syncing time between host and guest gpu. | ||||
* | Merge pull request #2592 from FernandoS27/sync1 | bunnei | 2019-07-26 | 1 | -1/+47 |
|\ | | | | | Implement GPU Synchronization Mechanisms & Correct NVFlinger | ||||
| * | NVServices: Styling, define constructors as explicit and corrections | Fernando Sahmkow | 2019-07-05 | 1 | -11/+14 |
| | | |||||
| * | NVFlinger: Correct GCC compile error | Fernando Sahmkow | 2019-07-05 | 1 | -4/+2 |
| | | |||||
| * | NVServices: Make NVEvents Automatic according to documentation. | Fernando Sahmkow | 2019-07-05 | 1 | -2/+5 |
| | | |||||
| * | GPU: Correct Interrupts to interrupt on syncpt/value instead of event, mirroring hardware | Fernando Sahmkow | 2019-07-05 | 1 | -15/+15 |
| | | |||||
| * | nv_host_ctrl: Make Sync GPU variant always return synced result. | Fernando Sahmkow | 2019-07-05 | 1 | -2/+2 |
| | | |||||
| * | Gpu: use an std mutex instead of a spin_lock to guard syncpoints | Fernando Sahmkow | 2019-07-05 | 1 | -2/+2 |
| | | |||||
| * | Gpu: Mark areas as protected. | Fernando Sahmkow | 2019-07-05 | 1 | -0/+2 |
| | | |||||
| * | nv_services: Stub CtrlEventSignal | Fernando Sahmkow | 2019-07-05 | 1 | -0/+11 |
| | | |||||
| * | Gpu: Implement Hardware Interrupt Manager and manage GPU interrupts | Fernando Sahmkow | 2019-07-05 | 1 | -1/+6 |
| | | |||||
| * | video_core: Implement GPU side Syncpoints | Fernando Sahmkow | 2019-07-05 | 1 | -0/+24 |
| | | |||||
* | | Merge pull request #2743 from FernandoS27/surpress-assert | bunnei | 2019-07-25 | 1 | -13/+7 |
|\ \ | | | | | | | Downgrade and suppress a series of GPU asserts and debug messages. | ||||
| * | | GPU: Add missing puller methods. | Fernando Sahmkow | 2019-07-18 | 1 | -13/+7 |
| | | | | | | | | | | | | | | | This adds some missing puller methods. We don't assert them as these are nop operations for us. | ||||
* | | | gl_rasterizer: Implement compute shaders | ReinUsesLisp | 2019-07-15 | 1 | -0/+8 |
|/ / | |||||
* / | prefer system reference over global accessor | Michael Scire | 2019-07-09 | 1 | -1/+1 |
|/ | |||||
* | Introduce skeleton of the GPU Compute Engine. | Fernando Sahmkow | 2019-04-23 | 1 | -1/+1 |
| | |||||
* | Revamp Kepler Memory to use a subegine to manage uploads | Fernando Sahmkow | 2019-04-23 | 1 | -1/+1 |
| | |||||
* | memory_manager: Improved implementation of read/write/copy block. | bunnei | 2019-04-06 | 1 | -1/+1 |
| | | | | | - Fixes graphical issues with Chocobo's Mystery Dungeon EVERY BUDDY! - Fixes a crash with Mario Tennis Aces | ||||
* | video_core/gpu: Amend typo in GPU member variable name | Lioncash | 2019-03-27 | 1 | -4/+5 |
| | | | | smaphore -> semaphore | ||||
* | gpu: Rewrite virtual memory manager using PageTable. | bunnei | 2019-03-21 | 1 | -3/+4 |
| | |||||
* | video_core: Refactor to use MemoryManager interface for all memory access. | bunnei | 2019-03-16 | 1 | -9/+4 |
| | | | | | | | | | | | # 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 | ||||
* | gpu: Refactor a/synchronous implementations into their own classes. | bunnei | 2019-03-07 | 1 | -48/+0 |
| | |||||
* | gpu: Move command processing to another thread. | bunnei | 2019-03-07 | 1 | -3/+41 |
| | |||||
* | gpu: Refactor command and swap buffers interface for asynch. | bunnei | 2019-03-07 | 1 | -0/+10 |
| | |||||
* | gpu: Refactor to take RendererBase instead of RasterizerInterface. | bunnei | 2019-03-07 | 1 | -2/+3 |
| | |||||
* | video_core: Remove usages of System::GetInstance() within the engines | Lioncash | 2019-02-16 | 1 | -4/+4 |
| | | | | | Avoids the use of the global accessor in favor of explicitly making the system a dependency within the interface. | ||||
* | core_timing: Convert core timing into a class | Lioncash | 2019-02-16 | 1 | -1/+2 |
| | | | | | | | | | | | 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. | ||||
* | Merge pull request #2099 from greggameplayer/BGRA8-Framebuffer-Real | bunnei | 2019-02-13 | 1 | -0/+1 |
|\ | | | | | Implement BGRA8 framebuffer format | ||||
| * | Implement BGRA8 framebuffer format | greggameplayer | 2019-02-09 | 1 | -0/+1 |
| | | |||||
* | | Merge pull request #2110 from lioncash/namespace | bunnei | 2019-02-13 | 1 | -1/+1 |
|\ \ | | | | | | | core_timing: Rename CoreTiming namespace to Core::Timing | ||||
| * | | core_timing: Rename CoreTiming namespace to Core::Timing | Lioncash | 2019-02-12 | 1 | -1/+1 |
| |/ | | | | | | | | | | | 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. | ||||
* / | kepler_compute: Fixup assert and rename engines | ReinUsesLisp | 2019-02-10 | 1 | -4/+4 |
|/ | | | | | | | | | | 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. | ||||
* | video_core/GPU Implemented the GPU PFIFO puller semaphore operations. (#1908) | Kevin | 2019-01-30 | 1 | -12/+171 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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 | ||||
* | Fixed uninitialized memory due to missing returns in canary | David Marcec | 2018-12-19 | 1 | -0/+2 |
| | | | | Functions which are suppose to crash on non canary builds usually don't return anything which lead to uninitialized memory being used. | ||||
* | GPU: Don't try to route PFIFO methods (0-0x40) to the other engines. | Subv | 2018-12-04 | 1 | -0/+6 |
| | |||||
* | Fix debug build | Lioncash | 2018-12-01 | 1 | -4/+2 |
| | | | | | A non-existent parameter was left in some formatting calls (the logging macro for which only does anything meaningful on debug builds) | ||||
* | gpu: Move command list profiling to DmaPusher::DispatchCalls. | bunnei | 2018-11-28 | 1 | -5/+0 |
| | |||||
* | gpu: Rewrite GPU command list processing with DmaPusher class. | bunnei | 2018-11-27 | 1 | -0/+58 |
| | | | | - More accurate impl., fixes Undertale (among other games). | ||||
* | Use default values for unknown framebuffer pixel format | FernandoS27 | 2018-11-21 | 1 | -0/+2 |
| | |||||
* | GPU: Improved implementation of maxwell DMA (Subv). | bunnei | 2018-10-19 | 1 | -1/+1 |
| | |||||
* | GPU: Invalidate destination address of kepler_memory writes. | bunnei | 2018-10-19 | 1 | -1/+1 |
| | |||||
* | fermi_2d: Implement simple copies with AccelerateSurfaceCopy. | bunnei | 2018-10-06 | 1 | -1/+1 |
| | |||||
* | GPU: Basic implementation of the Kepler Inline Memory engine (p2mf). | Subv | 2018-09-12 | 1 | -0/+2 |
| | | | | This engine writes data from a FIFO register into the configured address. | ||||
* | gl_rasterizer_cache: Implement RenderTargetFormat::BGRA8_SRGB. | bunnei | 2018-09-10 | 1 | -0/+1 |
| | | | | - Used by Octopath Traveler (with multiple render targets). | ||||
* | gpu: Make memory_manager private | Lioncash | 2018-08-28 | 1 | -3/+11 |
| | | | | | | | | | | 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. | ||||
* | Implemented RGBA8_UINT | David Marcec | 2018-08-20 | 1 | -0/+1 |
| | | | | Needed by kirby | ||||
* | renderer_opengl: Implement RenderTargetFormat::RGBA16_UNORM. | bunnei | 2018-08-14 | 1 | -0/+1 |
| | | | | - Used by Breath of the Wild. | ||||
* | Implement RG32UI and R32UI | David Marcec | 2018-08-13 | 1 | -0/+2 |
| | | | | Needed for xenoblade | ||||
* | renderer_opengl: Implement RenderTargetFormat::RGBA16_UINT. | bunnei | 2018-08-13 | 1 | -0/+1 |
| | | | | - Used by Breath of the Wild. | ||||
* | renderer_opengl: Implement RenderTargetFormat::RG8_UNORM. | bunnei | 2018-08-13 | 1 | -0/+1 |
| | | | | - Used by Breath of the Wild. | ||||
* | Implement R8_UINT RenderTargetFormat & PixelFormat (#1014) | greggameplayer | 2018-08-12 | 1 | -0/+1 |
| | | | | - Used by Go Vacation | ||||
* | gl_rasterizer: Implement render target format RG8_SNORM. | bunnei | 2018-08-12 | 1 | -0/+1 |
| | | | | - Used by Super Mario Odyssey. | ||||
* | gl_rasterizer: Implement render target format RGBA8_SNORM. | bunnei | 2018-08-12 | 1 | -0/+1 |
| | | | | - Used by Super Mario Odyssey. | ||||
* | Merge pull request #1016 from lioncash/video | bunnei | 2018-08-11 | 1 | -0/+10 |
|\ | | | | | video_core: Get rid of global variable g_toggle_framelimit_enabled | ||||
| * | video_core; Get rid of global g_toggle_framelimit_enabled variable | Lioncash | 2018-08-11 | 1 | -0/+10 |
| | | | | | | | | | | | | | | | | | | 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. | ||||
* | | Implement R16S & R16UI & R16I RenderTargetFormats & PixelFormats and more (R16_UNORM needed by Fate Extella) (#848) | greggameplayer | 2018-08-11 | 1 | -0/+32 |
|/ | | | | | | | | | | | | | | | * 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 | ||||
* | gpu: Add R11G11B10_FLOAT to RenderTargetBytesPerPixel. | bunnei | 2018-08-08 | 1 | -0/+1 |
| | | | | - Used by Super Mario Odyssey. | ||||
* | video_core: Eliminate the g_renderer global variable | Lioncash | 2018-08-04 | 1 | -2/+3 |
| | | | | | | | | | | | | | | We move the initialization of the renderer to the core class, while keeping the creation of it and any other specifics in video_core. This way we can ensure that the renderer is initialized and doesn't give unfettered access to the renderer. This also makes dependencies on types more explicit. For example, the GPU class doesn't need to depend on the existence of a renderer, it only needs to care about whether or not it has a rasterizer, but since it was accessing the global variable, it was also making the renderer a part of its dependency chain. By adjusting the interface, we can get rid of this dependency. | ||||
* | Implement R32_FLOAT RenderTargetFormat | Unknown | 2018-08-01 | 1 | -0/+1 |
| | |||||
* | gl_rasterizer_cache: Implement RenderTargetFormat RG32_FLOAT. | bunnei | 2018-07-24 | 1 | -0/+1 |
| | |||||
* | gl_rasterizer_cache: Implement RenderTargetFormat BGRA8_UNORM. | bunnei | 2018-07-24 | 1 | -0/+1 |
| | |||||
* | gpu: Rename Get3DEngine() to Maxwell3D() | Lioncash | 2018-07-21 | 1 | -1/+5 |
| | | | | This makes it match its const qualified equivalent. | ||||
* | GPU: Partially implemented the Maxwell DMA engine. | Subv | 2018-06-12 | 1 | -0/+2 |
| | | | | Only tiled->linear and linear->tiled copies that aren't offsetted are supported for now. Queries are not supported. Swizzled copies are not supported. | ||||
* | GPU: Allow the usage of RGBA16_FLOAT in the texture copy engine. | Subv | 2018-06-06 | 1 | -0/+2 |
| | |||||
* | GPU: Allow the usage of RGBA32_FLOAT in the texture copy engine. | Subv | 2018-06-06 | 1 | -0/+2 |
| | |||||
* | general: Convert assertion macros over to be fmt-compatible | Lioncash | 2018-04-27 | 1 | -1/+1 |
| | |||||
* | GPU: Added a function to retrieve the bytes per pixel of the render target formats. | Subv | 2018-04-25 | 1 | -0/+12 |
| | |||||
* | GPU: Added boilerplate code for the Fermi2D engine | Subv | 2018-04-25 | 1 | -1/+1 |
| | |||||
* | Frontend: Ported the GPU breakpoints and surface viewer widgets from citra. | Subv | 2018-03-24 | 1 | -0/+4 |
| | |||||
* | GPU: Move the GPU's class constructor and destructors to a cpp file. | Subv | 2018-03-18 | 1 | -0/+21 |
This should reduce recompile times when editing the Maxwell3D register structure. |