Commit Graph

119 Commits (1d20aac795857f8d28e7fc196473a90da4ced33d)

Author SHA1 Message Date
ReinUsesLisp 1d20aac795 video_core: Implement RGBA32_SINT render target 5 years ago
ReinUsesLisp 9338599d72 video_core: Implement RGBA32_SINT render target 5 years ago
ReinUsesLisp 95c0f5afe5 video_core: Implement RGBA16_SINT render target 5 years ago
ReinUsesLisp 977d6c46f3 video_core: Implement RGBA8_SINT render target 5 years ago
ReinUsesLisp 50c6030a8d video_core: Implement RG32_SINT render target 5 years ago
ReinUsesLisp e849d68048 video_core: Implement RG8_SINT render target and fix RG8_UINT 5 years ago
ReinUsesLisp f29fede49c video_core: Implement R8_SINT render target 5 years ago
ReinUsesLisp fd33e996e0 video_core: Implement R8_SNORM render target 5 years ago
Fernando Sahmkow ad92865497 General: Correct rebase, sync gpu and context management. 5 years ago
Morph 7909860d16 texture: Implement R8G8UI
- Used by The Walking Dead: The Final Season
5 years ago
Fernando Sahmkow 5c9feaebb6 Clang Format. 5 years ago
Fernando Sahmkow 3fedcc2f6e DMAPusher: Propagate multimethod writes into the engines. 5 years ago
Fernando Sahmkow f616dc0b59 Address Feedback. 5 years ago
Fernando Sahmkow 1fb516cd97 GPU: Implement Flush Requests for Async mode. 5 years ago
Fernando Sahmkow 487379c593 OpenGL: Implement Fencing backend. 5 years ago
Fernando Sahmkow 339d0d9d6c GPU: Delay Fences. 5 years ago
Fernando Sahmkow da8f17715d GPU: Refactor synchronization on Async GPU 5 years ago
Fernando Sahmkow 9c0f40a1f5 GPU: Setup Flush/Invalidate to use VAddr instead of CacheAddr 5 years ago
James Rowe 282adfc70b Frontend/GPU: Refactor context management
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
5 years ago
ReinUsesLisp 4dcca90ef4 video_core: Implement RGBA16_SNORM
Implement RGBA16_SNORM with the current API. Nothing special here.
5 years ago
Mat M 45ac1c62c6
Merge pull request #3461 from ReinUsesLisp/r32i-rt
video_core/surface: Add R32_SINT render target format
5 years ago
ReinUsesLisp 466ce715e4 video_core/surface: Add R32_SINT render target format 5 years ago
ReinUsesLisp 3c648e3e2d video_core/gpu: Remove unused functions 5 years ago
Fernando Sahmkow 8e9a4944db GPU: Implement GPU Clock correctly. 5 years ago
Markus Wick cb9dd01ffd video_core: Block in WaitFence.
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.
5 years ago
bunnei 1bdae0fe29 common_func: Use std::array for INSERT_PADDING_* macros.
- Zero initialization here is useful for determinism.
6 years ago
Fernando Sahmkow 3f104464de Core: Wait for GPU to be idle before shutting down. 6 years ago
Fernando Sahmkow 5b5e60ffec GPU_Async: Correct fences, display events and more.
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.
6 years ago
FearlessTobi 55d272efe6 video_core: Implement RGBX16F PixelFormat 6 years ago
bunnei 19af91434e
Merge pull request #2793 from ReinUsesLisp/bgr565
renderer_opengl: Implement RGB565 framebuffer format
6 years ago
Rodrigo Locatti 4d4f9cc104 video_core: Silent miscellaneous warnings (#2820)
* 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
6 years ago
Fernando Sahmkow 862bec001b Video_Core: Implement a new Buffer Cache 6 years ago
ReinUsesLisp 80702aa88f renderer_opengl: Implement RGB565 framebuffer format 6 years ago
ReinUsesLisp 8ad7268c75 renderer_opengl: Use VideoCore pixel format 6 years ago
ReinUsesLisp 9a76e94b3d gpu: Change optional<reference_wrapper<T>> to T* for FramebufferConfig 6 years ago
Fernando Sahmkow e52c895559 GPU: Flush commands on every dma pusher step.
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.
6 years ago
bunnei 52f54c728d
Merge pull request #2592 from FernandoS27/sync1
Implement GPU Synchronization Mechanisms & Correct NVFlinger
6 years ago
bunnei 31e8a61527
Merge pull request #2743 from FernandoS27/surpress-assert
Downgrade and suppress a series of GPU asserts and debug messages.
6 years ago
Fernando Sahmkow 43f57d668c GPU: Add missing puller methods.
This adds some missing puller methods. We don't assert them as these are 
nop operations for us.
6 years ago
ReinUsesLisp 725ba6cf63 gl_rasterizer: Implement compute shaders 6 years ago
Fernando Sahmkow d20ede40b1 NVServices: Styling, define constructors as explicit and corrections 6 years ago
Fernando Sahmkow 0335a25d1f NVServices: Make NVEvents Automatic according to documentation. 6 years ago
Fernando Sahmkow 7d1b974bca GPU: Correct Interrupts to interrupt on syncpt/value instead of event, mirroring hardware 6 years ago
Fernando Sahmkow 0706d633bf nv_host_ctrl: Make Sync GPU variant always return synced result. 6 years ago
Fernando Sahmkow c13433aee4 Gpu: use an std mutex instead of a spin_lock to guard syncpoints 6 years ago
Fernando Sahmkow eef55f493b Gpu: Mark areas as protected. 6 years ago
Fernando Sahmkow a45643cb3b nv_services: Stub CtrlEventSignal 6 years ago
Fernando Sahmkow 8942047d41 Gpu: Implement Hardware Interrupt Manager and manage GPU interrupts 6 years ago
Fernando Sahmkow 82b829625b video_core: Implement GPU side Syncpoints 6 years ago
Lioncash 6d0551196d video_core/gpu: Create threads separately from initialization
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.
6 years ago