aboutsummaryrefslogtreecommitdiff
path: root/src/video_core
AgeCommit message (Collapse)Author
2020-04-22Merge pull request #3677 from FernandoS27/better-syncbunnei
Introduce Predictive Flushing and Improve ASYNC GPU
2020-04-22vk_pipeline_cache: Fix unintentional memcpy into optionalReinUsesLisp
The intention behind this was to assign a float to from an uint32_t, but it was unintentionally being copied directly into the std::optional. Copy to a temporary and assign that temporary to std::optional. This can be replaced with std::bit_cast<float> once we are in C++20.
2020-04-22GL_Fence_Manager: use GL_TIMEOUT_IGNORED instead of a loop,Fernando Sahmkow
2020-04-22Merge pull request #3653 from ReinUsesLisp/nsight-aftermathFernando Sahmkow
renderer_vulkan: Integrate Nvidia Nsight Aftermath on Windows
2020-04-22Address Feedback.Fernando Sahmkow
2020-04-22Async GPU: Correct flushing behavior to be similar to old async GPU behavior.Fernando Sahmkow
2020-04-22MaxwellDMA: Correct copying on accuracy level.Fernando Sahmkow
2020-04-22ShaderCache/PipelineCache: Cache null shaders.Fernando Sahmkow
2020-04-22Address Feedback.Fernando Sahmkow
2020-04-22Fix GCC error.Fernando Sahmkow
2020-04-22QueryCache: Only do async flushes on async gpu.Fernando Sahmkow
2020-04-22Async GPU: Only do reactive flushing on Extreme Level.Fernando Sahmkow
2020-04-22vk_fence_manager: Initial implementationReinUsesLisp
2020-04-22QueryCache: Implement Async Flushes.Fernando Sahmkow
2020-04-22OpenGL: Guarantee writes to Buffers.Fernando Sahmkow
2020-04-22GPU: Implement Flush Requests for Async mode.Fernando Sahmkow
2020-04-22FenceManager: Manage syncpoints and rename fences to semaphores.Fernando Sahmkow
2020-04-22BufferCache: Refactor async managing.Fernando Sahmkow
2020-04-22FenceManager: Implement async buffer cache flushes on High settingsFernando Sahmkow
2020-04-22Rasterizer: Document SignalFence & ReleaseFences and setup skeletons on Vulkan.Fernando Sahmkow
2020-04-22GPU: Fix rebase errors.Fernando Sahmkow
2020-04-22Rasterizer: Disable fence managing in synchronous gpu.Fernando Sahmkow
2020-04-22ThreadManager: Sync async reads on accurate gpu.Fernando Sahmkow
2020-04-22FenceManager: Implement should wait.Fernando Sahmkow
2020-04-22GPU: Implement a Fence Manager.Fernando Sahmkow
2020-04-22OpenGL: Implement Fencing backend.Fernando Sahmkow
2020-04-22TextureCache: Flush linear textures after finishing rendering.Fernando Sahmkow
2020-04-22GPU: Delay Fences.Fernando Sahmkow
2020-04-22BufferCache: Implement OnCPUWrite and SyncGuestHostFernando Sahmkow
2020-04-22GPU: Refactor synchronization on Async GPUFernando Sahmkow
2020-04-22Texture Cache: Implement OnCPUWrite and SyncGuestHostFernando Sahmkow
2020-04-22UI: Replasce accurate GPU option for GPU Accuracy LevelFernando Sahmkow
2020-04-21vk_memory_manager: Remove unified memory model flagReinUsesLisp
All drivers (even Intel) seem to have a device local memory type that is not host visible. Remove this flag so all devices follow the same path. This fixes a crash when trying to map to host device local memory on integrated devices.
2020-04-21Merge pull request #3714 from lioncash/copiesbunnei
gl_shader_decompiler: Avoid copies where applicable
2020-04-21vk_rasterizer: Add lazy default buffer maker and use it for empty buffersReinUsesLisp
Introduce a default buffer getter that lazily constructs an empty buffer. This is intended to match OpenGL's buffer 0. Use this for disabled vertex and uniform buffers. While we are at it, include vertex buffer usages for staging buffers to silence validation errors.
2020-04-21gl_rasterizer: Fix buffers without sizeReinUsesLisp
On NVN buffers can be enabled but have no size. According to deko3d and the behavior we see in Animal Crossing: New Horizons these buffers get the special address of 0x1000 and limit themselves to 0xfff. Implement buffers without a size by binding a null buffer to OpenGL without a side. https://github.com/devkitPro/deko3d/blob/1d1930beea093b5a663419e93b0649719a3ca5da/source/maxwell/gpu_3d_vbo.cpp#L62-L63
2020-04-21Merge pull request #3718 from ReinUsesLisp/better-pipeline-stateRodrigo Locatti
fixed_pipeline_state: Pack structure, use memcmp and CityHash on it
2020-04-21Merge pull request #3698 from lioncash/warningbunnei
General: Resolve minor assorted warnings
2020-04-20Merge pull request #3695 from ReinUsesLisp/default-attributesbunnei
maxwell_3d: Initialize format attributes constant as one
2020-04-20shader/arithmetic_integer: Fix LEA_IMM encodingReinUsesLisp
The operand order in LEA_IMM was flipped compared to nvdisasm. Fix that using nxas as reference: https://github.com/ReinUsesLisp/nxas/blob/8dbc38995711cc12206aa370145a3a02665fd989/table.h#L122
2020-04-20Merge pull request #3733 from ambasta/patch-2Mat M
Initialize quad_indexed_pass before uint8_pass
2020-04-20Merge pull request #3700 from ReinUsesLisp/stream-buffer-sizesFernando Sahmkow
vk_stream_buffer: Fix out of memory on boot on recent Nvidia drivers
2020-04-20Initialize quad_indexed_pass before uint8_passAmit Prakash Ambasta
Fixes Werror=reorder in gcc
2020-04-19Merge pull request #3729 from lioncash/globalsRodrigo Locatti
dma_pusher: Remove reliance on the global system instance
2020-04-19Merge pull request #3694 from ReinUsesLisp/indexed-quadsbunnei
vk_compute_pass: Implement indexed quads
2020-04-19dma_pusher: Remove reliance on the global system instanceLioncash
With this, the video core is now has no calls to the global system instance at all.
2020-04-19Merge pull request #3686 from lioncash/tablebunnei
texture_cache/format_lookup_table: Fix incorrect green, blue, and alpha indices
2020-04-19Merge pull request #3679 from lioncash/trackbunnei
track: Eliminate redundant copies
2020-04-19renderer_vulkan: assume X11 if not Windows/macOS after bf1d66b7c074Jan Beich
Render.Vulkan <Error> video_core/renderer_vulkan/renderer_vulkan.cpp:CreateInstance:131: Presentation not supported on this platform Render.Vulkan <Error> video_core/renderer_vulkan/renderer_vulkan.cpp:CreateSurface:378: Presentation not supported on this platform Core <Critical> core/core.cpp:Load:199: Failed to initialize system (Error 5)!
2020-04-18vulkan/wrapper: Sort physical devicesReinUsesLisp
Sort discrete GPUs over the rest, Nvidia over AMD, AMD over Intel, Intel over the rest. This gives us a somewhat consistent order when Optimus is removed (renderdoc does this when it's attached). This can break the configuration of users with an Intel GPU that manually remove Optimus on yuzu. That said, it's a very unlikely to happen.