Commit Graph

296 Commits

Author SHA1 Message Date
libretroadmin 8881020b75 (vulkan_common.c) Cleanups 2022-05-18 21:00:42 +02:00
libretroadmin 6f156d064e (Vulkan) vulkan_transition_texture - get rid of early return 2022-05-18 16:48:23 +02:00
libretroadmin 3cad090b4c (Vulkan) Optimizations/cleanups -
* Honor SUBOPTIMAL on non-Android since you'd want to recreate
swapchains then. On Android it can be promoted to SUCCESS.
SUBOPTIMAL_KHR can happen there when rotation (pre-rotate) is wrong.
* Small cleanups in general - less conditionals
2022-05-18 16:39:54 +02:00
libretroadmin 3115338849 (D3D10/D3D11/Vulkan) Cleanups 2022-05-16 22:26:46 +02:00
nfp0 d13fec5db5
Bring back number of swapchain images log (#13836)
Co-authored-by: nfp0 <nf.pereira@live.com>
2022-04-06 19:52:22 +02:00
MajorPainTheCactus ad4f6176ff
Vulkan driver fixes for HDR (#13468)
* Fixed crash on boot with xmb and vulkan driver Fixed wrong blend state affecting the ribbon shader Fixed up C++ style comments with C style

* Fixed compilation issue - I made a last minute change and thought I had compiled it but obviously hadn't! No wonder it worked.
2022-01-10 06:26:02 +01:00
MajorPainTheCactus 1a228a4e78
Added HDR support to Vulkan driver (#13456) 2022-01-08 13:22:34 +01:00
Tony 5b85339839
(Vulkan) Emulate mailbox only with vsync (#13460) 2022-01-07 17:08:24 +01:00
Tony 09880e92d2
Logging cleanups (#13320) 2021-12-04 14:21:12 +01:00
jdgleaver 484c4ad51e Add API extension for cores to override frontend fast-forward state 2021-05-13 13:16:37 +01:00
sonninnos f333cd0df8 Logging level adjustments 2021-02-18 19:28:08 +02:00
twinaphex 2d588ca4ef Simplify vulkan_create_texture 2020-12-15 08:00:22 +01:00
twinaphex cdca5d0afc Turn vulkan_copy_staging_to_dynamic into macro 2020-12-15 07:20:33 +01:00
twinaphex d70420a12d vulkan_copy_staging_to_dynamic - put sync texture to GPU
outside of the function
2020-12-15 07:01:00 +01:00
twinaphex c01e8d52a5 Small cleanups to vulkan_create_texture 2020-10-12 01:53:21 +02:00
Tony Jansson a0eee521e3 (Vulkan) Fix CPU usage when minimized 2020-09-23 04:17:30 +03:00
Tony Jansson bb1c853ecd (Vulkan) Reduce log spam 2020-09-23 02:00:03 +03:00
twinaphex d02d9573ab Silence unused variable warnings 2020-08-28 05:05:15 +02:00
twinaphex b4d26aca9c Turn vulkan_write_quad_vbo into macro 2020-08-27 02:29:32 +02:00
twinaphex bbb4d12881 (vulkan_common.c) Optimize array access 2020-08-19 03:19:21 +02:00
twinaphex 84d849f49b Optimize vulkan_acquire_next_image 2020-08-03 19:12:55 +02:00
twinaphex 89461eb6a5 Move vulkan gpu_list to struct data 2020-08-03 15:30:46 +02:00
twinaphex a5a3d64b18 (Vulkan) Cleanups 2020-07-20 06:31:15 +02:00
twinaphex 9ac9309991 Optimize call to vulkan_present 2020-07-20 04:45:12 +02:00
twinaphex 0a492a49be (Vulkan) Fix regression 2020-07-13 15:22:27 +02:00
twinaphex 39d3dd4b3c Revert vulkan_framebuffer_generate_mips 2020-07-10 11:20:50 +02:00
twinaphex e10f4eed8d (Vulkan) Cleanups 2020-07-09 03:48:42 +02:00
twinaphex e48ffd14cd Cleanups 2020-07-09 00:24:09 +02:00
twinaphex 00518d3470 Add TODO/FIXME notes 2020-07-07 03:02:55 +02:00
Connor McLaughlin 7b7cffd545 (Vulkan) Fix incorrect structure type in vulkan_create_buffer 2020-07-05 22:36:58 +10:00
twinaphex 09180e64b5 Start unifying more macros 2020-07-03 18:00:40 +02:00
twinaphex 276e86a403 (Vulkan) Turn some of these functions into macros 2020-07-03 17:48:46 +02:00
twinaphex 25f682249f (Vulkan) Turn vulkan_image_layout_transition into macro 2020-07-03 08:45:53 +02:00
twinaphex 7a22eb1f44 Turn vulkan_image_layout_transition_levels into macro 2020-07-03 08:32:33 +02:00
twinaphex 570f6ffb87 vulkan_copy_staging_to_dynamic - avoid memset 2020-06-29 00:14:50 +02:00
twinaphex 26969dd4e1 (Vulkan) Avoid callocs and memsets 2020-06-28 23:56:33 +02:00
twinaphex c600fbc6ff Cleanups 2020-06-28 21:33:07 +02:00
twinaphex bc73a815b7 Prevent memsets for vk->tracker 2020-06-28 19:18:48 +02:00
twinaphex 9e65ab63fe (vulkan_common) Prevent memsets and implicit memsets 2020-06-28 18:45:46 +02:00
twinaphex 9684bde88a Cleanup vulkan_create_texture 2020-06-28 18:25:17 +02:00
twinaphex 776e95d4e1 (vulkan_common.c) Cleanups 2020-06-27 18:28:33 +02:00
twinaphex 72d1a313ae (vulkan_common.c) Cleanups 2020-06-27 18:17:33 +02:00
twinaphex d8cf551608 Silence 'suggest braces around initialization of subobject' warning 2020-06-11 17:38:11 +02:00
Themaister f089e1ccf5 Vulkan: Do not emulate mailbox on Android. 2020-06-09 00:24:29 +02:00
Themaister cd4f22c275 Vulkan: Add path which uses WSI acquire semaphores.
Fence wait path has some issues on certain platforms. For now, gate this
on whether the GPU is integrated or not.
2020-06-09 00:24:29 +02:00
Themaister 15df55d011 Vulkan: Refactor swapchain index and frame index.
Do not tie these concepts together, it will not work for upcoming
refactor of swapchain logic.
2020-06-09 00:24:29 +02:00
Themaister 6f68571805 Vulkan: Use VK_LAYER_KHRONOS_validation in VULKAN_DEBUG=1.
LUNARG_standard_validation was deprecated and removed ages ago.
2020-06-09 00:24:28 +02:00
twinaphex fc491e9ea4 Add more environ logs 2020-06-08 17:32:36 +02:00
twinaphex bde18ba86a Style nits 2020-05-12 14:36:27 +02:00
twinaphex cb0c145e3d Cleanups 2020-02-14 12:55:36 +01:00
trioan 0e20be17cc
fix vulkan_framebuffer_generate_mips (msvc2017)
{0} initializer
2020-01-25 21:14:28 -05:00
twinaphex 920e89a506 Move pass set texture to vulkan_common.c 2020-01-22 14:27:24 +01:00
twinaphex 90874b434e (shader_vulkan.cpp) Move more C code to vulkan_common.c 2020-01-22 12:09:08 +01:00
twinaphex f853632260 Move framebuffer generate_mips function to vulkan_common.c 2020-01-22 10:52:20 +01:00
twinaphex e9c73bd9a6 (Vulkan) Move more C code to vulkan_common.c 2020-01-22 10:41:38 +01:00
twinaphex ef27a660a7 (shader vulkan) Cleanups - moving C code out of the C++ file 2020-01-22 10:11:42 +01:00
twinaphex 6c97a7514c (Vulkan) turn superfluous functions in vulkan_common.c into macros
to avoid unnecessary function overhead
2020-01-03 20:20:59 +01:00
Hans-Kristian Arntzen 96723c6f70 Vulkan/Android: Workaround weird WSI return codes in landscape mode.
Android WSI wants you to use preTransform, and if it is not used
correctly, Android 10 will return VK_SUBOPTIMAL_KHR, and we would create
a new swapchain every frame.

This workaround just ignores this error, since it's not really an error.
A more "proper" fix is to use prerotate and modify the MVP matrices,
which might help certain devices with crummy display processors.
2019-12-17 19:08:20 +01:00
Rinnegatamante d1a74e1b96 Fix for crash on Linux. 2019-10-15 09:07:15 +02:00
LazyBumHorse 3c6a46d95d fix handling of vulkan_gpu_list (use after free, not always being initialized) 2019-08-15 17:52:24 +02:00
twinaphex c4c7a1b8cc (Vulkan) Dehardcode application name 2019-07-19 20:12:12 +02:00
twinaphex b04e057b5d Revert "(Win32/Vulkan) Dehardcode more program name strings"
This reverts commit 5cefcb8327.
2019-07-19 19:39:43 +02:00
twinaphex 5cefcb8327 (Win32/Vulkan) Dehardcode more program name strings 2019-07-19 19:27:24 +02:00
stoofin 1b57cf6112 Fall back to libvulkan.so.1 if libvulkan.so isn't present 2019-06-27 14:08:14 -07:00
twinaphex 48eeb15d2c Silence warnings 2019-06-20 01:16:05 +02:00
Brad Parker d01f04c146 d3d10/11/12: add GPU selection 2019-06-18 16:35:50 -04:00
Brad Parker c962da0ddb add video setting to select gpu (currently implemented for vulkan) 2019-06-13 12:47:08 -04:00
twinaphex 17b2019e11 (Vulkan) Fix potential memory leak 2019-05-26 08:18:42 +02:00
Nathan S 775c272029 Menu widgets stuff + vulkan sanity check (#8710)
* task_screenshot: fix hang with menu widgets

* word_wrap: add max_lines parameter

* vulkan: better instance creation sanity check
2019-05-06 21:10:57 +02:00
Huw Pascoe fed06044c4 silence warnings 2019-04-12 17:32:11 +01:00
Brad Parker 10df615d14 add "Send Debug Info" option under Help 2019-03-07 19:17:54 -05:00
orbea 28ff4b391a Clean up white space. 2019-02-03 16:00:50 -08:00
twinaphex 83241ed0b1 Some header cleanups 2019-01-19 23:27:59 +01:00
twinaphex b027395341 (Android/Vulkan) Enable 'emulate mailbox' for Android 2018-12-03 00:40:50 +01:00
Themaister f51ef85f27 Vulkan: Fix scissor in menu driver. 2018-11-08 21:57:53 +01:00
twinaphex 77fba6d58d (Vulkan) Silence warning 2018-10-01 00:41:29 +02:00
twinaphex 2125f92281 Silence warnings/cleanups 2018-09-30 13:43:56 +02:00
twinaphex 4c23fa02e9 (MSVC 2013) Fix build for rcheevos
(MSVC) Fix some warnings; unused variables, etc.
2018-09-30 13:38:58 +02:00
Themaister a1989afba9 Vulkan: Fix race condition in threaded mailbox emulation. 2018-09-10 19:35:13 +02:00
Themaister d338dac277 Only do mailbox emulation for fullscreen.
Too large impact on performance in Windowed mode.
2018-09-08 16:27:25 +02:00
Themaister d39f66a738 Emulate mailbox by wrapping acquire in a thread.
Needed on nVidia Windows since they don't support timeout == 0 ...
2018-09-08 15:56:49 +02:00
Themaister 157d1e7e63 Only use mailbox emulation on AMD. 2018-09-08 11:47:58 +02:00
Themaister 66c4f8fd35 Make sure to always clear out swapchain_fence_signalled. 2018-09-08 11:47:58 +02:00
Themaister 9ebac87638 Vulkan: Emulate mailbox on Windows. 2018-09-08 11:47:58 +02:00
Themaister af534f0fa8 Vulkan maintenance fixes.
- Use VkBuffer instead of linear VkImage for staging uploads.
  Not guaranteed to be supported, and desktop IHVs recommend using
  buffers.

- Fix validation error where swapchain recreation with reuse of the old
  VkSwapchainKHR does not create a fence properly, leading to validation
  error next time that swapchain index is observed.
2018-09-08 11:47:58 +02:00
orbea 260ce526c2 Fix segfaults when starting vulkan without a working vulkan driver.
RetroArch will crash in several places when running vulkan in an
environment that does not have working vulkan drivers.

This should guard against those crashes and allow RetroArch to fail
safely in those cases.
2018-08-24 19:36:03 -07:00
twinaphex 4a54826d9b Remove unused variable 2018-08-16 21:14:56 +02:00
twinaphex a1d5b0fd03 Update MSVC 2012 solution 2018-08-16 20:49:31 +02:00
Hans-Kristian Arntzen 52cb0fe375 Vulkan: Fix crash when we get two create_swapchain errors in a row. 2018-07-04 20:25:03 +02:00
Hans-Kristian Arntzen f1d2dac213 Vulkan: Fix various stability issues with WSI.
Added an ifdef to trigger "hardening" which will return spurious errors
for critical WSI things like acquire next image, queue submit and
surface dimension queries.
2018-07-04 19:45:54 +02:00
Themaister f2cae17021 Vulkan: Try to avoid creating swapchains redundantly.
Win32: Only make resize events when needed.
Do not create swapchain unless necessary.
Deal better with Windows WSI workarounds.
2018-07-01 16:21:09 +02:00
Themaister c4ba8d26a0 Support multiple displays in VK_KHR_display. 2018-07-01 01:21:51 +02:00
Stuart Carnie 411bcf8bdd feat(apple): Metal support for macOS
* includes rgui
* shader support

This is a work-in-progress and there are some bugs and visual artifacts
still to be fixed.
2018-06-20 21:33:45 -07:00
Hans-Kristian Arntzen 16c797f057 Vulkan: Fix two validation errors.
- Mipgen was only transitioning the first miplevel to GENERAL.
  Fix the image barrier helper function to transition all levels and
  layers.

- Validation layer was complaining that a VkSwapchainKHR was not
  properly destroyed. After recycling the swapchain, destroy the old
  one.
2018-06-06 23:23:32 +02:00
Stuart Carnie 0a4ff225be Update Vulkan 2018-05-13 21:35:18 +02:00
twinaphex 72428a23c5 (shader_vulkan.cpp) Move some functions to vulkan_common.c 2018-04-24 07:07:58 +02:00
twinaphex 163be3ccfd (vulkan_common.c) Prevent some more collissions in the future 2018-03-28 17:41:04 +02:00
twinaphex de1efd7878 This hack is no longer needed with latest nvidia windows
drivers (390.77)
2018-01-31 18:10:53 +01:00
twinaphex 2178b6d10f Vulkan temporary workaround for swapchain recycling (nvidia) -
Both swapchain recreation methods are proper andwithin the Vulkan specs.
The differnece is retroarch follows method (apparently proposed in
vulkan samples) that "hopes" the driver will reuse some of the old
swapchain resources, while the other method destroys everything and
recreates from scratch. At the moment on Nvidia drivers the second
method is stable while the first method is unreliable in all cases
today.
2018-01-21 04:40:01 +01:00
gblues 6904101c44 Clean up trailing whitespace
== DETAILS

Really simple code cleanup, because my editor flags trailing whitespaces
and it's pretty annoying.
2017-12-12 00:24:18 -08:00