Add basic VkSurfaceKHR (Xlib only for now)
Should pass the following deqp tests:
dEQP-VK.wsi.xlib.surface.create
dEQP-VK.wsi.xlib.surface.query_supportS
dEQP-VK.wsi.xlib.surface.query_capabilities
dEQP-VK.wsi.xlib.surface.query_formatsW
dEQP-VK.wsi.xlib.surface.query_present_modes
dEQP-VK.wsi.xlib.surface.destroy_null_handle
dEQP-VK.wsi.xlib.surface.initial_size
dEQP-VK.wsi.xlib.surface.resizeSW
Bug: b/124265819
Change-Id: I92da1cc8d60923ea97aa26d3d6a098274c6e06b7
Reviewed-on: https://swiftshader-review.googlesource.com/c/25308
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Corentin Wallez <cwallez@google.com>
Tested-by: Hernan Liatis <hliatis@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
diff --git a/src/WSI/XlibSurfaceKHR.hpp b/src/WSI/XlibSurfaceKHR.hpp
new file mode 100644
index 0000000..150ea4b
--- /dev/null
+++ b/src/WSI/XlibSurfaceKHR.hpp
@@ -0,0 +1,43 @@
+// Copyright 2018 The SwiftShader Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#ifndef SWIFTSHADER_XLIBSURFACEKHR_HPP
+#define SWIFTSHADER_XLIBSURFACEKHR_HPP
+
+#include "VkObject.hpp"
+#include "libX11.hpp"
+#include "VkSurfaceKHR.hpp"
+
+namespace vk {
+
+class XlibSurfaceKHR : public SurfaceKHR, public ObjectBase<XlibSurfaceKHR, VkSurfaceKHR> {
+public:
+ XlibSurfaceKHR(const VkXlibSurfaceCreateInfoKHR *pCreateInfo, void *mem);
+
+ ~XlibSurfaceKHR() = delete;
+
+ void destroySurface(const VkAllocationCallbacks *pAllocator) override;
+
+ static size_t ComputeRequiredAllocationSize(const VkXlibSurfaceCreateInfoKHR *pCreateInfo);
+
+ void getSurfaceCapabilities(VkSurfaceCapabilitiesKHR *pSurfaceCapabilities) const override;
+
+private:
+ Display *pDisplay;
+ Window window;
+
+};
+
+}
+#endif //SWIFTSHADER_XLIBSURFACEKHR_HPP