Fernando Sahmkow
339d0d9d6c
GPU: Delay Fences.
6 years ago
Fernando Sahmkow
8b1eb44b3e
BufferCache: Implement OnCPUWrite and SyncGuestHost
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
ReinUsesLisp
eed789d0d1
video_core: Reintroduce dirty flags infrastructure
6 years ago
ReinUsesLisp
96ac3d518a
gl_rasterizer: Remove dirty flags
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
f2e7b29c14
Maxwell3D: Rework the dirty system to be more consistant and scaleable
7 years ago
Fernando Sahmkow
9e98100c94
Dma_pusher: ASSERT on empty command_list
This is a measure to avoid crashes on command list reading as an empty
command_list is considered a NOP.
7 years ago
ReinUsesLisp
fbe8d1ceaa
video_core: Silent -Wswitch warnings
7 years ago
Fernando Sahmkow
13d626fc21
Use ReadBlockUnsafe for fetyching DMA CommandLists
7 years ago
Lioncash
fbf452ab0e
video_core/texures/texture: Remove unnecessary includes
Nothing in this header relies on common_funcs or the memory manager.
This gets rid of reliance on indirect inclusions in the OpenGL caches.
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
ReinUsesLisp
e7ac5a6adf
dma_pusher: Store command_list_header by copy
Instead of holding a reference that will get invalidated by
dma_pushbuffer.pop(), hold it as a copy. This doesn't have any
performance cost since CommandListHeader is 8 bytes long.
7 years ago
Markus Wick
6dd40976d0
video_core/dma_pusher: Simplyfy Step() logic.
As fetching command list headers and and the list of command headers is a fixed 1:1 relation now, they can be implemented within a single call.
This cleans up the Step() logic quite a bit.
7 years ago
Markus Wick
717394c980
video_core/dma_pusher: The full list of headers at once.
Fetching every u32 from memory leads to a big overhead. So let's fetch all of them as a block if possible.
This reduces the Memory::* calls by the dma_pusher by a factor of 10.
7 years ago
ReinUsesLisp
2bdbb90af7
video_core: Assert on invalid GPU to CPU address queries
7 years ago
bunnei
ac74b71d75
dma_pushbuffer: Optimize to avoid loop and copy on Push.
7 years ago
bunnei
c568f5cea7
gpu: Move command list profiling to DmaPusher::DispatchCalls.
7 years ago
bunnei
abea6fa90c
gpu: Rewrite GPU command list processing with DmaPusher class.
- More accurate impl., fixes Undertale (among other games).
7 years ago