summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/VertexLoaderBase.cpp
AgeCommit message (Collapse)Author
2025-01-24VertexLoaderBase: Allow the vertex loader type to be set via configOatmealDome
2024-10-12Cache normals in addition to binormals and tangentsPokechu22
Fixes LIT (https://bugs.dolphin-emu.org/issues/13635). The text does not include normals, but has lighting enabled. With the previous default of (0, 0, 0), lighting was always black (as dot(X, (0, 0, 0)) is always 0). It seems like the normal from the map in the background (0, 0, 1) is re-used. LIT also has the vertex color enabled while vertex color is not specified, the same as SMS's debug cubes; the default MissingColorValue GameINI value of solid white seems to work correctly in this case.
2024-08-22Add support for libfmt-11Alfred Wingate
fmt::join was moved into fmt/ranges.h Signed-off-by: Alfred Wingate <parona@protonmail.com>
2024-05-03Replace Common::BitCast with std::bit_castPokechu22
2023-02-09VertexLoaderBase: Fix shadowing warningPokechu22
2023-01-13VertexLoaderTester: Add assertions for position/binormal/tangent cachesPokechu22
2023-01-13VertexLoaderTester: Use asserts instead of logsPokechu22
Logs don't show up in unit tests, and since this is debugging functionality (though not enabled for tests by default) it's better to do it this way.
2022-12-18Common: Use C++20 <bit> header in BitSet.hJosJuice
2022-11-22VertexLoader: Eliminate use of DataReaderPokechu22
DataReader is generally jank - it has a start and end pointer, but the end pointer is generally not used, and all of the vertex loaders mostly bypassed it anyways. Wrapper code (the vertex loaer test, as well as Fifo.cpp and OpcodeDecoding.cpp) still uses it, as does the software vertex loader (which is not a subclass of VertexLoader). These can probably be eliminated later.
2022-09-15VertexLoader: Optimize GetVertexSizeRobin Kertels
GetComponentSizes was unused, so we simplify this and get rid of the branches.
2022-05-18Rename CP and XF normal component count enums and update their descriptionsPokechu22
2022-04-22VideoCommon: Rename norm0/norm1/norm2 to normal/tangent/binormalPokechu22
2022-01-09Treewide: Remove unused inclusions of <cinttypes>Pokechu22
Most of these became unneeded when fmt was introduced.
2021-07-12VideoCommon: fix generic buildCrystalGamma
On x86/ARM Common/Assert.h is included by way of VideoCommon/VertexLoader{X64,ARM64}.h, on other platforms it is missing.
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-05-07Separate vertex components by spacesPokechu22
2021-05-07Move vertex size and component calculation to VertexLoaderBasePokechu22
2021-05-07Remove VertexLoaderBase::IsInitializedPokechu22
It is no longer relevant for the current set of loaders after 70305425462843af192489da00389559cd6f5834. If it becomes relevant again, a static function named IsUsable or IsCompatibleWithCurrentMachine or something would be a better approach.
2021-05-07Eliminate TVtxAttrPokechu22
2021-05-07Remove VertexLoader::ToStringPokechu22
2021-03-06Convert CPMemory to BitField and enum classPokechu22
Additionally, VCacheEnhance has been added to UVAT_group1. According to YAGCD, this field is always 1. TVtxDesc also now has separate low and high fields whose hex values correspond with the proper registers, instead of having one 33-bit value. This change was made in a way that should be backwards-compatible.
2020-11-17VideoCommon: Migrate over to fmtLioncash
Migrates off the printf-based formatting where applicable.
2019-11-23VideoCommon: Make use of fmt outside of shader generatorsLioncash
Migrates most of VideoCommon over to using fmt, with the exception being the shader generator code. The shader generators are quite large and have more corner cases to deal with in terms of conversion (shaders have braces in them, so we need to make sure to escape them). Because of the large amount of code that would need to be converted, the conversion of VideoCommon will be in two parts: - This change (which converts over the general case string formatting), - A follow up change that will specifically deal with converting over the shader generators.
2018-04-12Reformat all the things!spycrab
2017-03-26VertexLoaderBase: Return debug strings by valueLioncash
An out parameter for this sort of thing is a C++03 hold-over. This also renames AppendToString to ToString.
2017-03-26VertexLoaderBase: Use std::array where applicableLioncash
2017-03-23VertexLoaderBase: In-class initialize class members where applicableLioncash
Same thing, less code.
2016-06-24Reformat all the things. Have fun with merge conflicts.Pierre Bourdon
2016-01-31VideoCommon: Convert some DataReader includes into forward declarationsLioncash
Gets rid of some indirect inclusions in cpp files. Also this will reduce the amount of rebuilt files if changes occur in the DataReader header.
2016-01-17VideoCommon: Header cleanupLioncash
Also remedies places where the video backends and core rely on things being indirectly included.
2015-12-22VertexLoaderBase: Get rid of explicit delete and newLioncash
2015-10-22VertexLoaderTester: drop superfluous newlinesTillmann Karras
2015-10-16VideoCommon: Add includes for generic buildChristian Widmer
On x86_64 and arm64 builds Common/MsgHandler.h and Common/Logging/Log.h are indirectly included through the corresponding VertexLoaders, Emitters and lastly Assert.h. Because the generic build does not build a vertex loader JIT it does not include those and fails at compile time. Thanks to HdkR and mibofra!
2015-09-28Fix building with PCH disabled.Rohit Nirmal
2015-09-11Partially revert "General: Toss out PRI macro usage"Lioncash
2015-09-05General: Toss out PRI macro usageLioncash
Now that VS supports more printf specifiers, these aren't necessary
2015-07-08Merge pull request #2722 from lioncash/statementMarkus Wick
VertexLoaderBase: Adjust the scope of a boolean variable
2015-07-08VertexLoader: avoid empty lines in perf-$pid.mapTillmann Karras
2015-07-07VertexLoaderBase: Adjust the scope of a boolean variableLioncash
if a or b do actually turn out to be null, this can cause a null pointer dereference.
2015-05-25Merge pull request #2274 from degasus/disable_bboxRyan Houdek
Disable bbox
2015-05-25Update license headers to GPLv2+Tillmann Karras
2015-05-25BBox: remove now unreachable SW bbox implementationdegasus
2015-02-25Formatting/Whitespace CleanupStevoisiak
Various fixes to formatting and whitespace
2015-02-16[AArch64] Implement vertex loader recompiler.Ryan Houdek
Shows a noticeable reduction in time spent in the vertex loader.
2015-02-13Change RunVertices' function arguments.Ryan Houdek
This reduces some dumb state shuffling when calling the emitted vertex loaders.
2015-01-26VertexLoaderBase: fix crash on invalid formatsTillmann Karras
2015-01-20VertexLoaderX64: support VAT.ByteDequant=0Tillmann Karras
2015-01-18VertexLoader: add new JITTillmann Karras
2015-01-18VertexLoaderTester: fix a few problemsTillmann Karras
2015-01-18DataReader: turn WritePointer into GetPointerTillmann Karras