aboutsummaryrefslogtreecommitdiff
path: root/src/video_core
AgeCommit message (Collapse)Author
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-15Merge pull request #8000 from liamwhite/hagiFernando S
Initial support for Wii Hagi emulator
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-12emit_spirv, vk_compute_pass: Resolve VS2022 compiler errorsameerj
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-10TextureCacheRuntime: allow converting D24S8 to ABGR8Liam
I can't see how this would be useful, but Galaxy uses it.
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-08Merge pull request #7986 from lat9nq/vk-callbackbunnei
core, video_core: Fix two crashes when failing to create the emulated GPU instance
2022-03-07video_core: Cancel Scoped's exit call on GPU failurelat9nq
When CreateRenderer fails, the GraphicsContext that was std::move'd into it is destroyed before the Scoped that was created to manage its currency. In that case, the GraphicsContext::Scoped will still call its destructor at the ending of the function. And because the context is destroyed, the Scoped will cause a crash as it attempts to call a destroyed object's DoneCurrent function. Since we know when the call would be invalid, call the Scoped's Cancel method. This prevents it from calling a method on a destroyed object.
2022-03-07Merge pull request #7930 from asLody/dma-semaphoreFernando S
MaxwellDMA: Implement semaphore operations
2022-03-07MaxwellDMA: Implement semaphore operationsLody
2022-03-06gl_graphics_pipeline: Improve shader builder synchronization using fences ↵Ameer J
(#7969) * gl_graphics_pipeline: Improve shader builder synchronization Make use of GLsync objects to ensure better synchronization between shader builder threads and the main context * gl_graphics_pipeline: Make built_fence access threadsafe * gl_graphics_pipeline: Use GLsync objects only when building in parallel * gl_graphics_pipeline: Replace GetSync calls with non-blocking waits The spec states that a ClientWait on a Fence object ensures the changes propagate to the calling context
2022-02-27gl_fence_manager: Minor optimization to signal queryingameerj
Per the spec, bufSize is the number of integers that will be written, in this case, 1. Also, the length argument is optional if the information of the number of elements written is not needed.
2022-02-26Merge pull request #7953 from ameerj/radv-rdna2-crashbunnei
vulkan_device: Blacklist RADV on RDNA2 from VK_EXT_vertex_input_dynamic_state
2022-02-26Merge pull request #7948 from Morph1984/11-11-10-floatMai M
maxwell_to_(gl/vk): Add 11_11_10 float vertex format
2022-02-25vulkan_device: Blacklist RADV on RDNA2 from VK_EXT_vertex_input_dynamic_stateAmeer J
RDNA2 devices running under the RADV driver were crashing when VK_EXT_vertex_input_dynamic_state was enabled. Blacklisting these devices until a proper fix is established.
2022-02-25maxwell_to_(gl/vk): Add 11_11_10 float vertex formatMorph
- Used by パワプロクンポケットR
2022-02-24vk_blit_screen: Add missing format bgra8Lody
2022-02-21vulkan_device: fix missing format in ANVvoidanix
Currently Mesa's ANV driver does not support VK_FORMAT_B5G6R5_UNORM_PACK16, implement an alternative for it.
2022-02-02Merge pull request #7814 from FernandoS27/another-bug-in-my-schedulebunnei
Vulkan: Fix Scheduler Chunks when their FuncType is 0.
2022-02-02texture_cache: Ensure has_blacklisted is always initializedLioncash
Resolves a -Wmaybe_uninitialized warning
2022-02-02texture_cache: Remove dead code within SynchronizeAliasesLioncash
Since these were being copied by value, none of the changes applied in the loop would be reflected. However, from the looks of it, this would already be applied within CopyImage() anyways, so this can be removed.
2022-02-02texture_cache: Amend unintended bitwise OR in SynchronizeAliasesLioncash
2022-02-02general: Replace NonCopyable struct with equivalentsLioncash
2022-02-01Merge pull request #7824 from lioncash/scacheMorph
video_core/shader_cache: Take std::span in RemoveShadersFromStorage()
2022-02-01video_core/shader_cache: Remove unused algorithm includeLioncash
2022-02-01video_core/shader_cache: Take std::span in RemoveShadersFromStorage()Lioncash
Same behavior, but without the need to move into the function to avoid an allocation.
2022-02-01Rasterizer: Refactor inlineToMemory.Fernando Sahmkow
2022-01-31Vulkan: Fix Scheduler Chunks when their FuncType is 0.Fernando Sahmkow
2022-01-29GPU: Improve syncing.Fernando Sahmkow
2022-01-29Rasterizer: Implement Inline2Memory Acceleration.Fernando Sahmkow
2022-01-29Inline2Memory: Flush before writting buffer.Fernando Sahmkow
2022-01-27buffer_cache: Reduce stream buffer allocations when expanding from the leftameerj
The existing stream buffer optimization accounts for size increases at the end of the allocated buffer. This adds the same optimization, increasing the size from the beginning of the buffer as well to reduce buffer allocations when expanding the same buffer from the left.
2022-01-26common/xbyak_api: Make BuildRegSet() constexprLioncash
This allows us to eliminate any static constructors that would have been emitted due to the function not being constexpr.
2022-01-26Merge pull request #7780 from lioncash/macrobunnei
video_core/macro: Move impl classes into their cpp files
2022-01-25Merge pull request #7779 from lioncash/gpu-ifaceMorph
gpu: Remove obsoleted CDmaPusher() accessors
2022-01-25video_core/macro: Add missing <cstring> headerLioncash
Necessary since memcpy is used.
2022-01-25video_core/macro_interpreter: Move impl class to the cpp fileLioncash
Keeps the implementation hidden from the intended API and lessens the header dependencies on the interpreter's header.
2022-01-25video_core/macro_hle: Return unique_ptr directly from GetHLEProgram()Lioncash
Same behavior, but less code and header dependencies.
2022-01-25video_core/macro: Remove unused parameter from Execute()Lioncash
Simplifies the function interface.
2022-01-25video_core/macro_jit_x64: Remove unused impl class memberLioncash
Reduces the size of the impl class a tiny bit.
2022-01-25video_core/macro_jit_x64: Decouple PersistentCallerSavedRegs() from implLioncash
This doesn't depend on class state and can just be a regular function.
2022-01-25video_core/macro_jit_x64: Move impl class into cpp fileLioncash
Keeps the implementation internalized and also reduces API-facing header dependencies. Notably, this fully internalizes all of the xbyak externals.
2022-01-25video_core/macro_hle: Move impl class into cpp fileLioncash
Given it's intended to be an internal implementation class, we can move it into the cpp file to ensure that. This also lets us move some header dependencies into the cpp file as well.
2022-01-25gpu: Tidy up forward declarationsLioncash
Over time a few forward declarations became unnecessary, so we can remove these to tidy up the header a little bit.
2022-01-25gpu: Remove obsoleted CDMAPusher() accessorsLioncash
These were obsoleted in 2c47f8aa1886522898b5b3a73185b5662be3e9f3 but were accidentally overlooked.
2022-01-25vk_fsr: Replace comma operator with semicolonLioncash
Generally, we should be ending statements with a semicolon not a comma Resolves a clang diagnostic.