summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/Software
AgeCommit message (Collapse)Author
2021-12-18Remove parameters to SWVertexLoader::SetFormatPokechu22
They haven't been used since efbe5bc4b65.
2021-12-10Treewide: Adjust order of includesPokechu22
2021-11-18Merge pull request #10222 from phire/fix-copy-filter-clampingJMC47
Fix copy filter clamping
2021-11-17VideoCommon: Skip textureQueryLevels if it doesn't existPokechu22
2021-11-17Software: Adjust diagonal LOD implementationPokechu22
This produces behavior matching the behavior on hardware (see Wario's Gold Mine in Mario Kart Wii).
2021-11-17VideoCommon: Use coarse derivatives for Manual Texture Sampling if possiblePokechu22
2021-11-17Eliminate SamplerCommon::AreBpTexMode0MipmapsEnabledPokechu22
This was added in 0b9a72a62d38481ff08f742b2318d07f29ff5dff but became irrelevant in 70f9fc4e7526fc9cfc008a43cd33229f62be99b6 as the check is now self-explanatory due to a rejiggering of the bitfields.
2021-11-17VideoSoftware: Fix copy filter clampingScott Mansell
2021-10-13Silence the -Wswitch warnings in TevFletcher Porter
The compiler was loudly announcing each and every branch Tev was not checking in a switch statement, but Tev has learned it's lesson and will produce that warning no more.
2021-10-13Fix all uninitialized variable warnings (C26495)Pokechu22
2021-10-10BPMemory: Refactor/consolidate TexUnit AddressingScott Mansell
Currently the logic for addressing the individual TexUnits is splattered all across dolphin's codebase, this commit attempts to consolidate it all into a single place and formalise it using our new TexUnitAddress struct.
2021-10-04VideoCommon: Abstract bounding boxTechjar
This moves much of the duplicated bounding box code into VideoCommon, leaving only the specific buffer implementations in each backend.
2021-08-30VideoBackends / VideoCommon: allow the ability to set debug names for ↵iwubcode
shaders / textures. These names are visible in applications like RenderDoc
2021-07-24Convert NaN to 1 when generating texture coordinatesPokechu22
This fixes eyelids in Shadow the Hedgehog during cutscenes (https://bugs.dolphin-emu.org/issues/11458)
2021-07-20Software: Handle texture wrapping more accuratelyPokechu22
This fixes various texture offsetting issues with negative texture coordinates (bringing the software renderer in line with the hardware renderers). It also handles the invalid wrap mode accurately (as was done for the hardware renderers in the previous commit). Lastly, it handles wrapping with non-power-of-2 texture sizes in a hardware-accurate way (which is somewhat broken looking, as games aren't supposed to use wrapping with non-power-of-2 sizes); this has not been done for the hardware renderers.
2021-07-08Fix indirect textures when format is not ITF_8Pokechu22
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-06-23Merge pull request #9742 from Pokechu22/sw-resolutionJMC47
Software: Fix bad backbuffer size
2021-06-20Software: Remove texinfo.sourcerow == SourceRow::Colors assertPokechu22
These asserts were removed for the hardware renderer in #3684.
2021-06-09Hack to hide debug cubes in Super Mario SunshinePokechu22
... while not breaking other games.
2021-05-31VideoCommon: Restore BBox* forwarding functionsTechjar
2021-05-29VideoCommon: Remove BBox* forwarding functionsTechjar
2021-05-28VideoCommon: Move bounding box pixel quads rounding to shaderTechjar
This avoids rounding values that the game writes to the bounding box registers, especially the default values.
2021-05-24Software: Fix bad backbuffer sizePokechu22
MAX_XFB_WIDTH/HEIGHT are the largest XFB sizes seen in practice, but do not make sense to use for the backbuffer size, which should be the size of the window. The old code created screenshots with a size of 720x540 on NTSC games when "Dump Frames at Internal Resolution" is unchecked; now, the window size is used.
2021-05-22VideoCommon: Split BBox* functions into common and backend implementation ↵Techjar
variants This will allow for some aspects of bounding box to be handled in VideoCommon instead of individual backends.
2021-05-07Software: Fix OOB tex coord indicesPokechu22
Previously we set the texture coordinate to zero, now we set the texture coordinate *index* to zero. This fixes the ripple effect of the Mario painting in Luigi's Mansion.
2021-05-07Split TevStageIndirect::mid into matrix_index and matrix_idPokechu22
2021-04-24Merge pull request #9646 from PatrickFerry/sw-textureencoder-alignedwidthLéo Lam
SW: Fix alignedWidth in TextureEncoder
2021-04-23Merge pull request #9660 from ezio1900/masterJMC47
VideoCommon: Fix scissorOffset, handle negative value correctly
2021-04-24VideoCommon: Fix scissorOffset, handle negative value correctlyezio1900
VideoCommon: Change the type of BPMemory.scissorOffset to 10bit signed: S32X10Y10 VideoBackends: Fix Software Clipper.PerspectiveDivide function, use BPMemory.scissorOffset instead of hard code 342
2021-04-23Merge pull request #9321 from Pokechu22/sw-copyregionJMC47
Software: Fix out of bounds accesses in CopyRegion
2021-04-19SW: Fix alignedWidth in TextureEncoderPatrick A. Ferry
This was causing issues in Software Renderer. Look at bug 11487
2021-03-06Software: Invert backface test when viewport is positivePokechu22
Fixes Jimmie Johnson's Anything with an Engine.
2021-03-06Software: Fix out of bounds accesses in CopyRegionPokechu22
Fixes issue 11393. The problem is that left and top make no sense for a width by height array; they only make sense in a larger array where from which a smaller part is extracted. Thus, the overall size of the array is provided to CopyRegion in addition to the sub-region. EncodeXFB already handles the extraction, so CopyRegion's only use there is to resize the image (and thus no sub-region is provided).
2021-03-06Convert BPMemory to BitField and enum classPokechu22
Additional changes: - For TevStageCombiner's ColorCombiner and AlphaCombiner, op/comparison and scale/compare_mode have been split as there are different meanings and enums if bias is set to compare. (Shift has also been renamed to scale) - In TexMode0, min_filter has been split into min_mip and min_filter. - In TexImage1, image_type is now cache_manually_managed. - The unused bit in GenMode is now exposed. - LPSize's lineaspect is now named adjust_for_aspect_ratio.
2021-03-06Convert XFMemory to BitField and enum classPokechu22
Additionally a new ClipDisable union has been added (though it is not currently used by Dolphin).
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.
2021-02-13Software: Implement pointsPokechu22
2021-02-13Software: Fix line-width effectsPokechu22
2021-02-12Software: Always divide the texture coordinates by q.Pokechu22
Equivalent to da43f9a15 for the software renderer.
2021-02-11Merge pull request #9424 from Pokechu22/sw-no-special-caseLéo Lam
Software: Remove normalization special case
2021-01-27msbuild: bundle all dolphin "core" code into single libraryShawn Hoffman
2021-01-03Software: Remove normalization special casePokechu22
The special case doesn't appear to make a significant difference in any games, and the current implementation has a (minor, fixable) issue that breaks Super Mario Sunshine (both with a failed assertion (https://bugs.dolphin-emu.org/issues/11742) and a rendering issue (https://bugs.dolphin-emu.org/issues/7476)). Hardware testing wasn't able to reproduce the special case, either, so it may just not exist. PR #9315 contains a fixed implementation of the special case on all video backends, and can serve as a basis for it being reintroduced if it is found to exist under more specific circumstances. For now, I don't see a reason to keep it present.
2020-12-16Core: Remove ImageWrite and get rid of -Wmissing-declarations warningsLéo Lam
2020-12-16Fix -Wclass-memaccess warningsLéo Lam
We want to clear/memset the padding bytes, not just each member, so using assignment or {} initialization is not an option. To silence the warnings, cast the object pointer to u8* (which is not undefined behavior) to make it explicit to the compiler that we want to fill the object representation.
2020-12-02General: Convert PanicAlerts over to fmt equivalentLioncash
Converts lingering panic alert calls over to the fmt-capable ones.
2020-11-20Software: Use same logic for colors as hardware backendsStenzek
2020-11-09Software: Migrate logging over to fmtLioncash
Migrates the software backend over to the fmt-capable logger.
2020-09-06Make default graphics backend not show up as emptyJosJuice
Fixes https://bugs.dolphin-emu.org/issues/12245. I considered making a change to DolphinQt instead of the core, but then additional effort would've been required to add the same fix to the Android GUI once we start using the new config system there.
2020-08-22msbuild: re-enable standalone vcxproj processingShawn Hoffman