]> git.tdb.fi Git - libs/gl.git/blobdiff - source/backends/vulkan/device_backend.cpp
Restore limits.max_storage_texture_bindings in Vulkan backend
[libs/gl.git] / source / backends / vulkan / device_backend.cpp
index 3be29c63c9524b04be53aedff3fe808222f4b334..d80afaab5d4975ee062ee6ea25c09d34cac206a2 100644 (file)
@@ -1,5 +1,6 @@
 #include <cstdlib>
 #include <msp/graphics/vulkancontext_platform.h>
+#include <msp/strings/lexicalcast.h>
 #include "device.h"
 #include "device_backend.h"
 #include "vulkan.h"
@@ -18,7 +19,8 @@ VulkanDevice::VulkanDevice(Graphics::Window &wnd, const Graphics::VulkanOptions
        destroy_queue(*static_cast<Device *>(this)),
        synchronizer(*static_cast<Device *>(this)),
        transfer_queue(*static_cast<Device *>(this)),
-       pipeline_cache(*static_cast<Device *>(this))
+       pipeline_cache(*static_cast<Device *>(this)),
+       descriptor_pool(*static_cast<Device *>(this))
 { }
 
 // Cause the destructor of RefPtr<VulkanFunctions> to be emitted here
@@ -29,6 +31,7 @@ Graphics::VulkanOptions VulkanDevice::create_default_options()
 {
        Graphics::VulkanOptions opts;
        opts.enable_geometry_shader = true;
+       opts.enable_tessellation_shader = true;
 #ifdef DEBUG
        const char *disable_ptr = getenv("MSPGL_DISABLE_VALIDATION");
        if(disable_ptr && *disable_ptr)
@@ -54,6 +57,7 @@ void VulkanDevice::fill_info()
        limits.max_clip_planes = props.limits.maxClipDistances;
        limits.max_vertex_attributes = props.limits.maxVertexInputAttributes;
        limits.max_texture_bindings = props.limits.maxDescriptorSetSampledImages;
+       limits.max_storage_texture_bindings = props.limits.maxDescriptorSetStorageImages;
        limits.max_color_attachments = props.limits.maxColorAttachments;
        unsigned samples = props.limits.framebufferColorSampleCounts&props.limits.framebufferDepthSampleCounts&props.limits.framebufferStencilSampleCounts;
        if(samples&VK_SAMPLE_COUNT_64_BIT)