Fernando Sahmkow
6430fc29a9
Vulkan: Implement VK_EXT_primitive_topology_list_restart
2021-12-18 05:47:48 +01:00
bunnei
7cf74abbf5
Merge pull request #7551 from vonchenplus/fix_blit_image_view_mismatching
...
Fix blit image/view not compatible
2021-12-15 21:39:53 -08:00
liushuyu
3f765ea9a4
video_core/codecs: (re-spin) refactor ffmpeg searching and handling
2021-12-15 20:57:01 -07:00
bunnei
2f32133ad5
Revert "video_core/codecs: refactor ffmpeg searching and handling in cmake"
2021-12-15 00:02:53 -08:00
bunnei
156215d1fa
Merge pull request #7565 from liushuyu/fix-linux-decoding
...
video_core/codecs: refactor ffmpeg searching and handling in cmake
2021-12-14 22:27:13 -08:00
liushuyu
dd72e4dce4
CI: fix CI on Linux
2021-12-13 22:31:19 -07:00
liushuyu
a2d73eaa10
video_core/codecs: skip decoders that use hw frames ...
...
... this would resolve some edge-cases where multiple devices are
present and ffmpeg is unable to auto-supply the hw surfaces
2021-12-13 22:29:19 -07:00
Morph
14110230c7
maxwell_to_vk: Add ASTC_2D_5X4_UNORM
2021-12-10 22:44:24 -05:00
Feng Chen
1598426493
Fix blit image/view not compatible
2021-12-10 12:41:09 +08:00
Morph
ae4869650a
maxwell_to_vk: Add ASTC_2D_8X5_UNORM
...
- Used by Lego City Undercover
2021-12-09 13:53:53 -05:00
Morph
429320aee8
Merge pull request #7495 from FernandoS27/text-blit-fix-again
...
Texture Cache: Fix mismatching image/views on blits
2021-12-09 05:26:21 -05:00
Morph
47a724780f
renderer_vulkan: Add R16G16_UINT
...
- Used by Immortals Fenyx Rising
2021-12-08 10:55:11 -05:00
bunnei
815189eaf3
Merge pull request #7488 from vonchenplus/support_multiple_videos_playing
...
Support multiple videos playing
2021-12-07 18:38:14 -08:00
ameerj
228a381aed
vk_texture_cache: Add ABGR src format check for D24S8 conversions
2021-12-05 15:54:58 -05:00
ameerj
c22c4f5d59
renderer_opengl: Minor refactoring of filter selection
2021-12-05 15:42:45 -05:00
ameerj
218d790bd6
texture_cache: Fix image convert dimensions assertion
2021-12-05 15:42:45 -05:00
ameerj
b8f3e5157b
blit_image: Refactor upscale factors usage
...
The image view itself can be queried to see if it is being rescaled or not, removing the need to pass the upscale/down shift factors from the texture cache.
2021-12-05 15:42:44 -05:00
ameerj
35d94dcb2b
vk_texture_cache: Add a function to ImageView to check if src image is rescaled
2021-12-05 15:39:00 -05:00
ameerj
4a13f9eecd
blit_image: Refactor ConvertPipeline functions
2021-12-05 15:39:00 -05:00
ameerj
ad99bbf5fe
blit_image: Refactor ConvertPipelineEx functions
...
reduces much of the duplication between the color/depth variants
2021-12-05 15:38:59 -05:00
ameerj
b387a26f30
vk_blit_screen: Minor refactor of filter pipeline selection
2021-12-05 15:35:35 -05:00
ameerj
75c4aec8ab
Revert "Merge pull request #7395 from Morph1984/resolve-comments"
...
This reverts commit d20f91da11
, reversing
changes made to 5082712b4e
.
2021-12-05 15:35:35 -05:00
Feng Chen
5462485cc3
Address feedback
2021-12-05 00:06:14 +08:00
Fernando Sahmkow
a5c212516c
Texture Cache: Fix crashes on NVIDIA.
2021-12-04 11:26:58 +01:00
bunnei
e482dd82b9
Merge pull request #7467 from liushuyu/fix-linux-decoding
...
video_core/codecs: more robust ffmpeg hwdecoder selection logic
2021-12-03 17:11:12 -08:00
liushuyu
e7f10de11a
video_core/cmake: link against libva explicitly ...
...
... to fix build on Flatpak (and self-builds)
2021-12-02 22:35:30 -07:00
liushuyu
a578df4c6b
video_core/codecs: more fixes for VAAPI detection ...
...
* skip impersonated VAAPI implementaions ("imposter detection")
* place VAAPI priority below CUDA/NVDEC/CUVID
2021-12-02 21:31:51 -07:00
liushuyu
20a46790d7
video_core/codec: address comments
2021-12-02 21:01:34 -07:00
liushuyu
cd27f211c8
video_core/codecs: more robust ffmpeg hwdecoder selection logic
2021-12-02 21:01:34 -07:00
Morph
762b8ad448
general: Replace high_resolution_clock with steady_clock
...
On some OSes, high_resolution_clock is an alias to system_clock and is not monotonic in nature. Replace this with steady_clock.
2021-12-02 14:20:43 -05:00
Feng Chen
2c47f8aa18
Support multiple videos playing
2021-12-02 12:48:42 +08:00
Feng Chen
524a9baa7e
Add missing pixel format mapping
2021-11-29 12:39:37 +08:00
Fernando S
3031223153
Merge pull request #7396 from FernandoS27/blit-this-mf
...
TextureCache: Eliminate format deduction as full depth conversion has been supported.
2021-11-28 12:16:31 +01:00
Fernando Sahmkow
5a3463bc2b
Texture Cache: Secure insertions against deletions.
2021-11-28 10:53:27 +01:00
Fernando Sahmkow
ecefc932e6
Texture Cache: Redesigning the blitting system (again).
2021-11-27 11:22:16 +01:00
Fernando Sahmkow
1624f307d0
Texture Cache: Further fix regressions.
2021-11-26 17:03:48 +01:00
liushuyu
60928cf8cd
video_core/codec: address comments
2021-11-24 18:06:38 -07:00
liushuyu
72aa418b0b
video_core/codecs: fix multiple decoding issues on Linux ...
...
* when someone installed Intel video drivers on an AMD system, the
decoder will select the Intel VA-API decoding driver and yuzu will
crash due to incorrect driver selection; the fix will check if the
currently about-to-use driver is loaded in the kernel
* when using NVIDIA driver on Linux with a ffmpeg that does not have
CUDA capability enabled, the decoder will crash; the fix simply
making the decoder prefers the VDPAU driver over CUDA on Linux
2021-11-24 17:23:57 -07:00
Fernando Sahmkow
08674aee87
Texture Cache: Fix issue with blitting 3D textures.
2021-11-22 06:07:21 +01:00
Fernando Sahmkow
1e474fb9d1
Texture Cache: Correct conversion shaders.
2021-11-22 00:21:42 +01:00
Fernando Sahmkow
0902119302
Texture Cache: Always copy on NVIDIA.
2021-11-22 00:06:56 +01:00
Fernando Sahmkow
8532849439
TextureCache: Simplify blitting of D24S8 formats and fix bugs.
2021-11-22 00:00:01 +01:00
Fernando Sahmkow
d7f4434bd5
VulkanTexturECache: Use reinterpret on D32_S8 formats.
2021-11-21 21:09:49 +01:00
Fernando Sahmkow
b96caf200d
HostShaders: Fix D24S8 convertion shaders.
2021-11-21 21:04:04 +01:00
bunnei
d20f91da11
Merge pull request #7395 from Morph1984/resolve-comments
...
general: Resolve comments in PR #7368
2021-11-21 02:42:24 -08:00
bunnei
5082712b4e
Merge pull request #7389 from ameerj/screenshot-1x
...
Fix screenshot dimensions when at 1x scale
2021-11-21 02:31:32 -08:00
Fernando Sahmkow
779f4ac72d
TextureCache: Eliminate format deduction as full depth conversion has been supported.
2021-11-21 05:37:01 +01:00
Morph
a41c6dafea
vk_texture_cache: Mark VkBufferUsageFlags as static constexpr
2021-11-20 21:49:37 -05:00
Morph
095bc88428
vk_blit_image: Consolidate CreatePipelineTargetEx functions
2021-11-20 21:18:37 -05:00
bunnei
ea6fa044f3
Merge pull request #7368 from FernandoS27/vulkan-conv
...
Fix ART Blit detection regression and add D24S8 <-> RGBA8 conv to Vulkan
2021-11-20 16:51:13 -08:00
ameerj
fe1f06c856
Fix screenshot dimensions when at 1x scale
...
This was regressed by ART.
Prior to ART, the screenshots were saved at the title's framebuffer resolution. A misunderstanding of the existing logic led to screenshot dimensions becoming dependent on the host render window size.
This changes the behavior to match how it was prior to ART at 1x, with screenshots now always being the title's framebuffer dimensions scaled by the resolution scaling factor.
2021-11-20 17:50:24 -05:00
Fernando Sahmkow
da2fe81905
TextureCache: Refactor and fix linux compiling.
2021-11-20 14:46:19 +01:00
Fernando Sahmkow
4ca6e9a9e2
TextureCache: Assure full conversions on depth/stencil write shaders.
2021-11-20 06:17:01 +01:00
Fernando Sahmkow
0857f82913
TextureCache: Implement buffer copies on Vulkan.
2021-11-20 06:15:29 +01:00
bunnei
c3e1ffc44b
Merge pull request #7294 from vonchenplus/fix_image_update_error_when_width_too_small
...
Fix image update/download error when width too small
2021-11-19 15:56:27 -08:00
Fernando Sahmkow
e02cff2f69
TextureCache: Add R16G16 to D24S8 converter.
2021-11-20 00:02:12 +01:00
Fernando Sahmkow
1d5e6a51d7
TextureCache: Add B10G11R11 to D24S8 converter.
2021-11-19 23:22:44 +01:00
Fernando Sahmkow
6f896d1fae
TextureCache: Further fixes on resolve algorithm.
2021-11-19 23:02:04 +01:00
Feng Chen
4dd85f86a8
Implement convert legacy to generic
2021-11-19 22:53:58 +08:00
bunnei
c45af76ea0
Merge pull request #7357 from Morph1984/s8_uint
...
video_core: Implement S8_UINT format
2021-11-19 01:16:49 -08:00
Fernando Sahmkow
b805c7bf05
TextureCache: Implement additional D24S8 convertions.
2021-11-19 06:27:44 +01:00
Fernando Sahmkow
0ff228405f
TextureCache: force same image format when resolving an image.
2021-11-19 05:46:57 +01:00
Fernando Sahmkow
b130f648d7
TextureCache: Fix regression caused by ART and improve blit detection algorithm to be smarter.
2021-11-19 03:17:54 +01:00
Fernando Sahmkow
2ec7fcecb7
Vulkan: implement D24S8 <-> RGBA8 convertions.
2021-11-19 03:17:02 +01:00
Morph
dc61b7045b
renderer_vulkan: Implement S8_UINT stencil format
...
It should be noted that on Windows, only nvidia gpus support this format natively as of this commit.
2021-11-18 00:05:51 -05:00
ameerj
f7e155d8b9
gl_texture_cache: Round format conversion PBO to next power of 2
2021-11-17 23:49:44 -05:00
Morph
6dd6dc046c
renderer_opengl: Implement S8_UINT stencil format
2021-11-17 15:05:07 -05:00
Morph
2348eb41f3
video_core: Add S8_UINT stencil format
2021-11-17 15:04:38 -05:00
Feng Chen
894cc9d876
Fix image update/download error when width too small
2021-11-17 12:21:17 +08:00
ameerj
20ed7ba441
texture_cache: Use pixel format conversion when supported by the runtime
2021-11-16 22:32:46 -05:00
ameerj
50c3d53076
gl_texture_cache: Make FormatConversionPass more generic
...
This allows the usage of the FormatConversionPass to be applied to more than the previously used BGR conversion scenarios.
2021-11-16 22:32:11 -05:00
ameerj
35ca6274f4
gl_texture_cache: Rename BGRCopyPass to FormatConversionPass
2021-11-16 22:31:58 -05:00
Fernando Sahmkow
1c8a3d8d29
TextureCache: Fix Automatic Anisotropic.
2021-11-17 03:15:08 +01:00
FernandoS27
1128cc35b9
TextureCache: OGL query device memory if possible.
2021-11-17 01:45:50 +01:00
Fernando Sahmkow
978f598ff6
TextureCache: Fix OGL cleaning
2021-11-17 00:59:46 +01:00
Fernando Sahmkow
282e04bffb
TextureCache: Add automatic anisotropic filtering and refactor code.
2021-11-16 23:14:51 +01:00
Fernando Sahmkow
5230378709
TextureCache: Make a better Anisotropic setter.
2021-11-16 22:11:33 +01:00
Fernando Sahmkow
6c97ab571a
Texture Cache: revert Image changes.
2021-11-16 22:11:33 +01:00
FernandoS27
d46a71e786
HostShader: fix Gaussian filter.
2021-11-16 22:11:33 +01:00
FernandoS27
de1c8c5c2c
Texture Cahe/Shader decompiler: Resize PointSize on rescaling, refactor and make reaper more agressive on 4Gb GPUs.
2021-11-16 22:11:33 +01:00
ameerj
917b2466ad
texture_cache: Refactor Render Target scaling function
2021-11-16 22:11:33 +01:00
ameerj
9fc1fa1b0d
gl_resource_manager: Ensure non EXT_framebuffer objects are created
2021-11-16 22:11:33 +01:00
FernandoS27
099b0b3167
Texture Cache: Fix memory usage on ScaleDown.
2021-11-16 22:11:33 +01:00
FernandoS27
9189aacfe2
OpenGL: Fix viewport/Scissor scaling on downscaling.
2021-11-16 22:11:33 +01:00
FernandoS27
c97c46747d
Vulkan: fix regression.
2021-11-16 22:11:33 +01:00
ameerj
87abab71ff
host_shaders: Misc copyright/style changes
2021-11-16 22:11:33 +01:00
ameerj
99124b7261
FSR: Fix GCC build errors
2021-11-16 22:11:33 +01:00
Marshall Mohror
bb03675485
Vulkan: Reimplement FSR constant generation functions to avoid GCC warnings
2021-11-16 22:11:33 +01:00
ameerj
47369faaab
vk_blit_screen: Fix AA destruction order
2021-11-16 22:11:32 +01:00
Marshall Mohror
dcc5b4f6b0
Presentation: Only use FP16 in scaling shaders on supported devices in Vulkan
2021-11-16 22:11:32 +01:00
ameerj
a39e867c73
renderer_vulkan/blit_image: Use generic color state on Depth to Color blits
...
Fixes Bayonetta 2 on AMD
2021-11-16 22:11:32 +01:00
ameerj
282a4501d9
vk_texture_cache: Refactor 3D scaling helpers
2021-11-16 22:11:32 +01:00
ameerj
93c9eb196f
gl_rasterizer: Fix ScissorTest and Clear when scaling
2021-11-16 22:11:32 +01:00
ameerj
172d4f1e3b
gl_texture_cache: Simplify scaling procedures
2021-11-16 22:11:32 +01:00
Fernando Sahmkow
5c6fa88935
OpenGlTextureCache: Fix state invalidation on rescaling.
2021-11-16 22:11:32 +01:00
Fernando Sahmkow
c5dbd93adb
VulkanBufferCache: Avoid adding barriers between multiple copies.
2021-11-16 22:11:32 +01:00
Fernando Sahmkow
99547d2656
HostShader: Fix gaussian and add attribution.
2021-11-16 22:11:32 +01:00
Fernando Sahmkow
21a8ba0437
Vulkan: Fix FXAA in AMD.
2021-11-16 22:11:32 +01:00
Fernando Sahmkow
6cdfaee7b4
Texture Cache: Fix blitting.
2021-11-16 22:11:32 +01:00
FernandoS27
e6f1ed08fb
Vulkan: Implement FXAA
2021-11-16 22:11:32 +01:00
Marshall Mohror
056894f07a
OpenGL: fix FXAA with scaling
2021-11-16 22:11:32 +01:00
Marshall Mohror
48cf376462
OpenGL: Implement FXAA
2021-11-16 22:11:32 +01:00
FernandoS27
2eff80b47f
QtGUI: Add buttton to toggle the filter.
2021-11-16 22:11:32 +01:00
FernandoS27
9e065b9c7d
VideoCore: Add gaussian filtering.
2021-11-16 22:11:32 +01:00
FernandoS27
bf01b7993d
TextureCache: Improve Reaper.
2021-11-16 22:11:32 +01:00
FernandoS27
bb3e95133d
Vulkan: fix waiting on semaphore.
2021-11-16 22:11:32 +01:00
Marshall Mohror
916b882ea8
Update scaleforce to use FP16
2021-11-16 22:11:32 +01:00
FernandoS27
d37d10e7a7
TextureCache: fix rescaling in aliases and overlap joins.
2021-11-16 22:11:31 +01:00
Marshall Mohror
7506ac4118
Presentation: Fix turning FSR on and off in settings
2021-11-16 22:11:31 +01:00
Fernando Sahmkow
4ad22c7d2b
Video Core: fix building for GCC.
2021-11-16 22:11:31 +01:00
FernandoS27
826a350e2b
Vulkan Rasterizer: Fix clears on integer textures.
2021-11-16 22:11:31 +01:00
FernandoS27
150bc45401
Texture cache: fix Intel with rescaler.
2021-11-16 22:11:31 +01:00
FernandoS27
f3ff8bdc0e
TextureCache: Fix blitting filter in Vulkan and correct viewport/scissor calculation when downscaling.
2021-11-16 22:11:31 +01:00
Fernando Sahmkow
3b61de74e6
Texture Cache: fix memory managment and optimize scaled downloads, uploads.
2021-11-16 22:11:31 +01:00
Fernando Sahmkow
c2ca55c9d5
Texture Cache: ease the requirements of textures being blacklisted.
2021-11-16 22:11:31 +01:00
Fernando Sahmkow
50b4c774cb
Vulkan: Fix Blit Depth Stencil
2021-11-16 22:11:31 +01:00
Fernando Sahmkow
425ab9ef4b
Texture Cache: Fix downscaling and correct memory comsumption.
2021-11-16 22:11:31 +01:00
Fernando Sahmkow
b60966041c
Presentation: add Nearest Neighbor filter.
2021-11-16 22:11:31 +01:00
Marshall Mohror
37cb0377ae
vulkan: Implement FidelityFX Super Resolution
2021-11-16 22:11:31 +01:00
FernandoS27
d4f5193bd3
Texture Cache: Rescale conversions between depth and color
2021-11-16 22:11:31 +01:00
Fernando Sahmkow
ef1dc42635
Texture cache: Fix memory consumption and ignore rating when a depth texture is rendered.
2021-11-16 22:11:31 +01:00
ameerj
618de4e787
vulkan: Fix rescaling push constant usage
2021-11-16 22:11:31 +01:00
Fernando Sahmkow
b7ccc58f23
Texture Cahe: Fix downscaling on SMO.
2021-11-16 22:11:31 +01:00
ameerj
0f14c9379e
texture_cache_base: Remove unused function declarations
2021-11-16 22:11:31 +01:00
ameerj
ebf36f23dd
vk_texture_cache: Use 3D to scale images when blit is unsupported
2021-11-16 22:11:31 +01:00
ameerj
4de584005f
texture_cache: Fix infinitely recursive ImageCanRescale check
2021-11-16 22:11:31 +01:00
ameerj
b1ae935f11
vk_texture_cache: Fix BlitScale of non-2D images
2021-11-16 22:11:31 +01:00
ameerj
abd07e4158
video_core: Refactor resolution scale function
2021-11-16 22:11:31 +01:00
ameerj
b14f2c7c82
texture_cache: Fix image resolves when src/dst are not both scaled
2021-11-16 22:11:30 +01:00
lat9nq
1c93476a80
video_core,yuzu: Move UpdateRescalingInfo call to video_core
...
This only needs to happen once per game boot, so we can just call it
during CreateGPU and be done with it, avoiding the need to call it in
the frontends.
2021-11-16 22:11:30 +01:00
ameerj
3233fa5dc8
gl_texture_cache: Disable scissor test when scaling textures
...
Fixes a bug on BOTW where some objects were no longer being rendered after blitting
2021-11-16 22:11:30 +01:00
ameerj
89a7e566c7
vk_texture_cache: Fix unsupported blit format error checking
2021-11-16 22:11:30 +01:00
ameerj
f8339cd703
vk_texture_cache: Fix early returns on unsupported scales
2021-11-16 22:11:30 +01:00
ameerj
31478c6c1b
video_core: Misc resolution scaling related refactoring
2021-11-16 22:11:30 +01:00
ameerj
88ef04dbaf
texture_cache: Refactor scaled image size calculation
2021-11-16 22:11:30 +01:00
Fernando Sahmkow
237a43004f
Texture Cache: Fix calculations when scaling.
2021-11-16 22:11:30 +01:00
ameerj
e0a3830855
gl_texture_cache: Fix BGR pbo size for scaled textures
2021-11-16 22:11:30 +01:00
Fernando Sahmkow
ea82bd4b7e
Texture Cache: Fix Rescaling on Multisample
2021-11-16 22:11:30 +01:00
Fernando Sahmkow
19ca0c9ab5
TextureCache: Base fixes on rescaling.
2021-11-16 22:11:30 +01:00
ameerj
36f261edef
vk_texture_cache: Simplify scaled image management
2021-11-16 22:11:30 +01:00
ameerj
8183142cd4
gl_texture_cache: Fix scaling backup logic
2021-11-16 22:11:30 +01:00
ameerj
122ddeb7ff
vk_rasterizer: Fix scaling on Y_NEGATE
2021-11-16 22:11:30 +01:00
ameerj
16017ac450
vk_texture_cache: Use nearest neighbor scaling when available
2021-11-16 22:11:30 +01:00
ameerj
27af298e78
gl_texture_cache: Fix depth and integer format scaling blits
2021-11-16 22:11:30 +01:00
ameerj
b027fac794
gl_texture_cache/rescaling_pass: minor cleanup
2021-11-16 22:11:30 +01:00
ameerj
c8a971be91
vk_texture_cache: Minor cleanup
2021-11-16 22:11:30 +01:00
ameerj
6000fe69a4
image_info: Mark MSAA textures as non-rescalable
...
Blitting or resolving multisampled images requires the dimensions of the src and dst to be equal for valid usage, making them difficult for resolution scaling using the current implementation.
2021-11-16 22:11:30 +01:00
ameerj
fcf2b2c78a
gl_texture_cache: Simplify scaling
...
We don't need to reconstruct new textures every time we ScaleUp/ScaleDown. We can scale up once, and revert to the original texture whenever scaling down.
Fixes memory leaks due to glDeleteTextures being deferred for later handling on some drivers
2021-11-16 22:11:29 +01:00
ameerj
ae8d19d17e
Renderers: Unify post processing filter shaders
2021-11-16 22:11:29 +01:00
ameerj
29710f3250
gl_texture_cache: fix scaling on upload
2021-11-16 22:11:29 +01:00
Fernando Sahmkow
a6b88e85bf
Renderer: Implement Bicubic and ScaleForce filters.
2021-11-16 22:11:29 +01:00
Fernando Sahmkow
c5bbbf3902
Texture Cache: fix scaling on upload and stop scaling on base resolution.
2021-11-16 22:11:29 +01:00
ameerj
68e038404c
shader, video_core: Fix GCC build errors
2021-11-16 22:11:29 +01:00
ameerj
65781f88f8
emit_spirv: Fix RescalingLayout alignment
2021-11-16 22:11:29 +01:00
Fernando Sahmkow
d7c9792169
TextureCache: Fix Buffer Views Scaling.
2021-11-16 22:11:29 +01:00
Fernando Sahmkow
4b1393a691
Texture Cache: Correctly fix Blits Rescaling.
2021-11-16 22:11:29 +01:00
ameerj
ed675cfd8c
texture_cache: Disable dst_image scaling in BlitImage
...
Fixes scaling in Super Mario Party
2021-11-16 22:11:29 +01:00
ameerj
dc28284437
emit_spirv: Fix RescalingLayout alignment
2021-11-16 22:11:29 +01:00
ReinUsesLisp
e66d5b88a6
shader: Properly scale image reads and add GL SPIR-V support
...
Thanks for everything!
2021-11-16 22:11:29 +01:00
ReinUsesLisp
fc9bb3c3fe
shader: Properly blacklist and scale image loads
2021-11-16 22:11:29 +01:00
ReinUsesLisp
c7a1cbad44
texture_cache: Add getter to query if image view is rescaled
2021-11-16 22:11:29 +01:00
ReinUsesLisp
526e47f148
vk_rasterizer: Minor style change
2021-11-16 22:11:29 +01:00
ReinUsesLisp
c9238555f7
gl_texture_cache: Fix scaling blits
2021-11-16 22:11:29 +01:00
ReinUsesLisp
cfeb161c7e
glsl/glasm: Pass and use scaling parameters in shaders
2021-11-16 22:11:29 +01:00
ReinUsesLisp
4a512d6827
gl_rasterizer: Properly scale viewports and scissors
2021-11-16 22:11:29 +01:00
ameerj
05d98d9bbf
gl_texture_cache: Fix multi layered texture Scale
2021-11-16 22:11:29 +01:00
ameerj
b6060873ce
gl_compute_pipeline: Add downscale factor to shader uniforms
2021-11-16 22:11:29 +01:00
ameerj
9bc7b04ca5
gl_rasterizer: Fix rescale dirty state checking
2021-11-16 22:11:29 +01:00
ameerj
f086c82e1f
gl_graphics_pipeline: Add downscale factor to shader uniforms
2021-11-16 22:11:28 +01:00
ReinUsesLisp
2182d25750
texture_cache: Fix blacklists on compute
2021-11-16 22:11:28 +01:00
ReinUsesLisp
56ccda1d99
texture_cache: Simplify image view queries and blacklisting
2021-11-16 22:11:28 +01:00
Fernando Sahmkow
48d81506a3
Vulkan: Fix downscaling Blit.
2021-11-16 22:11:28 +01:00
Fernando Sahmkow
07c564f38b
Texture Cache: Implement Rating System.
2021-11-16 22:11:28 +01:00
Fernando Sahmkow
cee7eba64e
OpenGL: set linear mag filter when blitting a downscaled image.
2021-11-16 22:11:28 +01:00
Fernando Sahmkow
117f8ee7a4
Vulkan: Fix AA when rescaling.
2021-11-16 22:11:28 +01:00
Fernando Sahmkow
0e8cf38f39
Texture Cache: Implement Blacklisting.
2021-11-16 22:11:28 +01:00
ReinUsesLisp
d2388dd0d0
vulkan: Implement rescaling shader patching
2021-11-16 22:11:28 +01:00
ReinUsesLisp
dc72d4d4f5
vk_texture_cache: Properly scale blit source images
2021-11-16 22:11:28 +01:00
ReinUsesLisp
baf0993d5c
vk_graphics_pipeline: Use Shader::NumDescriptors when possible
2021-11-16 22:11:28 +01:00
ReinUsesLisp
6f3a41abe2
opengl: Use Shader::NumDescriptors when possible
2021-11-16 22:11:28 +01:00
ReinUsesLisp
74efa57c1b
texture_cache: Add image getters
2021-11-16 22:11:28 +01:00
ameerj
fad2c92a39
gl_texture_cache: Simplify rescaling
2021-11-16 22:11:28 +01:00
ameerj
d5143c83a9
texture_cache: Fix typo in aliased image rescaling
2021-11-16 22:11:28 +01:00
ReinUsesLisp
0fb4b84383
vk_texture_cache: Simplify and optimize scaling blits
2021-11-16 22:11:28 +01:00
ReinUsesLisp
520c4a44f6
vk_texture_cache: Fix scaling blit validation errors
2021-11-16 22:11:28 +01:00
ameerj
fddf372c68
gl_texture_cache: Implement ScaleDown
2021-11-16 22:11:27 +01:00
ameerj
0a6c895af7
gl_texture_cache: Rescale fixes for multi-layered textures
2021-11-16 22:11:27 +01:00
Fernando Sahmkow
dfc65cd0a3
Texture Cache: Implement Rescaling on Aliases and Blits.
2021-11-16 22:11:27 +01:00
ReinUsesLisp
d464b122d5
Fix blits with mips
2021-11-16 22:11:27 +01:00
ReinUsesLisp
973f8f1d08
Fix blits
2021-11-16 22:11:27 +01:00
ameerj
de66a69ed4
renderer_gl: Resolution scaling fixes
2021-11-16 22:11:27 +01:00
Fernando Sahmkow
8704c93913
TextureCache: Fix rescaling of ImageCopies
2021-11-16 22:11:27 +01:00
Fernando Sahmkow
778700ff9d
TextureCache: Modify Viewports/Scissors according to Rescale.
2021-11-16 22:11:27 +01:00
Fernando Sahmkow
71ca84d829
Settings: eliminate rescaling_factor.
2021-11-16 22:11:27 +01:00
Fernando Sahmkow
84f2aea896
Texture Cache: More rescaling fixes.
2021-11-16 22:11:27 +01:00
ameerj
10e5065a5c
gl_texture_cache: WIP texture rescale
2021-11-16 22:11:27 +01:00
Fernando Sahmkow
ba18047e8d
Texture Cache: Implement Vulkan UpScaling & DownScaling
2021-11-16 22:11:27 +01:00
Fernando Sahmkow
22f4b290b6
VideoCore: Initial Setup for the Resolution Scaler.
2021-11-16 22:11:27 +01:00
ameerj
c50f170597
codes: Rename ComposeFrameHeader to ComposeFrame
...
These functions were composing the entire frame, not just the headers. Rename to more accurately describe them.
2021-11-12 23:52:19 -05:00
ameerj
d35391b9f4
vp8: Implement header composition
...
Enables frame decoding with FFmpeg
2021-11-12 23:52:18 -05:00
ameerj
b39b33b1fe
codecs: Add VP8 codec class
2021-11-12 19:49:45 -05:00
Feng Chen
70d51f72ec
vulkan_device: Add missing vulkan image format R5G6B5 in GetFormatProperties
...
- Used by Dragon Quest Builders
2021-11-05 10:31:40 -04:00
Morph
d607ceacf4
gl_rasterizer: Remove unused includes
...
This removes unused includes, especially the core includes which were causing this file to be recompiled every time files included by those headers are modified.
2021-10-31 23:57:51 -04:00
lat9nq
61121d1b22
gl_device: Force GLASM on NVIDIA drivers 495-496
...
GLSL shaders currently do not render correctly on the recent NVIDIA
drivers. This adds a check that forces assembly shaders for these
drivers since they seem unaffected and adds a warning informing of the
decision.
Developers can disable the check by enabling graphics debugging.
2021-10-28 19:38:49 -04:00
Fernando S
5299554bb0
Merge pull request #7206 from vonchenplus/fix_vulkan_viewport_issue
...
Vulkan Rasterizer: Fix viewport issue
2021-10-24 01:53:04 +02:00
Ameer J
494e34af6a
Merge pull request #7070 from FernandoS27/want-you-bad
...
Vulkan Rasterizer: Correct DepthBias/PolygonOffset on Vulkan.
2021-10-23 18:02:23 -04:00
Fernando Sahmkow
ad8afaf1ef
Vulran Rasterizer: address feedback.
2021-10-23 23:46:29 +02:00
Feng Chen
b769bea61b
Fix vulkan viewport issue
2021-10-22 22:56:31 +08:00
bunnei
c871320760
Merge pull request #7198 from ameerj/settings-chrono
...
settings: Remove std::chrono usage
2021-10-19 09:55:50 -07:00
ameerj
ef811c6425
settings: Remove std::chrono usage
...
Alleviates the dependency on chrono for all files that include settings.h
2021-10-17 00:37:49 -04:00
Ameer J
3791c7ca82
Merge pull request #7077 from FernandoS27/face-down
...
A series of fixes to queries and indexed samplers.
2021-10-16 21:41:54 -04:00
Ameer J
5b735a4c9d
Merge pull request #7127 from FernandoS27/i-saw-a-wabbit
...
A few fixes on Vulkan and Rasterizer Caching
2021-10-16 21:37:43 -04:00
Morph
894b483a0d
Merge pull request #7157 from ameerj/vic-surface-size
...
vic: Use the minimum of surface/frame dimensions when writing the final frame to the GPU
2021-10-13 20:41:17 -04:00
Ameer J
018cf3853e
Merge pull request #7109 from vonchenplus/fix_h264_max__reference_num_error
...
h264: Use max allowed max_num_ref_frames when using CPU decoding
2021-10-12 14:08:37 -04:00
ameerj
f346b04d12
vic: Use the minimum of surface/frame dimensions when writing the final frame to the GPU
...
Addresses possible buffer overflow behavior.
2021-10-10 18:44:16 -04:00
Feng Chen
ba8be75037
h264: Use max allowed max_num_ref_frames when using CPU decoding
2021-10-10 20:07:19 +08:00
Valeri
0394e4bb8e
vic: Allow surface to be higher than frame
...
Touhou Genso Wanderer Lotus Labyrinth R decodes 1920x1080 videos into 1920x1088 surface.
Only allow mismatch for height, since larger width would result in increasingly offset rows and somewhat defeat entire purpose of this check.
2021-10-09 20:22:09 +03:00
ameerj
403fc86c11
vic: Avoid memory corruption when multiple streams with different dimensions are decoded
...
This is a work around to avoid buffer overflow errors until multi channel/multi stream decoding is supported.
2021-10-08 01:22:38 -04:00
ameerj
5aae61775f
vic: Refactor frame writing methods
2021-10-07 14:56:44 -04:00
ameerj
899fdb9c44
vic: Implement RGBX frame format
2021-10-07 11:06:57 -04:00
Fernando S
f84328934f
Merge pull request #7118 from ameerj/vc-gpu-impl
...
gpu: Migrate implementation to the cpp file
2021-10-06 20:02:31 +02:00
bunnei
5b2fa8dd41
Merge pull request #7115 from ameerj/log-compile
...
common/logging: Reduce dependent header include overhead
2021-10-05 10:05:46 -07:00
bunnei
158a693111
Merge pull request #7101 from ameerj/vk-tess-topology
...
vk_graphics_pipeline: Force patch list topology when tessellation is used
2021-10-04 15:37:32 -07:00
Fernando Sahmkow
0498669b4b
Vulkan: Fix failing barrier on refresh.
2021-10-04 20:56:15 +02:00
FernandoS27
bb8bf740e9
RasterizerInterface: Correct size of CPU addresses to cache.
2021-10-04 20:47:31 +02:00
FernandoS27
7f4de3466a
Vulkan: Fix the master Semaphore
2021-10-04 20:46:58 +02:00
ameerj
6c0d902373
nvhost_ctrl: Refactor usage of gpu.LockSync()
...
This seems to only be used to protect a later gpu function call. So we can move the lock into that call instead.
2021-10-03 00:35:57 -04:00
ameerj
427bf76e62
gpu: Migrate implementation to the cpp file
2021-10-03 00:35:57 -04:00
ameerj
5daf3abe65
common/logging: Move Log::Entry declaration to a separate header
...
This reduces the load of requiring to include std::chrono in all files which include log.h
2021-10-01 20:48:49 -04:00
bunnei
8bd5742349
Merge pull request #7061 from ameerj/dma-buffer-misc
...
buffer_cache, maxwell_dma: Minor refactoring and code fixes
2021-09-30 12:34:28 -07:00
bunnei
91341b421d
Merge pull request #7036 from ameerj/ogl-bgr-v2
...
gl_texture_cache: Unify BGR copy passes using PBOs
2021-09-29 16:10:56 -07:00
ameerj
6f35fb8d26
vk_graphics_pipeline: Force patch list topology when tessellation is used
...
Fixes a crash on some drivers when tessellation is used but the IA topology is not patch list.
2021-09-28 16:39:42 -04:00
bunnei
24c0dde958
Merge pull request #7076 from ameerj/amd-botw
...
vk_texture_cache: Disable cube compatibility flag on non-mesa AMD GCN4 and earlier
2021-09-28 10:46:56 -07:00
Morph
5114819b6b
Merge pull request #7078 from ameerj/vc-jthread-fixes
...
video_core: Fix jthread related hangs when stopping emulation
2021-09-26 16:40:13 -04:00
ameerj
73666fb262
general: Update style to clang-format-12
2021-09-24 15:52:05 -04:00
ameerj
ab63a193d7
video_core: Fix jthread related hangs when stopping emulation
...
jthread on some compilers is more picky when it comes to the order in which objects are destroyed.
2021-09-23 20:34:02 -04:00
ameerj
1e1ecca691
vk_texture_cache: Disable cube compatibility flag on non-mesa AMD GCN4 and earlier
...
Fixes rainbow textures on BOTW.
2021-09-23 19:40:53 -04:00
Fernando Sahmkow
d702b393a4
Vulkan Query Cache: make sure to wait for the query result.
2021-09-24 01:14:17 +02:00
Fernando Sahmkow
8fdb51ab46
QueryCache: Flush queries in order of running.
2021-09-24 01:13:42 +02:00
Fernando Sahmkow
60a3980561
Vulkan Rasterizer: Correct DepthBias/PolygonOffset on Vulkan.
2021-09-23 03:49:10 +02:00
bunnei
7b22d61fb1
Merge pull request #7003 from ameerj/unlocked-present-mode
...
vk_swapchain: Use immediate present mode when mailbox is unavailable and FPS is unlocked
2021-09-20 14:34:21 -07:00
ameerj
24049591f6
maxwell_dma: Minor refactoring
2021-09-19 20:36:41 -04:00
ameerj
1ea8073783
buffer_cache: Minor fixes
...
Loop through the tmp_intervals by reference, rather than by copy, and fix gl clear buffer size calculation.
2021-09-19 20:35:07 -04:00
bunnei
a9c3619d26
Merge pull request #7019 from ameerj/videocore-jthread
...
videocore: Use std::jthread for worker threads
2021-09-18 20:37:40 -07:00
bunnei
ff54d9615f
Merge pull request #7011 from ameerj/vk-validation-0x0
...
vulkan_debug_callback: Ignore InvalidCommandBuffer-VkDescriptorSet errors
2021-09-16 17:17:04 -07:00
ameerj
22162f906b
host_shaders: Remove opengl_copy_bgra.comp
2021-09-16 19:49:13 -04:00
ameerj
ab808fe7cf
gl_texture_cache: Migrate BGRCopyPass from util_shaders
...
The BGR copies no longer use shaders.
2021-09-16 19:49:12 -04:00
Fernando S
a606b1448b
Merge pull request #7027 from ameerj/sorry-amd
...
vulkan_device: Reorder Float16Int8 declaration
2021-09-16 07:05:58 +02:00
ameerj
e3c153efa4
vulkan_device: Reorder Float16Int8 declaration
...
This variable was going out of scope before its usage in the vulkan device creation, causing a crash on very specific drivers.
2021-09-16 00:54:24 -04:00
ameerj
5601e1cb00
Revert "Merge pull request #7006 from FernandoS27/a-motherfucking-driver"
...
This reverts commit 62e88d0e74
, reversing
changes made to edf3da346f
.
2021-09-16 00:51:22 -04:00
ameerj
7f737b022a
util_shaders: Unify BGRA copy passes
2021-09-15 21:10:52 -04:00
ameerj
84f7e7e91c
vk_scheduler: Use std::jthread
2021-09-15 20:49:07 -04:00
ameerj
877cd60b00
gpu: Use std::jthread for async gpu thread
2021-09-15 20:49:07 -04:00
Morph
2df2b3719a
renderers: Log total pipeline count
2021-09-14 13:18:26 -04:00
ameerj
db1c4b125f
vulkan_debug_callback: Ignore InvalidCommandBuffer-VkDescriptorSet errors
...
This validation error is spammed on some titles, asserting that VkDescriptorSet 0x0[] was destroyed.
This is likely a validation layer bug when using VK_KHR_push_descriptor, which can avoid using traditional VkDescriptorSet. It should be safe to ignore for now.
2021-09-13 23:08:59 -04:00
Morph
d86a9b9a4b
Merge pull request #6943 from FernandoS27/omae-wa-mou-shindeiru
...
Vulkan: Disable VK_EXT_SAMPLER_FILTER_MINMAX in GCN AMD
2021-09-13 17:33:15 -04:00
Fernando Sahmkow
7a712da2b3
Vulkan: Disable VK_EXT_SAMPLER_FILTER_MINMAX in GCN AMD since it's broken.
2021-09-13 23:29:57 +02:00
Morph
62e88d0e74
Merge pull request #7006 from FernandoS27/a-motherfucking-driver
...
Vulkan: Blacklist Int8Float16 Extension on AMD on driver 21.9.1
2021-09-13 17:25:56 -04:00
Morph
fde9b84b21
Merge pull request #6944 from FernandoS27/dear-drunk-me
...
Vulkan/Descriptors: Increase sets per pool on AMD propietary driver.
2021-09-13 17:20:07 -04:00
Fernando Sahmkow
e7c8a0bb23
Vulkan: Blacklist Int8Float16 Extension on AMD on driver 21.9.1
2021-09-13 23:17:37 +02:00
Fernando S
1bb28dfe2c
Merge pull request #7001 from ameerj/wario-fix
...
vk_rasterizer: Fix dynamic StencilOp updating when two faces are enabled
2021-09-13 23:16:59 +02:00
Fernando Sahmkow
e7ca37b1e5
Vulkan/Descriptors: Increase sets per pool on AMFD propietary driver.
2021-09-13 23:09:18 +02:00
ameerj
35e5a67a83
vk_swapchain: Use immediate present mode when mailbox is unavailable and FPS is unlocked
...
Allows drivers that do not support VK_PRESENT_MODE_MAILBOX_KHR the ability to present at a framerate higher than the monitor's refresh rate when the FPS is unlocked.
2021-09-12 20:32:23 -04:00
Mai M
e4318d2207
Merge pull request #7002 from ameerj/vk-state-unused
...
vk_state_tracker: Remove unused function
2021-09-12 17:31:56 -04:00
ameerj
678f73069f
vk_rasterizer: Fix dynamic StencilOp updating when two faces are enabled
...
This function was incorrectly using the stencil_two_side_enable register when dynamically updating the StencilOp.
2021-09-12 16:19:12 -04:00
ameerj
8e289ade15
vk_state_tracker: Remove unused function
2021-09-12 15:28:24 -04:00
Morph
e67463df24
shader_environment: Add missing <algorithm> include
2021-09-11 17:19:16 -04:00
Morph
63b4c8f9f7
vk_descriptor_pool: Add missing <algorithm> include
2021-09-11 17:19:16 -04:00
Morph
76abf55f25
slot_vector: Add missing <algorithm> include
2021-09-11 17:19:15 -04:00
Morph
554c46d186
video_core/memory_manager: Add missing <algorithm> include
2021-09-11 17:19:15 -04:00
Morph
ae028ddf22
codec: Add missing <string_view> include
2021-09-11 17:19:14 -04:00
Fernando S
be4e192903
Merge pull request #6846 from ameerj/nvdec-gpu-decode
...
nvdec: Add GPU video decoding for all capable drivers and platforms
2021-09-11 23:11:32 +02:00
Fernando S
82c867164b
Merge pull request #6901 from ameerj/vk-clear-bits
...
vk_rasterizer: Only clear depth/stencil buffers when specified in attachment aspect mask
2021-09-11 22:36:22 +02:00
Fernando S
ec6490f5ad
Merge pull request #6941 from ameerj/swapchain-srgb
...
vk_swapchain: Prefer linear swapchain format when presenting sRGB images
2021-09-11 22:36:03 +02:00
Fernando S
472aad69db
Merge pull request #6953 from ameerj/anv-semaphore
...
renderer_vulkan: Wait on present semaphore at queue submit
2021-09-11 22:35:52 +02:00
Feng Chen
0292374807
Fix blend equation enum error
2021-09-07 10:12:09 +08:00
ameerj
7d854fbdb0
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.
2021-09-02 13:13:20 -04:00
bunnei
b2572a56d3
Merge pull request #6900 from ameerj/attr-reorder
...
structured_control_flow: Add DemoteCombinationPass
2021-09-01 17:36:26 -07:00
bunnei
956171f024
Merge pull request #6897 from FernandoS27/pineapple-does-not-belong-in-pizza
...
Project <tentative title>: Rework Garbage Collection.
2021-08-31 09:11:21 -07:00
bunnei
ec19d9594f
Merge pull request #6879 from ameerj/decoder-assert
...
vk_blit_screen: Fix non-accelerated texture size calculation
2021-08-30 15:24:04 -07:00
ameerj
4fda7f1c82
structured_control_flow: Conditionally invoke demote reorder pass
...
This is only needed on select drivers when a fragment shader discards/demotes.
2021-08-30 11:46:24 -04:00
Fernando Sahmkow
fe0acec539
Garbage Collection: Make it more agressive on high priority mode.
2021-08-29 18:57:17 +02:00
Fernando Sahmkow
ff48f06fb9
Garbage Collection: Adress Feedback.
2021-08-29 18:19:53 +02:00
ameerj
27f8f3333f
vulkan_device: Enable VK_KHR_swapchain_mutable_format if available
...
Silences validation errors when creating sRGB image views of linear swapchain images
2021-08-29 02:03:36 -04:00
ameerj
3c65c8580f
vk_swapchain: Prefer linear swapchain format when presenting sRGB images
...
Fixes broken sRGB when presenting from a secondary GPU.
2021-08-29 02:03:35 -04:00
Fernando Sahmkow
ba82bb359b
Garbage Collection: enable as default, eliminate option.
2021-08-28 17:55:37 +02:00
Fernando Sahmkow
d540d284b5
VideoCore: Rework Garbage Collection.
2021-08-28 17:54:12 +02:00
ameerj
eb2624ed65
vp9_types: Minor refactor of VP9 info structs.
2021-08-25 21:42:43 -04:00
ameerj
3de38c9a70
vp9_types: Remove unused Vp9PictureInfo members
2021-08-25 21:29:22 -04:00
Fernando S
3843995ceb
Merge pull request #6919 from ameerj/vk-int8-capability
...
vulkan_device: Add a check for int8 support
2021-08-25 23:46:08 +02:00
Ameer J
de71a4d70d
Merge pull request #6894 from FernandoS27/bunneis-left-ear
...
GPU_MemoryManger: Fix GetSubmappedRange.
2021-08-25 16:50:03 -04:00
ameerj
4d535799eb
vulkan_device: Add a check for int8 support
...
Silences validation errors when shaders use int8 without specifying its support to the API
2021-08-24 21:22:41 -04:00
ameerj
e0397f00d0
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.
2021-08-21 02:37:15 -04:00
Ameer J
bde6b899a1
Merge pull request #6888 from v1993/patch-3
...
video_core: eliminate constant ternary
2021-08-21 00:16:18 -04:00
Fernando Sahmkow
ef2066b272
GPU_MemoryManger: Fix GetSubmappedRange.
2021-08-19 22:57:22 +02:00
Valeri
4fd655cb46
video_core: eliminate constant ternary
...
`via_header_index` is already checked above, so it would never be true in this branch
2021-08-19 21:22:05 +03:00
ameerj
b384129c63
h264: Lower max_num_ref_frames
...
GPU decoding seems to be more picky when it comes to the maximum number of reference frames.
2021-08-16 14:40:53 -04:00
ameerj
cd016d3cb5
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>
2021-08-16 14:40:53 -04:00
ameerj
a832aa699f
codec: Improve libav memory alloc and cleanup
2021-08-16 14:40:53 -04:00
ameerj
bc3efb79cc
codec: Fallback to CPU decoding if no compatible GPU format is found
2021-08-16 14:40:53 -04:00
lat9nq
92bc51b66a
cmake: Add VDPAU and NVDEC support to FFmpeg
...
Adds {h264_,vp9_}{nvdec,vdpau} hwaccels.
2021-08-16 14:40:52 -04:00
ameerj
537c6ac8fe
vk_blit_screen: Fix non-accelerated texture size calculation
...
Addresses the potential OOB access in UnswizzleTexture.
2021-08-16 14:28:10 -04:00
Merry
1770503185
xbyak: Update include path
2021-08-15 19:26:38 +01:00
bunnei
87d63b858a
Merge pull request #6861 from yzct12345/const-mempy-is-all-the-speed
...
decoders: Optimize memcpy for the other functions
2021-08-15 02:38:12 -07:00
bunnei
0509fe3377
Merge pull request #6838 from ameerj/sws-align
...
vic: Specify sws_scale height stride.
2021-08-12 11:28:33 -07:00
ameerj
356e10898f
codec: Replace deprecated av_init_packet usage
2021-08-12 01:28:01 -04:00
ameerj
659039ca6d
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.
2021-08-12 01:28:01 -04:00
yzct12345
430255caf8
decoders: Templates allow memcpy optimizations
2021-08-12 04:45:25 +00:00
Fernando S
6a082df427
Merge pull request #6820 from yzct12345/split-cache
...
texture_cache: Split out template definitions
2021-08-10 12:23:05 +02:00
ameerj
a779cede7c
vic: Specify sws_scale height stride.
...
Silences a sws_scale runtime warning about unaligned strides.
2021-08-09 23:24:16 -04:00
Mai M
2da91ec75b
Merge pull request #6844 from ameerj/vp9-empty-frame
...
vp9: Ensure the first frame is complete
2021-08-08 19:02:39 -04:00
ameerj
fa22695705
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.
2021-08-08 13:49:00 -04:00
yzct12345
c4eafcc861
texture_cache: Address ameerj's review
2021-08-08 11:02:51 +00:00
Fernando S
859deda3bb
Merge pull request #6834 from K0bin/buffer-image-granularity
...
Respect Vulkan bufferImageGranularity
2021-08-08 11:57:40 +02:00
bunnei
bd0e1d3a25
Merge pull request #6830 from ameerj/nvdec-unimpld-codec
...
nvdec: Better logging for unimplemented codecs
2021-08-07 12:37:39 -07:00
Robin Kertels
bb29dcb7f2
vulkan_memory_allocator: Respect bufferImageGranularity
2021-08-07 15:28:05 +02:00
ameerj
928b64d2ce
nvdec: Better logging for unimplemented codecs
2021-08-07 01:08:33 -04:00
bunnei
268b5764c7
Merge pull request #6791 from ameerj/astc-opt
...
astc_decoder: Various performance and memory optimizations
2021-08-06 21:45:24 -07:00
yzct12345
e80323b8b0
texture_cache: Address ameerj's review
2021-08-07 01:27:47 +00:00
bunnei
f183668a87
Merge pull request #6799 from ameerj/vp9-fixes
...
nvdec: Fix VP9 reference frame refreshes
2021-08-06 17:46:46 -07:00
ameerj
e3688f0627
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.
2021-08-06 20:08:11 -04:00
ameerj
a3f80a97a3
vp9: Fix reference frame refreshes
...
This resolves the artifacting when decoding VP9 streams.
2021-08-06 20:08:08 -04:00
yzct12345
02e98f6c93
texture_cache: Don't change copyright year
2021-08-05 20:52:12 +00:00
yzct12345
5566f3dbc0
texture_cache: Address ameerj's review
2021-08-05 20:46:24 +00:00
yzct12345
f9563c8f24
texture_cache: Split templates out
2021-08-05 13:52:30 +00:00
yzct12345
2868d4ba84
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>
2021-08-03 23:43:11 -04:00
yzct12345
f56d0db5bd
decoders: Optimize swizzle copy performance ( #6790 )
...
This makes UnswizzleTexture up to two times faster. It is the main bottleneck in NVDEC video decoding.
2021-08-02 11:18:58 -04:00
Fernando S
30f0b7cf31
Merge pull request #6720 from ameerj/vk-screenshot
...
renderer_vulkan: Implement screenshots
2021-08-01 13:31:33 +02:00
Ameer J
db32c3762b
Merge pull request #6765 from ReinUsesLisp/y-negate-vk
...
vk_rasterizer: Flip viewport on Y_NEGATE
2021-08-01 01:47:37 -04:00
ameerj
c439fc9be9
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.
2021-08-01 01:22:27 -04:00
ameerj
5ab8053511
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.
2021-08-01 01:22:26 -04:00
ameerj
b2862e4772
astc_decoder: Make use of uvec4 for payload data
2021-07-31 22:28:04 -04:00
ameerj
a75d70fa90
astc_decoder: Simplify Select2DPartition
2021-07-31 21:36:26 -04:00
ameerj
5665d05547
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.
2021-07-31 21:36:26 -04:00
ameerj
15c0c213b1
astc.h: Move data to cpp implementation
...
Moves leftover values that are no longer used by the gpu decoder back to the cpp implementation.
2021-07-31 21:26:42 -04:00
bunnei
7530594602
Merge pull request #6759 from ReinUsesLisp/pipeline-statistics
...
renderer_vulkan: Add setting to log pipeline statistics
2021-07-30 11:18:52 -07:00
ReinUsesLisp
b185567a03
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.
2021-07-29 02:17:53 -03:00
ameerj
7ac99bb127
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
2021-07-28 21:46:08 -04:00
ameerj
75e7f54fb0
renderer_vulkan: Implement screenshots
2021-07-28 21:45:55 -04:00
ameerj
548bac8989
vk_blit_screen: Add public CreateFramebuffer method
2021-07-28 21:43:02 -04:00
ameerj
1e6c5d323d
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.
2021-07-28 21:37:30 -04:00
ReinUsesLisp
3b006f4fe2
renderer_vulkan: Add setting to log pipeline statistics
...
Use VK_KHR_pipeline_executable_properties when enabled and available to
log statistics about the pipeline cache in a game.
For example, this is on Turing GPUs when generating a pipeline cache
from Super Smash Bros. Ultimate:
Average pipeline statistics
==========================================
Code size: 6433.167
Register count: 32.939
More advanced results could be presented, at the moment it's just an
average of all 3D and compute pipelines.
2021-07-27 21:29:24 -03:00
bunnei
92887a65f0
Merge pull request #6749 from lioncash/rtarget
...
render_target: Add missing initializer for size extent
2021-07-27 17:28:53 -07:00
Rodrigo Locatti
ab206d6378
Merge pull request #6748 from lioncash/engine-init
...
video_core/engine: Consistently initialize rasterizer pointers
2021-07-27 16:17:20 -03:00
bunnei
2717e79c74
Merge pull request #6745 from lioncash/copies
...
video_core: Remove some unused variables
2021-07-27 11:38:32 -07:00
Lioncash
00e100de08
render_target: Add missing initializer for size extent
...
Everything else has a default constructor that does the straightforward
thing of initializing most members to a default value, except for the
size.
We explicitly initialize the size (and others, for consistency), to
prevent potential uninitialized reads from occurring. Particularly given
the largeish surface area that this struct is used in.
2021-07-27 07:41:21 -04:00
Lioncash
f8964dd89a
video_core/engine: Consistently initialize rasterizer pointers
...
Ensures all of the engines have consistent and deterministic
initialization of the rasterizer pointers.
2021-07-27 07:30:57 -04:00
Lioncash
8c82c594f0
vulkan_wrapper: Fix SetObjectName() always indicating objects as images
...
We should be using the passed in object type instead.
2021-07-27 07:19:15 -04:00
Lioncash
ec56a17acd
buffer_cache: Remove unused small_vector in CommitAsyncFlushesHigh()
...
Given this is non-trivial, the constructor is required to execute, so
this removes a bit of redundant codegen.
2021-07-27 06:24:44 -04:00
Lioncash
075a744e38
gl_shader_cache: Remove unused variable
2021-07-27 06:23:49 -04:00
Lioncash
296728ec46
vk_compute_pass: Remove unused captures
...
Resolves two compiler warnings.
2021-07-27 06:17:52 -04:00
bunnei
d6c799494c
Merge pull request #6696 from ameerj/speed-limit-rename
...
general: Rename "Frame Limit" references to "Speed Limit"
2021-07-26 18:51:00 -07:00
Rodrigo Locatti
7511f65e31
Merge pull request #6741 from ReinUsesLisp/stream-remove
...
vk_stream_buffer: Remove unused stream buffer
2021-07-26 20:35:01 -03:00
Rodrigo Locatti
1a94b3f452
Merge pull request #6740 from K0bin/hvv-fallback
...
Handle allocation failure in Staging buffer
2021-07-26 20:34:44 -03:00
Robin Kertels
75050c788c
vk_staging_buffer_pool: Fall back to host memory when allocation fails
2021-07-26 23:37:18 +02:00
Rodrigo Locatti
c6991fa900
Merge pull request #6728 from ReinUsesLisp/null-buffer-usage
...
vk_buffer_cache: Add transform feedback usage to null buffer
2021-07-26 18:30:45 -03:00
ReinUsesLisp
5f9a4817a5
vk_stream_buffer: Remove unused stream buffer
...
Remove unused file.
2021-07-26 18:19:53 -03:00
ReinUsesLisp
771dcb2a56
vk_compute_pass: Fix pipeline barrier for indexed quads
...
Use an index buffer barrier instead of a vertex input read barrier.
2021-07-26 05:51:09 -03:00
ReinUsesLisp
27ed6e7c2b
vk_buffer_cache: Add transform feedback usage to null buffer
...
Fixes bad API usages on Vulkan.
2021-07-26 05:49:37 -03:00
bunnei
98b26b6e12
Merge pull request #6585 from ameerj/hades
...
Shader Decompiler Rewrite
2021-07-25 11:39:04 -07:00
bunnei
84b9c42642
Merge pull request #6690 from ReinUsesLisp/dma-clear-fixups
...
buffer_cache: Misc fixups related to buffer clears
2021-07-24 01:27:50 -04:00
ameerj
c80ae87b4e
renderer_base: Removed redundant settings
...
use_framelimiter was not being used internally by the renderers.
set_background_color was always set to true as there is no toggle for the renderer background color, instead users directly choose the color of their choice.
2021-07-23 22:10:01 -04:00
ameerj
9dfbc9bdce
general: Rename "Frame Limit" references to "Speed Limit"
...
This setting is best referred to as a speed limit, as it involves the limits of all timing based aspects of the emulator, not only framerate.
This allows us to differentiate it from the fps unlocker setting.
2021-07-23 22:10:01 -04:00
ReinUsesLisp
a55ff22900
vulkan/blit_image: Commit descriptor sets within worker thread
...
Fixes race condition caused. The descriptor pool is not thread safe, so
we have to commit descriptor sets within the same thread.
2021-07-22 21:51:40 -04:00
ReinUsesLisp
f6796cad9c
vulkan_device: Blacklist Volta and older from VK_KHR_push_descriptor
...
Causes crashes on Link's Awakening intro. It's hard to debug if it's our
fault due to bugs in validation layers.
2021-07-22 21:51:40 -04:00
ReinUsesLisp
3c6d440015
Revert "renderers: Disable async shader compilation"
...
This reverts commit 4a152767286717fa69bfc94846a124a366f70065.
2021-07-22 21:51:40 -04:00
ReinUsesLisp
8381490a04
opengl: Fix asynchronous shaders
...
Wait for shader to build before configuring it, and wait for the shader
to build before sharing it with other contexts.
2021-07-22 21:51:40 -04:00
ReinUsesLisp
258f35515d
shader_environment: Receive cache version from outside
...
This allows us invalidating OpenGL and Vulkan separately in the future.
2021-07-22 21:51:40 -04:00
ameerj
56478bc9ac
shader: Fix disabled attribute default values
2021-07-22 21:51:40 -04:00
ameerj
c9528282d9
gl_device: Simplify GLASM setting logic
2021-07-22 21:51:40 -04:00
ReinUsesLisp
e1ed218b41
renderer_opengl: Use ARB_separate_shader_objects
...
Ensures that states set for a particular stage are not attached to other
stages which may not need them.
2021-07-22 21:51:40 -04:00
ameerj
94af0a00f6
glsl: Clamp shared mem size to GL_MAX_COMPUTE_SHARED_MEMORY_SIZE
2021-07-22 21:51:40 -04:00
ReinUsesLisp
8c166c68d4
gl_shader_cache: Properly implement asynchronous shaders
2021-07-22 21:51:40 -04:00
lat9nq
49946cf780
shader_recompiler, video_core: Resolve clang errors
...
Silences the following warnings-turned-errors:
-Wsign-conversion
-Wunused-private-field
-Wbraced-scalar-init
-Wunused-variable
And some other errors
2021-07-22 21:51:40 -04:00
ameerj
41493fbe89
renderers: Fix clang formatting
2021-07-22 21:51:40 -04:00
ameerj
8390286a89
renderers: Disable async shader compilation
...
The current implementation is prone to causing graphical issues. Disable until a better solution is implemented.
2021-07-22 21:51:40 -04:00
ReinUsesLisp
be54aad1c4
maxwell_to_vk: Add R16_SNORM
2021-07-22 21:51:40 -04:00
ameerj
11f04f1022
shader: Ignore global memory ops on devices lacking int64 support
2021-07-22 21:51:40 -04:00
lat9nq
55233c2861
vulkan_device: Add missing include algorithm
2021-07-22 21:51:40 -04:00
ameerj
7277d7fe96
vulkan_device: Blacklist ampere devices from float16 math
2021-07-22 21:51:40 -04:00
ameerj
dbee32d302
gl_shader_cache: Fixes for async shaders
2021-07-22 21:51:40 -04:00
ReinUsesLisp
57171b23f9
vulkan_device: Enable VK_EXT_extended_dynamic_state on RADV 21.2 onward
2021-07-22 21:51:40 -04:00
ReinUsesLisp
8722668b3c
emit_spirv: Workaround VK_KHR_shader_float_controls on fp16 Nvidia
...
Fix regression on Fire Emblem: Three Houses when using native fp16.
2021-07-22 21:51:40 -04:00
ReinUsesLisp
fba6bd92d4
vk_rasterizer: Workaround bug in VK_EXT_vertex_input_dynamic_state
...
Workaround potential bug on Nvidia's driver where only updating high
attributes leaves low attributes out dated.
2021-07-22 21:51:39 -04:00
ReinUsesLisp
5643a909bc
shader: Fix disabled and unwritten attributes and varyings
2021-07-22 21:51:39 -04:00
ReinUsesLisp
f94f0be521
vk_graphics_pipeline: Implement smooth lines
2021-07-22 21:51:39 -04:00
ReinUsesLisp
57a8921e01
vk_graphics_pipeline: Implement line width
2021-07-22 21:51:39 -04:00
lat9nq
fb9b1787f8
video_core: Enable GL SPIR-V shaders
2021-07-22 21:51:39 -04:00
lat9nq
1152d66ddd
general: Add setting shader_backend
...
GLASM is getting good enough that we can move it out of advanced
graphics settings. This removes the setting `use_assembly_shaders`,
opting for a enum class `shader_backend`. This comes with the benefits
that it is extensible for additional shader backends besides GLSL and
GLASM, and this will work better with a QComboBox.
Qt removes the related assembly shader setting from the Advanced
Graphics section and places it as a new QComboBox in the API Settings
group. This will replace the Vulkan device selector when OpenGL is
selected.
Additionally, mark all of the custom anisotropic filtering settings as
"WILL BREAK THINGS", as that is the case with a select few games.
2021-07-22 21:51:39 -04:00
ReinUsesLisp
8a3427a4c8
glasm: Add passthrough geometry shader support
2021-07-22 21:51:39 -04:00
ReinUsesLisp
7dafa96ab5
shader: Rework varyings and implement passthrough geometry shaders
...
Put all varyings into a single std::bitset with helpers to access it.
Implement passthrough geometry shaders using host's.
2021-07-22 21:51:39 -04:00
ReinUsesLisp
4f052a1f39
vk_graphics_pipeline: Implement conservative rendering
2021-07-22 21:51:39 -04:00
ReinUsesLisp
395bed3a0a
shader: Unify shader stage types
2021-07-22 21:51:39 -04:00
ReinUsesLisp
fb166b5ff4
shader: Emulate 64-bit integers when not supported
...
Useful for mobile and Intel Xe devices.
2021-07-22 21:51:39 -04:00
ReinUsesLisp
3877918e96
gl_graphics_pipeline: Fix assembly shaders check for transform feedbacks
2021-07-22 21:51:39 -04:00
ReinUsesLisp
9bd0531384
gl_graphics_pipeline: Inline hash and operator== key functions
2021-07-22 21:51:39 -04:00
ReinUsesLisp
f5db8c7440
gl_shader_cache: Check previous pipeline before checking hash map
...
Port optimization from Vulkan.
2021-07-22 21:51:39 -04:00
ReinUsesLisp
218dedca1f
gl_graphics_pipeline: Port optimizations from Vulkan pipelines
2021-07-22 21:51:39 -04:00
ReinUsesLisp
df9b7e18f5
buffer_cache: Fix debugging leftover
2021-07-22 21:51:38 -04:00
ReinUsesLisp
838d7e4ca5
buffer_cache: Fix size reductions not having in mind bind sizes
...
A buffer binding can change between shaders without changing the
shaders. This lead to outdated bindings on OpenGL.
2021-07-22 21:51:38 -04:00