Fernando Sahmkow
b8aef40c56
GPU: Add Fast GPU Time Option.
6 years ago
Fernando Sahmkow
3fedcc2f6e
DMAPusher: Propagate multimethod writes into the engines.
6 years ago
Fernando Sahmkow
f616dc0b59
Address Feedback.
6 years ago
Fernando Sahmkow
1fb516cd97
GPU: Implement Flush Requests for Async mode.
6 years ago
Fernando Sahmkow
165ae823f5
ThreadManager: Sync async reads on accurate gpu.
6 years ago
Fernando Sahmkow
487379c593
OpenGL: Implement Fencing backend.
6 years ago
Fernando Sahmkow
339d0d9d6c
GPU: Delay Fences.
6 years ago
Fernando Sahmkow
da8f17715d
GPU: Refactor synchronization on Async GPU
6 years ago
Lioncash
44e959157b
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
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
6 years ago
ReinUsesLisp
3c648e3e2d
video_core/gpu: Remove unused functions
6 years ago
bunnei
0f70f68fb3
Revert "video_core: memory_manager: Use GPU interface for cache functions."
6 years ago
Fernando Sahmkow
d6ed31b9fa
GPU: Address Feedback.
6 years ago
Fernando Sahmkow
8e9a4944db
GPU: Implement GPU Clock correctly.
6 years ago
bunnei
7cacb08cdf
video_core: memory_manager: Use GPU interface for cache functions.
6 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.
6 years ago
Lioncash
b25b94400e
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
cfc2f30dc4
AsyncGpu: Address Feedback
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
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
ReinUsesLisp
8ad7268c75
renderer_opengl: Use VideoCore pixel format
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.
7 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.
7 years ago
ReinUsesLisp
725ba6cf63
gl_rasterizer: Implement compute shaders
7 years ago
Michael Scire
a1845d1dd3
prefer system reference over global accessor
7 years ago
Fernando Sahmkow
d20ede40b1
NVServices: Styling, define constructors as explicit and corrections
7 years ago
Fernando Sahmkow
b391e5f638
NVFlinger: Correct GCC compile error
7 years ago
Fernando Sahmkow
0335a25d1f
NVServices: Make NVEvents Automatic according to documentation.
7 years ago
Fernando Sahmkow
7d1b974bca
GPU: Correct Interrupts to interrupt on syncpt/value instead of event, mirroring hardware
7 years ago
Fernando Sahmkow
0706d633bf
nv_host_ctrl: Make Sync GPU variant always return synced result.
7 years ago
Fernando Sahmkow
c13433aee4
Gpu: use an std mutex instead of a spin_lock to guard syncpoints
7 years ago
Fernando Sahmkow
eef55f493b
Gpu: Mark areas as protected.
7 years ago
Fernando Sahmkow
a45643cb3b
nv_services: Stub CtrlEventSignal
7 years ago
Fernando Sahmkow
8942047d41
Gpu: Implement Hardware Interrupt Manager and manage GPU interrupts
7 years ago
Fernando Sahmkow
82b829625b
video_core: Implement GPU side Syncpoints
7 years ago
Fernando Sahmkow
58c8a44e7a
texture_cache: Query MemoryManager from the system
7 years ago
Fernando Sahmkow
6b0695b3cd
Deglobalize Memory Manager on texture cahe and Implement Invalidation and Flushing using GPUVAddr
7 years ago
Fernando Sahmkow
e4ff140b99
Introduce skeleton of the GPU Compute Engine.
7 years ago
Fernando Sahmkow
a91d3fc639
Revamp Kepler Memory to use a subegine to manage uploads
7 years ago
bunnei
20be92d5e6
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
e36f1a5ba9
video_core/gpu: Amend typo in GPU member variable name
smaphore -> semaphore
7 years ago
bunnei
22d3dfbcd4
gpu: Rewrite virtual memory manager using PageTable.
7 years ago
bunnei
574e89d924
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
aaa373585c
gpu: Refactor a/synchronous implementations into their own classes.
7 years ago
bunnei
7b574f406b
gpu: Move command processing to another thread.
7 years ago
bunnei
ac51d048a9
gpu: Refactor command and swap buffers interface for asynch.
7 years ago
bunnei
4483089d70
gpu: Refactor to take RendererBase instead of RasterizerInterface.
7 years ago
Lioncash
a8fa5019b5
video_core: Remove usages of System::GetInstance() within the engines
Avoids the use of the global accessor in favor of explicitly making the
system a dependency within the interface.
7 years ago
Lioncash
bd983414f6
core_timing: Convert core timing into a class
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.
7 years ago