summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/BPStructs.cpp
AgeCommit message (Collapse)Author
2025-04-08BPStructs: Add TODO for unsafe usage of GetTicks.Jordan Woyak
2024-04-20VideoCommon/BPStructs: Add a missing bounds checkJosJuice
Happened to find this when working on the previous commit.
2024-04-20VideoCommon: Use GetSpanForAddress safely in texture decodingJosJuice
Now only VertexLoader remains... But that one might be tricky.
2024-04-09VideoCommon: Remove calls to GetPointerJosJuice
This fourth part of my series of patches to get rid of unsafe uses of GetPointer takes care of the "easy" cases in VideoCommon. Three uses of GetPointer now remain in Dolphin: VertexLoaderManager, TextureInfo, and the software renderer's TextureSampler.
2024-01-31VideoCommon/Statistics: Remove global system accessor from s_after_frame_eventLioncash
Instead, we make the event take a reference to the system and then pass it in when the event is triggered. This does introduce two other accessors, but these are much easier to refactor out over time, and without modification to the existing event interface.
2024-01-31Migrate SConfig::bWii to System.Admiral H. Curtiss
2024-01-12FifoRecorder: Move instance to System.Admiral H. Curtiss
2024-01-05FifoPlayer: Move instance to System.Admiral H. Curtiss
2023-12-22VideoCommon/PixelEngine: Passthrough system instance in constructorLioncache
Simplifies the interface in terms of usage
2023-11-26VideoCommon: move xf state management to its own class, so changes can be ↵iwubcode
detected in places other than VertexShaderManager
2023-11-12Fix accidental fallthrough in BPStructsPokechu22
This caused us to update the indirect texture information in shaders more often than we needed to, which probably doesn't matter in practice since it's only used in ubershaders and copyyscale and stride are generally only updated before EFB/XFB copies, which generally will have other changes afterwards.
2023-11-11Add descriptions for more BP registersPokechu22
2023-11-11Convert BPMEM_LOADTLUT1 to a structPokechu22
2023-11-11Rename bpmem.copyMipMapStrideChannels to bpmem.copyDestStridePokechu22
As far as I can tell, it has nothing to do with the mipmap/half_scale functionality, but does change based on the width of the destination texture (and the destination texture is half the width if half_scale is set). The comment that was there (which dates back to the initial megacommit) seems to not have accounted for the width aspect; it was first used as an actual stride in bbbe898839467c312c31456334540c20fedc7be3 (the first commit that used it at all).
2023-09-02Fifo: Convert MemoryUpdate::Type to enum classDentomologist
2023-03-11HW/VideoInterface: Refactor to class.Admiral H. Curtiss
2023-02-09Add comment about "end of frame"Scott Mansell
2023-02-09Cleanup headersScott Mansell
2023-02-09Lint fixesScott Mansell
2023-02-09Move xfb tracking and IR scaling out of RenderBaseScott Mansell
2023-01-31Renderer still needs to track swaps for savestatesScott Mansell
2023-01-31Wire up frame before/after eventsScott Mansell
2023-01-31Move BoundingBox out of RenderBaseScott Mansell
They were essentially just pass-though methods
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.
2022-12-29VideoCommon: De-globalize GeometryShaderManager class.Admiral H. Curtiss
2022-12-28VideoCommon: De-globalize VertexShaderManager class.Admiral H. Curtiss
2022-12-27VideoCommon: De-globalize PixelShaderManager class.Admiral H. Curtiss
2022-12-11VideoCommon/PixelEngine: Pass Core::System to methods.Admiral H. Curtiss
2022-12-11VideoCommon/PixelEngine: Refactor to class, move to Core::System.Admiral H. Curtiss
2022-12-10VideoCommon/Fifo: 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-11-27CoreTiming: Refactor to class.Admiral H. Curtiss
2022-10-01VideoCommon: Update EFB peek cache on draw done and tokensRobin Kertels
Massively improves performance in Mario Galaxy on Android.
2022-09-26VideoCommon: Add statistics for draw done and token commandsPokechu22
2022-08-29Fifo analyzer: Improve some BP descriptionsPokechu22
Mainly, the improvements are passing in the current command ID so that e.g. stage numbers can be directly included, instead of saying 0/1 or even/odd.
2022-07-15Create dedicated enum for EFB/XFB gamma correctionPokechu22
This also changes the behavior for the invalid gamma value, which was confirmed to behave the same as 2.2. Note that currently, the gamma value is only used for XFB copies, even though hardware testing indicates it also works for EFB copies. This will be changed in a later commit.
2022-07-15Only use intensity formats if both intensity_fmt and auto_conv are setPokechu22
auto_conv is normally always set for EFB copies, but hardware testing indicates that intensity_fmt does nothing if auto_conv is not set.
2022-04-16VideoCommon: Rework scissor handlingPokechu22
This increases accuracy, fixing the white rendering in Major Minor's Majestic March. However, the hardware backends can only have one viewport and scissor rectangle at a time, while sometimes multiple are needed to accurately emulate what is happening. If possible, this will need to be fixed later.
2022-04-16VideoCommon: Create dedicated structs for scissor pos/offsetPokechu22
2021-12-18Refactor OpcodeDecoding and FIFO analyzer to use callbacksPokechu22
2021-11-25Delay singlecore gpu interruptsScott Mansell
Fixes Bomberman Jetters in single core mode. When single core mode pauses the CPU to execute the GPU FIFO it greedily executes the whole thing. Before this commit, Finish and Token interrupts would happen instantly, not even taking into account how long the current FIFO window has taken to execute. The interrupts would be effectively backdated to the start of this execution window. This commit does two things: It pipes the current FIFO window execution time though to the interrupt scheduling and it enforces a minimum delay of 500 cycles before an interrupt will be fired.
2021-11-11VideoCommon: Use the copy filter for EFB copies as well as XFB copiesPokechu22
This fixes the pink screens in EA Sports Active. See https://gist.github.com/Pokechu22/49455f9094ed0ff017da64e3f7aa0404 for details.
2021-10-12Extend TMEM cache implementationScott Mansell
Now works with games that deliberately avoid invalidating TMEM because they know textures are too large to fit: * Sonic Riders * Metal Arms: Glitch in the System * Godzilla: Destroy All Monsters Melee * NHL Slapshot * Tak and the Power of Juju * Night at the Museum: Battle of the Smithsonian * 428: Fūsa Sareta Shibuya de
2021-10-10BPMem: Abstract TexUnit Addressing into structScott Mansell
The addressing of the texture units is a bit non-obvious. This struct abstracts the complexity away.
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-09-18BPStructs: ensure side effects are sameScott Mansell
Missed this side effect when fixing crash in Mario Kart Wii wifi
2021-09-17BPStructs: Ignore malformed efb copiesScott Mansell
2021-09-15BPStructs: make copy width/height constScott Mansell
2021-09-15BPStructs: fix out-of-range EFB copy clampingScott Mansell
Previous code from #7950 only clamps correctly when the efb copies left and top coordinates are (0, 0) Now we should handle all situations. Spyro: A hero's tail is an example of a game that does an oversized EFB copy with a non-zero origin.
2021-07-11Use separate fmt::formatters for each indirect matrix columnPokechu22
This also fixes a bug where the float version of row 1 actually showed row 0 again.