update parallel rdp

This commit is contained in:
Logan McNaughton
2023-07-28 10:26:20 -06:00
parent 265932ab6a
commit 299bbfe03f
56 changed files with 51210 additions and 49596 deletions
+14 -8
View File
@@ -248,6 +248,9 @@ bool WSI::init_context_from_platform(unsigned num_thread_indices, const Context:
#ifdef HAVE_FFMPEG_VULKAN
constexpr ContextCreationFlags video_context_flags =
CONTEXT_CREATION_ENABLE_VIDEO_DECODE_BIT |
#ifdef HAVE_FFMPEG_VULKAN_ENCODE
CONTEXT_CREATION_ENABLE_VIDEO_ENCODE_BIT |
#endif
CONTEXT_CREATION_ENABLE_VIDEO_H264_BIT |
CONTEXT_CREATION_ENABLE_VIDEO_H265_BIT;
#else
@@ -1109,20 +1112,18 @@ static bool init_surface_info(Device &device, WSIPlatform &platform,
baseline_image_count = std::max(3u, baseline_image_count);
// Make sure we query surface caps tied to the present mode for correct results.
if (ext.supports_surface_maintenance1 && ext.supports_surface_capabilities2)
if (ext.swapchain_maintenance1_features.swapchainMaintenance1 &&
ext.supports_surface_capabilities2)
{
VkSurfaceCapabilities2KHR surface_capabilities2 = { VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR };
VkSurfacePresentModeCompatibilityEXT present_mode_caps =
{ VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT };
std::vector<VkPresentModeKHR> present_mode_compat_group;
if (ext.supports_surface_maintenance1)
{
present_mode_compat_group.resize(32);
present_mode_caps.presentModeCount = present_mode_compat_group.size();
present_mode_caps.pPresentModes = present_mode_compat_group.data();
surface_capabilities2.pNext = &present_mode_caps;
}
present_mode_compat_group.resize(32);
present_mode_caps.presentModeCount = present_mode_compat_group.size();
present_mode_caps.pPresentModes = present_mode_compat_group.data();
surface_capabilities2.pNext = &present_mode_caps;
info.present_mode.pNext = const_cast<void *>(info.surface_info.pNext);
info.surface_info.pNext = &info.present_mode;
@@ -1477,6 +1478,11 @@ VkSurfaceTransformFlagBitsKHR WSI::get_current_prerotate() const
return swapchain_current_prerotate;
}
CommandBuffer::Type WSI::get_current_present_queue_type() const
{
return device->get_current_present_queue_type();
}
WSI::~WSI()
{
teardown();