summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_vulkan/vk_state_tracker.cpp (follow)
Commit message (Collapse)AuthorAgeFilesLines
* video_core: Rewrite the texture cacheReinUsesLisp2020-12-301-14/+9
| | | | | | | | | | | | | | 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.
* video_core: Adjust `NUM` macro to avoid Clang warningcomex2020-12-071-1/+1
| | | | | | | | | | | | | | | | The previous definition was: #define NUM(field_name) (sizeof(Maxwell3D::Regs::field_name) / sizeof(u32)) In cases where `field_name` happens to refer to an array, Clang thinks `sizeof(an array value) / sizeof(a type)` is an instance of the idiom where `sizeof` is used to compute an array length. So it thinks the type in the denominator ought to be the array element type, and warns if it isn't, assuming this is a mistake. In reality, `NUM` is not used to get array lengths at all, so there is no mistake. Silence the warning by applying Clang's suggested workaround of parenthesizing the denominator.
* video_core: Remove all Core::System references in rendererReinUsesLisp2020-09-061-11/+3
| | | | | | | | | Now that the GPU is initialized when video backends are initialized, it's no longer needed to query components once the game is running: it can be done when yuzu is booting. This allows us to pass components between constructors and in the process remove all Core::System references in the video backend.
* vk_state_tracker: Fix primitive topologyReinUsesLisp2020-08-211-6/+1
| | | | | | | | | State track the current primitive topology with a regular comparison instead of using dirty flags. This fixes a bug in dirty flags for this particular state and it also avoids unnecessary state changes as this property is stored in a frequently changed bit field.
* vk_state_tracker: Fix dirty flags for stencil_enable on VK_EXT_extended_dynamic_stateReinUsesLisp2020-07-131-0/+1
| | | | | Fixes a regression on any game using stencil on devices with VK_EXT_extended_dynamic_state.
* vk_rasterizer: Use VK_EXT_extended_dynamic_stateReinUsesLisp2020-06-271-0/+68
|
* DirtyFlags: relax need to set render_targets as dirty Fernando Sahmkow2020-03-141-2/+0
| | | | | The texture cache already takes care of setting a render target to dirty when invalidated.
* dirty_flags: Deduplicate code between OpenGL and VulkanReinUsesLisp2020-02-281-39/+2
|
* state_tracker: Remove type traits with named structuresReinUsesLisp2020-02-281-5/+6
|
* vk_state_tracker: Implement dirty flags for stencil propertiesReinUsesLisp2020-02-281-0/+13
|
* vk_state_tracker: Implement dirty flags for depth boundsReinUsesLisp2020-02-281-0/+6
|
* vk_state_tracker: Implement dirty flags for blend constantsReinUsesLisp2020-02-281-0/+6
|
* vk_state_tracker: Implement dirty flags for depth biasReinUsesLisp2020-02-281-0/+9
|
* vk_state_tracker: Implement dirty flags for scissorsReinUsesLisp2020-02-281-0/+6
|
* vk_state_tracker: Initial implementationReinUsesLisp2020-02-281-0/+97
Add support for render targets and viewports.