aboutsummaryrefslogtreecommitdiff
path: root/src/video_core
AgeCommit message (Collapse)Author
2020-11-05General: Fix clang buildLioncash
Allows building on clang to work again
2020-11-04Merge pull request #4858 from lioncash/initializerbunnei
General: Resolve a few missing initializer warnings
2020-11-04Merge pull request #4869 from bunnei/improve-gpu-syncChloe
Improvements to GPU synchronization & various refactoring
2020-11-03Merge pull request #4874 from lioncash/nodiscard2bunnei
nvdec: Make use of [[nodiscard]] where applicable
2020-11-02nvdec: Make use of [[nodiscard]] where applicableLioncash
Prevents bugs from occurring where the results of a function are accidentally discarded
2020-11-01Merge pull request #4865 from ameerj/async-threadcountbunnei
async_shaders: Increase Async worker thread count for >8 thread cpus
2020-11-01video_core: dma_pusher: Add support for integrity checks.bunnei
- Log corrupted command lists, rather than crash.
2020-11-01video_core: dma_pusher: Add support for prefetched command lists.bunnei
2020-11-01video_core: gpu: Implement WaitFence and IncrementSyncPoint.bunnei
2020-10-31Merge pull request #4853 from ReinUsesLisp/fcmp-immbunnei
shader/arithmetic: Implement FCMP immediate + register variant
2020-10-29vp9: Be explicit with copy and move operatorsLioncash
It's deprecated in the language to autogenerate these if the destructor for a type is specified, so we can explicitly specify how we want these to be generated.
2020-10-29vp9: Mark functions with [[nodiscard]] where applicableLioncash
Prevents values from mistakenly being discarded in cases where it's a bug to do so.
2020-10-29vp9: Provide a default initializer for "hidden" memberLioncash
The API of VP9 exposes a WasFrameHidden() function which accesses this member. Given the constructor previously didn't initialize this member, it's a potential vector for an uninitialized read. Instead, we can initialize this to a deterministic value to prevent that from occurring.
2020-10-29vp9: Make some member functions internally linkedLioncash
These helper functions don't directly modify any member state and can be hidden from view.
2020-10-29General: Resolve a few missing initializer warningsLioncash
Resolves a few -Wmissing-initializer warnings.
2020-10-29Merge pull request #4837 from lioncash/nvdec-2bunnei
nvdec: Minor tidying up
2020-10-29async_shaders: Increase Async worker thread count for 8+ thread cpusameerj
Adds 1 async worker thread for every 2 available threads above 8
2020-10-28Merge pull request #4838 from lioncash/syncmgrbunnei
sync_manager: Amend parameter order of calls to SyncptIncr constructor
2020-10-28video_core: cdma_pusher: Add missing LOG_DEBUG field in ExecuteCommand.bunnei
2020-10-28shader: Partially implement texture cube array shadowReinUsesLisp
This implements texture cube arrays with shadow comparisons but doesn't fix the asserts related to it. Fixes out of bounds reads on swizzle constructors and makes them use bounds checked ::at instead of the unsafe operator[].
2020-10-28shader/arithmetic: Implement FCMP immediate + register variantReinUsesLisp
Trivially add the encoding for this.
2020-10-28Merge pull request #4848 from ReinUsesLisp/type-limitsLC
video_core: Enforce -Werror=type-limits
2020-10-28video_core: Enforce -Wredundant-move and -Wpessimizing-moveReinUsesLisp
Silence three warnings and make them errors to avoid introducing more in the future.
2020-10-28video_core: Enforce -Werror=type-limitsReinUsesLisp
Silences one warning and avoids introducing more in the future.
2020-10-27sync_manager: Amend parameter order of calls to SyncptIncr constructorLioncash
Corrects some cases where the arguments would be incorrectly swapped.
2020-10-27h264: Make WriteUe take a u32Lioncash
Enforces the type of the desired value in calling code.
2020-10-27vp9: std::move buffer within ComposeFrameHeader()Lioncash
We can move the buffer here to avoid a heap reallocation
2020-10-27vp9: Remove dead codeLioncash
2020-10-27vp9: Join declarations with assignmentsLioncash
2020-10-27vp9: Remove pessimizing movesLioncash
The move will already occur without std::move.
2020-10-27vp9: Resolve variable shadowingLioncash
2020-10-27nvdec: Tidy up header includesLioncash
Prevents a few unnecessary inclusions.
2020-10-26video_core: NVDEC Implementationameerj
This commit aims to implement the NVDEC (Nvidia Decoder) functionality, with video frame decoding being handled by the FFmpeg library. The process begins with Ioctl commands being sent to the NVDEC and VIC (Video Image Composer) emulated devices. These allocate the necessary GPU buffers for the frame data, along with providing information on the incoming video data. A Submit command then signals the GPU to process and decode the frame data. To decode the frame, the respective codec's header must be manually composed from the information provided by NVDEC, then sent with the raw frame data to the ffmpeg library. Currently, H264 and VP9 are supported, with VP9 having some minor artifacting issues related mainly to the reference frame composition in its uncompressed header. Async GPU is not properly implemented at the moment. Co-Authored-By: David <25727384+ogniK5377@users.noreply.github.com>
2020-10-23Merge pull request #4706 from ReinUsesLisp/cmake-host-shadersbunnei
video_core: Fix instances where msbuild always regenerated host shaders
2020-10-20video_core: Conditially activate relevant compiler warningsLioncash
These compiler flags aren't shared with clang, so specifying these flags unconditionally can lead to a bit of warning spam. While we're in the area, we can also enable -Wunused-but-set-parameter given this is almost always a bug.
2020-10-20gl_arb_decompiler: Implement robust buffer operationsReinUsesLisp
This emulates the behavior we get on GLSL with regular SSBOs with a pointer + length pair. It aims to be consistent with the crashes we might get. Out of bounds stores are ignored. Atomics are ignored and return zero. Reads return zero.
2020-10-19Merge pull request #4204 from ReinUsesLisp/vulkan-1.0bunnei
renderer_vulkan: Create and properly use Vulkan 1.0 instances when 1.1 is not available
2020-10-17Merge pull request #4782 from ReinUsesLisp/remove-dyn-primitivebunnei
vk_graphics_pipeline: Manage primitive topology as fixed state
2020-10-14Merge pull request #4772 from goldenx86/block-rdnabunnei
vk_device: Block VK_EXT_extended_dynamic_state for RDNA devices
2020-10-13vk_graphics_pipeline: Manage primitive topology as fixed stateReinUsesLisp
Vulkan has requirements for primitive topologies that don't play nicely with yuzu's. Since it's only 4 bits, we can move it to fixed state without changing the size of the pipeline key. - Fixes a regression on recent Nvidia drivers on Fire Emblem: Three Houses.
2020-10-12Merge pull request #4766 from ReinUsesLisp/tmml-cubebunnei
shader/texture: Implement CUBE texture type for TMML and fix arrays
2020-10-09video_core: Enforce -Wclass-memaccessReinUsesLisp
2020-10-08Merge pull request #4771 from ReinUsesLisp/warn-unused-varLC
video_core: Enforce -Wunused-variable and -Wunused-but-set-variable
2020-10-08vk_device: Block VK_EXT_extended_dynamic_state for RDNA devicesgoldenx86
RDNA devices seem to crash when using VK_EXT_extended_dynamic_state in the latest 20.9.2 proprietary Windows drivers. As a workaround, for now we block device names corresponding to current RDNA released products.
2020-10-07shader/texture: Implement CUBE texture type for TMML and fix arraysReinUsesLisp
TMML takes an array argument that has no known meaning, this one appears as the first component in gpr8 followed by s, t and r. Skip this component when arrays are being used. Also implement CUBE texture types. - Used by Pikmin 3: Deluxe Demo.
2020-10-07renderer_vulkan/wrapper: Fix physical device sortingReinUsesLisp
The old code had a sort function that was invalid and it didn't work as expected when the base vector had a different order (e.g. renderdoc was attached). This sorts devices as expected and fixes a debug assert on MSVC.
2020-10-02video_core: Enforce -Wunused-variable and -Wunused-but-set-variableReinUsesLisp
2020-09-30Remove ext_extended_dynamic_state blacklistMatías Locatti
Latest AMD 20.9.2 driver fixed this, there's no reason to keep it blocked, as the previous stable signed driver release doesn't include the extension.
2020-09-26Merge pull request #4724 from lat9nq/fix-vulkan-nvidia-allocate-2Rodrigo Locatti
vk_stream_buffer: Fix initializing Vulkan with NVIDIA on Linux
2020-09-26Merge pull request #4703 from lioncash/desig7bunnei
shader/registry: Make use of designated initializers where applicable