19#ifndef __WINE_WINED3D_VK_H
20#define __WINE_WINED3D_VK_H
25#define VK_NO_PROTOTYPES
33#define VK_INSTANCE_FUNCS() \
34 VK_INSTANCE_PFN(vkCreateDevice) \
35 VK_INSTANCE_PFN(vkDestroyInstance) \
36 VK_INSTANCE_PFN(vkEnumerateDeviceExtensionProperties) \
37 VK_INSTANCE_PFN(vkEnumerateDeviceLayerProperties) \
38 VK_INSTANCE_PFN(vkEnumeratePhysicalDevices) \
39 VK_INSTANCE_PFN(vkGetDeviceProcAddr) \
40 VK_INSTANCE_PFN(vkGetPhysicalDeviceFeatures) \
41 VK_INSTANCE_PFN(vkGetPhysicalDeviceFormatProperties) \
42 VK_INSTANCE_PFN(vkGetPhysicalDeviceImageFormatProperties) \
43 VK_INSTANCE_PFN(vkGetPhysicalDeviceMemoryProperties) \
44 VK_INSTANCE_PFN(vkGetPhysicalDeviceProperties) \
45 VK_INSTANCE_PFN(vkGetPhysicalDeviceQueueFamilyProperties) \
46 VK_INSTANCE_PFN(vkGetPhysicalDeviceSparseImageFormatProperties) \
48 VK_INSTANCE_EXT_PFN(vkGetPhysicalDeviceFeatures2) \
49 VK_INSTANCE_EXT_PFN(vkGetPhysicalDeviceProperties2) \
51 VK_INSTANCE_PFN(vkDestroySurfaceKHR) \
52 VK_INSTANCE_PFN(vkGetPhysicalDeviceSurfaceCapabilitiesKHR) \
53 VK_INSTANCE_PFN(vkGetPhysicalDeviceSurfaceFormatsKHR) \
54 VK_INSTANCE_PFN(vkGetPhysicalDeviceSurfacePresentModesKHR) \
55 VK_INSTANCE_PFN(vkGetPhysicalDeviceSurfaceSupportKHR) \
57 VK_INSTANCE_PFN(vkCreateWin32SurfaceKHR) \
59 VK_INSTANCE_EXT_PFN(vkResetQueryPoolEXT)
61#define VK_DEVICE_FUNCS() \
62 VK_DEVICE_PFN(vkAllocateCommandBuffers) \
63 VK_DEVICE_PFN(vkAllocateDescriptorSets) \
64 VK_DEVICE_PFN(vkAllocateMemory) \
65 VK_DEVICE_PFN(vkBeginCommandBuffer) \
66 VK_DEVICE_PFN(vkBindBufferMemory) \
67 VK_DEVICE_PFN(vkBindImageMemory) \
68 VK_DEVICE_PFN(vkCmdBeginQuery) \
69 VK_DEVICE_PFN(vkCmdBeginRenderPass) \
70 VK_DEVICE_PFN(vkCmdBindDescriptorSets) \
71 VK_DEVICE_PFN(vkCmdBindIndexBuffer) \
72 VK_DEVICE_PFN(vkCmdBindPipeline) \
73 VK_DEVICE_PFN(vkCmdBindVertexBuffers) \
74 VK_DEVICE_PFN(vkCmdBlitImage) \
75 VK_DEVICE_PFN(vkCmdClearAttachments) \
76 VK_DEVICE_PFN(vkCmdClearColorImage) \
77 VK_DEVICE_PFN(vkCmdClearDepthStencilImage) \
78 VK_DEVICE_PFN(vkCmdCopyBuffer) \
79 VK_DEVICE_PFN(vkCmdCopyBufferToImage) \
80 VK_DEVICE_PFN(vkCmdCopyImage) \
81 VK_DEVICE_PFN(vkCmdCopyImageToBuffer) \
82 VK_DEVICE_PFN(vkCmdCopyQueryPoolResults) \
83 VK_DEVICE_PFN(vkCmdDispatch) \
84 VK_DEVICE_PFN(vkCmdDispatchIndirect) \
85 VK_DEVICE_PFN(vkCmdDraw) \
86 VK_DEVICE_PFN(vkCmdDrawIndexed) \
87 VK_DEVICE_PFN(vkCmdDrawIndexedIndirect) \
88 VK_DEVICE_PFN(vkCmdDrawIndirect) \
89 VK_DEVICE_PFN(vkCmdEndQuery) \
90 VK_DEVICE_PFN(vkCmdEndRenderPass) \
91 VK_DEVICE_PFN(vkCmdExecuteCommands) \
92 VK_DEVICE_PFN(vkCmdFillBuffer) \
93 VK_DEVICE_PFN(vkCmdNextSubpass) \
94 VK_DEVICE_PFN(vkCmdPipelineBarrier) \
95 VK_DEVICE_PFN(vkCmdPushConstants) \
96 VK_DEVICE_PFN(vkCmdResetEvent) \
97 VK_DEVICE_PFN(vkCmdResetQueryPool) \
98 VK_DEVICE_PFN(vkCmdResolveImage) \
99 VK_DEVICE_PFN(vkCmdSetBlendConstants) \
100 VK_DEVICE_PFN(vkCmdSetDepthBias) \
101 VK_DEVICE_PFN(vkCmdSetDepthBounds) \
102 VK_DEVICE_PFN(vkCmdSetEvent) \
103 VK_DEVICE_PFN(vkCmdSetLineWidth) \
104 VK_DEVICE_PFN(vkCmdSetScissor) \
105 VK_DEVICE_PFN(vkCmdSetStencilCompareMask) \
106 VK_DEVICE_PFN(vkCmdSetStencilReference) \
107 VK_DEVICE_PFN(vkCmdSetStencilWriteMask) \
108 VK_DEVICE_PFN(vkCmdSetViewport) \
109 VK_DEVICE_PFN(vkCmdUpdateBuffer) \
110 VK_DEVICE_PFN(vkCmdWaitEvents) \
111 VK_DEVICE_PFN(vkCmdWriteTimestamp) \
112 VK_DEVICE_PFN(vkCreateBuffer) \
113 VK_DEVICE_PFN(vkCreateBufferView) \
114 VK_DEVICE_PFN(vkCreateCommandPool) \
115 VK_DEVICE_PFN(vkCreateComputePipelines) \
116 VK_DEVICE_PFN(vkCreateDescriptorPool) \
117 VK_DEVICE_PFN(vkCreateDescriptorSetLayout) \
118 VK_DEVICE_PFN(vkCreateEvent) \
119 VK_DEVICE_PFN(vkCreateFence) \
120 VK_DEVICE_PFN(vkCreateFramebuffer) \
121 VK_DEVICE_PFN(vkCreateGraphicsPipelines) \
122 VK_DEVICE_PFN(vkCreateImage) \
123 VK_DEVICE_PFN(vkCreateImageView) \
124 VK_DEVICE_PFN(vkCreatePipelineCache) \
125 VK_DEVICE_PFN(vkCreatePipelineLayout) \
126 VK_DEVICE_PFN(vkCreateQueryPool) \
127 VK_DEVICE_PFN(vkCreateRenderPass) \
128 VK_DEVICE_PFN(vkCreateSampler) \
129 VK_DEVICE_PFN(vkCreateSemaphore) \
130 VK_DEVICE_PFN(vkCreateShaderModule) \
131 VK_DEVICE_PFN(vkDestroyBuffer) \
132 VK_DEVICE_PFN(vkDestroyBufferView) \
133 VK_DEVICE_PFN(vkDestroyCommandPool) \
134 VK_DEVICE_PFN(vkDestroyDescriptorPool) \
135 VK_DEVICE_PFN(vkDestroyDescriptorSetLayout) \
136 VK_DEVICE_PFN(vkDestroyDevice) \
137 VK_DEVICE_PFN(vkDestroyEvent) \
138 VK_DEVICE_PFN(vkDestroyFence) \
139 VK_DEVICE_PFN(vkDestroyFramebuffer) \
140 VK_DEVICE_PFN(vkDestroyImage) \
141 VK_DEVICE_PFN(vkDestroyImageView) \
142 VK_DEVICE_PFN(vkDestroyPipeline) \
143 VK_DEVICE_PFN(vkDestroyPipelineCache) \
144 VK_DEVICE_PFN(vkDestroyPipelineLayout) \
145 VK_DEVICE_PFN(vkDestroyQueryPool) \
146 VK_DEVICE_PFN(vkDestroyRenderPass) \
147 VK_DEVICE_PFN(vkDestroySampler) \
148 VK_DEVICE_PFN(vkDestroySemaphore) \
149 VK_DEVICE_PFN(vkDestroyShaderModule) \
150 VK_DEVICE_PFN(vkDeviceWaitIdle) \
151 VK_DEVICE_PFN(vkEndCommandBuffer) \
152 VK_DEVICE_PFN(vkFlushMappedMemoryRanges) \
153 VK_DEVICE_PFN(vkFreeCommandBuffers) \
154 VK_DEVICE_PFN(vkFreeDescriptorSets) \
155 VK_DEVICE_PFN(vkFreeMemory) \
156 VK_DEVICE_PFN(vkGetBufferMemoryRequirements) \
157 VK_DEVICE_PFN(vkGetDeviceMemoryCommitment) \
158 VK_DEVICE_PFN(vkGetDeviceQueue) \
159 VK_DEVICE_PFN(vkGetEventStatus) \
160 VK_DEVICE_PFN(vkGetFenceStatus) \
161 VK_DEVICE_PFN(vkGetImageMemoryRequirements) \
162 VK_DEVICE_PFN(vkGetImageSparseMemoryRequirements) \
163 VK_DEVICE_PFN(vkGetImageSubresourceLayout) \
164 VK_DEVICE_PFN(vkGetPipelineCacheData) \
165 VK_DEVICE_PFN(vkGetQueryPoolResults) \
166 VK_DEVICE_PFN(vkGetRenderAreaGranularity) \
167 VK_DEVICE_PFN(vkInvalidateMappedMemoryRanges) \
168 VK_DEVICE_PFN(vkMapMemory) \
169 VK_DEVICE_PFN(vkMergePipelineCaches) \
170 VK_DEVICE_PFN(vkQueueBindSparse) \
171 VK_DEVICE_PFN(vkQueueSubmit) \
172 VK_DEVICE_PFN(vkQueueWaitIdle) \
173 VK_DEVICE_PFN(vkResetCommandBuffer) \
174 VK_DEVICE_PFN(vkResetCommandPool) \
175 VK_DEVICE_PFN(vkResetDescriptorPool) \
176 VK_DEVICE_PFN(vkResetEvent) \
177 VK_DEVICE_PFN(vkResetFences) \
178 VK_DEVICE_PFN(vkSetEvent) \
179 VK_DEVICE_PFN(vkUnmapMemory) \
180 VK_DEVICE_PFN(vkUpdateDescriptorSets) \
181 VK_DEVICE_PFN(vkWaitForFences) \
183 VK_DEVICE_EXT_PFN(vkCmdSetDepthCompareOpEXT) \
184 VK_DEVICE_EXT_PFN(vkCmdSetDepthTestEnableEXT) \
185 VK_DEVICE_EXT_PFN(vkCmdSetDepthWriteEnableEXT) \
186 VK_DEVICE_EXT_PFN(vkCmdSetPrimitiveTopologyEXT) \
187 VK_DEVICE_EXT_PFN(vkCmdSetStencilOpEXT) \
188 VK_DEVICE_EXT_PFN(vkCmdSetStencilTestEnableEXT) \
190 VK_DEVICE_EXT_PFN(vkCmdSetPatchControlPointsEXT) \
191 VK_DEVICE_EXT_PFN(vkCmdSetPrimitiveRestartEnableEXT) \
193 VK_DEVICE_EXT_PFN(vkCmdSetAlphaToCoverageEnableEXT) \
194 VK_DEVICE_EXT_PFN(vkCmdSetColorBlendEnableEXT) \
195 VK_DEVICE_EXT_PFN(vkCmdSetColorBlendEquationEXT) \
196 VK_DEVICE_EXT_PFN(vkCmdSetColorWriteMaskEXT) \
197 VK_DEVICE_EXT_PFN(vkCmdSetCullModeEXT) \
198 VK_DEVICE_EXT_PFN(vkCmdSetDepthBiasEnableEXT) \
199 VK_DEVICE_EXT_PFN(vkCmdSetDepthClampEnableEXT) \
200 VK_DEVICE_EXT_PFN(vkCmdSetFrontFaceEXT) \
201 VK_DEVICE_EXT_PFN(vkCmdSetRasterizationSamplesEXT) \
202 VK_DEVICE_EXT_PFN(vkCmdSetRasterizerDiscardEnableEXT) \
203 VK_DEVICE_EXT_PFN(vkCmdSetSampleMaskEXT) \
205 VK_DEVICE_EXT_PFN(vkCmdBeginQueryIndexedEXT) \
206 VK_DEVICE_EXT_PFN(vkCmdBeginTransformFeedbackEXT) \
207 VK_DEVICE_EXT_PFN(vkCmdBindTransformFeedbackBuffersEXT) \
208 VK_DEVICE_EXT_PFN(vkCmdEndQueryIndexedEXT) \
209 VK_DEVICE_EXT_PFN(vkCmdEndTransformFeedbackEXT) \
211 VK_DEVICE_PFN(vkAcquireNextImageKHR) \
212 VK_DEVICE_PFN(vkCreateSwapchainKHR) \
213 VK_DEVICE_PFN(vkDestroySwapchainKHR) \
214 VK_DEVICE_PFN(vkGetSwapchainImagesKHR) \
215 VK_DEVICE_PFN(vkQueuePresentKHR)
217#define DECLARE_VK_PFN(name) PFN_##name name;
221#define VK_INSTANCE_PFN DECLARE_VK_PFN
222#define VK_INSTANCE_EXT_PFN DECLARE_VK_PFN
223#define VK_DEVICE_PFN DECLARE_VK_PFN
224#define VK_DEVICE_EXT_PFN DECLARE_VK_PFN
227#undef VK_INSTANCE_PFN
228#undef VK_INSTANCE_EXT_PFN
230#undef VK_DEVICE_EXT_PFN
272#define VK_CALL(f) (vk_info->vk_ops.f)
389#define WINED3D_QUERY_VK_FLAG_ACTIVE 0x00000001
390#define WINED3D_QUERY_VK_FLAG_STARTED 0x00000002
391#define WINED3D_QUERY_VK_FLAG_RENDER_PASS 0x00000004
484#define WINED3D_FB_ATTACHMENT_FLAG_DISCARDED 1
485#define WINED3D_FB_ATTACHMENT_FLAG_CLEAR_C 2
486#define WINED3D_FB_ATTACHMENT_FLAG_CLEAR_S 4
487#define WINED3D_FB_ATTACHMENT_FLAG_CLEAR_Z 8
680 unsigned int sample_count,
unsigned int mip_levels,
unsigned int layer_count,
unsigned int flags,
689 VkBufferView vk_view,
uint64_t command_buffer_id);
693 VkImage vk_image,
uint64_t command_buffer_id);
695 VkImageView vk_view,
uint64_t command_buffer_id);
697 VkDeviceMemory vk_memory,
uint64_t command_buffer_id);
699 VkSampler vk_sampler,
uint64_t command_buffer_id);
701 VkEvent vk_event,
uint64_t command_buffer_id);
718 unsigned int wait_semaphore_count,
const VkSemaphore *wait_semaphores,
const VkPipelineStageFlags *wait_stages,
719 unsigned int signal_semaphore_count,
const VkSemaphore *signal_semaphores);
struct wined3d_texture *__cdecl wined3d_texture_from_resource(struct wined3d_resource *resource)
static void depth_stencil(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
GLint GLint GLsizei GLsizei GLsizei depth
GLuint GLuint GLsizei count
GLint GLint GLsizei GLsizei height
GLuint GLuint GLsizei GLenum type
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLint GLint GLsizei width
GLdouble GLdouble GLdouble GLdouble q
GLboolean GLboolean GLboolean b
GLuint GLint GLboolean GLint GLenum access
GLenum GLenum GLenum GLenum mapping
GLboolean GLboolean GLboolean GLboolean a
GLsizeiptr const GLvoid GLenum usage
D3D11_SHADER_VARIABLE_DESC desc
PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr
PFN_vkCreateInstance vkCreateInstance
unsigned int device_extension_count
VkPhysicalDeviceMemoryProperties memory_properties
const char ** device_extensions
struct wined3d_vk_info vk_info
VkPhysicalDevice physical_device
VkPhysicalDeviceLimits device_limits
VkMemoryPropertyFlags memory_type
struct wined3d_bo_slab_vk * next
VkMemoryPropertyFlags requested_memory_type
struct wine_rb_entry entry
struct wined3d_allocator_block * memory
uint64_t command_buffer_id
VkMemoryPropertyFlags memory_type
struct wined3d_bo_slab_vk * slab
VkDescriptorBufferInfo buffer_info
VkCommandBuffer vk_command_buffer
VkDescriptorPool * vk_descriptor_pools
struct list active_queries
struct wined3d_graphics_pipeline_key_vk pipeline_key_vk
VkDeviceSize retired_bo_size
VkPipelineLayout vk_pipeline_layout
struct list completed_query_pools
VkSampleCountFlagBits sample_count
VkDeviceSize vk_so_offsets[WINED3D_MAX_STREAM_OUTPUT_BUFFERS]
struct wined3d_command_buffer_vk current_command_buffer
VkDescriptorSetLayout vk_set_layout
struct wined3d_bo_vk vk_so_counter_bo
VkDynamicState dynamic_states[27]
uint64_t completed_command_buffer_id
struct wined3d_context_vk::@363 compute
struct list free_occlusion_query_pools
struct wined3d_retired_objects_vk retired
struct wine_rb_tree bo_slab_available
struct wined3d_context_vk::@362 graphics
const struct wined3d_vk_info * vk_info
SIZE_T vk_descriptor_pools_size
uint32_t update_compute_pipeline
struct list free_stream_output_statistics_query_pools
unsigned int command_buffer_work_count
struct wine_rb_tree pipeline_layouts
SIZE_T vk_descriptor_pool_count
struct list free_pipeline_statistics_query_pools
struct wined3d_command_buffer_vk * buffers
VkCommandPool vk_command_pool
VkBuffer vk_so_counters[WINED3D_MAX_STREAM_OUTPUT_BUFFERS]
struct wined3d_shader_resource_bindings bindings
VkRenderPass vk_render_pass
VkFramebuffer vk_framebuffer
struct wined3d_context_vk::@364 submitted
struct wine_rb_tree render_passes
VkShaderModule vk_modules[WINED3D_SHADER_TYPE_GRAPHICS_COUNT]
struct wined3d_context_vk::@364 completed
uint32_t update_stream_output
struct list render_pass_queries
struct wine_rb_tree graphics_pipelines
struct list free_timestamp_query_pools
CRITICAL_SECTION allocator_cs
uint32_t vk_queue_family_index
struct wined3d_vk_info vk_info
struct wined3d_context_vk context_vk
struct wined3d_uav_clear_state_vk uav_clear_state
struct wined3d_null_resources_vk null_resources_vk
struct wined3d_null_views_vk null_views_vk
VkVertexInputBindingDivisorDescriptionEXT divisors[MAX_ATTRIBS]
VkPipelineVertexInputDivisorStateCreateInfoEXT divisor_desc
VkPipelineColorBlendStateCreateInfo blend_desc
VkPipelineColorBlendAttachmentState blend_attachments[WINED3D_MAX_RENDER_TARGETS]
VkPipelineRasterizationStateCreateInfo rs_desc
VkVertexInputBindingDescription bindings[MAX_ATTRIBS]
VkPipelineDepthStencilStateCreateInfo ds_desc
VkGraphicsPipelineCreateInfo pipeline_desc
VkPipelineDynamicStateCreateInfo dynamic_desc
VkPipelineVertexInputStateCreateInfo input_desc
VkPipelineInputAssemblyStateCreateInfo ia_desc
VkPipelineViewportStateCreateInfo vp_desc
VkPipelineMultisampleStateCreateInfo ms_desc
VkPipelineTessellationStateCreateInfo ts_desc
VkVertexInputAttributeDescription attributes[MAX_ATTRIBS]
struct wine_rb_entry entry
struct wined3d_allocator_block * memory
uint64_t command_buffer_id
struct wined3d_image_vk image_2d
struct wined3d_image_vk image_1d
struct wined3d_image_vk image_3d
struct wined3d_image_vk image_2dms
VkDescriptorBufferInfo buffer_info
VkDescriptorImageInfo vk_info_3d
VkBufferView vk_view_buffer_uint
VkDescriptorImageInfo vk_info_1d_array
VkDescriptorImageInfo vk_info_2d_array
VkDescriptorImageInfo vk_info_cube
VkBufferView vk_view_buffer_float
VkDescriptorImageInfo vk_info_2d
VkDescriptorImageInfo vk_info_2dms_array
VkDescriptorImageInfo vk_info_1d
VkDescriptorImageInfo vk_info_2dms
VkDescriptorImageInfo vk_info_cube_array
VkDescriptorSetLayoutBinding * bindings
VkDescriptorSetLayout vk_set_layout
VkPipelineLayout vk_pipeline_layout
struct wine_rb_entry entry
struct wined3d_query_pool_vk * pool_vk
uint32_t allocated[WINED3D_BITMAP_SIZE(WINED3D_QUERY_POOL_SIZE)]
uint32_t completed[WINED3D_BITMAP_SIZE(WINED3D_QUERY_POOL_SIZE)]
struct list completed_entry
VkQueryPool vk_query_pool
struct wined3d_query_pool_idx_vk * pending
struct wined3d_query_pool_idx_vk pool_idx
uint64_t command_buffer_id
VkSampleCountFlagBits vk_samples
struct wined3d_render_pass_attachment_vk ds
struct wined3d_render_pass_attachment_vk rt[WINED3D_MAX_RENDER_TARGETS]
VkRenderPass vk_render_pass
struct wine_rb_entry entry
uint64_t command_buffer_id
struct wined3d_rendertarget_view v
VkImageView vk_image_view
struct wined3d_query_pool_vk * pool_vk
enum wined3d_retired_object_type_vk type
struct wined3d_retired_object_vk::@359::@360 slice
VkImageView vk_image_view
VkBufferView vk_buffer_view
VkFramebuffer vk_framebuffer
uint64_t command_buffer_id
union wined3d_retired_object_vk::@359 u
struct wined3d_allocator_block * block
struct wined3d_bo_slab_vk * slab
VkDescriptorPool vk_descriptor_pool
struct wined3d_retired_object_vk::@359::@361 queries
struct wined3d_retired_object_vk * next
struct wined3d_retired_object_vk * objects
struct wined3d_retired_object_vk * free
VkDescriptorImageInfo vk_image_info
uint64_t command_buffer_id
VkWriteDescriptorSet * writes
enum wined3d_data_type resource_data_type
enum wined3d_shader_descriptor_type shader_descriptor_type
enum wined3d_shader_resource_type resource_type
enum wined3d_shader_type shader_type
struct wined3d_shader_resource_binding * bindings
struct wined3d_view_vk view_vk
struct wined3d_shader_resource_view v
uint64_t command_buffer_id
VkSwapchainKHR vk_swapchain
struct wined3d_swapchain_vk::@366 * vk_semaphores
struct wined3d_image_vk image
VkDescriptorImageInfo default_image_info
enum VkImageLayout layout
VkPipeline image_1d_array
VkPipeline image_2d_array
struct wined3d_pipeline_layout_vk * buffer_layout
struct wined3d_shader_thread_group_size image_1d_array_group_size
struct wined3d_shader_thread_group_size buffer_group_size
struct wined3d_uav_clear_pipelines_vk float_pipelines
struct wined3d_pipeline_layout_vk * image_layout
struct wined3d_uav_clear_pipelines_vk uint_pipelines
struct wined3d_shader_thread_group_size image_1d_group_size
struct wined3d_shader_thread_group_size image_2d_group_size
struct wined3d_shader_thread_group_size image_3d_group_size
struct wined3d_shader_thread_group_size image_2d_array_group_size
VkBufferView vk_counter_view
struct wined3d_bo_vk counter_bo
struct wined3d_unordered_access_view v
struct wined3d_view_vk view_vk
struct wined3d_bo_user bo_user
VkBufferView vk_buffer_view
VkDescriptorImageInfo vk_image_info
union wined3d_view_vk::@365 u
uint64_t command_buffer_id
bool dynamic_patch_vertex_count
bool dynamic_multisample_state
BOOL supported[WINED3D_VK_EXT_COUNT]
bool dynamic_rasterizer_state
#define CONTAINING_RECORD(address, type, field)
VkFlags VkMemoryPropertyFlags
VkFlags VkPipelineStageFlags
VkFlags VkImageAspectFlags
VkFlags VkImageUsageFlags
PFN_vkVoidFunction(VKAPI_PTR * PFN_vkGetInstanceProcAddr)(VkInstance, const char *)
@ VK_IMAGE_ASPECT_COLOR_BIT
@ VK_IMAGE_ASPECT_STENCIL_BIT
@ VK_IMAGE_ASPECT_DEPTH_BIT
VkResult(VKAPI_PTR * PFN_vkCreateInstance)(const VkInstanceCreateInfo *, const VkAllocationCallbacks *, VkInstance *)
VkFlags VkBufferUsageFlags
@ VK_ACCESS_HOST_READ_BIT
@ VK_ACCESS_MEMORY_READ_BIT
@ VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT
@ VK_ACCESS_INPUT_ATTACHMENT_READ_BIT
@ VK_ACCESS_INDIRECT_COMMAND_READ_BIT
@ VK_ACCESS_TRANSFER_READ_BIT
@ VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT
@ VK_ACCESS_SHADER_READ_BIT
@ VK_ACCESS_UNIFORM_READ_BIT
@ VK_ACCESS_INDEX_READ_BIT
@ VK_ACCESS_COLOR_ATTACHMENT_READ_BIT
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
#define WINED3D_MAX_STREAM_OUTPUT_BUFFERS
#define WINED3D_MAX_RENDER_TARGETS
@ WINED3D_SHADER_TYPE_GRAPHICS_COUNT
#define WINED3D_BITMAP_SIZE(x)
#define WINED3D_QUERY_POOL_SIZE
wined3d_shader_resource_type
static struct wined3d_texture * texture_from_resource(struct wined3d_resource *resource)
static struct wined3d_buffer * buffer_from_resource(struct wined3d_resource *resource)
struct wined3d_pipeline_layout_vk * wined3d_context_vk_get_pipeline_layout(struct wined3d_context_vk *context_vk, VkDescriptorSetLayoutBinding *bindings, SIZE_T binding_count)
VkRenderPass wined3d_context_vk_get_render_pass(struct wined3d_context_vk *context_vk, const struct wined3d_fb_state *fb, unsigned int rt_count, bool depth_stencil, uint32_t clear_flags)
static void wined3d_context_vk_reference_sampler(const struct wined3d_context_vk *context_vk, struct wined3d_sampler_vk *sampler_vk)
void wined3d_context_vk_destroy_vk_memory(struct wined3d_context_vk *context_vk, VkDeviceMemory vk_memory, uint64_t command_buffer_id)
VkPipelineStageFlags vk_pipeline_stage_mask_from_bind_flags(uint32_t bind_flags)
VkImageViewType vk_image_view_type_from_wined3d(enum wined3d_resource_type type, uint32_t flags)
void wined3d_query_vk_resume(struct wined3d_query_vk *query_vk, struct wined3d_context_vk *context_vk)
static void wined3d_unordered_access_view_vk_barrier(struct wined3d_unordered_access_view_vk *uav_vk, struct wined3d_context_vk *context_vk, uint32_t bind_mask)
static void wined3d_context_vk_reference_image(const struct wined3d_context_vk *context_vk, struct wined3d_image_vk *image)
static void wined3d_device_vk_allocator_unlock(struct wined3d_device_vk *device_vk)
static void wined3d_context_vk_reference_query(const struct wined3d_context_vk *context_vk, struct wined3d_query_vk *query_vk)
const VkDescriptorBufferInfo * wined3d_buffer_vk_get_buffer_info(struct wined3d_buffer_vk *buffer_vk)
static VkImageAspectFlags vk_aspect_mask_from_format(const struct wined3d_format *format)
void wined3d_unordered_access_view_vk_update(struct wined3d_unordered_access_view_vk *view_vk, struct wined3d_context_vk *context_vk)
VkAccessFlags vk_access_mask_from_buffer_usage(VkBufferUsageFlags usage)
VkAccessFlags vk_access_mask_from_bind_flags(uint32_t bind_flags)
HRESULT wined3d_rendertarget_view_vk_init(struct wined3d_rendertarget_view_vk *view_vk, const struct wined3d_view_desc *desc, struct wined3d_resource *resource, void *parent, const struct wined3d_parent_ops *parent_ops)
HRESULT wined3d_shader_resource_view_vk_init(struct wined3d_shader_resource_view_vk *view_vk, const struct wined3d_view_desc *desc, struct wined3d_resource *resource, void *parent, const struct wined3d_parent_ops *parent_ops)
VkCommandBuffer wined3d_context_vk_apply_compute_state(struct wined3d_context_vk *context_vk, const struct wined3d_state *state, struct wined3d_buffer_vk *indirect_vk)
void wined3d_shader_resource_view_vk_update_layout(struct wined3d_shader_resource_view_vk *srv_vk, VkImageLayout layout)
void wined3d_context_vk_destroy_vk_framebuffer(struct wined3d_context_vk *context_vk, VkFramebuffer vk_framebuffer, uint64_t command_buffer_id)
void wined3d_shader_resource_view_vk_update_buffer(struct wined3d_shader_resource_view_vk *view_vk, struct wined3d_context_vk *context_vk)
unsigned int wined3d_adapter_vk_get_memory_type_index(const struct wined3d_adapter_vk *adapter_vk, uint32_t memory_type_mask, VkMemoryPropertyFlags flags)
VkMemoryPropertyFlags vk_memory_type_from_access_flags(uint32_t access, uint32_t usage)
void wined3d_vk_swizzle_from_color_fixup(VkComponentMapping *mapping, struct color_fixup_desc fixup)
bool wined3d_query_pool_vk_init(struct wined3d_query_pool_vk *pool_vk, struct wined3d_context_vk *context_vk, enum wined3d_query_type type, struct list *free_pools)
BOOL wined3d_context_vk_create_bo(struct wined3d_context_vk *context_vk, VkDeviceSize size, VkBufferUsageFlags usage, VkMemoryPropertyFlags memory_type, struct wined3d_bo_vk *bo)
BOOL wined3d_adapter_vk_init_format_info(struct wined3d_adapter_vk *adapter_vk, const struct wined3d_vk_info *vk_info)
void wined3d_context_vk_destroy_vk_buffer_view(struct wined3d_context_vk *context_vk, VkBufferView vk_view, uint64_t command_buffer_id)
bool wined3d_device_vk_create_null_resources(struct wined3d_device_vk *device_vk, struct wined3d_context_vk *context_vk)
void wined3d_context_vk_end_current_render_pass(struct wined3d_context_vk *context_vk)
VkShaderStageFlagBits vk_shader_stage_from_wined3d(enum wined3d_shader_type shader_type)
void wined3d_device_vk_uav_clear_state_init(struct wined3d_device_vk *device_vk)
void wined3d_shader_resource_view_vk_generate_mipmap(struct wined3d_shader_resource_view_vk *srv_vk, struct wined3d_context_vk *context_vk)
void wined3d_query_vk_suspend(struct wined3d_query_vk *query_vk, struct wined3d_context_vk *context_vk)
static void wined3d_context_vk_reference_unordered_access_view(const struct wined3d_context_vk *context_vk, struct wined3d_unordered_access_view_vk *uav_vk)
void wined3d_context_vk_destroy_image(struct wined3d_context_vk *context_vk, struct wined3d_image_vk *image_vk)
void * wined3d_bo_slab_vk_map(struct wined3d_bo_slab_vk *slab_vk, struct wined3d_context_vk *context_vk)
VkDescriptorSet wined3d_context_vk_create_vk_descriptor_set(struct wined3d_context_vk *context_vk, VkDescriptorSetLayout vk_set_layout)
void wined3d_bo_slab_vk_unmap(struct wined3d_bo_slab_vk *slab_vk, struct wined3d_context_vk *context_vk)
wined3d_retired_object_type_vk
@ WINED3D_RETIRED_QUERY_POOL_VK
@ WINED3D_RETIRED_SAMPLER_VK
@ WINED3D_RETIRED_DESCRIPTOR_POOL_VK
@ WINED3D_RETIRED_ALLOCATOR_BLOCK_VK
@ WINED3D_RETIRED_EVENT_VK
@ WINED3D_RETIRED_BUFFER_VK
@ WINED3D_RETIRED_IMAGE_VIEW_VK
@ WINED3D_RETIRED_MEMORY_VK
@ WINED3D_RETIRED_FRAMEBUFFER_VK
@ WINED3D_RETIRED_IMAGE_VK
@ WINED3D_RETIRED_BUFFER_VIEW_VK
@ WINED3D_RETIRED_BO_SLAB_SLICE_VK
@ WINED3D_RETIRED_PIPELINE_VK
@ WINED3D_RETIRED_FREE_VK
const char * wined3d_debug_vkresult(VkResult vr)
void wined3d_context_vk_destroy_vk_image_view(struct wined3d_context_vk *context_vk, VkImageView vk_view, uint64_t command_buffer_id)
HRESULT wined3d_swapchain_vk_init(struct wined3d_swapchain_vk *swapchain_vk, struct wined3d_device *device, const struct wined3d_swapchain_desc *desc, struct wined3d_swapchain_state_parent *state_parent, void *parent, const struct wined3d_parent_ops *parent_ops)
BOOL wined3d_texture_vk_prepare_texture(struct wined3d_texture_vk *texture_vk, struct wined3d_context_vk *context_vk)
static const VkAccessFlags WINED3D_READ_ONLY_ACCESS_FLAGS
static void wined3d_context_vk_reference_texture(const struct wined3d_context_vk *context_vk, struct wined3d_texture_vk *texture_vk)
void wined3d_context_vk_destroy_vk_sampler(struct wined3d_context_vk *context_vk, VkSampler vk_sampler, uint64_t command_buffer_id)
wined3d_shader_descriptor_type
@ WINED3D_SHADER_DESCRIPTOR_TYPE_UAV
@ WINED3D_SHADER_DESCRIPTOR_TYPE_SRV
@ WINED3D_SHADER_DESCRIPTOR_TYPE_UAV_COUNTER
@ WINED3D_SHADER_DESCRIPTOR_TYPE_CBV
@ WINED3D_SHADER_DESCRIPTOR_TYPE_SAMPLER
VkDeviceMemory wined3d_context_vk_allocate_vram_chunk_memory(struct wined3d_context_vk *context_vk, unsigned int pool, size_t size)
void wined3d_context_vk_destroy_vk_image(struct wined3d_context_vk *context_vk, VkImage vk_image, uint64_t command_buffer_id)
void wined3d_swapchain_vk_cleanup(struct wined3d_swapchain_vk *swapchain_vk)
void wined3d_context_vk_destroy_allocator_block(struct wined3d_context_vk *context_vk, struct wined3d_allocator_block *block, uint64_t command_buffer_id)
void * wined3d_allocator_chunk_vk_map(struct wined3d_allocator_chunk_vk *chunk_vk, struct wined3d_context_vk *context_vk)
void wined3d_texture_vk_barrier(struct wined3d_texture_vk *texture_vk, struct wined3d_context_vk *context_vk, uint32_t bind_mask)
void adapter_vk_copy_bo_address(struct wined3d_context *context, const struct wined3d_bo_address *dst, const struct wined3d_bo_address *src, unsigned int range_count, const struct wined3d_range *ranges, uint32_t map_flags)
void wined3d_device_vk_destroy_null_views(struct wined3d_device_vk *device_vk, struct wined3d_context_vk *context_vk)
static void wined3d_context_vk_reference_shader_resource_view(const struct wined3d_context_vk *context_vk, struct wined3d_shader_resource_view_vk *srv_vk)
void wined3d_query_pool_vk_cleanup(struct wined3d_query_pool_vk *pool_vk, struct wined3d_context_vk *context_vk)
VkCommandBuffer wined3d_context_vk_apply_draw_state(struct wined3d_context_vk *context_vk, const struct wined3d_state *state, struct wined3d_buffer_vk *indirect_vk, bool indexed)
void wined3d_device_vk_destroy_null_resources(struct wined3d_device_vk *device_vk, struct wined3d_context_vk *context_vk)
void wined3d_query_pool_vk_mark_free(struct wined3d_context_vk *context_vk, struct wined3d_query_pool_vk *pool_vk, uint32_t start, uint32_t count)
VkPipelineStageFlags vk_pipeline_stage_mask_from_buffer_usage(VkBufferUsageFlags usage)
VkCommandBuffer wined3d_context_vk_get_command_buffer(struct wined3d_context_vk *context_vk)
static void wined3d_shader_resource_view_vk_barrier(struct wined3d_shader_resource_view_vk *srv_vk, struct wined3d_context_vk *context_vk, uint32_t bind_mask)
void wined3d_unordered_access_view_vk_clear(struct wined3d_unordered_access_view_vk *view_vk, const struct wined3d_uvec4 *clear_value, struct wined3d_context_vk *context_vk, bool fp)
static void wined3d_context_vk_reference_rendertarget_view(const struct wined3d_context_vk *context_vk, struct wined3d_rendertarget_view_vk *rtv_vk)
HRESULT wined3d_buffer_vk_init(struct wined3d_buffer_vk *buffer_vk, struct wined3d_device *device, const struct wined3d_buffer_desc *desc, const struct wined3d_sub_resource_data *data, void *parent, const struct wined3d_parent_ops *parent_ops)
HRESULT wined3d_texture_vk_init(struct wined3d_texture_vk *texture_vk, struct wined3d_device *device, const struct wined3d_resource_desc *desc, unsigned int layer_count, unsigned int level_count, uint32_t flags, void *parent, const struct wined3d_parent_ops *parent_ops)
static void wined3d_device_vk_allocator_lock(struct wined3d_device_vk *device_vk)
void wined3d_device_vk_uav_clear_state_cleanup(struct wined3d_device_vk *device_vk)
bool wined3d_device_vk_create_null_views(struct wined3d_device_vk *device_vk, struct wined3d_context_vk *context_vk)
#define VK_DEVICE_FUNCS()
@ WINED3D_VK_KHR_SHADER_DRAW_PARAMETERS
@ WINED3D_VK_EXT_EXTENDED_DYNAMIC_STATE
@ WINED3D_VK_EXT_EXTENDED_DYNAMIC_STATE2
@ WINED3D_VK_EXT_SHADER_STENCIL_EXPORT
@ WINED3D_VK_KHR_MAINTENANCE2
@ WINED3D_VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE
@ WINED3D_VK_EXT_VERTEX_ATTRIBUTE_DIVISOR
@ WINED3D_VK_EXT_HOST_QUERY_RESET
@ WINED3D_VK_EXT_TRANSFORM_FEEDBACK
@ WINED3D_VK_EXT_EXTENDED_DYNAMIC_STATE3
void wined3d_context_vk_destroy_bo(struct wined3d_context_vk *context_vk, const struct wined3d_bo_vk *bo)
const VkDescriptorImageInfo * wined3d_texture_vk_get_default_image_info(struct wined3d_texture_vk *texture_vk, struct wined3d_context_vk *context_vk)
void wined3d_buffer_vk_barrier(struct wined3d_buffer_vk *buffer_vk, struct wined3d_context_vk *context_vk, uint32_t bind_mask)
bool wined3d_query_vk_accumulate_data(struct wined3d_query_vk *query_vk, struct wined3d_device_vk *device_vk, const struct wined3d_query_pool_idx_vk *pool_idx)
static struct wined3d_device_vk * wined3d_device_vk_from_allocator(struct wined3d_allocator *allocator)
BOOL wined3d_context_vk_create_image(struct wined3d_context_vk *context_vk, VkImageType vk_image_type, VkImageUsageFlags usage, VkFormat vk_format, unsigned int width, unsigned int height, unsigned int depth, unsigned int sample_count, unsigned int mip_levels, unsigned int layer_count, unsigned int flags, struct wined3d_image_vk *image)
void wined3d_context_vk_cleanup(struct wined3d_context_vk *context_vk)
void wined3d_context_vk_image_barrier(struct wined3d_context_vk *context_vk, VkCommandBuffer vk_command_buffer, VkPipelineStageFlags src_stage_mask, VkPipelineStageFlags dst_stage_mask, VkAccessFlags src_access_mask, VkAccessFlags dst_access_mask, VkImageLayout old_layout, VkImageLayout new_layout, VkImage image, const VkImageSubresourceRange *range)
static VkImageView wined3d_rendertarget_view_vk_get_image_view(struct wined3d_rendertarget_view_vk *rtv_vk, struct wined3d_context_vk *context_vk)
VkCompareOp vk_compare_op_from_wined3d(enum wined3d_cmp_func op)
static void wined3d_resource_vk_barrier(struct wined3d_resource *resource, struct wined3d_context_vk *context_vk, uint32_t bind_mask)
void wined3d_context_vk_submit_command_buffer(struct wined3d_context_vk *context_vk, unsigned int wait_semaphore_count, const VkSemaphore *wait_semaphores, const VkPipelineStageFlags *wait_stages, unsigned int signal_semaphore_count, const VkSemaphore *signal_semaphores)
void wined3d_sampler_vk_init(struct wined3d_sampler_vk *sampler_vk, struct wined3d_device *device, const struct wined3d_sampler_desc *desc, void *parent, const struct wined3d_parent_ops *parent_ops)
bool wined3d_query_pool_vk_allocate_query(struct wined3d_query_pool_vk *pool_vk, size_t *idx)
static void wined3d_context_vk_reference_bo(const struct wined3d_context_vk *context_vk, struct wined3d_bo_vk *bo)
void wined3d_context_vk_destroy_vk_event(struct wined3d_context_vk *context_vk, VkEvent vk_event, uint64_t command_buffer_id)
void wined3d_format_colour_to_vk(const struct wined3d_format *format, const struct wined3d_color *c, VkClearColorValue *retval)
bool wined3d_context_vk_allocate_query(struct wined3d_context_vk *context_vk, enum wined3d_query_type type, struct wined3d_query_pool_idx_vk *pool_idx)
HRESULT wined3d_query_vk_create(struct wined3d_device *device, enum wined3d_query_type type, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_query **query)
static void wined3d_context_vk_reference_resource(const struct wined3d_context_vk *context_vk, struct wined3d_resource *resource)
void wined3d_allocator_chunk_vk_unmap(struct wined3d_allocator_chunk_vk *chunk_vk, struct wined3d_context_vk *context_vk)
#define VK_INSTANCE_FUNCS()
HRESULT wined3d_unordered_access_view_vk_init(struct wined3d_unordered_access_view_vk *view_vk, const struct wined3d_view_desc *desc, struct wined3d_resource *resource, void *parent, const struct wined3d_parent_ops *parent_ops)
void wined3d_context_vk_wait_command_buffer(struct wined3d_context_vk *context_vk, uint64_t id)
VkBufferUsageFlags vk_buffer_usage_from_bind_flags(uint32_t bind_flags)
static void wined3d_rendertarget_view_vk_barrier(struct wined3d_rendertarget_view_vk *rtv_vk, struct wined3d_context_vk *context_vk, uint32_t bind_mask)
void wined3d_context_vk_destroy_vk_pipeline(struct wined3d_context_vk *context_vk, VkPipeline vk_pipeline, uint64_t command_buffer_id)
void wined3d_texture_vk_make_generic(struct wined3d_texture_vk *texture_vk, struct wined3d_context_vk *context_vk)
HRESULT wined3d_context_vk_init(struct wined3d_context_vk *context_vk, struct wined3d_swapchain *swapchain)
static unsigned int block