aboutsummaryrefslogtreecommitdiff
path: root/src/video_core
AgeCommit message (Collapse)Author
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
2020-09-25vk_stream_buffer: Fix initializing Vulkan with NVIDIA on Linuxlat9nq
The previous fix only partially solved the issue, as only certain GPUs that needed 9 or less MiB subtracted would work (i.e. GTX 980 Ti, GT 730). This takes from DXVK's example to divide `heap_size` by 2 to determine `allocable_size`. Additionally tested on my Quadro K4200, which previously required setting it to 12 to boot.
2020-09-25vk_command_pool: Move definition of Pool into the cpp fileLioncash
Allows the implementation details to be changed without recompiling any files that include this header.
2020-09-25vk_command_pool: Make use of override on destructorLioncash
2020-09-25vk_command_pool: Add missing header guardLioncash
2020-09-24More forgetting... duhLevi Behunin
2020-09-24Merge pull request #4711 from lioncash/move5bunnei
arithmetic_integer_immediate: Make use of std::move where applicable
2020-09-24Forgot to apply suggestion here as wellLevi Behunin
2020-09-24Address CommentsLevi Behunin
2020-09-24Start of Integer flags implementationLevi Behunin
2020-09-24arithmetic_integer_immediate: Make use of std::move where applicableLioncash
Same behavior, minus any redundant atomic reference count increments and decrements.
2020-09-23video_core: Fix instances where msbuild always regenerated host shadersReinUsesLisp
When HEADER_GENERATOR was included in the DEPENDS section of custom commands, msbuild assumed this was always modified. Changing this file is not common so we can remove it from there.
2020-09-23Merge pull request #4674 from ReinUsesLisp/timeline-semaphoresbunnei
renderer_vulkan: Make unconditional use of VK_KHR_timeline_semaphore
2020-09-23shader/registry: Silence a -Wshadow warningLioncash