Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mesa
Path: blob/21.2-virgl/src/vulkan/wsi/wsi_common_display.h
7326 views
1
/*
2
* Copyright © 2017 Keith Packard
3
*
4
* Permission to use, copy, modify, distribute, and sell this software and its
5
* documentation for any purpose is hereby granted without fee, provided that
6
* the above copyright notice appear in all copies and that both that copyright
7
* notice and this permission notice appear in supporting documentation, and
8
* that the name of the copyright holders not be used in advertising or
9
* publicity pertaining to distribution of the software without specific,
10
* written prior permission. The copyright holders make no representations
11
* about the suitability of this software for any purpose. It is provided "as
12
* is" without express or implied warranty.
13
*
14
* THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
15
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
16
* EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
17
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
18
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
19
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
20
* OF THIS SOFTWARE.
21
*/
22
23
#ifndef WSI_COMMON_DISPLAY_H
24
#define WSI_COMMON_DISPLAY_H
25
26
#include "wsi_common.h"
27
#include <xf86drm.h>
28
#include <xf86drmMode.h>
29
30
VkResult
31
wsi_display_get_physical_device_display_properties(
32
VkPhysicalDevice physical_device,
33
struct wsi_device *wsi_device,
34
uint32_t *property_count,
35
VkDisplayPropertiesKHR *properties);
36
37
VkResult
38
wsi_display_get_physical_device_display_properties2(
39
VkPhysicalDevice physical_device,
40
struct wsi_device *wsi_device,
41
uint32_t *pPropertyCount,
42
VkDisplayProperties2KHR *pProperties);
43
44
VkResult
45
wsi_display_get_physical_device_display_plane_properties(
46
VkPhysicalDevice physical_device,
47
struct wsi_device *wsi_device,
48
uint32_t *property_count,
49
VkDisplayPlanePropertiesKHR *properties);
50
51
VkResult
52
wsi_display_get_physical_device_display_plane_properties2(
53
VkPhysicalDevice physical_device,
54
struct wsi_device *wsi_device,
55
uint32_t *property_count,
56
VkDisplayPlaneProperties2KHR *properties);
57
58
VkResult
59
wsi_display_get_display_plane_supported_displays(
60
VkPhysicalDevice physical_device,
61
struct wsi_device *wsi_device,
62
uint32_t plane_index,
63
uint32_t *display_count,
64
VkDisplayKHR *displays);
65
66
VkResult
67
wsi_display_get_display_mode_properties(VkPhysicalDevice physical_device,
68
struct wsi_device *wsi_device,
69
VkDisplayKHR display,
70
uint32_t *property_count,
71
VkDisplayModePropertiesKHR *properties);
72
73
VkResult
74
wsi_display_get_display_mode_properties2(VkPhysicalDevice physical_device,
75
struct wsi_device *wsi_device,
76
VkDisplayKHR display,
77
uint32_t *property_count,
78
VkDisplayModeProperties2KHR *properties);
79
80
VkResult
81
wsi_display_create_display_mode(VkPhysicalDevice physical_device,
82
struct wsi_device *wsi_device,
83
VkDisplayKHR display,
84
const VkDisplayModeCreateInfoKHR *create_info,
85
const VkAllocationCallbacks *allocator,
86
VkDisplayModeKHR *mode);
87
88
VkResult
89
wsi_get_display_plane_capabilities(VkPhysicalDevice physical_device,
90
struct wsi_device *wsi_device,
91
VkDisplayModeKHR mode_khr,
92
uint32_t plane_index,
93
VkDisplayPlaneCapabilitiesKHR *capabilities);
94
95
VkResult
96
wsi_get_display_plane_capabilities2(VkPhysicalDevice physical_device,
97
struct wsi_device *wsi_device,
98
const VkDisplayPlaneInfo2KHR *pDisplayPlaneInfo,
99
VkDisplayPlaneCapabilities2KHR *capabilities);
100
101
VkResult
102
wsi_create_display_surface(VkInstance instance,
103
const VkAllocationCallbacks *pAllocator,
104
const VkDisplaySurfaceCreateInfoKHR *pCreateInfo,
105
VkSurfaceKHR *pSurface);
106
107
VkResult
108
wsi_release_display(VkPhysicalDevice physical_device,
109
struct wsi_device *wsi_device,
110
VkDisplayKHR display);
111
112
113
#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
114
VkResult
115
wsi_acquire_xlib_display(VkPhysicalDevice physical_device,
116
struct wsi_device *wsi_device,
117
Display *dpy,
118
VkDisplayKHR display);
119
120
VkResult
121
wsi_get_randr_output_display(VkPhysicalDevice physical_device,
122
struct wsi_device *wsi_device,
123
Display *dpy,
124
RROutput output,
125
VkDisplayKHR *display);
126
127
#endif /* VK_USE_PLATFORM_XLIB_XRANDR_EXT */
128
129
/* VK_EXT_display_control */
130
VkResult
131
wsi_display_power_control(VkDevice device,
132
struct wsi_device *wsi_device,
133
VkDisplayKHR display,
134
const VkDisplayPowerInfoEXT *display_power_info);
135
136
VkResult
137
wsi_register_device_event(VkDevice device,
138
struct wsi_device *wsi_device,
139
const VkDeviceEventInfoEXT *device_event_info,
140
const VkAllocationCallbacks *allocator,
141
struct wsi_fence **fence,
142
int sync_fd);
143
144
VkResult
145
wsi_register_display_event(VkDevice device,
146
struct wsi_device *wsi_device,
147
VkDisplayKHR display,
148
const VkDisplayEventInfoEXT *display_event_info,
149
const VkAllocationCallbacks *allocator,
150
struct wsi_fence **fence,
151
int sync_fd);
152
153
VkResult
154
wsi_get_swapchain_counter(VkDevice device,
155
struct wsi_device *wsi_device,
156
VkSwapchainKHR swapchain,
157
VkSurfaceCounterFlagBitsEXT flag_bits,
158
uint64_t *value);
159
160
/* VK_EXT_acquire_drm_display */
161
VkResult
162
wsi_acquire_drm_display(VkPhysicalDevice pDevice,
163
struct wsi_device *wsi_device,
164
int drmFd,
165
VkDisplayKHR display);
166
167
VkResult
168
wsi_get_drm_display(VkPhysicalDevice pDevice,
169
struct wsi_device *wsi_device,
170
int drmFd,
171
int connectorId,
172
VkDisplayKHR *display);
173
174
#endif
175
176