| Age | Commit message (Collapse) | Author |
|
These helper functions don't directly modify any member state and can be
hidden from view.
|
|
Resolves a few -Wmissing-initializer warnings.
|
|
nvdec: Minor tidying up
|
|
Adds 1 async worker thread for every 2 available threads above 8
|
|
sync_manager: Amend parameter order of calls to SyncptIncr constructor
|
|
|
|
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[].
|
|
Trivially add the encoding for this.
|
|
video_core: Enforce -Werror=type-limits
|
|
Silence three warnings and make them errors to avoid introducing more in the future.
|
|
Silences one warning and avoids introducing more in the future.
|
|
Corrects some cases where the arguments would be incorrectly swapped.
|
|
Enforces the type of the desired value in calling code.
|
|
We can move the buffer here to avoid a heap reallocation
|
|
|
|
|
|
The move will already occur without std::move.
|
|
|
|
Prevents a few unnecessary inclusions.
|
|
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>
|
|
video_core: Fix instances where msbuild always regenerated host shaders
|
|
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.
|
|
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.
|
|
renderer_vulkan: Create and properly use Vulkan 1.0 instances when 1.1 is not available
|
|
vk_graphics_pipeline: Manage primitive topology as fixed state
|
|
vk_device: Block VK_EXT_extended_dynamic_state for RDNA devices
|
|
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.
|
|
shader/texture: Implement CUBE texture type for TMML and fix arrays
|
|
|
|
video_core: Enforce -Wunused-variable and -Wunused-but-set-variable
|
|
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.
|
|
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.
|
|
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.
|
|
|
|
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.
|
|
vk_stream_buffer: Fix initializing Vulkan with NVIDIA on Linux
|
|
shader/registry: Make use of designated initializers where applicable
|
|
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.
|
|
Allows the implementation details to be changed without recompiling any
files that include this header.
|
|
|
|
|
|
|
|
arithmetic_integer_immediate: Make use of std::move where applicable
|
|
|
|
|
|
|
|
Same behavior, minus any redundant atomic reference count increments and
decrements.
|
|
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.
|
|
renderer_vulkan: Make unconditional use of VK_KHR_timeline_semaphore
|
|
|