summaryrefslogtreecommitdiffstats
path: root/src/video_core/engines/fermi_2d.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Fermi2D: Rework blit engine and add a software blitter.Fernando Sahmkow2022-11-241-1/+8
|
* general: Convert source file copyright comments over to SPDXMorph2022-04-231-3/+2
| | | | | This formats all copyright comments according to SPDX formatting guidelines. Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
* video_core: Reduce unused includesameerj2022-03-191-1/+0
|
* video_core/engine: Consistently initialize rasterizer pointersLioncash2021-07-271-1/+1
| | | | | Ensures all of the engines have consistent and deterministic initialization of the rasterizer pointers.
* engine_interface: Add missing virtual destructorLioncash2021-04-121-1/+1
| | | | | | Eliminates a potential bug vector related to inheritance. Plus, we should generally be specifying the destructor as virtual within purely virtual interfaces to begin with.
* gpu: Report renderer errors with exceptionsReinUsesLisp2021-02-131-1/+1
| | | | | | Instead of using a two step initialization to report errors, initialize the GPU renderer and rasterizer on the constructor and report errors through std::runtime_error.
* common/common_funcs: Rename INSERT_UNION_PADDING_{BYTES,WORDS} to _NOINITReinUsesLisp2021-01-151-15/+15
| | | | INSERT_PADDING_BYTES_NOINIT is more descriptive of the underlying behavior.
* video_core: Rewrite the texture cacheReinUsesLisp2020-12-301-80/+251
| | | | | | | | | | | | | | The current texture cache has several points that hurt maintainability and performance. It's easy to break unrelated parts of the cache when doing minor changes. The cache can easily forget valuable information about the cached textures by CPU writes or simply by its normal usage.The current texture cache has several points that hurt maintainability and performance. It's easy to break unrelated parts of the cache when doing minor changes. The cache can easily forget valuable information about the cached textures by CPU writes or simply by its normal usage. This commit aims to address those issues.
* fermi_2d: Make use of designated initializersLioncash2020-09-181-2/+2
| | | | | Same behavior, less repetition. We can also ensure all members of Config are initialized.
* video_core: Initialize renderer with a GPUReinUsesLisp2020-08-221-3/+6
| | | | | Add an extra step in GPU initialization to be able to initialize render backends with a valid GPU instance.
* Clang Format and Documentation.Fernando Sahmkow2020-04-281-1/+2
|
* VideoCore/Engines: Refactor Engines CallMethod.Fernando Sahmkow2020-04-281-3/+4
|
* DMAPusher: Propagate multimethod writes into the engines.Fernando Sahmkow2020-04-231-0/+3
|
* common_func: Use std::array for INSERT_PADDING_* macros.bunnei2019-11-041-6/+6
| | | | - Zero initialization here is useful for determinism.
* video_core: Silent miscellaneous warnings (#2820)Rodrigo Locatti2019-08-301-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | * texture_cache/surface_params: Remove unused local variable * rasterizer_interface: Add missing documentation commentary * maxwell_dma: Remove unused rasterizer reference * video_core/gpu: Sort member declaration order to silent -Wreorder warning * fermi_2d: Remove unused MemoryManager reference * video_core: Silent unused variable warnings * buffer_cache: Silent -Wreorder warnings * kepler_memory: Remove unused MemoryManager reference * gl_texture_cache: Add missing override * buffer_cache: Add missing include * shader/decode: Remove unused variables
* decoders: correct block calculationFernando Sahmkow2019-06-211-3/+3
|
* texture_cache: Fermi2D reform and implement View MirageFernando Sahmkow2019-06-211-11/+33
| | | | | This also does some fixes on compressed textures reinterpret and on the Fermi2D engine in general.
* video_core: Use un-shifted block sizes to avoid integer divisionsReinUsesLisp2019-06-211-6/+3
| | | | | | | | | | | | Instead of storing all block width, height and depths in their shifted form: block_width = 1U << block_shift; Store them like they are provided by the emulated hardware (their block_shift form). This way we can avoid doing the costly Common::AlignUp operation to align texture sizes and drop CPU integer divisions with bitwise logic (defined in Common::AlignBits).
* Add Documentation Headers to all the GPU EnginesFernando Sahmkow2019-04-231-0/+6
|
* video_core/engines: Make memory manager members privateLioncash2019-04-061-2/+1
| | | | | These aren't used externally by anything, so they can be made private data members.
* video_core/engines: Remove unnecessary inclusions where applicableLioncash2019-04-061-1/+4
| | | | | | Replaces header inclusions with forward declarations where applicable and also removes unused headers within the cpp file. This reduces a few more dependencies on core/memory.h
* video_core/engines: Remove unnecessary includesLioncash2019-03-061-1/+1
| | | | | | | | | Removes a few unnecessary dependencies on core-related machinery, such as the core.h and memory.h, which reduces the amount of rebuilding necessary if those files change. This also uncovered some indirect dependencies within other source files. This also fixes those.
* gl_rasterizer: Implement a more accurate fermi 2D copy.bunnei2019-02-071-5/+24
| | | | - This is a blit, use the blit registers.
* gpu: Rewrite GPU command list processing with DmaPusher class.bunnei2018-11-271-1/+1
| | | | - More accurate impl., fixes Undertale (among other games).
* Fixed block height settings for RenderTargets and Depth Buffers, and added block width and block depthFernandoS272018-10-101-2/+12
|
* fermi_2d: Implement simple copies with AccelerateSurfaceCopy.bunnei2018-10-061-1/+7
|
* Port #4182 from Citra: "Prefix all size_t with std::"fearlessTobi2018-09-151-1/+1
|
* video_core: Use nested namespaces where applicableLioncash2018-07-211-4/+2
| | | | Compresses a few namespace specifiers to be more compact.
* fermi_2d: Fix surface copy block height.bunnei2018-04-291-0/+5
|
* GPU: Partially implemented the Fermi2D surface copy operation.Subv2018-04-251-0/+5
| | | | | The hardware allows for some rather complicated operations to be performed on the data during the copy, this is not implemented. Only same-format same-size raw copies are implemented for now.
* GPU: Added surface copy registers to Fermi2DSubv2018-04-251-1/+57
|
* GPU: Added boilerplate code for the Fermi2D engineSubv2018-04-251-1/+27
|
* GPU: Macros are specific to the Maxwell3D engine, so handle them internally.Subv2018-03-181-8/+0
|
* GPU: Process command mode 5 (IncreaseOnce) differently from other commands.Subv2018-03-171-0/+8
| | | | | | Accumulate all arguments before calling the desired method. Note: Maybe we should do the same for the NonIncreasing mode?
* Make a GPU class in VideoCore to contain the GPU state.Subv2018-02-121-3/+7
| | | | Also moved the GPU MemoryManager class to video_core since it makes more sense for it to be there.
* GPU: Added a command processor to decode the GPU pushbuffers and forward the commands to their respective engines.Subv2018-02-121-0/+18