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
90efa02718
Fix more scan-build issues
2018-08-18 16:16:17 +02:00
twinaphex
646e64c28c
Fix some clang scan-build warnings/errors
2018-08-18 15:56:44 +02:00
twinaphex
e54cb1b121
Only show black frame insertion for the video drivers/context drivers
...
that support it
2018-04-23 14:15:21 +02:00
twinaphex
c4c8699ee3
Only show max swapchain images if supported by video driver and/or
...
context driver
2018-04-23 13:34:30 +02:00
Brandon Wright
533f898132
Add get refresh rate context function. Implement for X11 and Wayland.
2018-04-15 17:56:12 -05:00
Brandon Wright
7a00534378
Add poke interface for get_refresh_rate.
2018-04-15 17:56:11 -05:00
twinaphex
97cf6613da
(XMB/Shaders) Reimplement menu shader loading for GLSL/Cg/HLSL backends - if
...
XMB is selected, it will compile the shader pipelines in
advance
2018-04-12 02:20:17 +02:00
aliaspider
88d1c1fdca
msvc build fix.
2018-03-25 23:11:31 +01:00
twinaphex
9b8713aebd
Fix Coverity defects
2018-03-24 11:59:01 +01:00
twinaphex
4d1b4f905f
Start adding OSD statistics - doesn't work yet for SDL2/SDL
2018-03-23 17:43:49 +01:00
aliaspider
b948cf46e7
(Vulkan) add missing queue locks when calling vkQueueWaitIdle.
2018-03-15 09:21:23 +01:00
radius
c64d5556c1
readd shader to config, let's use a runtime check instead of overwritting the shader preset all the time
2018-02-07 21:25:59 -05:00
twinaphex
8771171f63
(glslang) Compatibility tweaks for MSVC 2010 compatibility
2018-02-04 15:49:53 +01:00
twinaphex
f677a7ad7e
Add HAVE_OVERLAY to qb system
2018-01-05 16:10:34 +01:00
twinaphex
bd16fd49ab
Fix ./configure --disable-rgui
2017-12-31 17:53:11 +01:00
twinaphex
cf3a010ead
Remove some HAVE_MENU ifdefs
2017-12-31 17:42:07 +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
Themaister
75b84b4f94
Support pending swapchain creation.
2017-12-09 17:28:20 +01:00
Themaister
714684a4d3
Don't wait for WSI fence unless it has been signalled.
2017-12-09 17:28:20 +01:00
twinaphex
683c437941
Updates
2017-11-14 21:34:03 +01:00
twinaphex
9eba2c8e39
Fix CXX_BUILD on Windows
2017-09-28 18:53:09 +02:00
twinaphex
9c32d03c1e
(Vulkan/Win32) C89_BUILD fixes
2017-08-12 17:56:30 +02:00
Jean-André Santoni
0b1716650b
Use additive blending for the ribbon in GL and Vulkan
2017-05-22 01:29:56 +02:00
twinaphex
3f7a30a4b3
Start hooking up dummy callback functions to video_context_data
...
so that conditionals aren't necessary
2017-05-18 03:37:02 +02:00
twinaphex
941a5d4f94
Go through function callback for swap_buffers as well
2017-05-18 03:05:07 +02:00
twinaphex
86ee08b7a7
Add video context driver update window title callback
...
to video_frame_info_t
2017-05-18 02:53:12 +02:00
aliaspider
36137d22e5
Vulkan: use the command buffer provided as parameter in
...
vulkan_copy_staging_to_dynamic.
2017-05-15 05:35:17 +01:00
twinaphex
17a15273ba
Create function out of video_driver_is_focused - no longer
...
call video_driver_context_focus from video driver
2017-05-13 19:19:49 +02:00
twinaphex
d4756f83e5
Stop calling video_driver_context_has_windowed from within video
...
drivers
2017-05-13 19:11:32 +02:00
twinaphex
f6c8aba119
Move video_context_driver_update_window_title to video_driver_frame
2017-05-13 18:58:13 +02:00
twinaphex
f928e57064
Combine video_context_driver.c and video_driver.c
2017-05-09 01:25:59 +02:00
twinaphex
bac9973354
Cleanups
2017-05-09 00:58:01 +02:00
twinaphex
e84adb504f
Don't try to call video_driver_is_threaded from outside
...
gfx/video_driver.c - only exception right now - menu_display.c
2017-04-29 16:52:52 +02:00
twinaphex
91abbdd4f1
video_viewport_get_custom will never be NULL
2017-04-29 16:22:07 +02:00
twinaphex
e6ab06a701
Move path variables
2017-04-29 00:39:29 +02:00
twinaphex
f0c2d786ae
Update arrays struct
2017-04-28 22:59:13 +02:00
twinaphex
05e4ec733e
Move uint variables
2017-04-28 21:03:04 +02:00
twinaphex
cc095e56fc
Start refactoring bool variables
2017-04-28 00:53:20 +02:00
twinaphex
2a13af52fc
Revert "video_init function - video_info_t should not be const -"
...
This reverts commit c8bcbad4a7
.
2017-04-24 12:25:14 +02:00
twinaphex
e5b38315fe
Revert "Add real_width and real_height to video_info struct - let"
...
This reverts commit 831ea1a507
.
2017-04-24 12:25:07 +02:00
twinaphex
831ea1a507
Add real_width and real_height to video_info struct - let
...
the drivers set this depending on the video width/height they
get back from the video context driver
2017-04-24 12:18:28 +02:00
twinaphex
c8bcbad4a7
video_init function - video_info_t should not be const -
...
try to set video_driver_width/video_driver_height outside
of video driver init function
2017-04-24 12:03:21 +02:00
twinaphex
d06c963a19
Get rid of PERF_ENABLE blocks
2017-04-24 11:20:30 +02:00
twinaphex
34852e159a
Cut down on amount of times video_driver_build_info is called
2017-04-23 22:20:11 +02:00
twinaphex
0f2a6f3dd2
Don't use performance counters in GL/Vulkan/video thread wrapper
...
unless PERF_ENABLE is defined
2017-04-23 11:31:11 +02:00
twinaphex
0c5a87b1d7
Create scaler_ctx_scale_direct
2017-04-16 11:03:29 +02:00
twinaphex
257410d058
Turn matrix_4x4_multiply into macro
2017-04-16 07:55:02 +02:00
twinaphex
32cebbbcba
Turn more matrix_4x4 functions into macros
2017-04-16 04:00:20 +02:00
twinaphex
fbd6d0ebc6
Turn more matrix 4x4 functions into macros
2017-04-16 03:53:07 +02:00
twinaphex
1b27c3dec1
Make some log messages more consistent
2017-03-24 00:28:21 +01:00
hunterk
a1124b8ded
(Vulkan) add bokeh menu shader for vulkan
2017-02-20 22:59:05 -06:00
twinaphex
0d873b6da1
(Vulkan) Add fancy snow for Vulkan
2017-02-20 21:51:58 +01:00
Hans-Kristian Arntzen
2d88530c98
Vulkan: Simple snow pipeline works.
...
Some other fixes too.
2017-02-20 20:53:59 +01:00
twinaphex
374fd57270
Remove the few performance counters that depend on runloop_ctl
2017-01-25 18:15:58 +01:00
twinaphex
a9164b7124
Try to use performance counter plus functions in most cases
2017-01-25 17:12:43 +01:00
twinaphex
6661c0fb94
Rewrite performance counter stop/start/init into macros
2017-01-25 16:53:06 +01:00
twinaphex
a104c73738
Go back to this
2017-01-22 23:19:35 +01:00
twinaphex
8698525f86
Only show the frame when libretro_running is true
2017-01-22 21:42:42 +01:00
twinaphex
2f504b4057
(gfx/drivers) Get rid of remaining runloop.h / runloop_ctl
...
references inside gfx/drivers
2017-01-22 18:17:48 +01:00
twinaphex
96c8ca5a09
Header update #1
2017-01-22 13:40:32 +01:00
twinaphex
57f8c637bf
Cut down on runloop_ctl calls inside gfx/drivers
2017-01-22 12:38:20 +01:00
twinaphex
fe84312340
Add some header includes
2017-01-19 17:20:42 +01:00
twinaphex
e0ff0541a2
Pass video_info pointer to font drivers
2017-01-19 16:30:40 +01:00
twinaphex
9d1de5c974
Rewrite video_context_driver_set_resize
2017-01-19 14:31:57 +01:00
twinaphex
c5445d2980
Reduce amount of times video_driver_get_size is called
2017-01-18 23:02:24 +01:00
twinaphex
bf511b72e6
Create menu_driver_frame
2017-01-18 21:23:18 +01:00
twinaphex
a6a4808e94
Refactor frame monitor code
2017-01-18 17:41:27 +01:00
twinaphex
76ae7ac4a0
Cleanup some of the video drivers - add some members to
...
video_info_t to reduce the need for accessing the settings
struct
2017-01-10 18:16:22 +01:00
twinaphex
6b3cc9068d
Pass video_info to swap_buffers too
2017-01-09 14:59:15 +01:00
twinaphex
3d92ce140e
Pass video_frame_info_t to update_window_title
2017-01-09 14:42:07 +01:00
twinaphex
be2f921ee2
Don't use settings pointer inside video_frame function
2017-01-09 14:25:59 +01:00
twinaphex
6a45541f24
(Vulkan) Rename pipeline files
2016-12-12 13:17:20 +01:00
barbudreadmon
ad273d6299
Fix for issue #4165
...
vulkan video driver don't rotate the same way as gl video driver without this.
2016-12-11 10:53:02 +01:00
Hans-Kristian Arntzen
eb7870db5a
Vulkan: Check for more cases in vulkan_load_texture().
...
*Sigh*
2016-12-03 18:54:34 +01:00
Hans-Kristian Arntzen
b96f1fa067
Vulkan: Load a dummy texture if needed.
2016-12-03 17:48:48 +01:00
Lioncash
d34202aea6
vulkan: Move vk_t pointer dereferences after the null check
2016-11-25 23:21:31 -05:00
Hans-Kristian Arntzen
0d718a9365
Vulkan: Workaround warning from validation layers.
2016-11-06 16:07:44 +01:00
twinaphex
456c4c4d58
Remove video_driver_cached_frame_render wrapper function
2016-10-25 00:42:26 +02:00
twinaphex
275814e291
Replace font_driver_free(NULL) calls with font_driver_free_osd()
...
inside video drivers
2016-10-20 00:39:33 +02:00
Higor Eurípedes
6f2cb9742d
(font) Create font_data_t and update font_driver_init_first()
2016-10-18 20:07:00 -03:00
twinaphex
202e3e796e
Get rid of more general.h includes
2016-09-11 14:46:53 +02:00
twinaphex
acd4dd527b
Header include cleanups
2016-09-05 18:31:32 +02:00
twinaphex
064f74825a
CXX_BUILD buildfix
2016-09-01 18:26:01 +02:00
twinaphex
467451fccc
Cleanup more header includes
2016-09-01 18:18:55 +02:00
Hans-Kristian Arntzen
96818a297c
Vulkan: Fix validation errors with OriginalHistory.
...
For some reason, OriginalHistory blit happened inside a render pass.
Also add more TRANSFER_SRC_BIT caps to images as they might have to be
copied to history.
2016-08-07 01:09:15 +02:00
Hans-Kristian Arntzen
4e8e79eabd
Vulkan: Add mipmapping support.
2016-07-31 13:47:10 +02:00
Hans-Kristian Arntzen
d39a3619d6
Begin implementation of LUTs in Vulkan.
2016-07-31 12:26:14 +02:00
Hans-Kristian Arntzen
f54b0c0ff0
Vulkan: Implement swap_interval > 1.
...
We have to fake it by duping since Vulkan has no native support for
this.
2016-07-24 00:34:48 +02:00
Hans-Kristian Arntzen
8c1b935969
Vulkan: Implement BFI.
2016-07-24 00:07:32 +02:00
Hans-Kristian Arntzen
8569028189
Vulkan: Use manual memory management for cached/incoherent devices.
2016-07-15 16:12:30 +00:00
Hans-Kristian Arntzen
4729ec9e1b
Add support for signalling semaphores from frontend.
...
Useful for conserving framebuffer memory.
2016-06-27 20:54:53 +02:00
Hans-Kristian Arntzen
54c1759f45
Vulkan: Make a more general purpose symbol loader.
...
Avoids painful manual loading and wrapping function pointers everywhere
...
Reusable for cores, so move to libretro-common.
Also update built-in Vulkan headers.
2016-06-26 13:10:58 +02:00
Hans-Kristian Arntzen
b013a9c863
Vulkan: Replace prebaked shaders with glslc -mfmt=c.
...
Far more clean and avoids illegal punning.
2016-06-25 14:55:03 +02:00
Hans-Kristian Arntzen
972a5db7ae
Vulkan: Fix shader module leak.
2016-06-25 14:06:14 +02:00
Hans-Kristian Arntzen
07880e3f45
Vulkan: Begin hooking up validation layers.
...
Found lots of regressions due to bad reformatting.
2016-06-25 13:52:33 +02:00
Hans-Kristian Arntzen
d043123f71
Vulkan: Add support for queue transfers in HW rendering.
2016-06-25 11:39:52 +02:00
twinaphex
281a33d61f
Rename function to performance_counter_init
2016-05-16 09:58:45 +02:00
twinaphex
f5bc75c640
Rename retro_perf_start/retro_perf_stop
2016-05-16 09:53:54 +02:00
twinaphex
18355d4748
Rename retro_perf_stop
2016-05-16 09:48:14 +02:00
twinaphex
0d833c903a
Merge remote-tracking branch 'origin/vulkan-windows'
2016-05-16 07:51:01 +02:00
twinaphex
fc56f6ebdb
Add some HAVE_THREADS ifdefs
2016-05-11 10:10:30 +02:00
twinaphex
78783cc2aa
Buildfixes for compiling without HAVE_MENU
2016-05-11 10:06:15 +02:00
twinaphex
4a7ab8366b
Move libretro.h headers to libretro-common/include
2016-05-10 19:03:53 +02:00
twinaphex
b79b2dca13
Create performance_counters
2016-05-10 08:53:14 +02:00
twinaphex
dde471e001
Rename gfx_ structs
2016-05-10 02:39:09 +02:00
twinaphex
44ed8d1116
CXX_BUILD fixes
2016-05-09 05:48:47 +02:00
twinaphex
b20d550cc4
Rename video context driver functions
2016-05-08 20:32:56 +02:00
twinaphex
7399ba386a
Rename gfx_ctx_ prefix
2016-05-08 19:24:23 +02:00
Hans-Kristian Arntzen
d723411436
De ioctl video_driver.
2016-05-08 14:00:51 +02:00
Hans-Kristian Arntzen
464a4add66
XMB ribbon works in Vulkan.
2016-05-08 11:11:28 +02:00
twinaphex
65dec874a8
Move some path settings
2016-04-28 19:52:25 +02:00
Hans-Kristian Arntzen
c7b96b75b8
Vulkan: Add more error logging.
2016-03-29 17:36:13 +02:00
Hans-Kristian Arntzen
38a305bb6e
Vulkan: Add proc address query functions to HW interface.
...
Allows cores to avoid linking directly against any extra library.
Update HW interface version to 2 to signal ABI change.
Note that the interface is still experimental and can change at any time.
2016-03-29 16:35:31 +02:00
Hans-Kristian Arntzen
1ff4445ba0
Remove dead code with full_x/full_y.
...
Very confusing and no longer serves any purpose anyways.
2016-03-29 15:28:13 +02:00
Hans-Kristian Arntzen
82db5a4950
Vulkan: Use single UBO for all passes and sync indices.
...
Significantly reduces number of allocations.
2016-03-26 19:39:51 +01:00
Hans-Kristian Arntzen
3838b3c045
Vulkan: Add frame count suport.
2016-03-25 22:06:31 +01:00
Hans-Kristian Arntzen
83ab0d799f
Vulkan: Begin implementing history and feedback.
2016-03-25 14:51:37 +01:00
Hans-Kristian Arntzen
f1a5725f66
Vulkan: Host writes are implicitly flushed on submit.
...
Use TOP_OF_PIPE/0 access instead to work
around spammy asserts on Anvil.
We still have to invalidate the caches however.
2016-03-21 16:57:04 +01:00
Hans-Kristian Arntzen
7899d449e6
Vulkan: Also invalidate fragment uniform buffer
2016-03-21 11:49:27 +01:00
Hans-Kristian Arntzen
a21687b5d7
Vulkan: Ensure vertex caches are invalidated.
2016-03-21 10:10:29 +01:00
Hans-Kristian Arntzen
84923a0465
Vulkan: Tighten up pipeline barrier usage.
...
Lots of memory barriers used with TOP_OF_PIPE which is not valid.
2016-03-21 10:02:00 +01:00
Hans-Kristian Arntzen
07524fe433
Vulkan: Log about format use.
2016-03-21 09:29:41 +01:00
Hans-Kristian Arntzen
f02faeea27
Vulkan: Fix segfault on nVidia.
2016-03-06 12:33:46 +01:00
Hans-Kristian Arntzen
c00d32f30f
Vulkan: Get correct window mode size.
2016-03-06 12:18:11 +01:00
Hans-Kristian Arntzen
6cde59a8ad
Vulkan: Add more detailed counters.
2016-03-06 12:11:44 +01:00
twinaphex
eebcde721b
Rename video_coord_array
2016-03-05 07:28:02 +01:00
twinaphex
64a77af881
Use RARCH_DISPLAY_CTL_HW_CONTEXT_GET directly instead of
...
going through video_driver_callback
2016-03-04 20:49:55 +01:00
twinaphex
86a8899b0f
(Android) Start preparing Android JNI Makefiles for Android
2016-03-01 18:46:40 +01:00
Themaister
bce0d55a43
Vulkan: Allocate correct number of descriptors.
...
Have to allocate for entire pool, not per set.
2016-03-01 09:44:18 +01:00
twinaphex
b79edb6095
Reimplement function pointers
2016-03-01 02:21:53 +01:00
twinaphex
937230564d
move more code to vksym.h
2016-03-01 01:53:48 +01:00
twinaphex
4a1a623099
(Vulkan) Add more funcptrs
2016-02-29 23:09:05 +01:00
twinaphex
0e60d20705
Add Command Function pointers
2016-02-29 23:04:17 +01:00
twinaphex
67ea4e1d6b
(Vulkan) Pipeline function pointers
2016-02-29 22:55:31 +01:00
twinaphex
1fbac78e35
(Vulkan) Go through function pointer for vkDestroyPipelineCache
2016-02-29 22:38:58 +01:00
twinaphex
1b85ee442f
Go through funcptr for vkAllocateCommandBuffers
2016-02-29 22:23:35 +01:00
twinaphex
83dc7db6c7
(Vulkan) Add descriptor set layout function callbacks
2016-02-29 22:04:23 +01:00
twinaphex
caed6c61cb
(Vulkan) Function pointer for vkFreeCommandBuffers
2016-02-29 21:58:10 +01:00
twinaphex
1e407079e4
Add function pointers for image view functions
2016-02-29 21:55:54 +01:00
twinaphex
a6eb40b3d2
Add funcptr for vkAllocateCommandBuffers
2016-02-29 21:51:42 +01:00
twinaphex
4771c45ed3
Add render pass command function pointers
2016-02-29 21:43:04 +01:00
twinaphex
7f5d0f2763
(Vulkan) More function pointers for command buffer functions
2016-02-29 21:37:35 +01:00
twinaphex
860ffff3c9
(Vulkan) Go through funcptr for vkEndCommandBuffer
2016-02-29 21:31:51 +01:00
twinaphex
eae652d6a5
Go through funcptr for vkDestroyCommandPool
2016-02-29 21:17:21 +01:00
twinaphex
8232135922
Cleanups
2016-02-29 20:08:56 +01:00
twinaphex
e669f92399
(Vulkan) Cleanups
2016-02-29 20:07:11 +01:00
twinaphex
8a06e27c22
(Vulkan) Cleanups
2016-02-29 19:44:46 +01:00
twinaphex
59ad8fcfde
(Vulkan) Cleanups
2016-02-29 19:43:54 +01:00
twinaphex
f0458495f4
Go through funcptr for vkDestroyPipeline
2016-02-29 19:41:25 +01:00
twinaphex
d45f0e0946
Some cleanups
2016-02-29 19:39:49 +01:00
twinaphex
670eede306
Go through function pointer for vkCmdClearAttachments
2016-02-29 19:34:40 +01:00
twinaphex
fc7a972466
Go through function pointers for vkMapMemory/vkUnmapMemory
2016-02-29 19:20:42 +01:00
twinaphex
28d5ca6a86
(Vulkan) Style nits
2016-02-29 19:16:21 +01:00
twinaphex
b660fb8878
Create sampler function pointers
2016-02-29 19:11:09 +01:00
twinaphex
0e91bb6852
Go through more function pointers
2016-02-29 19:03:18 +01:00
twinaphex
1d96e80b05
(Vulkan) More funcptrs
2016-02-29 18:40:30 +01:00
twinaphex
5863996d83
Go through VKFUNC
2016-02-29 17:06:41 +01:00
twinaphex
6c9e8041c6
Add function pointer for vkCreateCommandPool
2016-02-29 16:41:49 +01:00
twinaphex
6dce80ea07
Add function pointers for vkCreatePipelineCache and vkCreatePipelineLayout
2016-02-29 16:37:15 +01:00
twinaphex
778b50fc28
Add funcptr for vkCreateFramebuffer
2016-02-29 16:32:34 +01:00
twinaphex
361cce328d
vkCreateRenderPass - add funcptr
2016-02-29 16:30:45 +01:00
twinaphex
4248e244a8
Go through funcptr for vkCmdCopyImage
2016-02-29 06:52:08 +01:00
twinaphex
01f5a7ad84
Go through vkQueueWaitIdle function pointer
2016-02-29 06:31:55 +01:00
Hans-Kristian Arntzen
cece4e5ae2
Vulkan: Add workaround for broken VkImageView swizzling.
...
Certain early drivers fail to apply swizzle mask.
2016-02-21 13:52:30 +01:00
Hans-Kristian Arntzen
f09338b1b8
Set alphaBlendOp correctly.
2016-02-21 13:40:19 +01:00
Hans-Kristian Arntzen
0dddd671f8
Vulkan: Use more approriate barrier
2016-02-21 12:59:11 +01:00
Hans-Kristian Arntzen
4259ea3d06
Merge branch 'master' of git://github.com/libretro/RetroArch
2016-02-21 12:45:26 +01:00
Hans-Kristian Arntzen
36eb07e067
Vulkan: Use copy paths if needed.
2016-02-21 12:33:16 +01:00
twinaphex
fbc7eaf287
(vulkan.c) Style nits
2016-02-20 20:29:52 +01:00
twinaphex
1426cf7fb2
(vulkan.c) Style nits
2016-02-20 20:15:46 +01:00
Hans-Kristian Arntzen
fa449646e9
Bug fixes for Vulkan readback.
...
We were getting weird and inconsistent viewport sizes back.
2016-02-20 14:04:33 +01:00
Hans-Kristian Arntzen
bcac4a204f
Vulkan: Set initial viewport after keep_aspect is correct.
...
Fixes fullscreen recording.
2016-02-20 13:46:20 +01:00
Hans-Kristian Arntzen
5542427246
Try to use cached memory for readbacks.
...
Speeds up nVidia readbacks by order of magnitude.
2016-02-20 12:04:53 +01:00
Hans-Kristian Arntzen
459c55989a
Use vkCmdCopyImage for readbacks.
...
Blits often imply render targets.
2016-02-20 11:21:39 +01:00
Hans-Kristian Arntzen
c74c7ae053
Vulkan: Work around broken push constants on Ivy Bridge.
...
Use UBOs instead, should be more compatible with early drivers.
2016-02-18 18:36:49 +01:00
Hans-Kristian Arntzen
adbf9fed16
Vulkan implementation.
2016-02-16 20:42:02 +01:00