aboutsummaryrefslogtreecommitdiff
path: root/src/video_core
AgeCommit message (Collapse)Author
2019-03-22Merge pull request #2256 from bunnei/gpu-vmmbunnei
gpu: Rewrite MemoryManager based on the VMManager implementation.
2019-03-21Revert "Devirtualize Register/Unregister and use a wrapper instead."bunnei
- Fixes graphical issues from transitions in Super Mario Odyssey.
2019-03-20memory_manager: Cleanup FindFreeRegion.bunnei
2019-03-20memory_manager: Use Common::AlignUp in public interface as needed.bunnei
2019-03-20memory_manager: Bug fixes and further cleanup.bunnei
2019-03-20maxwell_dma: Check for valid source in destination before copy.bunnei
- Avoid a crash in Octopath Traveler.
2019-03-20memory_manager: Add protections for invalid GPU addresses.bunnei
- Avoid a crash in Xenoblade Chronicles 2.
2019-03-20gl_rasterizer_cache: Check that backing memory is valid before creating a ↵bunnei
surface. - Fixes a crash in Puyo Puyo Tetris.
2019-03-20gpu: Rewrite virtual memory manager using PageTable.bunnei
2019-03-20gpu: Move GPUVAddr definition to common_types.bunnei
2019-03-16gl_rasterizer: Skip zero addr/sized regions on flush/invalidate.bunnei
2019-03-16Merge pull request #2244 from bunnei/gpu-mem-refactorbunnei
video_core: Refactor to use MemoryManager interface for all memory access.
2019-03-16memory: Simplify rasterizer cache operations.bunnei
2019-03-16video_core: Refactor to use MemoryManager interface for all memory access.bunnei
# 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
2019-03-14gpu: Use host address for caching instead of guest address.bunnei
2019-03-14Merge pull request #2233 from ReinUsesLisp/morton-cleanupbunnei
video_core/morton: Miscellaneous changes
2019-03-14Merge pull request #2229 from ReinUsesLisp/vk-sampler-cachebunnei
vk_sampler_cache: Implement a sampler cache
2019-03-14Merge pull request #2216 from ReinUsesLisp/rasterizer-systembunnei
gl_rasterizer: Use system instance passed from argument
2019-03-13Merge pull request #2227 from lioncash/overridebunnei
renderer_opengl/gl_global_cache: Add missing override specifiers
2019-03-13video_core/morton: Use enum to describe MortonCopyPixels128 modeReinUsesLisp
2019-03-13video_core/morton: Remove unused parameter in MortonSwizzleReinUsesLisp
2019-03-13video_core/morton: Remove clang-format off when it's not neededReinUsesLisp
2019-03-13video_core/morton: Remove unused functionsReinUsesLisp
2019-03-13video_core/texture: Fix up sampler lod biasReinUsesLisp
2019-03-12vk_sampler_cache: Use operator== instead of memcmpMat M
Co-Authored-By: ReinUsesLisp <reinuseslisp@airmail.cc>
2019-03-12vk_sampler_cache: Implement a sampler cacheReinUsesLisp
2019-03-12video_core/texture: Add a raw representation of TSCEntryReinUsesLisp
2019-03-12Merge pull request #2215 from ReinUsesLisp/samplersbunnei
gl_rasterizer: Encapsulate sampler queries into methods
2019-03-11renderer_opengl/gl_global_cache: Replace indexing for assignment with ↵Lioncash
insert_or_assign The previous code had some minor issues with it, really not a big deal, but amending it is basically 'free', so I figured, "why not?". With the standard container maps, when: map[key] = thing; is done, this can cause potentially undesirable behavior in certain scenarios. In particular, if there's no value associated with the key, then the map constructs a default initialized instance of the value type. In this case, since it's a std::shared_ptr (as a type alias) that is the value type, this will construct a std::shared_pointer, and then assign over it (with objects that are quite large, or actively heap allocate this can be extremely undesirable). We also make the function take the region by value, as we can avoid a copy (and by extension with std::shared_ptr, a copy causes an atomic reference count increment), in certain scenarios when ownership isn't a concern (i.e. when ReserveGlobalRegion is called with an rvalue reference, then no copy at all occurs). So, it's more-or-less a "free" gain without many downsides.
2019-03-11renderer_opengl/gl_global_cache: Append missing override specifiersLioncash
Two of the functions here are overridden functions, so we can append these specifiers to make it explicit.
2019-03-11gl_rasterizer: Use system instance passed from argumentReinUsesLisp
2019-03-10Merge pull request #2147 from ReinUsesLisp/texture-cleanbunnei
shader_ir: Remove "extras" from the MetaTexture
2019-03-10Merge pull request #2143 from ReinUsesLisp/texviewbunnei
gl_rasterizer_cache: Create texture views for array discrepancies
2019-03-09gl_rasterizer: Encapsulate sampler queries into methodsReinUsesLisp
2019-03-09gl_rasterizer: Minor logger changesReinUsesLisp
2019-03-08Merge pull request #2209 from lioncash/reorderbunnei
video_core/gpu_thread: Silence a -Wreorder warning
2019-03-08Merge pull request #2208 from lioncash/gpubunnei
video_core/gpu: Make GPU's destructor virtual
2019-03-08Merge pull request #2191 from ReinUsesLisp/maxwell-to-vkbunnei
maxwell_to_vk: Initial implementation
2019-03-08dma_pusher: Store command_list_header by copyReinUsesLisp
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.
2019-03-07video_core/gpu_thread: Remove unimplemented WaitForIdle function prototypeLioncash
This function didn't have a definition, so we can remove it to prevent accidentally attempting to use it.
2019-03-07video_core/gpu_thread: Amend constructor initializer list orderLioncash
Moves the data members to satisfy the order they're declared as in the constructor initializer list. Silences a -Wreorder warning.
2019-03-07video_core/gpu: Make GPU's destructor virtualLioncash
Because of the recent separation of GPU functionality into sync/async variants, we need to mark the destructor virtual to provide proper destruction behavior, given we use the base class within the System class. Prior to this, it was undefined behavior whether or not the destructor in the derived classes would ever execute.
2019-03-07Merge pull request #2055 from bunnei/gpu-threadbunnei
Asynchronous GPU command processing
2019-03-06Merge pull request #2149 from ReinUsesLisp/decoders-stylebunnei
gl_rasterizer_cache: Move format conversion functions to their own file
2019-03-06gpu_thread: Fix deadlock with threading idle state check.bunnei
2019-03-06gpu_thread: (HACK) Ignore flush on FlushAndInvalidateRegion.bunnei
2019-03-06gpu: Always flush.bunnei
2019-03-06gpu: Refactor a/synchronous implementations into their own classes.bunnei
2019-03-06gpu: Move command processing to another thread.bunnei
2019-03-06Merge pull request #2190 from lioncash/ogl-globalbunnei
core: Remove the global telemetry accessor function