Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | video_core: make gpu context aware of rendering program | Liam | 2024-02-26 | 1 | -1/+1 |
| | |||||
* | nvnflinger/gpu: implement applet capture | Liam | 2024-02-09 | 1 | -0/+2 |
| | |||||
* | nvnflinger/gpu: implement layer stack composition | Liam | 2024-01-31 | 1 | -2/+2 |
| | |||||
* | SMMU: Initial adaptation to video_core. | Fernando Sahmkow | 2024-01-19 | 1 | -6/+6 |
| | |||||
* | Memory Tracking: Optimize tracking to only use atomic writes when contested with the host GPU | Fernando Sahmkow | 2023-06-28 | 1 | -0/+4 |
| | |||||
* | GPU: Add Reactive flushing | Fernando Sahmkow | 2023-05-07 | 1 | -0/+4 |
| | |||||
* | GPU: Implement additional render target formats. | Fernando Sahmkow | 2022-11-24 | 1 | -7/+7 |
| | |||||
* | Fermi2D: Implement Bilinear software filtering and address feedback. | Fernando Sahmkow | 2022-11-24 | 1 | -2/+2 |
| | |||||
* | Update 3D regs | Kelebek1 | 2022-10-07 | 1 | -9/+41 |
| | |||||
* | VideoCore: Refactor fencing system. | Fernando Sahmkow | 2022-10-06 | 1 | -2/+2 |
| | |||||
* | NVDRV: Further refactors and eliminate old code. | Fernando Sahmkow | 2022-10-06 | 1 | -9/+0 |
| | |||||
* | NVDRV: Refactor Host1x | Fernando Sahmkow | 2022-10-06 | 1 | -6/+0 |
| | |||||
* | VideoCore: Refactor syncing. | Fernando Sahmkow | 2022-10-06 | 1 | -3/+16 |
| | |||||
* | Texture cache: Fix the remaining issues with memory mnagement and unmapping. | Fernando Sahmkow | 2022-10-06 | 1 | -0/+2 |
| | |||||
* | VideoCore: implement channels on gpu caches. | Fernando Sahmkow | 2022-10-06 | 1 | -42/+13 |
| | |||||
* | NvHost: Remake Ctrl Implementation. | Fernando Sahmkow | 2022-10-06 | 1 | -1/+1 |
| | |||||
* | general: Convert source file copyright comments over to SPDX | Morph | 2022-04-23 | 1 | -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. | ||||
* | hle: vi: Integrate new NVFlinger and HosBinderDriverServer service. | bunnei | 2022-03-25 | 1 | -0/+1 |
| | |||||
* | gpu: Tidy up forward declarations | Lioncash | 2022-01-25 | 1 | -10/+0 |
| | | | | | Over time a few forward declarations became unnecessary, so we can remove these to tidy up the header a little bit. | ||||
* | gpu: Remove obsoleted CDMAPusher() accessors | Lioncash | 2022-01-25 | 1 | -6/+0 |
| | | | | | These were obsoleted in 2c47f8aa1886522898b5b3a73185b5662be3e9f3 but were accidentally overlooked. | ||||
* | gpu: Add shut down method to synchronize threads before destruction | ameerj | 2022-01-04 | 1 | -0/+3 |
| | |||||
* | Revert "Merge pull request #7668 from ameerj/fence-stop-token" | ameerj | 2022-01-04 | 1 | -2/+1 |
| | | | | | This reverts commit e7733544779f2706d108682dd027d44e7fa5ff4b, reversing changes made to abbbdc2bc027ed7af236625ae8427a46df63f7e7. | ||||
* | gpu: Use std::stop_token in WaitFence for VSync thread | ameerj | 2022-01-03 | 1 | -1/+2 |
| | | | | Fixes a hang that may occur when stopping emulation and the VSync thread is blocked on the syncpoint condition variable. | ||||
* | Support multiple videos playing | Feng Chen | 2021-12-02 | 1 | -2/+2 |
| | |||||
* | video_core: Add S8_UINT stencil format | Morph | 2021-11-17 | 1 | -0/+1 |
| | |||||
* | nvhost_ctrl: Refactor usage of gpu.LockSync() | ameerj | 2021-10-03 | 1 | -12/+0 |
| | | | | This seems to only be used to protect a later gpu function call. So we can move the lock into that call instead. | ||||
* | gpu: Migrate implementation to the cpp file | ameerj | 2021-10-03 | 1 | -190/+27 |
| | |||||
* | gpu: Use std::jthread for async gpu thread | ameerj | 2021-09-16 | 1 | -3/+0 |
| | |||||
* | video_core: gpu: WaitFence: Do not block threads during shutdown. | bunnei | 2021-05-29 | 1 | -0/+2 |
| | | | | | - Fixes a hang on shutdown when NVFlinger thread is waiting on a syncpoint that will never occur. - Commonly observed when stopping emulation in Super Mario Odyssey. | ||||
* | perf_stats: Rework FPS counter to be more accurate | ameerj | 2021-05-16 | 1 | -0/+2 |
| | | | | | | | | | The FPS counter was based on metrics in the nvdisp swapbuffers call. This metric would be accurate if the gpu thread/renderer were synchronous with the nvdisp service, but that's no longer the case. This commit moves the frame counting responsibility onto the concrete renderers after their frame draw calls. Resulting in more meaningful metrics. The displayed FPS is now made up of the average framerate between the previous and most recent update, in order to avoid distracting FPS counter updates when framerate is oscillating between close values. The status bar update frequency was also changed from 2 seconds to 500ms. | ||||
* | nvhost_vic: Fix device closure | ameerj | 2021-04-25 | 1 | -2/+2 |
| | | | | | | Implements the OnClose method of the nvhost_vic device, and removes the remnants of an older implementation. Also cleans up some of the surrounding code. | ||||
* | Merge pull request #6125 from ogniK5377/nvdec-close-dev | bunnei | 2021-04-17 | 1 | -0/+3 |
|\ | | | | | nvdrv: Cleanup CDMA Processor on device closure | ||||
| * | nvdrv: Cleanup CDMA Processor on device closure | Chloe Marcec | 2021-03-30 | 1 | -0/+3 |
| | | | | | | | | Brings us a step closer to unifying all channels to share a common interface. | ||||
* | | video_core/gpu_thread: Implement a ShutDown method. | Markus Wick | 2021-04-07 | 1 | -2/+2 |
|/ | | | | | | This was implicitly done by `is_powered_on = false`, however the explicit method allows us to block until the GPU is actually gone. This should fix a race condition while removing the other subsystems while the GPU is still active. | ||||
* | gpu: Report renderer errors with exceptions | ReinUsesLisp | 2021-02-13 | 1 | -0/+1 |
| | | | | | | Instead of using a two step initialization to report errors, initialize the GPU renderer and rasterizer on the constructor and report errors through std::runtime_error. | ||||
* | common/common_funcs: Rename INSERT_UNION_PADDING_{BYTES,WORDS} to _NOINIT | ReinUsesLisp | 2021-01-15 | 1 | -4/+4 |
| | | | | INSERT_PADDING_BYTES_NOINIT is more descriptive of the underlying behavior. | ||||
* | video_core: gpu: Implement synchronous mode using threaded GPU. | bunnei | 2020-12-29 | 1 | -2/+2 |
| | |||||
* | video_core: gpu: Refactor out synchronous/asynchronous GPU implementations. | bunnei | 2020-12-29 | 1 | -36/+19 |
| | | | | - We must always use a GPU thread now, even with synchronous GPU. | ||||
* | video_core: Resolve more variable shadowing scenarios | Lioncash | 2020-12-04 | 1 | -6/+6 |
| | | | | | | 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. | ||||
* | gpu: Make use of [[nodiscard]] where applicable | Lioncash | 2020-11-17 | 1 | -31/+35 |
| | |||||
* | General: Fix clang build | Lioncash | 2020-11-05 | 1 | -1/+1 |
| | | | | Allows building on clang to work again | ||||
* | video_core: gpu: Implement WaitFence and IncrementSyncPoint. | bunnei | 2020-11-01 | 1 | -4/+21 |
| | |||||
* | video_core: NVDEC Implementation | ameerj | 2020-10-27 | 1 | -3/+20 |
| | | | | | | | | | | | | | | This commit aims to implement the NVDEC (Nvidia Decoder) functionality, with video frame decoding being handled by the FFmpeg library. The process begins with Ioctl commands being sent to the NVDEC and VIC (Video Image Composer) emulated devices. These allocate the necessary GPU buffers for the frame data, along with providing information on the incoming video data. A Submit command then signals the GPU to process and decode the frame data. To decode the frame, the respective codec's header must be manually composed from the information provided by NVDEC, then sent with the raw frame data to the ffmpeg library. Currently, H264 and VP9 are supported, with VP9 having some minor artifacting issues related mainly to the reference frame composition in its uncompressed header. Async GPU is not properly implemented at the moment. Co-Authored-By: David <25727384+ogniK5377@users.noreply.github.com> | ||||
* | video_core: Remove all Core::System references in renderer | ReinUsesLisp | 2020-09-06 | 1 | -2/+1 |
| | | | | | | | | | Now that the GPU is initialized when video backends are initialized, it's no longer needed to query components once the game is running: it can be done when yuzu is booting. This allows us to pass components between constructors and in the process remove all Core::System references in the video backend. | ||||
* | video_core: Initialize renderer with a GPU | ReinUsesLisp | 2020-08-22 | 1 | -6/+7 |
| | | | | | Add an extra step in GPU initialization to be able to initialize render backends with a valid GPU instance. | ||||
* | video_core/gpu: Correct the size of the puller registers | Billy Laws | 2020-07-26 | 1 | -2/+2 |
| | | | The puller register array is made up of u32s however the `NUM_REGS` value is the size in bytes, so switch it to avoid making the struct unnecessary large. Also fix a small typo in a comment. | ||||
* | Merge pull request #4324 from ReinUsesLisp/formats | bunnei | 2020-07-21 | 1 | -37/+45 |
|\ | | | | | video_core: Fix, add and rename pixel formats | ||||
| * | video_core: Rearrange pixel format names | ReinUsesLisp | 2020-07-13 | 1 | -43/+43 |
| | | | | | | | | | | | | Normalizes pixel format names to match Vulkan names. Previous to this commit pixel formats had no convention, leading to confusion and potential bugs. | ||||
| * | video_core: Implement RGBA32_SINT render target | ReinUsesLisp | 2020-07-13 | 1 | -0/+1 |
| | | |||||
| * | video_core: Implement RGBA32_SINT render target | ReinUsesLisp | 2020-07-13 | 1 | -0/+1 |
| | | |||||
| * | video_core: Implement RGBA16_SINT render target | ReinUsesLisp | 2020-07-13 | 1 | -0/+1 |
| | | |||||
| * | video_core: Implement RGBA8_SINT render target | ReinUsesLisp | 2020-07-13 | 1 | -0/+1 |
| | | |||||
| * | video_core: Implement RG32_SINT render target | ReinUsesLisp | 2020-07-13 | 1 | -0/+1 |
| | | |||||
| * | video_core: Implement RG8_SINT render target and fix RG8_UINT | ReinUsesLisp | 2020-07-13 | 1 | -0/+1 |
| | | |||||
| * | video_core: Implement R8_SINT render target | ReinUsesLisp | 2020-07-13 | 1 | -0/+1 |
| | | |||||
| * | video_core: Implement R8_SNORM render target | ReinUsesLisp | 2020-07-13 | 1 | -0/+1 |
| | | |||||
* | | async shaders | David Marcec | 2020-07-17 | 1 | -0/+11 |
|/ | |||||
* | General: Correct rebase, sync gpu and context management. | Fernando Sahmkow | 2020-06-27 | 1 | -0/+6 |
| | |||||
* | texture: Implement R8G8UI | Morph | 2020-04-30 | 1 | -0/+1 |
| | | | | - Used by The Walking Dead: The Final Season | ||||
* | Clang Format. | Fernando Sahmkow | 2020-04-23 | 1 | -2/+4 |
| | |||||
* | DMAPusher: Propagate multimethod writes into the engines. | Fernando Sahmkow | 2020-04-23 | 1 | -1/+7 |
| | |||||
* | Address Feedback. | Fernando Sahmkow | 2020-04-22 | 1 | -3/+9 |
| | |||||
* | GPU: Implement Flush Requests for Async mode. | Fernando Sahmkow | 2020-04-22 | 1 | -0/+21 |
| | |||||
* | OpenGL: Implement Fencing backend. | Fernando Sahmkow | 2020-04-22 | 1 | -1/+1 |
| | |||||
* | GPU: Delay Fences. | Fernando Sahmkow | 2020-04-22 | 1 | -0/+1 |
| | |||||
* | GPU: Refactor synchronization on Async GPU | Fernando Sahmkow | 2020-04-22 | 1 | -0/+1 |
| | |||||
* | GPU: Setup Flush/Invalidate to use VAddr instead of CacheAddr | Fernando Sahmkow | 2020-04-06 | 1 | -3/+3 |
| | |||||
* | Frontend/GPU: Refactor context management | James Rowe | 2020-03-25 | 1 | -3/+15 |
| | | | | | | | | | | | | | | | | | | | | 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: Implement RGBA16_SNORM | ReinUsesLisp | 2020-03-13 | 1 | -0/+1 |
| | | | | Implement RGBA16_SNORM with the current API. Nothing special here. | ||||
* | Merge pull request #3461 from ReinUsesLisp/r32i-rt | Mat M | 2020-02-25 | 1 | -0/+1 |
|\ | | | | | video_core/surface: Add R32_SINT render target format | ||||
| * | video_core/surface: Add R32_SINT render target format | ReinUsesLisp | 2020-02-25 | 1 | -0/+1 |
| | | |||||
* | | video_core/gpu: Remove unused functions | ReinUsesLisp | 2020-02-25 | 1 | -6/+0 |
|/ | |||||
* | GPU: Implement GPU Clock correctly. | Fernando Sahmkow | 2020-02-10 | 1 | -0/+2 |
| | |||||
* | video_core: Block in WaitFence. | Markus Wick | 2019-12-30 | 1 | -1/+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. | ||||
* | common_func: Use std::array for INSERT_PADDING_* macros. | bunnei | 2019-11-04 | 1 | -4/+4 |
| | | | | - Zero initialization here is useful for determinism. | ||||
* | Core: Wait for GPU to be idle before shutting down. | Fernando Sahmkow | 2019-10-05 | 1 | -0/+3 |
| | |||||
* | GPU_Async: Correct fences, display events and more. | Fernando Sahmkow | 2019-10-05 | 1 | -0/+3 |
| | | | | | | | 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: Implement RGBX16F PixelFormat | FearlessTobi | 2019-09-22 | 1 | -0/+1 |
| | |||||
* | Merge pull request #2793 from ReinUsesLisp/bgr565 | bunnei | 2019-09-04 | 1 | -7/+2 |
|\ | | | | | renderer_opengl: Implement RGB565 framebuffer format | ||||
| * | renderer_opengl: Implement RGB565 framebuffer format | ReinUsesLisp | 2019-08-21 | 1 | -0/+1 |
| | | |||||
| * | renderer_opengl: Use VideoCore pixel format | ReinUsesLisp | 2019-08-21 | 1 | -5/+0 |
| | | |||||
| * | gpu: Change optional<reference_wrapper<T>> to T* for FramebufferConfig | ReinUsesLisp | 2019-08-21 | 1 | -2/+1 |
| | | |||||
* | | video_core: Silent miscellaneous warnings (#2820) | Rodrigo Locatti | 2019-08-30 | 1 | -1/+1 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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 | ||||
* | | Video_Core: Implement a new Buffer Cache | Fernando Sahmkow | 2019-08-21 | 1 | -0/+4 |
| | | |||||
* | | GPU: Flush commands on every dma pusher step. | Fernando Sahmkow | 2019-07-26 | 1 | -0/+2 |
|/ | | | | | | 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/+33 |
|\ | | | | | Implement GPU Synchronization Mechanisms & Correct NVFlinger | ||||
| * | NVServices: Styling, define constructors as explicit and corrections | Fernando Sahmkow | 2019-07-05 | 1 | -11/+7 |
| | | |||||
| * | NVServices: Make NVEvents Automatic according to documentation. | Fernando Sahmkow | 2019-07-05 | 1 | -1/+1 |
| | | |||||
| * | GPU: Correct Interrupts to interrupt on syncpt/value instead of event, mirroring hardware | Fernando Sahmkow | 2019-07-05 | 1 | -10/+4 |
| | | |||||
| * | nv_host_ctrl: Make Sync GPU variant always return synced result. | Fernando Sahmkow | 2019-07-05 | 1 | -1/+7 |
| | | |||||
| * | Gpu: use an std mutex instead of a spin_lock to guard syncpoints | Fernando Sahmkow | 2019-07-05 | 1 | -4/+4 |
| | | |||||
| * | Gpu: Mark areas as protected. | Fernando Sahmkow | 2019-07-05 | 1 | -0/+11 |
| | | |||||
| * | nv_services: Stub CtrlEventSignal | Fernando Sahmkow | 2019-07-05 | 1 | -1/+3 |
| | | |||||
| * | Gpu: Implement Hardware Interrupt Manager and manage GPU interrupts | Fernando Sahmkow | 2019-07-05 | 1 | -3/+2 |
| | | |||||
| * | 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 | -1/+8 |
|\ \ | | | | | | | Downgrade and suppress a series of GPU asserts and debug messages. | ||||
| * | | GPU: Add missing puller methods. | Fernando Sahmkow | 2019-07-18 | 1 | -1/+8 |
| |/ | | | | | | | | | 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/+6 |
|/ | |||||
* | video_core/gpu: Create threads separately from initialization | Lioncash | 2019-04-12 | 1 | -0/+5 |
| | | | | | | | | | 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. | ||||
* | video_core/gpu: Amend typo in GPU member variable name | Lioncash | 2019-03-27 | 1 | -3/+3 |
| | | | | smaphore -> semaphore | ||||
* | gpu: Rewrite virtual memory manager using PageTable. | bunnei | 2019-03-21 | 1 | -3/+3 |
| | |||||
* | gpu: Use host address for caching instead of guest address. | bunnei | 2019-03-15 | 1 | -3/+8 |
| | |||||
* | video_core/gpu: Make GPU's destructor virtual | Lioncash | 2019-03-07 | 1 | -1/+1 |
| | | | | | | | | | | 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. | ||||
* | gpu: Refactor a/synchronous implementations into their own classes. | bunnei | 2019-03-07 | 1 | -15/+11 |
| | |||||
* | gpu: Move command processing to another thread. | bunnei | 2019-03-07 | 1 | -4/+18 |
| | |||||
* | gpu: Refactor command and swap buffers interface for asynch. | bunnei | 2019-03-07 | 1 | -3/+12 |
| | |||||
* | gpu: Refactor to take RendererBase instead of RasterizerInterface. | bunnei | 2019-03-07 | 1 | -15/+19 |
| | |||||
* | common/math_util: Move contents into the Common namespace | Lioncash | 2019-02-27 | 1 | -1/+1 |
| | | | | | These types are within the common library, so they should be within the Common namespace. | ||||
* | video_core: Remove usages of System::GetInstance() within the engines | Lioncash | 2019-02-16 | 1 | -2/+5 |
| | | | | | Avoids the use of the global accessor in favor of explicitly making the system a dependency within the interface. | ||||
* | 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 |
| | | |||||
* | | kepler_compute: Fixup assert and rename engines | ReinUsesLisp | 2019-02-10 | 1 | -3/+3 |
|/ | | | | | | | | | | 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 | -0/+71 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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 | ||||
* | gpu: Rewrite GPU command list processing with DmaPusher class. | bunnei | 2018-11-27 | 1 | -2/+25 |
| | | | | - More accurate impl., fixes Undertale (among other games). | ||||
* | Merge pull request #1329 from raven02/bgr5a1u | bunnei | 2018-09-17 | 1 | -0/+1 |
|\ | | | | | Implement RenderTargetFormat::BGR5A1_UNORM | ||||
| * | Implement RenderTargetFormat::BGR5A1_UNORM (Pokken Tournament DX) | raven02 | 2018-09-15 | 1 | -0/+1 |
| | | |||||
* | | GPU: Basic implementation of the Kepler Inline Memory engine (p2mf). | Subv | 2018-09-12 | 1 | -0/+3 |
|/ | | | | This engine writes data from a FIFO register into the configured address. | ||||
* | Merge pull request #1284 from bunnei/bgra8_srgb | bunnei | 2018-09-11 | 1 | -0/+1 |
|\ | | | | | gl_rasterizer_cache: Implement RenderTargetFormat::BGRA8_SRGB. | ||||
| * | gl_rasterizer_cache: Implement RenderTargetFormat::BGRA8_SRGB. | bunnei | 2018-09-10 | 1 | -0/+1 |
| | | | | | | | | - Used by Octopath Traveler (with multiple render targets). | ||||
* | | video_core: Refactor command_processor. | Markus Wick | 2018-09-10 | 1 | -3/+0 |
| | | | | | | | | Inline the WriteReg helper as it is called ~20k times per frame. | ||||
* | | video_core: Move command buffer loop. | Markus Wick | 2018-09-10 | 1 | -1/+3 |
|/ | | | | This moves the hot loop into video_core. This refactoring shall reduce the CPU overhead of calling ProcessCommandList. | ||||
* | command_processor: Use std::array for bound_engines. | Markus Wick | 2018-09-04 | 1 | -2/+2 |
| | | | | | 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. | ||||
* | gpu: Make memory_manager private | Lioncash | 2018-08-28 | 1 | -3/+9 |
| | | | | | | | | | | 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 | -9/+1 |
|\ | | | | | 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 | -9/+1 |
| | | | | | | | | | | | | | | | | | | 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/+7 |
|/ | | | | | | | | | | | | | | | * 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 | ||||
* | gl_rasterizer_cached: Implement RenderTargetFormat::B5G6R5_UNORM. | 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 | -1/+5 |
| | | | | | | | | | | | | | | 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 |
| | |||||
* | GPU: Allow using R16F as a render target format. | Subv | 2018-07-26 | 1 | -0/+1 |
| | |||||
* | Implement R16_G16 | Unknown | 2018-07-26 | 1 | -0/+5 |
| | | | | | | | | | | | | | | | | | | correct trailing white spaces Delete tabs correct placement Add RG16F & RG16UI & RG16I & RG16S PixelFormats Return correct data according to changes done previously correct PixelFormat declaration correct coding style error correct coding style error part 2 correct RG16S Declaration error correct alignment | ||||
* | Merge pull request #816 from Subv/z32_s8 | bunnei | 2018-07-25 | 1 | -0/+1 |
|\ | | | | | GPU: Implemented the Z32_S8_X24 depth buffer format. | ||||
| * | GPU: Implemented the Z32_S8_X24 depth buffer format. | Subv | 2018-07-25 | 1 | -0/+1 |
| | | |||||
* | | GPU: Allow the usage of R8 as a render target format. | Subv | 2018-07-25 | 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 | -5/+4 |
| | | | | This makes it match its const qualified equivalent. | ||||
* | vi: Partially implement buffer crop parameters. | bunnei | 2018-07-18 | 1 | -0/+1 |
| | |||||
* | GPU: Implemented the Z24S8 depth format and load the depth framebuffer. | Subv | 2018-07-02 | 1 | -0/+9 |
| | |||||
* | GPU: Implemented the RGBA32_UINT rendertarget format. | Subv | 2018-06-30 | 1 | -0/+1 |
| | |||||
* | GPU: Partially implemented the Maxwell DMA engine. | Subv | 2018-06-12 | 1 | -0/+3 |
| | | | | Only tiled->linear and linear->tiled copies that aren't offsetted are supported for now. Queries are not supported. Swizzled copies are not supported. | ||||
* | Merge pull request #527 from Subv/rgba32f_texcopy | bunnei | 2018-06-06 | 1 | -0/+1 |
|\ | | | | | GPU: Allow the usage of RGBA32_FLOAT and RGBA16_FLOAT in the texture copy engine. | ||||
| * | GPU: Allow the usage of RGBA32_FLOAT in the texture copy engine. | Subv | 2018-06-06 | 1 | -0/+1 |
| | | |||||
* | | GPU: Implemented the R11FG11FB10F texture and rendertarget formats. | Subv | 2018-06-06 | 1 | -0/+1 |
|/ | |||||
* | GPU: Added a function to retrieve the bytes per pixel of the render target formats. | Subv | 2018-04-25 | 1 | -0/+3 |
| | |||||
* | GPU: Move the Maxwell3D macro uploading code to the inside of the Maxwell3D processor. | Subv | 2018-04-25 | 1 | -7/+0 |
| | | | | It doesn't belong in the PFIFO handler. | ||||
* | gpu: Add several framebuffer formats to RenderTargetFormat. | bunnei | 2018-04-18 | 1 | -0/+3 |
| | |||||
* | graphics_surface: Fix merge conflicts. | bunnei | 2018-03-27 | 1 | -0/+1 |
| | |||||
* | maxwell: Add RenderTargetFormat enum. | bunnei | 2018-03-27 | 1 | -1/+1 |
| | |||||
* | Frontend: Updated the surface view debug widget to work with Maxwell surfaces. | Subv | 2018-03-24 | 1 | -0/+4 |
| | |||||
* | Frontend: Ported the GPU breakpoints and surface viewer widgets from citra. | Subv | 2018-03-24 | 1 | -0/+5 |
| | |||||
* | renderer_opengl: Better handling of framebuffer transform flags. | bunnei | 2018-03-23 | 1 | -1/+4 |
| | |||||
* | video_core: Move FramebufferInfo to FramebufferConfig in GPU. | bunnei | 2018-03-23 | 1 | -0/+29 |
| | |||||
* | gpu: Expose Maxwell3D engine. | bunnei | 2018-03-23 | 1 | -0/+4 |
| | |||||
* | GPU: Move the GPU's class constructor and destructors to a cpp file. | Subv | 2018-03-18 | 1 | -10/+8 |
| | | | | This should reduce recompile times when editing the Maxwell3D register structure. | ||||
* | GPU: Store uploaded GPU macros and keep track of the number of method parameters. | Subv | 2018-03-18 | 1 | -1/+9 |
| | |||||
* | GPU: Macros are specific to the Maxwell3D engine, so handle them internally. | Subv | 2018-03-18 | 1 | -3/+0 |
| | |||||
* | GPU: Process command mode 5 (IncreaseOnce) differently from other commands. | Subv | 2018-03-17 | 1 | -0/+3 |
| | | | | | | Accumulate all arguments before calling the desired method. Note: Maybe we should do the same for the NonIncreasing mode? | ||||
* | GPU: Partially implemented the QUERY_* registers in the Maxwell3D engine. | Subv | 2018-02-12 | 1 | -1/+1 |
| | | | | Only QueryMode::Write is supported at the moment. | ||||
* | Make a GPU class in VideoCore to contain the GPU state. | Subv | 2018-02-12 | 1 | -0/+55 |
Also moved the GPU MemoryManager class to video_core since it makes more sense for it to be there. |