aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/engines
AgeCommit message (Collapse)Author
2022-06-13common: Change semantics of UNREACHABLE to unconditionally crashLiam
2022-06-02Maxwell3D: Fix 3D semaphore counter type 0 handlingBilly Laws
Counter type 0 actually releases the semaphore payload rather than a constant zero as was previously thought. This is required by Skyrim.
2022-05-11Merge pull request #8313 from liamwhite/dma-bppMorph
maxwell_dma: fix bytes_per_pixel
2022-05-10maxwell_dma: use fallback if remapping is enabledLiam
2022-05-10video_core/macro: clear code on upload address assignmentLiam
2022-05-06maxwell_dma: fix bytes per pixelLiam
2022-04-23general: Convert source file copyright comments over to SPDXMorph
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.
2022-04-14maxwell3d: add small_index_2 registerLiam
2022-03-19video_core: Reduce unused includesameerj
2022-03-16Merge pull request #8023 from ameerj/kirby-pop-inFernando S
maxwell_3d: Implement a safer CB data upload
2022-03-14maxwell_3d: Implement a safer CB data uploadameerj
This makes constant buffer uploads safer and more accurate by updating the GPU memory as soon as the CB Data method is invoked. The previous implementation was deferring the updates until a different maxwell 3d method was detected, then writing all CB data at once.
2022-03-14Maxwell3D: Link to override constant definition in nouveaubyte[]
2022-03-14Maxwell3D: restore original topology when topology overrides are disabledbyte[]
2022-03-14Maxwell3D: Use override constants from nouveauLiam
This fixes some incorrect rendering in Sunshine
2022-03-11Maxwell3D: Restrict topology override effect to after the register is setLiam
2022-03-11Maxwell3D: mark index buffers as dirty after updating countsLiam
2022-03-10Maxwell3D: read small-index draw and primitive topology override registersLiam
This allows Galaxy and Sunshine to render for the first time.
2022-03-07MaxwellDMA: Implement semaphore operationsLody
2022-02-01Rasterizer: Refactor inlineToMemory.Fernando Sahmkow
2022-01-29Rasterizer: Implement Inline2Memory Acceleration.Fernando Sahmkow
2022-01-29Inline2Memory: Flush before writting buffer.Fernando Sahmkow
2022-01-25video_core/macro: Remove unused parameter from Execute()Lioncash
Simplifies the function interface.
2021-10-01common/logging: Move Log::Entry declaration to a separate headerameerj
This reduces the load of requiring to include std::chrono in all files which include log.h
2021-09-19maxwell_dma: Minor refactoringameerj
2021-09-07Fix blend equation enum errorFeng Chen
2021-07-27video_core/engine: Consistently initialize rasterizer pointersLioncash
Ensures all of the engines have consistent and deterministic initialization of the rasterizer pointers.
2021-07-22vk_rasterizer: Workaround bug in VK_EXT_vertex_input_dynamic_stateReinUsesLisp
Workaround potential bug on Nvidia's driver where only updating high attributes leaves low attributes out dated.
2021-07-22shader: Rework varyings and implement passthrough geometry shadersReinUsesLisp
Put all varyings into a single std::bitset with helpers to access it. Implement passthrough geometry shaders using host's.
2021-07-22vk_graphics_pipeline: Implement conservative renderingReinUsesLisp
2021-07-22shader: Unify shader stage typesReinUsesLisp
2021-07-22vulkan: Use VK_EXT_provoking_vertex when availableReinUsesLisp
2021-07-22DMA: Restrict optimised path for BlockToLinear further.FernandoS27
2021-07-22shader: Primitive Vulkan integrationReinUsesLisp
2021-07-22shader: Remove old shader managementReinUsesLisp
2021-07-15Buffer cache: Fixes, Clang and Feedback.Fernando Sahmkow
2021-07-14DMAEngine: Revert flushing from Pitch to BlpockLinear.Fernando Sahmkow
2021-07-13DMAEngine: Accelerate BufferClearFernando Sahmkow
2021-07-11accelerateDMA: Accelerate Buffer Copies.Fernando Sahmkow
2021-07-08Out of bound blit (#6531)Feng Chen
* Fix out of bound blit error * Fix code read * Fix ci error Co-authored-by: Feng Chen <chen.feng@gloritysolutions.com>
2021-06-23maxwell3d: Add missing return in default SizeInBytes() caseLioncash
We were returning '1' in ComponentCount()'s default case but were neglecting to do the same with SizeInBytes().
2021-06-01buffer_cache: Simplify uniform disabling logicameerj
2021-04-14Merge pull request #6196 from bunnei/asserts-settingbunnei
core: settings: Add setting for debug assertions and disable by default.
2021-04-14common: Move settings to common from core.bunnei
- Removes a dependency on core and input_common from common.
2021-04-12engine_interface: Add missing virtual destructorLioncash
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.
2021-02-13video_core: Reimplement the buffer cacheReinUsesLisp
Reimplement the buffer cache using cached bindings and page level granularity for modification tracking. This also drops the usage of shared pointers and virtual functions from the cache. - Bindings are cached, allowing to skip work when the game changes few bits between draws. - OpenGL Assembly shaders no longer copy when a region has been modified from the GPU to emulate constant buffers, instead GL_EXT_memory_object is used to alias sub-buffers within the same allocation. - OpenGL Assembly shaders stream constant buffer data using glProgramBufferParametersIuivNV, from NV_parameter_buffer_object. In theory this should save one hash table resolve inside the driver compared to glBufferSubData. - A new OpenGL stream buffer is implemented based on fences for drivers that are not Nvidia's proprietary, due to their low performance on partial glBufferSubData calls synchronized with 3D rendering (that some games use a lot). - Most optimizations are shared between APIs now, allowing Vulkan to cache more bindings than before, skipping unnecesarry work. This commit adds the necessary infrastructure to use Vulkan object from OpenGL. Overall, it improves performance and fixes some bugs present on the old cache. There are still some edge cases hit by some games that harm performance on some vendors, this are planned to be fixed in later commits.
2021-02-13gpu: Report renderer errors with exceptionsReinUsesLisp
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.
2021-01-24maxwell_3d: Silence array bounds warningsReinUsesLisp
2021-01-15common/common_funcs: Rename INSERT_UNION_PADDING_{BYTES,WORDS} to _NOINITReinUsesLisp
INSERT_PADDING_BYTES_NOINIT is more descriptive of the underlying behavior.
2020-12-30video_core: Rewrite the texture cacheReinUsesLisp
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.
2020-12-15Merge pull request #5157 from lioncash/array-dirtybunnei
maxwell_3d: Remove unused dirty_pointer array