Fernando Sahmkow
4c11487d1e
VideoCore/GPU: Delegate subchannel engines to the dma pusher.
6 years ago
Fernando Sahmkow
ef3a0ae64a
DMAPusher: Propagate multimethod writes into the engines.
6 years ago
Fernando Sahmkow
fda21f5a93
GPU: Delay Fences.
6 years ago
Fernando Sahmkow
de53bc96c0
BufferCache: Implement OnCPUWrite and SyncGuestHost
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
ReinUsesLisp
005f5ca883
video_core: Reintroduce dirty flags infrastructure
6 years ago
ReinUsesLisp
c2d3732176
gl_rasterizer: Remove dirty flags
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
7c50842226
Maxwell3D: Rework the dirty system to be more consistant and scaleable
7 years ago
Fernando Sahmkow
fc9a1b81cb
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
7a56d07632
video_core: Silent -Wswitch warnings
7 years ago
Fernando Sahmkow
994393bd02
Use ReadBlockUnsafe for fetyching DMA CommandLists
7 years ago
Lioncash
44d91d561a
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
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
ReinUsesLisp
81ff2a51ad
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
00fa708e04
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
0faab8fe2c
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
af1543712d
video_core: Assert on invalid GPU to CPU address queries
7 years ago
bunnei
a86364480f
dma_pushbuffer: Optimize to avoid loop and copy on Push.
7 years ago
bunnei
9266f76fb2
gpu: Move command list profiling to DmaPusher::DispatchCalls.
7 years ago
bunnei
f8b215e361
gpu: Rewrite GPU command list processing with DmaPusher class.
- More accurate impl., fixes Undertale (among other games).
7 years ago