Fernando Sahmkow
9f9e662f1f
Clang Format and Documentation.
6 years ago
Fernando Sahmkow
4c11487d1e
VideoCore/GPU: Delegate subchannel engines to the dma pusher.
6 years ago
Fernando Sahmkow
b916b58702
VideoCore/Engines: Refactor Engines CallMethod.
6 years ago
Fernando Sahmkow
0cf32d6184
Clang Format.
6 years ago
Fernando Sahmkow
c8f4549d43
GPU: Add Fast GPU Time Option.
6 years ago
Fernando Sahmkow
ef3a0ae64a
DMAPusher: Propagate multimethod writes into the engines.
6 years ago
Fernando Sahmkow
ea522da8b5
Address Feedback.
6 years ago
Fernando Sahmkow
7986c97ed2
GPU: Implement Flush Requests for Async mode.
6 years ago
Fernando Sahmkow
e7195b5f87
ThreadManager: Sync async reads on accurate gpu.
6 years ago
Fernando Sahmkow
802fabe3ab
OpenGL: Implement Fencing backend.
6 years ago
Fernando Sahmkow
fda21f5a93
GPU: Delay Fences.
6 years ago
Fernando Sahmkow
c689dc6804
GPU: Refactor synchronization on Async GPU
6 years ago
Lioncash
8a37c63b9e
dma_pusher: Remove reliance on the global system instance
With this, the video core is now has no calls to the global system
instance at all.
6 years ago
James Rowe
b37d69e5e1
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
6 years ago
ReinUsesLisp
30ed1b0702
video_core/gpu: Remove unused functions
6 years ago
bunnei
f382179d47
Revert "video_core: memory_manager: Use GPU interface for cache functions."
6 years ago
Fernando Sahmkow
2dd9d660e3
GPU: Address Feedback.
6 years ago
Fernando Sahmkow
04c3213a01
GPU: Implement GPU Clock correctly.
6 years ago
bunnei
f28ab9626e
video_core: memory_manager: Use GPU interface for cache functions.
6 years ago
Markus Wick
4bdaebe33e
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.
6 years ago
Lioncash
6a50c481fd
video_core/gpu: Remove use of the global system accessor
We can just make use of the reference member variable instead of
accessing the global system instance.
6 years ago
Fernando Sahmkow
a1b185fa72
AsyncGpu: Address Feedback
6 years ago
Fernando Sahmkow
1df31e4b65
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
99b280bbf7
video_core: Implement RGBX16F PixelFormat
6 years ago
Rodrigo Locatti
598157a8c9
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
ReinUsesLisp
0a9f3a7a43
renderer_opengl: Use VideoCore pixel format
6 years ago
Fernando Sahmkow
e82d641357
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.
7 years ago
Fernando Sahmkow
d6e1af6f23
GPU: Add missing puller methods.
This adds some missing puller methods. We don't assert them as these are
nop operations for us.
7 years ago
ReinUsesLisp
37a3fdc6c6
gl_rasterizer: Implement compute shaders
7 years ago
Michael Scire
ab4a2b5699
prefer system reference over global accessor
7 years ago
Fernando Sahmkow
b8b874005f
NVServices: Styling, define constructors as explicit and corrections
7 years ago
Fernando Sahmkow
a156731a9c
NVFlinger: Correct GCC compile error
7 years ago
Fernando Sahmkow
9db53b51b6
NVServices: Make NVEvents Automatic according to documentation.
7 years ago
Fernando Sahmkow
604dc3f59b
GPU: Correct Interrupts to interrupt on syncpt/value instead of event, mirroring hardware
7 years ago
Fernando Sahmkow
772d205e8f
nv_host_ctrl: Make Sync GPU variant always return synced result.
7 years ago
Fernando Sahmkow
ff34715d92
Gpu: use an std mutex instead of a spin_lock to guard syncpoints
7 years ago
Fernando Sahmkow
095e6b1cd9
Gpu: Mark areas as protected.
7 years ago
Fernando Sahmkow
8c8e96b87c
nv_services: Stub CtrlEventSignal
7 years ago
Fernando Sahmkow
1fb8727a9a
Gpu: Implement Hardware Interrupt Manager and manage GPU interrupts
7 years ago
Fernando Sahmkow
779c115dbb
video_core: Implement GPU side Syncpoints
7 years ago
Fernando Sahmkow
10e30eb735
texture_cache: Query MemoryManager from the system
7 years ago
Fernando Sahmkow
e8ac8ab2f5
Deglobalize Memory Manager on texture cahe and Implement Invalidation and Flushing using GPUVAddr
7 years ago
Fernando Sahmkow
e42bf4f314
Introduce skeleton of the GPU Compute Engine.
7 years ago
Fernando Sahmkow
86e8a9f978
Revamp Kepler Memory to use a subegine to manage uploads
7 years ago
bunnei
2a4a454793
memory_manager: Improved implementation of read/write/copy block.
- Fixes graphical issues with Chocobo's Mystery Dungeon EVERY BUDDY!
- Fixes a crash with Mario Tennis Aces
7 years ago
Lioncash
c34cb4ebcc
video_core/gpu: Amend typo in GPU member variable name
smaphore -> semaphore
7 years ago
bunnei
fa405371ee
gpu: Rewrite virtual memory manager using PageTable.
7 years ago
bunnei
d3f26c1546
video_core: Refactor to use MemoryManager interface for all memory access.
# 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
7 years ago
bunnei
83079031b3
gpu: Refactor a/synchronous implementations into their own classes.
7 years ago
bunnei
9d1ee628b2
gpu: Move command processing to another thread.
7 years ago