summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/Software
AgeCommit message (Collapse)Author
2023-01-31Move Presenting, Dumping and ImGui out of RendererScott Mansell
2023-01-31Refactor to remove virtual from RenderXFBToScreenScott Mansell
Slightly simplifies the upcoming refactor
2023-01-31TextureCache: Refactor with smart pointersScott Mansell
The whole ownership model was getting a bit of a mess, with a some of special cases to deal with. And I'm planning to make it even more complex in the future. So here is some upfront work to convert it over to reference counted pointers.
2023-01-27VideoBackends: add a way to load data into a specific level AND layer, ↵iwubcode
default to layer 0
2022-12-29Merge pull request #11389 from Pokechu22/sw-no-alpha-1-hackJMC47
Software: Remove alpha=1 blending special-case
2022-12-28Software: Remove alpha=1 blending special-casePokechu22
This was added in #10394 for both the hardware and software backends to work around an issue with Mario Kart Wii, Fortune Street, and Baten Kaitos. However, it seems like the software renderer handles blending well enough that we don't need this (and in any case, it's easy to change blending in the software renderer). Some experimentation with #11387 (not pushed) showed that the software renderer's logic would also produce correct results on the hardware backends with this hack removed, but would require fbfetch (currently); if a better solution is found the hack can also be removed from the hardware backends.
2022-12-28VideoCommon: De-globalize VertexShaderManager class.Admiral H. Curtiss
2022-12-27VideoCommon: De-globalize PixelShaderManager class.Admiral H. Curtiss
2022-12-11VideoCommon/PixelEngine: Refactor to class, move to Core::System.Admiral H. Curtiss
2022-12-03HW/Memmap: Refactor Memory to class, move to Core::System.Admiral H. Curtiss
2022-10-29VideoCommon/Statistics: Require semicolons after statistics macrosPokechu22
This is clearer and reduces IntelliSense problems.
2022-09-26Software: Fix mipmaps and uneven strides in SWTexturePokechu22
I think this is only used for texture dumping, but this resolves some failed assertions and glitchy results.
2022-09-26Software: Remove dedicated texture/frame dumping infrastructurePokechu22
Texture dumping can already be done using VideoCommon's system (and in fact the same setting already enabled *both* of these). Dumping objects/TEV stages/texture fetches doesn't currently have an equivalent, but could be added to the FIFO player instead.
2022-09-19VideoCommon: Add dynamic vertex loader to ubershadersTellowKrinkle
2022-08-29BPMemory: Make TevKSel more clearPokechu22
It stores both the konst selection value for alpha and color channels (for two tev stages per ksel), and half of a swap table row (there are 4 total swap tables, which can be used for swizzling the rasterized color and the texture color, and indices selecting which tables to use are stored per tev stage in the alpha combiner). Since these are indexed very differently, the old code was hard to follow.
2022-08-29SW/Rasterizer: Use RAS1_IREF::getTexCoord and getTexMapPokechu22
2022-08-29SW/Tev: Replace Tev::SetRegColor with Tev::SetKonstColorsPokechu22
2022-08-29SW/Tev: Use std::clamp for Clamp255 and Clamp1024Pokechu22
2022-08-29SW/Tev: Remove Tev::InitPokechu22
2022-08-29SW/Tev: Use EnumMap for scale/bias tablesPokechu22
2022-08-29SW/Tev: Use EnumMap for RegPokechu22
2022-08-29SW/Tev: Use TevColorRef/TevAlphaRef instead of raw s16 pointersPokechu22
2022-08-28SW/Rasterizer: Fix indirect stage using texture coordinates/maps >= 4Pokechu22
The masking was incorrect. This affects the main menu of The Last Avatar, though that menu also relies on copy filter functionality that is not correctly handled in the software renderer so the difference is not obvious; that game shuffles textures across all indices for some reason, so this issue would presumably result in subtle flickering.
2022-07-21VideoBackends:Metal: MSAA supportTellowKrinkle
2022-07-17Merge pull request #10747 from tellowkrinkle/LateUIDFixupJMC47
Add a post-cache shader UID fixup pass
2022-07-16Software: Use hardware-verified numbers for RGB->YUV conversionPokechu22
2022-07-16Restructure parameters to TetxureConverterShaderGen/TextureConversionShaderPokechu22
This will be used for later refactoring for increased accuracy.
2022-07-13VideoCommon: Better driver bug handlingTellowKrinkle
Adds a pass to process driver deficiencies between UID caching and use, allowing a full view of the whole pipeline, since some bugs/workarounds involve interactions between blend modes and the pixel shader
2022-06-30Resolve GCC WarningsMinty-Meeo
2022-05-22cmake: Don't use PCH with Qt6.Admiral H. Curtiss
2022-05-18Show a panic alert if the CP matrix indices don't match the XF matrix indicesPokechu22
This almost certainly never happens, but if it does we want to know.
2022-04-24Merge pull request #10251 from Pokechu22/negative-scissorJMC47
Rework scissor handling
2022-04-22VideoCommon: Add comment explaining why only the first normal gets normalizedPokechu22
Co-authored-by: Scott Mansell <phiren@gmail.com>
2022-04-22VideoCommon: Handle emboss texgen with only a single normalPokechu22
Fixes a large number of effects in Rogue Squadron 2 and 3.
2022-04-22VideoCommon: Rename norm0/norm1/norm2 to normal/tangent/binormalPokechu22
2022-04-16Software: Fix scissor rectangle always being block-alignedPokechu22
2022-04-16Software: Disable clipping based on xfmemPokechu22
This fixes https://bugs.dolphin-emu.org/issues/12562, and is also needed for a hardware test of mine.
2022-04-16Software: Use new scissor logicPokechu22
Unlike the hardware backends, the software renderer can use multiple scissor rectangles (though this will result in extra rasterization).
2022-04-16VideoCommon: Remove bSupportsOversizedViewportsPokechu22
I think this is a relic of D3D9. D3D11 and D3D12 seem to work fine without it. Plus, ViewportCorrectionMatrix just didn't work correctly (at least with the viewports being generated by the new scissor code).
2022-04-08Software: Fix zfreeze with CullMode::AllPokechu22
2022-04-08Software: Store offset in SlopePokechu22
This is needed since we need a separate offset for zfreeze to work correctly. It also makes the code a bit less jank.
2022-04-08Software: Remove config to disable ZComploc and ZFreezePokechu22
These aren't particularly useful, and make the code a bit more confusing. If for some reason someone wants to test what happens when these functions are disabled, it's easier to just edit the code that implements them. They aren't exposed in the UI, so one would need to restart Dolphin to do it anyways.
2022-03-29Software: Implement pixel engine alpha read modePokechu22
2022-03-08Software/EfbInterface: Remove logspam for RGB565_Z16 being unsupportedPokechu22
This message would be logged, usually multiple times, for EVERY. SINGLE. PIXEL. That's pretty much useless and just makes the log unreadable. Plus, the current support (which acts as RGB8) is close enough that for end-user purposes, it's fine. I don't think the hardware backends support RGB565_Z16 and its antialiasing functionality correctly either, but they don't have similar logspam.
2022-02-08Treat alpha as 0 if alpha is 1 for blendingPokechu22
This removes the white box in fortune street again, without causing Mario Kart Wii to regress.
2022-02-08Use the same logic for lerp bias for color and alphaPokechu22
It doesn't make sense for alpha to add the bias ONLY when dividing by 2, while color doesn't apply the bias for divide by 2 only; hardware testing indicates that alpha should have the bias. This fixes the menus in Mario Kart Wii (https://bugs.dolphin-emu.org/issues/11909) but reintroduces the white rectangle in Fortune Street. This reverts commit 5aaa5141ed76acc3fffc70561a6b6e7fe3b9b470 (and several other matching changes elsewhere).
2022-01-31VideoConfig: Add flag for whether the system supports setting object namesOatmealDome
2021-12-25VideoConfig: Add bool for sampler LOD bias supportOatmealDome
2021-12-18Eliminate VarType for ComponentFormatPokechu22
2021-12-18Convert OpcodeDecoder::Opcode and OpcodeDecoder::Primitive to enum classPokechu22