darktux
616619c8f7
Port changes from Early Access
2 years ago
Fernando Sahmkow
4d65645d80
MemoryManager: Reduce the page table size based on last big page address.
2 years ago
Fernando Sahmkow
241c64e43b
Core: Eliminate core/memory dependancies.
2 years ago
Fernando Sahmkow
b206089ea7
Core: Clang format and other small issues.
2 years ago
Fernando Sahmkow
355bbea52d
SMMU: Add Android compatibility
2 years ago
Fernando Sahmkow
bb7b14acd5
GPU SMMU: Expand to 34 bits
2 years ago
Fernando Sahmkow
9db159da71
SMMU: Initial adaptation to video_core.
2 years ago
Kelebek1
42638691b5
Use spans over guest memory where possible instead of copying data.
3 years ago
Kelebek1
c7430e51e3
Remove memory allocations in some hot paths
3 years ago
Fernando Sahmkow
ff3cf7c1d9
MemoryManager: Fix race conditions.
3 years ago
Max Dunbar
8b5becf71b
Fixes 'Continous' typo
3 years ago
Liam
5be8a74b0c
general: fix spelling mistakes
3 years ago
arades79
60a68839ee
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
6b50650633
Revert "MemoryManager: use fastmem directly."
This reverts commit 7f18e3bb89 .
3 years ago
Fernando Sahmkow
d777ec15f8
BufferBase: Don't ignore GPU pages.
3 years ago
Fernando Sahmkow
7f18e3bb89
MemoryManager: use fastmem directly.
3 years ago
Fernando Sahmkow
8eafb91af0
video_core: Cache GPU internal writes.
3 years ago
Fernando Sahmkow
3ea10762d2
RasterizerMemory: Add filtering for flushing/invalidation operations.
3 years ago
Fernando Sahmkow
12a76465b9
MacroHLE: Reduce massive calculations on sizing estimation.
3 years ago
Fernando Sahmkow
7842543573
MacroHLE: Add HLE replacement for base vertex and base instance.
3 years ago
Fernando Sahmkow
209ce46a9f
MacroHLE: Add Index Buffer size estimation.
3 years ago
FengChen
2d53a37461
video_core: Implement memory manager page kind
3 years ago
Fernando Sahmkow
1595e77913
General: address feedback
4 years ago
Fernando Sahmkow
03a978b04b
Buffer Cache: Deduce vertex array limit from memory layout when limit is the highest possible.
4 years ago
bunnei
616e83dd94
DMA & InlineToMemory Engines Rework.
4 years ago
Fernando Sahmkow
8f0981702a
MemoryManager: Finish up the initial implementation.
4 years ago
Fernando Sahmkow
67bb131e37
MemoryManager: initial multi paging system implementation.
4 years ago
Fernando Sahmkow
0925f2386a
Refactor VideoCore to use AS sepparate from Channel.
4 years ago
Fernando Sahmkow
19d8ea6bd6
NVDRV: Remake ASGPU
4 years ago
Fernando Sahmkow
a4346d16ed
VideoCore: Update MemoryManager
4 years ago
Morph
2b87305d31
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
4a3a7673b7
Inline2Memory: Flush before writting buffer.
4 years ago
ameerj
5c644fe97b
video_core/memory_manager: Deduplicate Read/WriteBlock
4 years ago
Fernando Sahmkow
73d501ed4b
Texture Cache: Address feedback.
5 years ago
Fernando Sahmkow
083e0527fd
Texture Cache: Improve accuracy of sparse texture detection.
5 years ago
ReinUsesLisp
cc201e3d82
Merge branch 'bytes-to-map-end' into new-bufcache-wip
5 years ago
ReinUsesLisp
70b3c29534
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
0e885adf4a
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
220ba5933c
video_core/memory_manager: Remove unused CopyBlockUnsafe
This function was not being used.
5 years ago
ReinUsesLisp
5c2fdf4e60
video_core/memory_manager: Add GPU address based flush method
Allow flushing rasterizer contents based on a GPU address.
5 years ago
Lioncash
2f181b6a90
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
9ef5c53e52
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
ad83996932
memory_manager: Make use of [[nodiscard]] in the interface
6 years ago
Lioncash
4ccecf6fec
memory_manager: Make operator+ const qualified
This doesn't modify member state, so it can be marked as const.
6 years ago
Lioncash
9a974b8cb9
memory_manager: Mark IsGranularRange() as a const member function
This doesn't modify internal member state, so it can be marked as const.
6 years ago
ReinUsesLisp
1c61cf29b6
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
991aca142e
hle: nvdrv: Rewrite of GPU memory management.
6 years ago
Lioncash
693ec509d7
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
5a461a7482
video_core: memory_manager: Updates for Common::PageTable changes.
6 years ago
Fernando Sahmkow
f00f6bbdb6
Memory: Address Feedback.
6 years ago