Morph
84b969a442
codec: Add missing <string_view> include
5 years ago
Feng Chen
63acf10871
Fix blend equation enum error
5 years ago
ameerj
f22d524c39
renderer_vulkan: Wait on present semaphore at queue submit
The present semaphore is being signalled by the call to acquire the
swapchain image. This semaphore is meant to be waited on when rendering
to the swapchain image. Currently it is waited on when presenting, but
moving its usage to be waited on in the command buffer submission allows
for proper usage of this semaphore.
Fixes the device lost when launching titles on the Intel Linux Mesa driver.
5 years ago
ameerj
e9a8e011f6
structured_control_flow: Conditionally invoke demote reorder pass
This is only needed on select drivers when a fragment shader discards/demotes.
5 years ago
Fernando Sahmkow
133f72c3f4
Garbage Collection: Make it more agressive on high priority mode.
5 years ago
Fernando Sahmkow
129bcd1b85
Garbage Collection: Adress Feedback.
5 years ago
ameerj
584fc3cb71
vulkan_device: Enable VK_KHR_swapchain_mutable_format if available
Silences validation errors when creating sRGB image views of linear swapchain images
5 years ago
ameerj
cc38b85948
vk_swapchain: Prefer linear swapchain format when presenting sRGB images
Fixes broken sRGB when presenting from a secondary GPU.
5 years ago
Fernando Sahmkow
9a785765d8
Garbage Collection: enable as default, eliminate option.
5 years ago
Fernando Sahmkow
7d22f79cf0
VideoCore: Rework Garbage Collection.
5 years ago
ameerj
8b0a45defd
vp9_types: Minor refactor of VP9 info structs.
5 years ago
ameerj
01ac464999
vp9_types: Remove unused Vp9PictureInfo members
5 years ago
ameerj
56cabe631b
vulkan_device: Add a check for int8 support
Silences validation errors when shaders use int8 without specifying its support to the API
5 years ago
ameerj
64369cceca
vk_rasterizer: Only clear depth and stencil buffers when set in attachment aspect mask
Silences validation errors for clearing the depth/stencil buffers of framebuffer attachments that were not specified to have depth/stencil usage.
5 years ago
Fernando Sahmkow
c01e168072
GPU_MemoryManger: Fix GetSubmappedRange.
5 years ago
Valeri
42b0e8cadf
video_core: eliminate constant ternary
`via_header_index` is already checked above, so it would never be true in this branch
5 years ago
ameerj
681b194e24
h264: Lower max_num_ref_frames
GPU decoding seems to be more picky when it comes to the maximum number of reference frames.
5 years ago
ameerj
82906e26a5
configure_graphics: Add GPU nvdec decoding as an option
Some system configurations may see visual regressions or lower performance using GPU decoding compared to CPU decoding. This setting provides the option for users to specify their decoding preference.
Co-Authored-By: yzct12345 <87620833+yzct12345@users.noreply.github.com>
5 years ago
ameerj
7cd52be8c4
codec: Improve libav memory alloc and cleanup
5 years ago
ameerj
5fd82a4ec1
codec: Fallback to CPU decoding if no compatible GPU format is found
5 years ago
lat9nq
3714fd580f
cmake: Add VDPAU and NVDEC support to FFmpeg
Adds {h264_,vp9_}{nvdec,vdpau} hwaccels.
5 years ago
ameerj
899cf73819
vk_blit_screen: Fix non-accelerated texture size calculation
Addresses the potential OOB access in UnswizzleTexture.
5 years ago
Merry
891e19ef4c
xbyak: Update include path
5 years ago
ameerj
f885866fba
codec: Replace deprecated av_init_packet usage
5 years ago
ameerj
561fd5f7a4
nvdec: Implement GPU accelerated decoding for all platforms
Supplements the VAAPI intel gpu decoder by implementing the D3D11VA decoder for Windows, and CUVID/VDPAU for Nvidia and AMD on drivers linux respectively.
5 years ago
yzct12345
4f7ee3d7c6
decoders: Templates allow memcpy optimizations
5 years ago
ameerj
8236b4f4d7
vic: Specify sws_scale height stride.
Silences a sws_scale runtime warning about unaligned strides.
5 years ago
ameerj
4cd45cf374
vp9: Ensure the first frame is complete
Silences a runtime error due to the first frame missing the frame data, and being set to hidden despite being a key-frame.
5 years ago
yzct12345
3c7d3363c1
texture_cache: Address ameerj's review
5 years ago
Robin Kertels
f8f27b6caf
vulkan_memory_allocator: Respect bufferImageGranularity
5 years ago
ameerj
f52a3de990
nvdec: Better logging for unimplemented codecs
5 years ago
yzct12345
0cef80ec92
texture_cache: Address ameerj's review
5 years ago
ameerj
b34ded024c
vp9: Cleanup unused variables
With reference frames refreshes fix, we no longer need to buffer two frames in advance.
We can also remove other unused or otherwise unneeded variables.
5 years ago
ameerj
27969c5943
vp9: Fix reference frame refreshes
This resolves the artifacting when decoding VP9 streams.
5 years ago
yzct12345
e99a125e19
texture_cache: Don't change copyright year
5 years ago
yzct12345
4436e63616
texture_cache: Address ameerj's review
5 years ago
yzct12345
e85149c507
texture_cache: Split templates out
5 years ago
yzct12345
e13e98d99d
nvdec: Implement VA-API hardware video acceleration ( #6713 )
* nvdec: VA-API
* Verify formatting
* Forgot a semicolon for Windows
* Clarify comment about AV_PIX_FMT_NV12
* Fix assert log spam from missing negation
* vic: Remove forgotten debug code
* Address lioncash's review
* Mention VA-API is Intel/AMD
* Address v1993's review
* Hopefully fix CMakeLists style this time
* vic: Improve cache locality
* vic: Fix off-by-one error
* codec: Async
* codec: Forgot the GetValue()
* nvdec: Address ameerj's review
* codec: Fallback to CPU without VA-API support
* cmake: Address lat9nq's review
* cmake: Make VA-API optional
* vaapi: Multiple GPU
* Apply suggestions from code review
Co-authored-by: Ameer J <52414509+ameerj@users.noreply.github.com>
* nvdec: Address ameerj's review
* codec: Use anonymous instead of static
* nvdec: Remove enum and fix memory leak
* nvdec: Address ameerj's review
* codec: Remove preparation for threading
Co-authored-by: Ameer J <52414509+ameerj@users.noreply.github.com>
5 years ago
yzct12345
46e4e6707f
decoders: Optimize swizzle copy performance ( #6790 )
This makes UnswizzleTexture up to two times faster. It is the main bottleneck in NVDEC video decoding.
5 years ago
ameerj
bfb2325618
astc_decoder: Reduce workgroup size
This reduces the amount of over dispatching when there are odd dimensions (i.e. ASTC 8x5), which rarely evenly divide into 32x32.
5 years ago
ameerj
2ff4eb5def
astc_decoder: Compute offset swizzles in-shader
Alleviates the dependency on the swizzle table and a uniform which is constant for all ASTC texture sizes.
5 years ago
ameerj
59ff9e51f2
astc_decoder: Make use of uvec4 for payload data
5 years ago
ameerj
8f9c7a4ba2
astc_decoder: Simplify Select2DPartition
5 years ago
ameerj
958ede1ed9
astc_decoder: Optimize the use EncodingData
This buffer was a list of EncodingData structures sorted by their bit length, with some duplication from the cpu decoder implementation.
We can take advantage of its sorted property to optimize its usage in the shader.
Thanks to wwylele for the optimization idea.
5 years ago
ameerj
f4409c9db9
astc.h: Move data to cpp implementation
Moves leftover values that are no longer used by the gpu decoder back to the cpp implementation.
5 years ago
ReinUsesLisp
2eaec1b7ee
vk_rasterizer: Flip viewport on Y_NEGATE
Matches OpenGL's behavior. I don't believe this register flips geometry,
but we have to try to match behavior on both backends.
5 years ago
ameerj
9629e74364
renderers: Add explicit invert_y bool to screenshot callback
OpenGL and Vulkan images render in different coordinate systems. This allows us to specify the coordinate system of the screenshot within each renderer
5 years ago
ameerj
6733ae9aab
renderer_vulkan: Implement screenshots
5 years ago
ameerj
317f238e1d
vk_blit_screen: Add public CreateFramebuffer method
5 years ago
ameerj
870a92bd78
vk_blit_screen: Make Draw method more generic
Allows specifying the framebuffer and render area dimensions, rather than being hard coded for the render window.
5 years ago