Enable Vulkan RHI to build on Linux
- Enable to use xcb platform for glad - Add missing precompiled header for linux on Vulkan RHI - Create implementation of BuildNativeSurface using XCB related structures and functions
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
#
|
||||
# All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
|
||||
# its licensors.
|
||||
#
|
||||
# For complete copyright and license terms please see the LICENSE at the root of this
|
||||
# distribution (the "License"). All use of this software is governed by the License,
|
||||
# or, if provided, by the license below or the license accompanying this file. Do not
|
||||
# remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
#
|
||||
|
||||
set(GLAD_VULKAN_COMPILE_DEFINITIONS
|
||||
VK_USE_PLATFORM_XCB_KHR
|
||||
)
|
||||
+3
@@ -10,3 +10,6 @@
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include <xcb/xcb.h>
|
||||
#include <xcb/xcbext.h>
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
/*
|
||||
* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
|
||||
* its licensors.
|
||||
*
|
||||
* For complete copyright and license terms please see the LICENSE at the root of this
|
||||
* distribution (the "License"). All use of this software is governed by the License,
|
||||
* or, if provided, by the license below or the license accompanying this file. Do not
|
||||
* remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include <AzCore/base.h>
|
||||
#include <AzCore/PlatformIncl.h>
|
||||
#include <AzCore/std/algorithm.h>
|
||||
#include <vulkan/vulkan.h>
|
||||
#include <limits.h>
|
||||
#include <RHI/Vulkan.h>
|
||||
|
||||
#define AZ_VULKAN_SURFACE_EXTENSION_NAME VK_KHR_XCB_SURFACE_EXTENSION_NAME
|
||||
+1
@@ -11,4 +11,5 @@
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include <Atom_RHI_Vulkan_precompiled_Linux.h>
|
||||
|
||||
|
||||
@@ -9,4 +9,4 @@
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
#
|
||||
|
||||
set(PAL_TRAIT_ATOM_RHI_VULKAN_SUPPORTED FALSE)
|
||||
set(PAL_TRAIT_ATOM_RHI_VULKAN_SUPPORTED TRUE)
|
||||
@@ -0,0 +1,36 @@
|
||||
/*
|
||||
* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
|
||||
* its licensors.
|
||||
*
|
||||
* For complete copyright and license terms please see the LICENSE at the root of this
|
||||
* distribution (the "License"). All use of this software is governed by the License,
|
||||
* or, if provided, by the license below or the license accompanying this file. Do not
|
||||
* remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
*
|
||||
*/
|
||||
#include "Atom_RHI_Vulkan_precompiled.h"
|
||||
#include <RHI/Conversion.h>
|
||||
#include <RHI/Instance.h>
|
||||
#include <RHI/WSISurface.h>
|
||||
|
||||
namespace AZ
|
||||
{
|
||||
namespace Vulkan
|
||||
{
|
||||
RHI::ResultCode WSISurface::BuildNativeSurface()
|
||||
{
|
||||
Instance& instance = Instance::GetInstance();
|
||||
|
||||
VkXcbSurfaceCreateInfoKHR createInfo{};
|
||||
createInfo.sType = VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR;
|
||||
createInfo.pNext = nullptr;
|
||||
createInfo.flags = 0;
|
||||
createInfo.window = static_cast<xcb_window_t>(m_descriptor.m_windowHandle.GetIndex());
|
||||
const VkResult result = vkCreateXcbSurfaceKHR(instance.GetNativeInstance(), &createInfo, nullptr, &m_nativeSurface);
|
||||
AssertSuccess(result);
|
||||
|
||||
return ConvertResult(result);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -10,7 +10,7 @@
|
||||
#
|
||||
|
||||
set(FILES
|
||||
../Common/Unimplemented/ModuleStub_Unimplemented.cpp
|
||||
RHI/WSISurface_Linux.cpp
|
||||
Vulkan_Traits_Linux.h
|
||||
Vulkan_Traits_Platform.h
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user