Georges Basile Stavracas Neto
fc1cfd569a
vulkancontext: Improve debug output
2017-01-06 02:02:08 -02:00
Georges Basile Stavracas Neto
ea952a6ec3
vulkancontext: Never abort on validation layer debug
...
Validation layers should never interfere on application
execution.
2017-01-06 02:01:58 -02:00
Benjamin Otte
f74490739f
vulkan: Create required number of swapchain images
...
Wayland has minImageCount == 4, so us just creating 2 images is not very
nice. So we don't do that anymore.
2017-01-04 18:38:40 +01:00
Benjamin Otte
efc5f8dc47
gdkvulkan: Track if we reffed the display's vulkan data
...
When reffing the display fails in init, we were still trying to unref
it. Which obviously failed and spewed warnings to stderr.
2017-01-04 18:26:14 +01:00
Georges Basile Stavracas Neto
38d6e45b32
vulkancontext: Assume the window geometry when extents are bogus
...
When the current extent is -1, we should assume whatever size
the GdkWindow has.
2017-01-04 13:23:48 +01:00
Chun-wei Fan
9db5cc9a98
gdk/gdkvulkancontext.c: Avoid VLAs
...
During the drive to enable Vulkan context creation on Windows, some more
VLAs were found here. Replace them with g_newa().
https://bugzilla.gnome.org/show_bug.cgi?id=773299
2016-12-29 17:51:56 +08:00
Benjamin Otte
293248c1d3
gdkvulkan: Track changes per swapchain image
...
... and use those in begin_frame() to ensure all of the invalid area
gets invalidated.
2016-12-26 22:24:22 +01:00
Benjamin Otte
b30225e67c
vulkan: We use VK_FORMAT_B8G8R8A8_UNORM
...
... not SRGB. SRGB messes up alpha compositing, GdkRGBA and everything
else.
2016-12-25 06:23:12 +01:00
Benjamin Otte
2c0564a46e
build: Make sure GTK compiles without Vulkan headers installed
...
Previously, code would work fine with --disable-vulkan if the Vulkan
headers were installed - code would happily just use them as they're
installed in /usr/include.
2016-12-09 20:23:06 +01:00
Matthias Clasen
3dd4f76703
Rename GDK_WINDOWING_VULKAN
...
The WINDOWING defines are only for GDK backends, really.
Define GDK_RENDERING_VULKAN instead.
2016-12-09 14:11:37 -05:00
Matthias Clasen
5b6a837b17
Only include vulkan.h if we have it
2016-12-09 14:05:26 -05:00
Benjamin Otte
747df7aa3c
vulkan: Also wait on the draw semaphore when present()ing
...
That way we have a synchronization primitive at the start and at the
end.
2016-12-09 18:35:51 +01:00
Benjamin Otte
8ba2898e08
vulkan: acquire/present images when drawing
...
Another step towards the final goal of actually showing something.
2016-12-09 18:35:51 +01:00
Benjamin Otte
325efe7078
vulkan: Expose the swapchain images in public API
2016-12-09 18:35:51 +01:00
Benjamin Otte
0c8e7d0ac0
vulkan: Register debug handler
...
We now hook Vulkan error reporting into glib's error reporting.
I'm not sure on the severity handling yet, but we can fix that as we go
along.
2016-12-09 18:35:51 +01:00
Benjamin Otte
b6227aa998
gdk: Add GDK_VULKAN env variable
...
Also add 2 flags:
GDK_VULKAN="disable" will disable Vulkan usage.
GDK_VULKAN="validate" will enable VK_LAYER_LUNARG_standard_validation.
2016-12-09 18:35:51 +01:00
Benjamin Otte
e22cb94e50
vulkan: More work on GdkVulkanContext
...
Code has now arrived at creation of swapchains.
2016-12-09 18:35:51 +01:00
Benjamin Otte
4ef8bf821e
vulkan: Turn GdkVulkanContext into a GdkDrawContext
2016-12-09 18:35:51 +01:00
Benjamin Otte
6d1d6e6792
vulkan: Add more infrastructure
...
gdk_window_create_vulkan_context() now exists and will return a Vulkan
context for the given window. It even initializes the surface. But it
doesn't do anything useful yet.
2016-12-09 18:35:51 +01:00
Benjamin Otte
cca547e5bc
vulkan: Initial support
...
Adds the gdk_display_ref_vulkan() and gdk_display_unref_vulkan()
functions which setup/tear down VUlkan support for the display.
Nothing is using those functions yet.
2016-12-09 18:35:51 +01:00