aboutsummaryrefslogtreecommitdiff
path: root/src/video_core
AgeCommit message (Collapse)Author
2021-01-15common/common_funcs: Rename INSERT_UNION_PADDING_{BYTES,WORDS} to _NOINITReinUsesLisp
INSERT_PADDING_BYTES_NOINIT is more descriptive of the underlying behavior.
2021-01-15vulkan_memory_allocator: Remove unnecesary 'device' memory from commitsReinUsesLisp
2021-01-15vk_texture_cache: Use Download memory types for texture flushesReinUsesLisp
Use the Download memory type where it matters.
2021-01-15vulkan_memory_allocator: Add allocation support for download typesReinUsesLisp
Implements the allocator logic to handle download memory types. This will try to use HOST_CACHED_BIT when available.
2021-01-15vulkan_memory_allocator: Add "download" memory usage hintReinUsesLisp
Allow users of the allocator to hint memory usage for downloads. This removes the non-descriptive boolean passed for "host visible" or not host visible memory commits, and uses an enum to hint device local, upload and download usages.
2021-01-15vulkan_common: Move allocator to the common directoryReinUsesLisp
Allow using the abstraction from the OpenGL backend.
2021-01-15renderer_vulkan: Rename Vulkan memory manager to memory allocatorReinUsesLisp
"Memory manager" collides with the guest GPU memory manager, and a memory allocator sounds closer to what the abstraction aims to be.
2021-01-15vk_memory_manager: Improve memory manager and its APIReinUsesLisp
Fix a bug where the memory allocator could leave gaps between commits. To fix this the allocation algorithm was reworked, although it's still short in number of lines of code. Rework the allocation API to self-contained movable objects instead of naively using an unique_ptr to do the job for us. Remove the VK prefix.
2021-01-15Merge pull request #5357 from ReinUsesLisp/alignment-log2LC
common/alignment: Rename AlignBits to AlignUpLog2 and use constraints
2021-01-15common/bit_util: Replace CLZ/CTZ operations with standardized onesLioncash
Makes for less code that we need to maintain.
2021-01-15common/alignment: Rename AlignBits to AlignUpLog2ReinUsesLisp
AlignUpLog2 describes what the function does better than AlignBits.
2021-01-15video_core/cmake: Remove Werror flags already defined code-base wideReinUsesLisp
These flags are already defined in src/cmake.
2021-01-15Merge pull request #5351 from ReinUsesLisp/vc-unused-functionsLC
cmake: Enforce -Wunused-function code-base wise
2021-01-15Merge pull request #5350 from ReinUsesLisp/vk-init-warnsRodrigo Locatti
vulkan_common: Silence missing initializer warnings
2021-01-15Merge pull request #5349 from ReinUsesLisp/anv-fixLC
vulkan_device: Enable shaderStorageImageMultisample conditionally
2021-01-15cmake: Enforce -Wunused-function code-base wideReinUsesLisp
2021-01-15video_core: Enforce -Wunused-functionReinUsesLisp
Stops us from merging code with unused functions in the future. If something is invoked behind conditionally evaluated code in a way that the language can't see it (e.g. preprocessor macros), the potentially unused function should use [[maybe_unused]].
2021-01-15vk_buffer_cache: Remove unused functionReinUsesLisp
2021-01-15vulkan_common: Silence missing initializer warningsReinUsesLisp
Silence warnings explicitly initializing all members on construction.
2021-01-15vulkan_device: Enable shaderStorageImageMultisample conditionallyReinUsesLisp
Fix Vulkan initialization on ANV.
2021-01-15astc: Increase integer encoded vector sizeReinUsesLisp
Invalid ASTC textures seem to write more bytes here, increase the size to something that can't make us push out of bounds.
2021-01-15astc: Return zero on out of bound bitsReinUsesLisp
Avoid out of bound reads on invalid ASTC textures. Games can bind invalid textures that make us read or write out of bounds.
2021-01-13vulkan_device: Remove requirement on shaderStorageImageMultisampleReinUsesLisp
yuzu doesn't currently emulate MS image stores. Requiring this makes no sense for now. Fixes ANV not booting any games on Vulkan.
2021-01-13buffer_cache/buffer_base: Add a range tracking buffer containerReinUsesLisp
It keeps track of the modified CPU and GPU ranges on a CPU page granularity, notifying the given rasterizer about state changes in the tracking behavior of the buffer. Use a small vector optimization to store buffers smaller than 256 KiB locally instead of using free store memory allocations.
2021-01-12Merge pull request #5311 from ReinUsesLisp/fence-waitbunnei
vk_fence_manager: Use timeline semaphores instead of spin waits
2021-01-10Merge remote-tracking branch 'upstream/master' into int-flagsLevi
2021-01-08Merge pull request #5231 from ReinUsesLisp/dyn-bindingsbunnei
renderer_vulkan/fixed_pipeline_state: Move enabled bindings to static state
2021-01-08vk_fence_manager: Use timeline semaphores instead of spin waitsReinUsesLisp
With timeline semaphores we can avoid creating objects. Instead of creating an event, grab the current tick from the scheduler and flush the current command buffer. When the fence has to be queried/waited, we can do so against the master semaphore instead of spinning on an event. If Vulkan supported NVN like events or fences, we could signal from the command buffer and wait for that without splitting things in two separate command buffers.
2021-01-07remove inaccurate referenceAmeer J
Co-authored-by: LC <mathew1800@gmail.com>
2021-01-07fix for nvdec disabled, cleanup host1xameerj
2021-01-07nvdec syncpt incorporationameerj
laying the groundwork for async gpu, although this does not fully implement async nvdec operations
2021-01-07vulkan_library: Common::DynamicLibrary::Open is [[nodiscard]]MerryMage
Ignore the return value on __APPLE__ systems as well
2021-01-07texture_cache: Replace PAGE_SHIFT with PAGE_BITSMerryMage
PAGE_SHIFT is a #define in system headers that leaks into user code on some systems
2021-01-06Merge pull request #5288 from ReinUsesLisp/workaround-garbageMorph
gl_texture_cache: Avoid format views on Intel and AMD
2021-01-05Merge pull request #5289 from ReinUsesLisp/vulkan-devicebunnei
vulkan_common: Move device abstraction to the common directory and allow surfaceless devices
2021-01-04Merge pull request #5292 from ReinUsesLisp/empty-setLC
vk_rasterizer: Skip binding empty descriptor sets on compute
2021-01-04vk_rasterizer: Skip binding empty descriptor sets on computeReinUsesLisp
Fixes unit tests where compute shaders had no descriptors in the set, making Vulkan drivers crash when binding an empty set.
2021-01-04vulkan_device: Allow creating a device without surfaceReinUsesLisp
2021-01-04renderer_vulkan/nsight_aftermath_tracker: Move to vulkan_commonReinUsesLisp
2021-01-04renderer_vulkan: Move device abstraction to vulkan_commonReinUsesLisp
2021-01-04gl_texture_cache: Avoid format views on Intel and AMDReinUsesLisp
Intel and AMD proprietary drivers are incapable of rendering to texture views of different formats than the original texture. Avoid creating these at a cache level. This will consume more memory, emulating them with copies.
2021-01-04gl_texture_cache: Create base images with sRGBReinUsesLisp
This breaks accelerated decoders trying to imageStore into images with sRGB. The decoders are currently disabled so this won't cause issues at runtime.
2021-01-03renderer_vulkan: Rename VKDevice to DeviceReinUsesLisp
The "VK" prefix predates the "Vulkan" namespace. It was carried around the codebase for consistency. "VKDevice" currently is a bad alias with "VkDevice" (only an upcase character of difference) that can cause confusion. Rename all instances of it.
2021-01-03Merge pull request #5230 from ReinUsesLisp/vulkan-commonRodrigo Locatti
vulkan_common: Move reusable Vulkan abstractions to a separate directory
2021-01-02general: Fix various spelling errorsMorph
2020-12-30Merge pull request #5208 from bunnei/service-threadsbunnei
Service threads
2020-12-31vulkan_instance: Allow different Vulkan versions and enforce 1.1ReinUsesLisp
For listing the available physical devices we can use Vulkan 1.0. Now that MoltenVK supports 1.1 we can require it for running games. Add missing documentation.
2020-12-31vk_device: Use an array to report lacking device limitsReinUsesLisp
This makes easier to add and tune the required device limits.
2020-12-31vk_device: Stop initialization when device is not suitableReinUsesLisp
VKDevice::IsSuitable was not being called. To address this issue, check suitability before initialization and throw an exception if it fails. By doing this, we can deduplicate some code on queue searches. Previosuly we would first search if a present and graphics queue existed, then on initialization we would search again to find the index.
2020-12-31renderer_vulkan: Remove two step initialization on VKDeviceReinUsesLisp
The Vulkan device abstraction either initializes successfully on the constructor or throws a Vulkan exception.