Commit Graph

1101 Commits

Author SHA1 Message Date
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
Stuart Carnie 99f497de85 feat(Metal): Add support for screen shots 2018-09-02 17:55:02 -07:00
Stuart Carnie 9d22aacaa7 refactor: Add vertex buffer struct to ShaderTypes and remove global 2018-09-02 17:53:18 -07:00
Stuart Carnie eadc3f4a91 fix(Metal): Fix SIGFAULT if any attribute is 0 2018-09-01 16:13:23 -07:00
Stuart Carnie 802697fdec fix(Metal): Use textures for pixel conversion 2018-09-01 11:58:37 -07:00
Stuart Carnie 577d81071e fix(Metal): Cleanup shader logging messages 2018-09-01 11:58:37 -07: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 7250181319 Add some __WINRT__ ifdefs 2018-08-17 14:51:27 +02: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
twinaphex 921e52e64f Remove old leftover buggy Win32 driver 2018-08-16 00:05:09 +02:00
Wiktor Strzębała 45799ee034 Bring up touch support for wayland subsystem for sailfish os devices
Touch code cleanup
Make variabled static as suggest bparker06
C89 compilation error fix (at least for loops)
More C89 fixes

Signed-off-by: Wiktor Strzębała <wiktorek140@tlen.pl>
2018-08-09 20:49:27 +02:00
Stuart Carnie 0291c41afa fix(Metal): Fix blank screen after full screen toggle; window focus 2018-07-14 11:18:21 -07:00
Dwedit fa00eda625 Relocation of Win32 Message Loop Fix is now tied to whether threaded video is enabled or not
Menu bar is removed if threaded video is enabled, due to code currently being unsafe when using threaded video.
2018-07-13 22:34:03 -05:00
twinaphex abc6eb7d8c Revert "Re-revert this - causes issues with toggling fullscreen with threaded"
This reverts commit 52a55695ce.
2018-07-14 00:22:52 +02:00
twinaphex 52a55695ce Re-revert this - causes issues with toggling fullscreen with threaded
video mode and GL driver
2018-07-14 00:10:21 +02:00
twinaphex 38a35e53fd Revert "Move Message loop call to right before `video_driver_get_status` call"
This reverts commit 838dcc8a5a.
2018-07-14 00:01:25 +02:00
Stuart Carnie 13a9aca88a fix(Metal): Render search box correctly 2018-07-12 23:15:24 -07:00
Stuart Carnie 167ad3b57d fix(Metal): Various Metal fixes
* OSD message background
* clear glui background
* add Metal to configuration
* added optional config to compile Metal build without OpenGL
* fixed fill_pathname_join_delim; if out_path and dir are same, don't
  strlcpy, as the results are undefined.
2018-07-12 21:33:18 -07:00
Brad Parker ab27b7c85f initial SIXEL video driver 2018-07-12 16:55:08 -04:00
Brandon Wright c81aab345c Lock sizes of enum fields at 32 bits. 2018-07-11 16:37:37 -05:00
Stuart Carnie 01df2c5e88 fix(Metal): Check for nil drawable 2018-07-06 23:37:15 -07:00
Dwedit 838dcc8a5a Move Message loop call to right before `video_driver_get_status` call 2018-07-05 20:07:01 -05:00
twinaphex c3d469dd8e Revert "Moved WIN32 message loop out of win32_check_window, and into just before the call to runloop_iterate"
This reverts commit 7108628369.
2018-07-05 02:42:16 +02:00
Twinaphex 95500f5631
Merge pull request #6948 from stuartcarnie/sgc-metal
feat(Metal): Add support for overlays
2018-07-04 22:52:29 +02:00
Stuart Carnie a19ea2ed07 feat(Metal): Add support for overlays 2018-07-04 13:12:40 -07:00
Dwedit 7108628369 Moved WIN32 message loop out of win32_check_window, and into just before the call to runloop_iterate 2018-07-04 14:20:38 -05:00
Twinaphex 63a071b85a
Merge pull request #6945 from Themaister/master
Vulkan: WSI stability fixes
2018-07-04 21:04:08 +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
Stuart Carnie 048aa16599 feat(Metal): Support vsync enable / disable 2018-07-04 09:50:09 -07:00
Stuart Carnie 844e5e15d0 fix(Metal): fix XRGBA rendering; no nil texture; undefined stuff bad 2018-07-04 08:50:46 -07:00
Stuart Carnie 30d2192338 fix(Metal): Fix release build crash for misaligned read 2018-07-04 00:16:14 -07:00
Stuart Carnie 44ca1062b0 formatting 2018-07-03 22:32:12 -07:00
Stuart Carnie a0900ec433 feat(Metal): full xmb pipeline support
Menu TODOs:

* understand why ribbon does not look the same as GL
* add clear support to `MenuDisplay` for glui
2018-07-03 22:32:12 -07:00
Stuart Carnie 4a101734a1 More cleanup
* use single render command encoder for display for better performance
* Context handles all rendering and presentation
2018-07-03 22:32:12 -07:00
Stuart Carnie 1c5d94aca1 Improve performance; don't care about previous state ofcolor attachment
Color attachment is being completely overwritten.
2018-07-03 22:32:12 -07:00
Stuart Carnie 5e1f991e32 feat(Metal): initial xmb and glui menu support
TODOs

* menu shader pipeline effects
* refactor / optimize graphics rendering
2018-07-03 22:32:12 -07: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 367c15f488 feat(Metal): font rendering
* FPS and other OSD messages render correctly
* add autoreleasepool around entire render loop to avoid memory leaks
2018-06-23 23:54:23 -07:00
Stuart Carnie eacd52f009 fix(Metal): improve shader stability
* use MTKView, which handles layer and scaling changes automatically
  between displays
2018-06-23 13:33:27 -07:00
Stuart Carnie ee8d82dcfe add additional project files 2018-06-23 13:33:27 -07:00
Twinaphex 467aa30131 Cleanups 2018-06-21 07:26:05 +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
twinaphex 23b0444afe Update libretro-common 2018-05-28 17:30:56 +02:00
twinaphex c7c1983c91 Update d3d9_set_pixel_shader 2018-05-18 20:43:12 +02:00
twinaphex 8fadef7082 Update d3d9_set_vertex_shader 2018-05-17 23:23:17 +02:00
twinaphex 6d2b5c8052 Move read_viewport function back to d3d9.c 2018-05-17 17:17:08 +02:00
twinaphex 2d540264e8 Start hooking up set_shader_mvp function 2018-05-15 06:02:10 +02:00
twinaphex e1368a9209 (Cg D3D9) Buildfix 2018-05-14 21:42:14 +02:00
twinaphex 39f45a17d2 create d3d9_convert_geometry 2018-05-14 21:32:14 +02:00
twinaphex e9054159ec Remove set_font_rect callback 2018-05-14 16:57:34 +02:00
twinaphex 232d3f4d92 Take out add_state_tracker function callback for D3D9 renderchain 2018-05-14 06:33:51 +02:00
twinaphex 2c5112f3ac Cleanups 2018-05-14 05:07:12 +02:00
twinaphex c40c08375c (d3d9_common.h) Cleanups 2018-05-14 05:04:45 +02:00
twinaphex cbe4c78979 (D3D8/D3D9) Cleanups 2018-05-14 04:55:33 +02:00
twinaphex 606d700bf2 No more D3D8/D3D9 header includes in d3d_common.c 2018-05-14 04:36:08 +02:00
twinaphex 8733a41e58 (d3d_common.c) Get rid of these header includes 2018-05-14 04:00:27 +02:00
twinaphex 6a9b39da3f Get rid of d3d.h and xdk_defines.h 2018-05-14 03:57:27 +02:00
twinaphex d1c1e4e2aa Move D3D9_DECL_FVF_TEXCOORD to d3d9_common.h 2018-05-14 03:17:26 +02:00
twinaphex 2dae506e88 (MSVC2003) Buildfix 2018-05-14 01:11:47 +02:00
twinaphex aea89bfde3 Cleanups 2018-05-14 00:37:03 +02:00
twinaphex 8a78b69689 Buildfix 2018-05-14 00:31:58 +02:00
Stuart Carnie 0a4ff225be Update Vulkan 2018-05-13 21:35:18 +02:00
twinaphex 85da5360d2 (D3D9) Update 2018-05-13 18:47:24 +02:00
twinaphex 34149e510e (D3D9) Cleanups 2018-05-13 18:36:17 +02:00
twinaphex 33d2c2d422 (D3D9) Cleanups 2018-05-13 18:33:16 +02:00
twinaphex 46f23f9fbd Get rid of d3d_video_viewport 2018-05-13 18:24:19 +02:00
twinaphex 5bde17025a Move min_filter_to_mag to gl_common.h 2018-05-13 14:24:49 +02:00
twinaphex 41295ef7b9 Remove viewport_info callback from D3D9 renderchain interface 2018-05-13 06:29:17 +02:00
twinaphex 27170674a5 (D3D9) Cleanups 2018-05-13 06:22:12 +02:00
twinaphex dee50349ba Rename d3d_renderchain_driver to d3d9_renderchain_driver 2018-05-13 06:03:26 +02:00
twinaphex 494ddb16d9 Get rid of viewport_info callback function - was the same for both
GL1 and GL2 renderchains
2018-05-13 05:56:44 +02:00
twinaphex 6996e72b49 Move renderchain driver interface to gl_common.h - and replace
some void pointers in function callbacks with gl_t
2018-05-13 05:53:35 +02:00
twinaphex be502a39fd Cleanups 2018-05-12 19:24:04 +02:00
twinaphex 58ac7c320e (dxgi_common.c) Add more __WINRT__ ifdefs 2018-05-12 19:22:37 +02:00
twinaphex 542294900f (WinRT) More compilation fixes 2018-05-12 19:03:39 +02:00
Dwedit 387d4d87eb Fix core selection appearing unnecessarily
Re-order the dialog items in core selection dialog to make the listbox have focus
Removed the "do wm close" stuff.
2018-05-09 21:04:23 -05:00
Dwedit f3f0d4f787 Unify File Open and File Drag Drop code
* Code in `win32_drag_query_file` was split off into `win32_load_content_from_gui`
* File Open dialog now uses the same code as drag drop instead of the non-working code that was in there before.
* File Dialog and Core Select Dialog show and hide mouse cursor if they were invoked in fullscreen mode
2018-05-09 21:04:23 -05:00
twinaphex 46f7742afc Some early WinRT commits 2018-05-09 16:13:29 +02:00
twinaphex 82ebb9576f Create d3d9_video_t and d3d8_video_t 2018-05-03 22:03:12 +02:00
Dwedit 81457d74d3 Use `WINAPI` instead of `__stdcall`, not sure what keywords I can use or not, so I'll just use the macro instead of the keyword 2018-05-02 22:09:20 -05:00
Dwedit 0d2f9b9b11 Fix __stdcall calling convention for Win32 32-bit builds 2018-05-02 21:59:07 -05:00
twinaphex 95278d39f7 Buildfix for MSVC 2003 2018-05-02 01:03:40 +02:00
twinaphex 33c1d55801 GetDisplayConfigBufferSizes and QueryDisplayConfig now go
through function pointers for backwards compatibility
2018-05-01 21:44:10 +02:00
Brad Parker a1aefc901c Qt WIMP GUI 2018-04-30 14:33:05 -04:00
twinaphex 714f7b7b13 Cleanups 2018-04-27 23:21:44 +02:00
twinaphex 72428a23c5 (shader_vulkan.cpp) Move some functions to vulkan_common.c 2018-04-24 07:07:58 +02:00
twinaphex 77d815a572 Get rid of warning 2018-04-23 17:48:31 +02:00
twinaphex 789ef63dee (360) Don't bake in HAVE_XUI anymore; buildfixes for C++ 2018-04-23 17:35:36 +02:00
twinaphex fec8d3294c Cleanup 2018-04-23 17:23:14 +02:00
twinaphex 95ecbc0859 Update 2018-04-23 17:22:02 +02:00
twinaphex 830068e5bd Create d3d9x_constant_table_set_float_array 2018-04-23 17:20:08 +02:00
twinaphex a6fcd9dae0 Create d3d9x_constant_table_set_defaults 2018-04-23 17:09:11 +02:00
twinaphex 0e5ccd7c15 Create d3d9x_constant_table_set_matrix 2018-04-23 17:04:30 +02:00
twinaphex 282b4ba21b (d3d9_common.c) Cleanups 2018-04-23 15:40:43 +02:00