summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/Vulkan/ObjectCache.cpp
AgeCommit message (Collapse)Author
2026-01-25Remove unused importsMartino Fontana
Yellow squiggly lines begone! Done automatically on .cpp files through `run-clang-tidy`, with manual corrections to the mistakes. If an import is directly used, but is technically unnecessary since it's recursively imported by something else, it is *not* removed. The tool doesn't touch .h files, so I did some of them by hand while fixing errors due to old recursive imports. Not everything is removed, but the cleanup should be substantial enough. Because this done on Linux, code that isn't used on it is mostly untouched. (Hopefully no open PR is depending on these imports...)
2025-08-17VideoBackends: allow custom pixel uniforms to be passed to the vertex shader ↵iwubcode
as well
2025-03-17Enable anisotropic filtering when the game requests itPokechu22
2025-03-09VideoCommon: Move backend_info out of VideoConfig struct.Jordan Woyak
2024-09-05VideoBackends:Vulkan: Consolidate feature checking into one structTellowKrinkle
2024-01-03Revert "VideoCommon: revert max pixel shader samplers back to 8 for Android ↵iwubcode
devices." This reverts commit 79648e1c24eac81f54365bbcb6dbc49ad6b16b1c.
2023-12-21VideoCommon: revert max pixel shader samplers back to 8 for Android devices.iwubcode
It was reported that some games (Zelda Wind Waker and Zelda Twilight Princess but others may also exhibit the issue) have graphical issues with the max pixel samplers set to 16 on some Android devices (ex: Pixel6); since this was increased for a performance heavy feature (custom shaders) just disable it for now. In the future, this could be handled more elegantly
2023-12-10VideoBackends / VideoCommon: update max pixel shader samplers from 8 to 16, ↵iwubcode
this allows us to support more samplers than the native Wii/GC
2023-10-06VideoBackends / VideoCommon: add new uniform buffer object for custom shader ↵iwubcode
materials (slot 3, geometry shader buffer moves to slot 4 if available)
2023-06-28VideoBackends: support multiple compute images for some backends (D3D, OGL, ↵iwubcode
Vulkan)
2023-06-03VideoBackends: add support to allow rendering to multiple output texturesiwubcode
2023-04-19Common/LinearDiskCache: Move interface into Common namespaceLioncash
Gets the interface out of the global namespace.
2023-02-10VideoCommon: add constant value to set the allowed maximum number of pixel ↵iwubcode
samplers
2022-10-22VideoBackends:Vulkan: Add support for vertex shader point and line expansionTellowKrinkle
2022-09-19VideoBackends:Vulkan: Make dynamic vertex loader optionalTellowKrinkle
Makes it easier to disable in the future if support for VK_EXT_vertex_input_dynamic_state is added
2022-09-19VideoBackends:Vulkan: Dynamic vertex loader supportTellowKrinkle
2021-11-17VideoCommon: Expose SamplerState to shadersPokechu22
The benefit to exposing this over the raw BP state is that adjustments Dolphin makes, such as LOD biases from arbitrary mipmap detection, will work properly.
2021-07-05treewide: convert GPLv2+ license info to SPDX tagsPierre Bourdon
SPDX standardizes how source code conveys its copyright and licensing information. See https://spdx.github.io/spdx-spec/1-rationale/ . SPDX tags are adopted in many large projects, including things like the Linux kernel.
2021-01-27normalize common filenames in VideoBackends/VulkanShawn Hoffman
2020-12-02General: Convert PanicAlerts over to fmt equivalentLioncash
Converts lingering panic alert calls over to the fmt-capable ones.
2020-11-09Vulkan: Migrate logging over to fmtLioncash
Migrates the vulkan backend over to the fmt-capable logger.
2020-11-05Common/LinearDiskCache: Replace std::fstream with File::IOFileJosJuice
File::IOFile is better suited to this type of task. Split out from a future PR.
2020-05-25VideoCommon/ShaderGenCommon: Make template functions regular functionsLioncash
These are only ever used with ShaderCode instances and nothing else. Given that, we can convert these helper functions to expect that type of object as an argument and remove the need for templates, improving compiler throughput a marginal amount, as the template instantiation process doesn't need to be performed. We can also move the definitions of these functions into the cpp file, which allows us to remove a few inclusions from the ShaderGenCommon header. This uncovered a few instances of indirect inclusions being relied upon in other source files. One other benefit is this allows changes to be made to the definitions of the functions without needing to recompile all translation units that make use of these functions, making change testing a little quicker. Moving the definitions into the cpp file also allows us to completely hide DefineOutputMember() from external view, given it's only ever used inside of GenerateVSOutputMembers().
2019-06-01Common/CommonFuncs: Remove now-unneccessary ArraySize functionLioncash
Since C++17, non-member std::size() is present in the standard library which also operates on regular C arrays. Given that, we can just replace usages of ArraySize with that where applicable. In many cases, we can just change the actual C array ArraySize() was called on into a std::array and just use its .size() member function instead. In some other cases, we can collapse the loops they were used in, into a ranged-for loop, eliminating the need for en explicit bounds query.
2019-02-19Move most backend functionality to VideoCommonStenzek
2019-01-25Vulkan: Move texture upload buffer to ObjectCacheStenzek
2018-03-10Move shader caches to VideoCommonStenzek
2018-02-22VideoBackends: Add AbstractShader and AbstractPipeline classesStenzek
2018-01-11Vulkan: Move render pass management to ObjectCacheStenzek
2017-10-27Fixed fog, lava, water in Mario Galaxy (and possibly other games) in higher ↵Tommaso Checchi
IRs by detecting & fixing the mipmaps that aren't just used for downscaling, but are handmade to create a gradient.
2017-09-11VideoBackends: Move SamplerState to commonStenzek
2017-08-02Vulkan: Use optimal tiling for dummy textureStenzek
Fixes a crash on some NVIDIA drivers. Apparently calling vkCmdClearColorImage on an image with linear tiling causes the GPU/driver to lock up.
2017-07-30Vulkan: Uber shader supportStenzek
2017-07-30Vulkan: Move shader/pipeline-related methods to ShaderCacheStenzek
2017-07-20ShaderGen: Pass host config to shader generation functionsStenzek
Also moves the host config checks to common.
2017-07-20VideoCommon: Move shader cache filename generation to commonStenzek
2017-07-20Vulkan: Reload pipeline cache when relevant host config changesStenzek
2017-07-20Vulkan: Don't save pipeline cache if shader cache is disabledStenzek
We still create a pipeline cache object, since that speeds up driver's creation of pipelines at runtime. However, we should not save it.
2017-04-25Vulkan: Implement post-processing backendStenzek
No new features, just parity with OpenGL.
2017-04-18Vulkan: Use BlendingState from VideoCommonStenzek
Remove the internal BlendState union. Also fixes Kirby's Return to Dreamland shadows.
2017-04-01Vulkan: Compute shader supportStenzek
2017-03-09Unify the way of setting game ID, title ID, revisionJosJuice
The existing code from ConfigManager, ES and MIOS is merged into a new set of functions called SetRunningGameMetadata.
2017-02-19VideoBackends: Add a developer option to disable the shader cache.Jules Blok
Makes it easier to disable the cache while working on the shaders.
2017-02-18Vulkan: Don't enable primitive restart on list topologiesStenzek
2017-02-01LightingShaderGen: Remove unnecessary includesLioncash
2016-12-04Vulkan: Use an enumeration to index pipeline layoutsStenzek
2016-12-04Vulkan: Differentiate between descriptor set layouts and bind pointsStenzek
This also moves the pipeline and descriptor set layouts used for texture conversion (texel buffers) to ObjectCache, and shares a binding location with the SSBO set.
2016-11-28Vulkan: Validate the pipeline cache before using itStenzek
This ensures that if a user changes adapters or vendors we're not passing invalid data to the driver.
2016-11-28Vulkan: Don't destroy the device's pipeline cache on MSAA mode changeStenzek
The user could switch back again, and this would mean this data would be lost. Disk space is cheap, and it's not going to be much.
2016-11-28Vulkan: Implement a pipeline UID cacheStenzek
This stores enough information to recreate the pipeline, including the shader UIDs, blend/depth/rasterization state, primitive and vertex format.