Fernando Sahmkow
f740d8b9be
MemoryManager: Reduce the page table size based on last big page address.
2 years ago
Fernando Sahmkow
23430e6772
Core: Eliminate core/memory dependancies.
2 years ago
Fernando Sahmkow
590d9b7e1d
Core: Clang format and other small issues.
2 years ago
Fernando Sahmkow
303cd31162
SMMU: Add Android compatibility
2 years ago
Fernando Sahmkow
96fd1348ae
GPU SMMU: Expand to 34 bits
2 years ago
Fernando Sahmkow
0a2536a0df
SMMU: Initial adaptation to video_core.
2 years ago
Kelebek1
6f7cb69c94
Use spans over guest memory where possible instead of copying data.
3 years ago
Kelebek1
5da70f7197
Remove memory allocations in some hot paths
3 years ago
Fernando Sahmkow
9a7c172f76
MemoryManager: Fix race conditions.
3 years ago
Max Dunbar
e446f368d7
Fixes 'Continous' typo
3 years ago
Liam
600f325d87
general: fix spelling mistakes
3 years ago
arades79
683019878f
remove static from pointer sized or smaller types for aesthetics, change constexpr static to static constexpr for consistency
Signed-off-by: arades79 <scravers@protonmail.com>
3 years ago
Merry
dc7ab4c5d6
Revert "MemoryManager: use fastmem directly."
This reverts commit af5ecb0b15 .
3 years ago
Fernando Sahmkow
b56ad93bbc
BufferBase: Don't ignore GPU pages.
3 years ago
Fernando Sahmkow
af5ecb0b15
MemoryManager: use fastmem directly.
3 years ago
Fernando Sahmkow
6c7eb81f7d
video_core: Cache GPU internal writes.
3 years ago
Fernando Sahmkow
3630bfaef3
RasterizerMemory: Add filtering for flushing/invalidation operations.
3 years ago
Fernando Sahmkow
18637766ef
MacroHLE: Reduce massive calculations on sizing estimation.
3 years ago
Fernando Sahmkow
aad0cbf024
MacroHLE: Add HLE replacement for base vertex and base instance.
3 years ago
Fernando Sahmkow
93ac5a6a6d
MacroHLE: Add Index Buffer size estimation.
3 years ago
FengChen
99507d0188
video_core: Implement memory manager page kind
3 years ago
Fernando Sahmkow
ca3db0d7c9
General: address feedback
3 years ago
Fernando Sahmkow
770e19f51a
Buffer Cache: Deduce vertex array limit from memory layout when limit is the highest possible.
4 years ago
bunnei
f5fd6b5c86
DMA & InlineToMemory Engines Rework.
3 years ago
Fernando Sahmkow
359f22b808
MemoryManager: Finish up the initial implementation.
4 years ago
Fernando Sahmkow
4d60410dd9
MemoryManager: initial multi paging system implementation.
4 years ago
Fernando Sahmkow
e462191482
Refactor VideoCore to use AS sepparate from Channel.
4 years ago
Fernando Sahmkow
feb49c822d
NVDRV: Remake ASGPU
4 years ago
Fernando Sahmkow
cbaf3fb433
VideoCore: Update MemoryManager
4 years ago
Morph
99ceb03a1c
general: Convert source file copyright comments over to SPDX
This formats all copyright comments according to SPDX formatting guidelines.
Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
4 years ago
Fernando Sahmkow
f54280dafd
Inline2Memory: Flush before writting buffer.
4 years ago
ameerj
2428214c4b
video_core/memory_manager: Deduplicate Read/WriteBlock
4 years ago
Fernando Sahmkow
8f9f142956
Texture Cache: Address feedback.
5 years ago
Fernando Sahmkow
fd98fcf7f0
Texture Cache: Improve accuracy of sparse texture detection.
5 years ago
ReinUsesLisp
93a69b6cc8
Merge branch 'bytes-to-map-end' into new-bufcache-wip
5 years ago
ReinUsesLisp
75ccd9959c
gpu: Report renderer errors with exceptions
Instead of using a two step initialization to report errors, initialize
the GPU renderer and rasterizer on the constructor and report errors
through std::runtime_error.
5 years ago
ReinUsesLisp
bda177ef40
video_core/memory_manager: Add BytesToMapEnd
Track map address sizes in a flat ordered map and add a method to query
the number of bytes until the end of a map in a given address.
5 years ago
ReinUsesLisp
b7febb5625
video_core/memory_manager: Remove unused CopyBlockUnsafe
This function was not being used.
5 years ago
ReinUsesLisp
dd790abab0
video_core/memory_manager: Add GPU address based flush method
Allow flushing rasterizer contents based on a GPU address.
5 years ago
Lioncash
677a8b208d
video_core: Resolve more variable shadowing scenarios
Resolves variable shadowing scenarios up to the end of the OpenGL code
to make it nicer to review. The rest will be resolved in a following
commit.
5 years ago
ameerj
eb67a45ca8
video_core: NVDEC Implementation
This commit aims to implement the NVDEC (Nvidia Decoder) functionality, with video frame decoding being handled by the FFmpeg library.
The process begins with Ioctl commands being sent to the NVDEC and VIC (Video Image Composer) emulated devices. These allocate the necessary GPU buffers for the frame data, along with providing information on the incoming video data. A Submit command then signals the GPU to process and decode the frame data.
To decode the frame, the respective codec's header must be manually composed from the information provided by NVDEC, then sent with the raw frame data to the ffmpeg library.
Currently, H264 and VP9 are supported, with VP9 having some minor artifacting issues related mainly to the reference frame composition in its uncompressed header.
Async GPU is not properly implemented at the moment.
Co-Authored-By: David <25727384+ogniK5377@users.noreply.github.com>
5 years ago
Lioncash
7b50c48df7
memory_manager: Make use of [[nodiscard]] in the interface
5 years ago
Lioncash
d12d59f62a
memory_manager: Make operator+ const qualified
This doesn't modify member state, so it can be marked as const.
5 years ago
Lioncash
5bce81c3d6
memory_manager: Mark IsGranularRange() as a const member function
This doesn't modify internal member state, so it can be marked as const.
5 years ago
ReinUsesLisp
da53bcee60
video_core: Initialize renderer with a GPU
Add an extra step in GPU initialization to be able to initialize render
backends with a valid GPU instance.
6 years ago
bunnei
05def61398
hle: nvdrv: Rewrite of GPU memory management.
6 years ago
Lioncash
479605b3e5
memory_manager: Eliminate variable shadowing
Renames some variables to prevent ones in inner scopes from shadowing
outer-scoped variables.
The Copy* functions have no shadowing, but we rename them anyways to
remain consistent with the other functions.
6 years ago
bunnei
32fc2aae3c
video_core: memory_manager: Updates for Common::PageTable changes.
6 years ago
Fernando Sahmkow
913f42a3a7
Memory: Address Feedback.
6 years ago
Fernando Sahmkow
e00d992848
GPUMemoryManager: Improve safety of memory reads.
6 years ago