07ed932a09
Common/LinearDiskCache: Move interface into Common namespace
...
Gets the interface out of the global namespace.
2023-04-19 09:14:39 -04:00
af313f8419
VideoCommon: add constant value to set the allowed maximum number of pixel samplers
2023-02-10 00:46:11 -06:00
3a5901d12e
VideoBackends:Vulkan: Add support for vertex shader point and line expansion
2022-10-22 20:13:24 -05:00
28b31b8327
VideoBackends:Vulkan: Make dynamic vertex loader optional
...
Makes it easier to disable in the future if support for VK_EXT_vertex_input_dynamic_state is added
2022-09-19 16:28:24 -05:00
936b4d5d0d
VideoBackends:Vulkan: Dynamic vertex loader support
2022-09-19 16:28:24 -05:00
4a9b26de86
VideoCommon: Expose SamplerState to shaders
...
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-11-17 20:04:34 -08:00
e149ad4f0a
treewide: convert GPLv2+ license info to SPDX tags
...
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-07-05 04:35:56 +02:00
d7fd892fde
normalize common filenames in VideoBackends/Vulkan
2021-01-27 14:29:48 -08:00
139d4fc76e
General: Convert PanicAlerts over to fmt equivalent
...
Converts lingering panic alert calls over to the fmt-capable ones.
2020-12-02 13:38:33 -05:00
21dd7a8ebb
Vulkan: Migrate logging over to fmt
...
Migrates the vulkan backend over to the fmt-capable logger.
2020-11-09 03:26:16 -05:00
28aa04312c
Common/LinearDiskCache: Replace std::fstream with File::IOFile
...
File::IOFile is better suited to this type of task.
Split out from a future PR.
2020-11-05 00:31:17 +01:00
86f8768268
VideoCommon/ShaderGenCommon: Make template functions regular functions
...
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().
2020-05-25 21:12:29 -04:00
a9663669dc
Common/CommonFuncs: Remove now-unneccessary ArraySize function
...
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-06-01 10:07:57 -04:00
f039149198
Move most backend functionality to VideoCommon
2019-02-19 16:57:54 +10:00
e03b8e899e
Vulkan: Move texture upload buffer to ObjectCache
2019-01-25 11:15:57 +10:00
dec0c3bce8
Move shader caches to VideoCommon
2018-03-10 15:56:30 +10:00
fec6bb4d56
VideoBackends: Add AbstractShader and AbstractPipeline classes
2018-02-22 22:02:34 +10:00
173a33886c
Vulkan: Move render pass management to ObjectCache
2018-01-11 15:21:34 +10:00
5fb6ceac45
Fixed fog, lava, water in Mario Galaxy (and possibly other games) in higher IRs by detecting & fixing the mipmaps that aren't just used for downscaling, but are handmade to create a gradient.
2017-10-27 00:45:20 -07:00
24ddea04ce
VideoBackends: Move SamplerState to common
2017-09-11 20:01:54 +10:00
fee08cf63d
Vulkan: Use optimal tiling for dummy texture
...
Fixes a crash on some NVIDIA drivers. Apparently calling
vkCmdClearColorImage on an image with linear tiling causes the
GPU/driver to lock up.
2017-08-02 21:33:10 +10:00
81b4ed2a81
Vulkan: Uber shader support
2017-07-30 17:43:59 +10:00
aff44684a4
Vulkan: Move shader/pipeline-related methods to ShaderCache
2017-07-30 12:38:49 +10:00
3ea9d86faa
ShaderGen: Pass host config to shader generation functions
...
Also moves the host config checks to common.
2017-07-20 17:54:33 +10:00
d01b0bf60f
VideoCommon: Move shader cache filename generation to common
2017-07-20 17:46:59 +10:00
b380f292b4
Vulkan: Reload pipeline cache when relevant host config changes
2017-07-20 17:46:59 +10:00
a8343cc19a
Vulkan: Don't save pipeline cache if shader cache is disabled
...
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-07-20 17:46:59 +10:00
417a4ca206
Vulkan: Implement post-processing backend
...
No new features, just parity with OpenGL.
2017-04-25 14:27:02 +10:00
9dc7358395
Vulkan: Use BlendingState from VideoCommon
...
Remove the internal BlendState union. Also fixes Kirby's Return to
Dreamland shadows.
2017-04-18 21:55:22 +10:00
5fbc63fbcf
Vulkan: Compute shader support
2017-04-01 12:32:57 +10:00
ced1614cac
Unify the way of setting game ID, title ID, revision
...
The existing code from ConfigManager, ES and MIOS is merged
into a new set of functions called SetRunningGameMetadata.
2017-03-09 15:34:14 +01:00
21967b1f6e
VideoBackends: Add a developer option to disable the shader cache.
...
Makes it easier to disable the cache while working on the shaders.
2017-02-19 12:05:44 +01:00
6965dc0481
Vulkan: Don't enable primitive restart on list topologies
2017-02-18 15:07:32 +10:00
273ace7bb7
LightingShaderGen: Remove unnecessary includes
2017-02-01 01:06:00 -05:00
4bc0e14995
Vulkan: Use an enumeration to index pipeline layouts
2016-12-04 20:10:13 +10:00
cd3481fbc7
Vulkan: Differentiate between descriptor set layouts and bind points
...
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-12-04 20:10:13 +10:00
8d48319414
Vulkan: Validate the pipeline cache before using it
...
This ensures that if a user changes adapters or vendors we're not passing
invalid data to the driver.
2016-11-28 21:21:55 +10:00
9604b336c8
Vulkan: Don't destroy the device's pipeline cache on MSAA mode change
...
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-28 21:21:54 +10:00
aac66a1b61
Vulkan: Implement a pipeline UID cache
...
This stores enough information to recreate the pipeline, including the
shader UIDs, blend/depth/rasterization state, primitive and vertex format.
2016-11-28 21:21:53 +10:00
70eb904536
Vulkan: Fix incorrect geometry shader input/output usage
2016-11-03 22:33:24 +10:00
1081497cad
DiscIO/SConfig: Rename GetUniqueID to GetGameID
...
We call this "game ID" everywhere else, and it's not
actually completely unique.
2016-10-29 15:24:02 +02:00
ef1bfc26b2
Merge pull request #4291 from degasus/shader_gen
...
PixelShaderGen: Fix UID issues.
2016-10-05 12:20:58 +02:00
829fc8f0ad
PixelShaderGen: Drop dstAlphaMode constant in shader generation.
...
It is already stored within the UID.
2016-10-04 10:13:46 +02:00
f595fe080f
Vulkan: Fix bug with fractional LOD bias and min/max LOD
2016-10-03 19:11:48 +10:00
9395b8efa9
Vulkan: Amend header includes
...
Adds headers where necessary to eliminate indirect includes.
Also adds headers to ensure certain standard constructs always
resolve correctly
2016-09-30 23:26:03 -04:00
77a128ab87
Implement experimental Vulkan backend
2016-10-01 02:40:01 +10:00