ReactOS 0.4.17-dev-923-g4c9a150
wined3d_vk.h
Go to the documentation of this file.
1/*
2 * Copyright 2018 Józef Kucia for CodeWeavers
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19#ifndef __WINE_WINED3D_VK_H
20#define __WINE_WINED3D_VK_H
21
22#include "stdint.h"
23#include "wine/list.h"
24#include "wine/wined3d.h"
25#define VK_NO_PROTOTYPES
26#include "wine/vulkan.h"
27#include "wined3d_private.h"
28
32
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) \
47 /* Vulkan 1.1 */ \
48 VK_INSTANCE_EXT_PFN(vkGetPhysicalDeviceFeatures2) \
49 VK_INSTANCE_EXT_PFN(vkGetPhysicalDeviceProperties2) \
50 /* VK_KHR_surface */ \
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) \
56 /* VK_KHR_win32_surface */ \
57 VK_INSTANCE_PFN(vkCreateWin32SurfaceKHR) \
58 /* VK_EXT_host_query_reset */ \
59 VK_INSTANCE_EXT_PFN(vkResetQueryPoolEXT)
60
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) \
182 /* VK_EXT_extended_dynamic_state */ \
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) \
189 /* VK_EXT_extended_dynamic_state2 */ \
190 VK_DEVICE_EXT_PFN(vkCmdSetPatchControlPointsEXT) \
191 VK_DEVICE_EXT_PFN(vkCmdSetPrimitiveRestartEnableEXT) \
192 /* VK_EXT_extended_dynamic_state3 */ \
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) \
204 /* VK_EXT_transform_feedback */ \
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) \
210 /* VK_KHR_swapchain */ \
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)
216
217#define DECLARE_VK_PFN(name) PFN_##name name;
218
220{
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
229#undef VK_DEVICE_PFN
230#undef VK_DEVICE_EXT_PFN
231
234};
235
237{
239
250
252};
253
255{
257
258 VkInstance instance;
259 unsigned int api_version;
260
263
270};
271
272#define VK_CALL(f) (vk_info->vk_ops.f)
273
279
289void wined3d_format_colour_to_vk(const struct wined3d_format *format, const struct wined3d_color *c,
292const char *wined3d_debug_vkresult(VkResult vr);
293
295{
297
298 if (format->depth_size)
300 if (format->stencil_size)
302 if (!mask || format->red_size || format->green_size || format->blue_size || format->alpha_size)
304
305 return mask;
306}
307
309{
310 struct wined3d_bo b;
311
312 VkBuffer vk_buffer;
315
316 VkDeviceMemory vk_memory;
317
321
324};
325
326static inline struct wined3d_bo_vk *wined3d_bo_vk(struct wined3d_bo *bo)
327{
328 return CONTAINING_RECORD(bo, struct wined3d_bo_vk, b);
329}
330
332{
336};
337
339{
344 unsigned int map_count;
345 void *map_ptr;
347};
348
349void *wined3d_bo_slab_vk_map(struct wined3d_bo_slab_vk *slab_vk,
350 struct wined3d_context_vk *context_vk);
352 struct wined3d_context_vk *context_vk);
353
355{
356 VkImage vk_image;
358 VkDeviceMemory vk_memory;
360};
361
363{
364 struct list entry;
366
368 VkQueryPool vk_query_pool;
369 VkEvent vk_event;
370
373};
374
376void wined3d_query_pool_vk_mark_free(struct wined3d_context_vk *context_vk, struct wined3d_query_pool_vk *pool_vk,
379 struct wined3d_context_vk *context_vk);
380bool wined3d_query_pool_vk_init(struct wined3d_query_pool_vk *pool_vk, struct wined3d_context_vk *context_vk,
381 enum wined3d_query_type type, struct list *free_pools);
382
384{
386 size_t idx;
387};
388
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
392
394{
396
397 struct list entry;
402 VkEvent vk_event;
405};
406
408{
409 return CONTAINING_RECORD(query, struct wined3d_query_vk, q);
410}
411
412bool wined3d_query_vk_accumulate_data(struct wined3d_query_vk *query_vk, struct wined3d_device_vk *device_vk,
413 const struct wined3d_query_pool_idx_vk *pool_idx);
415 const struct wined3d_parent_ops *parent_ops, struct wined3d_query **query);
416void wined3d_query_vk_resume(struct wined3d_query_vk *query_vk, struct wined3d_context_vk *context_vk);
417void wined3d_query_vk_suspend(struct wined3d_query_vk *query_vk, struct wined3d_context_vk *context_vk);
418
420{
422 VkCommandBuffer vk_command_buffer;
423 VkFence vk_fence;
424};
425
427{
442};
443
445{
447 union
448 {
450 VkFramebuffer vk_framebuffer;
451 VkDescriptorPool vk_descriptor_pool;
452 VkDeviceMemory vk_memory;
454 struct
455 {
457 size_t idx;
459 VkBuffer vk_buffer;
460 VkImage vk_image;
461 VkBufferView vk_buffer_view;
462 VkImageView vk_image_view;
463 VkSampler vk_sampler;
464 VkEvent vk_event;
465 VkPipeline vk_pipeline;
466 struct
467 {
472 } u;
474};
475
477{
482};
483
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
488
490{
495};
496
498{
502};
503
505{
508 VkRenderPass vk_render_pass;
509};
510
512{
515};
516
518{
521 VkPipelineLayout vk_pipeline_layout;
522 VkDescriptorSetLayout vk_set_layout;
523};
524
526{
533
544
546};
547
549{
552 VkPipeline vk_pipeline;
553};
554
556{
562};
563
565{
572};
573
575{
578};
579
581{
584};
585
587{
589
591
593
597
598 struct
599 {
602 VkPipeline vk_pipeline;
603 VkPipelineLayout vk_pipeline_layout;
604 VkDescriptorSetLayout vk_set_layout;
607
608 struct
609 {
610 VkPipeline vk_pipeline;
611 VkPipelineLayout vk_pipeline_layout;
612 VkDescriptorSetLayout vk_set_layout;
615
616 VkCommandPool vk_command_pool;
620 /* Number of draw or dispatch calls that have been recorded into the
621 * current command buffer. */
623
624 struct
625 {
630
632
633 VkFramebuffer vk_framebuffer;
634 VkRenderPass vk_render_pass;
635
638 VkDescriptorPool *vk_descriptor_pools;
639
641 unsigned int rt_count;
642
646
654
660};
661
663{
665}
666
668 enum wined3d_query_type type, struct wined3d_query_pool_idx_vk *pool_idx);
670 unsigned int pool, size_t size);
671VkCommandBuffer wined3d_context_vk_apply_compute_state(struct wined3d_context_vk *context_vk,
672 const struct wined3d_state *state, struct wined3d_buffer_vk *indirect_vk);
673VkCommandBuffer wined3d_context_vk_apply_draw_state(struct wined3d_context_vk *context_vk,
674 const struct wined3d_state *state, struct wined3d_buffer_vk *indirect_vk, bool indexed);
675void wined3d_context_vk_cleanup(struct wined3d_context_vk *context_vk);
679 VkImageUsageFlags usage, VkFormat vk_format, unsigned int width, unsigned int height, unsigned int depth,
680 unsigned int sample_count, unsigned int mip_levels, unsigned int layer_count, unsigned int flags,
681 struct wined3d_image_vk *image);
683 struct wined3d_allocator_block *block, uint64_t command_buffer_id);
685 const struct wined3d_bo_vk *bo);
687 struct wined3d_image_vk *image_vk);
689 VkBufferView vk_view, uint64_t command_buffer_id);
691 VkFramebuffer vk_framebuffer, 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);
703 VkPipeline vk_pipeline, uint64_t command_buffer_id);
705VkCommandBuffer wined3d_context_vk_get_command_buffer(struct wined3d_context_vk *context_vk);
707 VkDescriptorSetLayoutBinding *bindings, SIZE_T binding_count);
708VkRenderPass wined3d_context_vk_get_render_pass(struct wined3d_context_vk *context_vk,
709 const struct wined3d_fb_state *fb, unsigned int rt_count,
710 bool depth_stencil, uint32_t clear_flags);
712 VkCommandBuffer vk_command_buffer, VkPipelineStageFlags src_stage_mask, VkPipelineStageFlags dst_stage_mask,
713 VkAccessFlags src_access_mask, VkAccessFlags dst_access_mask, VkImageLayout old_layout,
714 VkImageLayout new_layout, VkImage image, const VkImageSubresourceRange *range);
716 struct wined3d_swapchain *swapchain);
718 unsigned int wait_semaphore_count, const VkSemaphore *wait_semaphores, const VkPipelineStageFlags *wait_stages,
719 unsigned int signal_semaphore_count, const VkSemaphore *signal_semaphores);
721VkDescriptorSet wined3d_context_vk_create_vk_descriptor_set(struct wined3d_context_vk *context_vk,
722 VkDescriptorSetLayout vk_set_layout);
723
725{
727
730 const char **device_extensions;
731 VkPhysicalDevice physical_device;
732
735};
736
738{
740}
741
743 const struct wined3d_bo_address *src,
744 unsigned int range_count, const struct wined3d_range *ranges, uint32_t map_flags);
745unsigned int wined3d_adapter_vk_get_memory_type_index(const struct wined3d_adapter_vk *adapter_vk,
746 uint32_t memory_type_mask, VkMemoryPropertyFlags flags);
748 const struct wined3d_vk_info *vk_info);
749
751{
754
759};
760
762{
765
775};
776
778{
780 VkDeviceMemory vk_memory;
781};
782
784{
786}
787
789 struct wined3d_context_vk *context_vk);
791 struct wined3d_context_vk *context_vk);
792
794{
795 VkPipeline buffer;
796 VkPipeline image_1d;
797 VkPipeline image_1d_array;
798 VkPipeline image_2d;
799 VkPipeline image_2d_array;
800 VkPipeline image_3d;
801};
802
804{
807
814
817};
818
820{
822
824
825 VkDevice vk_device;
826 VkQueue vk_queue;
829
831
834
837
839};
840
842{
844}
845
847{
849}
850
851static inline void wined3d_device_vk_allocator_lock(struct wined3d_device_vk *device_vk)
852{
854}
855
856static inline void wined3d_device_vk_allocator_unlock(struct wined3d_device_vk *device_vk)
857{
859}
860
869
872
874{
876
880
882};
883
885{
887}
888
889void wined3d_texture_vk_barrier(struct wined3d_texture_vk *texture_vk,
890 struct wined3d_context_vk *context_vk, uint32_t bind_mask);
892 struct wined3d_context_vk *context_vk);
894 const struct wined3d_resource_desc *desc, unsigned int layer_count, unsigned int level_count,
895 uint32_t flags, void *parent, const struct wined3d_parent_ops *parent_ops);
897 struct wined3d_context_vk *context_vk);
899 struct wined3d_context_vk *context_vk);
900
902{
904
907};
908
910{
912}
913
914void wined3d_sampler_vk_init(struct wined3d_sampler_vk *sampler_vk,
915 struct wined3d_device *device, const struct wined3d_sampler_desc *desc,
916 void *parent, const struct wined3d_parent_ops *parent_ops);
917
919{
921
924};
925
927{
929}
930
931void wined3d_buffer_vk_barrier(struct wined3d_buffer_vk *buffer_vk,
932 struct wined3d_context_vk *context_vk, uint32_t bind_mask);
935 const struct wined3d_buffer_desc *desc, const struct wined3d_sub_resource_data *data,
936 void *parent, const struct wined3d_parent_ops *parent_ops);
937
939 struct wined3d_context_vk *context_vk, uint32_t bind_mask)
940{
941 if (resource->type == WINED3D_RTYPE_BUFFER)
943 else
945}
946
948{
950
951 VkImageView vk_image_view;
953};
954
957{
959}
960
962 struct wined3d_context_vk *context_vk, uint32_t bind_mask)
963{
964 wined3d_resource_vk_barrier(rtv_vk->v.resource, context_vk, bind_mask);
965}
966
968 struct wined3d_context_vk *context_vk)
969{
970 struct wined3d_texture_vk *texture_vk;
971
972 if (rtv_vk->vk_image_view)
973 return rtv_vk->vk_image_view;
974
975 texture_vk = wined3d_texture_vk(wined3d_texture_from_resource(rtv_vk->v.resource));
976 return wined3d_texture_vk_get_default_image_info(texture_vk, context_vk)->imageView;
977}
978
980 const struct wined3d_view_desc *desc, struct wined3d_resource *resource,
981 void *parent, const struct wined3d_parent_ops *parent_ops);
982
984{
986 union
987 {
988 VkBufferView vk_buffer_view;
990 } u;
992};
993
995{
998};
999
1002{
1004}
1005
1007 struct wined3d_context_vk *context_vk, uint32_t bind_mask)
1008{
1009 wined3d_resource_vk_barrier(srv_vk->v.resource, context_vk, bind_mask);
1010}
1011
1013 struct wined3d_context_vk *context_vk);
1015 const struct wined3d_view_desc *desc, struct wined3d_resource *resource,
1016 void *parent, const struct wined3d_parent_ops *parent_ops);
1018 struct wined3d_context_vk *context_vk);
1020 VkImageLayout layout);
1021
1023{
1026
1027 VkBufferView vk_counter_view;
1029};
1030
1033{
1035}
1036
1038 struct wined3d_context_vk *context_vk, uint32_t bind_mask)
1039{
1040 wined3d_resource_vk_barrier(uav_vk->v.resource, context_vk, bind_mask);
1041}
1042
1044 const struct wined3d_uvec4 *clear_value, struct wined3d_context_vk *context_vk, bool fp);
1046 const struct wined3d_view_desc *desc, struct wined3d_resource *resource,
1047 void *parent, const struct wined3d_parent_ops *parent_ops);
1049 struct wined3d_context_vk *context_vk);
1050
1052{
1054
1055 VkSwapchainKHR vk_swapchain;
1056 VkSurfaceKHR vk_surface;
1057 VkImage *vk_images;
1058 struct
1059 {
1060 VkSemaphore available;
1061 VkSemaphore presentable;
1064 unsigned int current, image_count;
1065 unsigned int width, height;
1066};
1067
1068static inline struct wined3d_swapchain_vk *wined3d_swapchain_vk(struct wined3d_swapchain *swapchain)
1069{
1070 return CONTAINING_RECORD(swapchain, struct wined3d_swapchain_vk, s);
1071}
1072
1073void wined3d_swapchain_vk_cleanup(struct wined3d_swapchain_vk *swapchain_vk);
1075 struct wined3d_device *device, const struct wined3d_swapchain_desc *desc,
1076 struct wined3d_swapchain_state_parent *state_parent, void *parent,
1077 const struct wined3d_parent_ops *parent_ops);
1078
1080{
1082
1084};
1085
1086static inline const struct wined3d_format_vk *wined3d_format_vk(const struct wined3d_format *format)
1087{
1089}
1090
1091static inline void wined3d_context_vk_reference_bo(const struct wined3d_context_vk *context_vk,
1092 struct wined3d_bo_vk *bo)
1093{
1094 bo->command_buffer_id = context_vk->current_command_buffer.id;
1095}
1096
1097static inline void wined3d_context_vk_reference_image(const struct wined3d_context_vk *context_vk,
1098 struct wined3d_image_vk *image)
1099{
1100 image->command_buffer_id = context_vk->current_command_buffer.id;
1101}
1102
1103static inline void wined3d_context_vk_reference_texture(const struct wined3d_context_vk *context_vk,
1104 struct wined3d_texture_vk *texture_vk)
1105{
1106 wined3d_context_vk_reference_image(context_vk, &texture_vk->image);
1107}
1108
1109static inline void wined3d_context_vk_reference_resource(const struct wined3d_context_vk *context_vk,
1110 struct wined3d_resource *resource)
1111{
1112 if (resource->type == WINED3D_RTYPE_BUFFER)
1114 else
1116}
1117
1118static inline void wined3d_context_vk_reference_query(const struct wined3d_context_vk *context_vk,
1119 struct wined3d_query_vk *query_vk)
1120{
1121 query_vk->command_buffer_id = context_vk->current_command_buffer.id;
1122}
1123
1124static inline void wined3d_context_vk_reference_sampler(const struct wined3d_context_vk *context_vk,
1125 struct wined3d_sampler_vk *sampler_vk)
1126{
1127 sampler_vk->command_buffer_id = context_vk->current_command_buffer.id;
1128}
1129
1130static inline void wined3d_context_vk_reference_rendertarget_view(const struct wined3d_context_vk *context_vk,
1131 struct wined3d_rendertarget_view_vk *rtv_vk)
1132{
1133 wined3d_context_vk_reference_resource(context_vk, rtv_vk->v.resource);
1134 rtv_vk->command_buffer_id = context_vk->current_command_buffer.id;
1135}
1136
1138 struct wined3d_shader_resource_view_vk *srv_vk)
1139{
1140 wined3d_context_vk_reference_resource(context_vk, srv_vk->v.resource);
1141 srv_vk->view_vk.command_buffer_id = context_vk->current_command_buffer.id;
1142}
1143
1145 struct wined3d_unordered_access_view_vk *uav_vk)
1146{
1147 wined3d_context_vk_reference_resource(context_vk, uav_vk->v.resource);
1148 uav_vk->view_vk.command_buffer_id = context_vk->current_command_buffer.id;
1149}
1150
1151#endif /* __WINE_WINED3D_VK */
static int state
Definition: maze.c:121
Definition: list.h:39
range
Definition: d3dx9_private.h:58
UINT32 uint32_t
Definition: types.h:75
UINT64 uint64_t
Definition: types.h:77
UINT op
Definition: effect.c:235
struct wined3d_texture *__cdecl wined3d_texture_from_resource(struct wined3d_resource *resource)
Definition: texture.c:3343
unsigned int idx
Definition: utils.c:40
unsigned char uint8_t
Definition: stdint.h:33
r parent
Definition: btrfs.c:3010
static void depth_stencil(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
Definition: ffp_gl.c:766
unsigned int BOOL
Definition: ntddk_ex.h:94
return adapter
GLuint start
Definition: gl.h:1545
GLint GLint GLsizei GLsizei GLsizei depth
Definition: gl.h:1546
const GLdouble * v
Definition: gl.h:2040
GLuint GLuint GLsizei count
Definition: gl.h:1545
GLint GLint GLsizei GLsizei height
Definition: gl.h:1546
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
GLdouble s
Definition: gl.h:2039
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
GLdouble GLdouble t
Definition: gl.h:2047
GLint GLint GLsizei width
Definition: gl.h:1546
GLdouble GLdouble GLdouble GLdouble q
Definition: gl.h:2063
GLenum GLuint texture
Definition: glext.h:6295
GLbitfield stages
Definition: glext.h:7620
GLenum src
Definition: glext.h:6340
GLuint buffer
Definition: glext.h:5915
GLsizeiptr size
Definition: glext.h:5919
const GLubyte * c
Definition: glext.h:8905
GLuint sampler
Definition: glext.h:7283
GLenum GLint GLuint mask
Definition: glext.h:6028
GLfloat f
Definition: glext.h:7540
GLboolean GLboolean GLboolean b
Definition: glext.h:6204
GLenum GLenum dst
Definition: glext.h:6340
GLbitfield flags
Definition: glext.h:7161
GLuint GLint GLboolean GLint GLenum access
Definition: glext.h:7866
GLenum GLenum GLenum GLenum mapping
Definition: glext.h:9031
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6204
GLsizeiptr const GLvoid GLenum usage
Definition: glext.h:5919
#define d
Definition: ke_i.h:81
D3D11_SHADER_VARIABLE_DESC desc
Definition: reflection.c:1683
#define wine_rb_entry
Definition: rbtree.h:404
#define wine_rb_tree
Definition: rbtree.h:405
Definition: http.c:7252
Definition: devices.h:37
Definition: image.c:84
Definition: copy.c:22
PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr
Definition: wined3d_vk.h:233
PFN_vkCreateInstance vkCreateInstance
Definition: wined3d_vk.h:232
unsigned int device_extension_count
Definition: wined3d_vk.h:729
VkPhysicalDeviceMemoryProperties memory_properties
Definition: wined3d_vk.h:734
const char ** device_extensions
Definition: wined3d_vk.h:730
struct wined3d_vk_info vk_info
Definition: wined3d_vk.h:728
VkPhysicalDevice physical_device
Definition: wined3d_vk.h:731
VkPhysicalDeviceLimits device_limits
Definition: wined3d_vk.h:733
VkDeviceMemory vk_memory
Definition: wined3d_vk.h:780
VkMemoryPropertyFlags memory_type
Definition: wined3d_vk.h:333
VkBufferUsageFlags usage
Definition: wined3d_vk.h:334
struct wined3d_bo_slab_vk * next
Definition: wined3d_vk.h:341
VkMemoryPropertyFlags requested_memory_type
Definition: wined3d_vk.h:342
struct wine_rb_entry entry
Definition: wined3d_vk.h:340
unsigned int map_count
Definition: wined3d_vk.h:344
struct wined3d_bo_vk bo
Definition: wined3d_vk.h:343
struct wined3d_allocator_block * memory
Definition: wined3d_vk.h:313
VkBufferUsageFlags usage
Definition: wined3d_vk.h:319
VkBuffer vk_buffer
Definition: wined3d_vk.h:312
VkDeviceSize size
Definition: wined3d_vk.h:318
uint64_t command_buffer_id
Definition: wined3d_vk.h:322
bool host_synced
Definition: wined3d_vk.h:323
VkMemoryPropertyFlags memory_type
Definition: wined3d_vk.h:320
struct wined3d_bo_slab_vk * slab
Definition: wined3d_vk.h:314
VkDeviceMemory vk_memory
Definition: wined3d_vk.h:316
uint32_t bind_mask
Definition: wined3d_vk.h:923
VkDescriptorBufferInfo buffer_info
Definition: wined3d_vk.h:922
VkCommandBuffer vk_command_buffer
Definition: wined3d_vk.h:422
VkDescriptorPool * vk_descriptor_pools
Definition: wined3d_vk.h:638
struct list active_queries
Definition: wined3d_vk.h:648
struct wined3d_graphics_pipeline_key_vk pipeline_key_vk
Definition: wined3d_vk.h:601
VkDeviceSize retired_bo_size
Definition: wined3d_vk.h:619
VkPipelineLayout vk_pipeline_layout
Definition: wined3d_vk.h:603
struct list completed_query_pools
Definition: wined3d_vk.h:649
VkSampleCountFlagBits sample_count
Definition: wined3d_vk.h:640
VkDeviceSize vk_so_offsets[WINED3D_MAX_STREAM_OUTPUT_BUFFERS]
Definition: wined3d_vk.h:644
unsigned int rt_count
Definition: wined3d_vk.h:641
struct wined3d_command_buffer_vk current_command_buffer
Definition: wined3d_vk.h:617
VkDescriptorSetLayout vk_set_layout
Definition: wined3d_vk.h:604
struct wined3d_bo_vk vk_so_counter_bo
Definition: wined3d_vk.h:645
VkDynamicState dynamic_states[27]
Definition: wined3d_vk.h:592
uint64_t completed_command_buffer_id
Definition: wined3d_vk.h:618
struct wined3d_context_vk::@363 compute
struct list free_occlusion_query_pools
Definition: wined3d_vk.h:650
struct wined3d_retired_objects_vk retired
Definition: wined3d_vk.h:655
struct wine_rb_tree bo_slab_available
Definition: wined3d_vk.h:659
struct wined3d_context_vk::@362 graphics
const struct wined3d_vk_info * vk_info
Definition: wined3d_vk.h:590
SIZE_T vk_descriptor_pools_size
Definition: wined3d_vk.h:636
uint32_t update_compute_pipeline
Definition: wined3d_vk.h:594
struct list free_stream_output_statistics_query_pools
Definition: wined3d_vk.h:653
unsigned int command_buffer_work_count
Definition: wined3d_vk.h:622
struct wine_rb_tree pipeline_layouts
Definition: wined3d_vk.h:657
SIZE_T vk_descriptor_pool_count
Definition: wined3d_vk.h:637
struct list free_pipeline_statistics_query_pools
Definition: wined3d_vk.h:652
struct wined3d_command_buffer_vk * buffers
Definition: wined3d_vk.h:626
VkCommandPool vk_command_pool
Definition: wined3d_vk.h:616
VkBuffer vk_so_counters[WINED3D_MAX_STREAM_OUTPUT_BUFFERS]
Definition: wined3d_vk.h:643
struct wined3d_shader_resource_bindings bindings
Definition: wined3d_vk.h:605
VkRenderPass vk_render_pass
Definition: wined3d_vk.h:634
VkFramebuffer vk_framebuffer
Definition: wined3d_vk.h:633
struct wined3d_context_vk::@364 submitted
struct wine_rb_tree render_passes
Definition: wined3d_vk.h:656
VkShaderModule vk_modules[WINED3D_SHADER_TYPE_GRAPHICS_COUNT]
Definition: wined3d_vk.h:600
struct wined3d_context_vk::@364 completed
uint32_t update_stream_output
Definition: wined3d_vk.h:595
struct list render_pass_queries
Definition: wined3d_vk.h:647
struct wine_rb_tree graphics_pipelines
Definition: wined3d_vk.h:658
VkPipeline vk_pipeline
Definition: wined3d_vk.h:602
struct list free_timestamp_query_pools
Definition: wined3d_vk.h:651
struct wined3d_device d
Definition: wined3d_vk.h:821
VkDevice vk_device
Definition: wined3d_vk.h:825
CRITICAL_SECTION allocator_cs
Definition: wined3d_vk.h:835
uint32_t vk_queue_family_index
Definition: wined3d_vk.h:827
struct wined3d_vk_info vk_info
Definition: wined3d_vk.h:830
struct wined3d_context_vk context_vk
Definition: wined3d_vk.h:823
struct wined3d_uav_clear_state_vk uav_clear_state
Definition: wined3d_vk.h:838
struct wined3d_null_resources_vk null_resources_vk
Definition: wined3d_vk.h:832
struct wined3d_null_views_vk null_views_vk
Definition: wined3d_vk.h:833
uint32_t timestamp_bits
Definition: wined3d_vk.h:828
VkFormat vk_format
Definition: wined3d_vk.h:1083
VkVertexInputBindingDivisorDescriptionEXT divisors[MAX_ATTRIBS]
Definition: wined3d_vk.h:528
VkPipelineVertexInputDivisorStateCreateInfoEXT divisor_desc
Definition: wined3d_vk.h:534
VkPipelineColorBlendStateCreateInfo blend_desc
Definition: wined3d_vk.h:542
VkPipelineColorBlendAttachmentState blend_attachments[WINED3D_MAX_RENDER_TARGETS]
Definition: wined3d_vk.h:532
VkPipelineRasterizationStateCreateInfo rs_desc
Definition: wined3d_vk.h:539
VkVertexInputBindingDescription bindings[MAX_ATTRIBS]
Definition: wined3d_vk.h:530
VkPipelineDepthStencilStateCreateInfo ds_desc
Definition: wined3d_vk.h:541
VkGraphicsPipelineCreateInfo pipeline_desc
Definition: wined3d_vk.h:545
VkPipelineDynamicStateCreateInfo dynamic_desc
Definition: wined3d_vk.h:543
VkPipelineVertexInputStateCreateInfo input_desc
Definition: wined3d_vk.h:535
VkPipelineInputAssemblyStateCreateInfo ia_desc
Definition: wined3d_vk.h:536
VkPipelineViewportStateCreateInfo vp_desc
Definition: wined3d_vk.h:538
VkPipelineMultisampleStateCreateInfo ms_desc
Definition: wined3d_vk.h:540
VkPipelineTessellationStateCreateInfo ts_desc
Definition: wined3d_vk.h:537
VkVertexInputAttributeDescription attributes[MAX_ATTRIBS]
Definition: wined3d_vk.h:529
struct wine_rb_entry entry
Definition: wined3d_vk.h:550
VkDeviceMemory vk_memory
Definition: wined3d_vk.h:358
VkImage vk_image
Definition: wined3d_vk.h:356
struct wined3d_allocator_block * memory
Definition: wined3d_vk.h:357
uint64_t command_buffer_id
Definition: wined3d_vk.h:359
struct wined3d_image_vk image_2d
Definition: wined3d_vk.h:756
struct wined3d_image_vk image_1d
Definition: wined3d_vk.h:755
struct wined3d_image_vk image_3d
Definition: wined3d_vk.h:758
struct wined3d_image_vk image_2dms
Definition: wined3d_vk.h:757
VkDescriptorBufferInfo buffer_info
Definition: wined3d_vk.h:753
struct wined3d_bo_vk bo
Definition: wined3d_vk.h:752
VkDescriptorImageInfo vk_info_3d
Definition: wined3d_vk.h:769
VkBufferView vk_view_buffer_uint
Definition: wined3d_vk.h:763
VkDescriptorImageInfo vk_info_1d_array
Definition: wined3d_vk.h:771
VkDescriptorImageInfo vk_info_2d_array
Definition: wined3d_vk.h:772
VkDescriptorImageInfo vk_info_cube
Definition: wined3d_vk.h:770
VkBufferView vk_view_buffer_float
Definition: wined3d_vk.h:764
VkDescriptorImageInfo vk_info_2d
Definition: wined3d_vk.h:767
VkDescriptorImageInfo vk_info_2dms_array
Definition: wined3d_vk.h:773
VkDescriptorImageInfo vk_info_1d
Definition: wined3d_vk.h:766
VkDescriptorImageInfo vk_info_2dms
Definition: wined3d_vk.h:768
VkDescriptorImageInfo vk_info_cube_array
Definition: wined3d_vk.h:774
VkDescriptorSetLayoutBinding * bindings
Definition: wined3d_vk.h:513
VkDescriptorSetLayout vk_set_layout
Definition: wined3d_vk.h:522
VkPipelineLayout vk_pipeline_layout
Definition: wined3d_vk.h:521
struct wine_rb_entry entry
Definition: wined3d_vk.h:519
struct wined3d_query_pool_vk * pool_vk
Definition: wined3d_vk.h:385
uint32_t allocated[WINED3D_BITMAP_SIZE(WINED3D_QUERY_POOL_SIZE)]
Definition: wined3d_vk.h:371
struct list * free_list
Definition: wined3d_vk.h:367
uint32_t completed[WINED3D_BITMAP_SIZE(WINED3D_QUERY_POOL_SIZE)]
Definition: wined3d_vk.h:372
struct list completed_entry
Definition: wined3d_vk.h:365
VkQueryPool vk_query_pool
Definition: wined3d_vk.h:368
struct wined3d_query_pool_idx_vk * pending
Definition: wined3d_vk.h:404
struct wined3d_query_pool_idx_vk pool_idx
Definition: wined3d_vk.h:398
uint64_t command_buffer_id
Definition: wined3d_vk.h:400
struct list entry
Definition: wined3d_vk.h:397
SIZE_T pending_count
Definition: wined3d_vk.h:403
VkEvent vk_event
Definition: wined3d_vk.h:402
SIZE_T pending_size
Definition: wined3d_vk.h:403
uint32_t control_flags
Definition: wined3d_vk.h:401
VkSampleCountFlagBits vk_samples
Definition: wined3d_vk.h:492
struct wined3d_render_pass_attachment_vk ds
Definition: wined3d_vk.h:500
struct wined3d_render_pass_attachment_vk rt[WINED3D_MAX_RENDER_TARGETS]
Definition: wined3d_vk.h:499
VkRenderPass vk_render_pass
Definition: wined3d_vk.h:508
struct wine_rb_entry entry
Definition: wined3d_vk.h:506
struct wined3d_rendertarget_view v
Definition: wined3d_vk.h:949
struct wined3d_query_pool_vk * pool_vk
Definition: wined3d_vk.h:468
enum wined3d_retired_object_type_vk type
Definition: wined3d_vk.h:446
struct wined3d_retired_object_vk::@359::@360 slice
VkBufferView vk_buffer_view
Definition: wined3d_vk.h:461
VkFramebuffer vk_framebuffer
Definition: wined3d_vk.h:450
union wined3d_retired_object_vk::@359 u
VkDeviceMemory vk_memory
Definition: wined3d_vk.h:452
struct wined3d_allocator_block * block
Definition: wined3d_vk.h:453
struct wined3d_bo_slab_vk * slab
Definition: wined3d_vk.h:456
VkDescriptorPool vk_descriptor_pool
Definition: wined3d_vk.h:451
struct wined3d_retired_object_vk::@359::@361 queries
struct wined3d_retired_object_vk * next
Definition: wined3d_vk.h:449
struct wined3d_retired_object_vk * objects
Definition: wined3d_vk.h:478
struct wined3d_retired_object_vk * free
Definition: wined3d_vk.h:479
VkDescriptorImageInfo vk_image_info
Definition: wined3d_vk.h:905
uint64_t command_buffer_id
Definition: wined3d_vk.h:906
VkWriteDescriptorSet * writes
Definition: wined3d_vk.h:582
enum wined3d_data_type resource_data_type
Definition: wined3d_vk.h:570
enum wined3d_shader_descriptor_type shader_descriptor_type
Definition: wined3d_vk.h:567
enum wined3d_shader_resource_type resource_type
Definition: wined3d_vk.h:569
enum wined3d_shader_type shader_type
Definition: wined3d_vk.h:566
struct wined3d_shader_resource_binding * bindings
Definition: wined3d_vk.h:576
struct wined3d_view_vk view_vk
Definition: wined3d_vk.h:997
struct wined3d_shader_resource_view v
Definition: wined3d_vk.h:996
uint64_t command_buffer_id
Definition: wined3d_vk.h:1062
unsigned int width
Definition: wined3d_vk.h:1065
unsigned int image_count
Definition: wined3d_vk.h:1064
VkSwapchainKHR vk_swapchain
Definition: wined3d_vk.h:1055
VkSemaphore presentable
Definition: wined3d_vk.h:1061
VkSurfaceKHR vk_surface
Definition: wined3d_vk.h:1056
VkSemaphore available
Definition: wined3d_vk.h:1060
unsigned int current
Definition: wined3d_vk.h:1064
struct wined3d_swapchain_vk::@366 * vk_semaphores
unsigned int height
Definition: wined3d_vk.h:1065
struct wined3d_image_vk image
Definition: wined3d_vk.h:877
uint32_t bind_mask
Definition: wined3d_vk.h:879
VkDescriptorImageInfo default_image_info
Definition: wined3d_vk.h:881
enum VkImageLayout layout
Definition: wined3d_vk.h:878
struct wined3d_pipeline_layout_vk * buffer_layout
Definition: wined3d_vk.h:816
struct wined3d_shader_thread_group_size image_1d_array_group_size
Definition: wined3d_vk.h:810
struct wined3d_shader_thread_group_size buffer_group_size
Definition: wined3d_vk.h:808
struct wined3d_uav_clear_pipelines_vk float_pipelines
Definition: wined3d_vk.h:805
struct wined3d_pipeline_layout_vk * image_layout
Definition: wined3d_vk.h:815
struct wined3d_uav_clear_pipelines_vk uint_pipelines
Definition: wined3d_vk.h:806
struct wined3d_shader_thread_group_size image_1d_group_size
Definition: wined3d_vk.h:809
struct wined3d_shader_thread_group_size image_2d_group_size
Definition: wined3d_vk.h:811
struct wined3d_shader_thread_group_size image_3d_group_size
Definition: wined3d_vk.h:813
struct wined3d_shader_thread_group_size image_2d_array_group_size
Definition: wined3d_vk.h:812
struct wined3d_bo_vk counter_bo
Definition: wined3d_vk.h:1028
struct wined3d_unordered_access_view v
Definition: wined3d_vk.h:1024
struct wined3d_view_vk view_vk
Definition: wined3d_vk.h:1025
struct wined3d_bo_user bo_user
Definition: wined3d_vk.h:985
VkBufferView vk_buffer_view
Definition: wined3d_vk.h:988
VkDescriptorImageInfo vk_image_info
Definition: wined3d_vk.h:989
union wined3d_view_vk::@365 u
uint64_t command_buffer_id
Definition: wined3d_vk.h:991
bool dynamic_blend_state
Definition: wined3d_vk.h:268
bool multiple_viewports
Definition: wined3d_vk.h:264
bool dynamic_patch_vertex_count
Definition: wined3d_vk.h:266
struct vulkan_ops vk_ops
Definition: wined3d_vk.h:256
unsigned int api_version
Definition: wined3d_vk.h:259
bool dynamic_multisample_state
Definition: wined3d_vk.h:267
BOOL supported[WINED3D_VK_EXT_COUNT]
Definition: wined3d_vk.h:261
bool dynamic_rasterizer_state
Definition: wined3d_vk.h:269
HMODULE vulkan_lib
Definition: wined3d_vk.h:262
VkInstance instance
Definition: wined3d_vk.h:258
ULONG_PTR SIZE_T
Definition: typedefs.h:80
#define CONTAINING_RECORD(address, type, field)
Definition: typedefs.h:260
VkFlags VkMemoryPropertyFlags
Definition: vulkan.h:1063
VkFlags VkPipelineStageFlags
Definition: vulkan.h:1101
VkImageLayout
Definition: vulkan.h:3450
VkShaderStageFlagBits
Definition: vulkan.h:4873
VkFlags VkImageAspectFlags
Definition: vulkan.h:1043
VkFlags VkAccessFlags
Definition: vulkan.h:957
uint32_t VkSampleMask
Definition: vulkan.h:952
VkDynamicState
Definition: vulkan.h:2605
VkFlags VkImageUsageFlags
Definition: vulkan.h:1050
VkImageViewType
Definition: vulkan.h:3547
uint64_t VkDeviceSize
Definition: vulkan.h:948
PFN_vkVoidFunction(VKAPI_PTR * PFN_vkGetInstanceProcAddr)(VkInstance, const char *)
Definition: vulkan.h:18143
@ VK_IMAGE_ASPECT_COLOR_BIT
Definition: vulkan.h:3365
@ VK_IMAGE_ASPECT_STENCIL_BIT
Definition: vulkan.h:3367
@ VK_IMAGE_ASPECT_DEPTH_BIT
Definition: vulkan.h:3366
VkSampleCountFlagBits
Definition: vulkan.h:4700
VkResult(VKAPI_PTR * PFN_vkCreateInstance)(const VkInstanceCreateInfo *, const VkAllocationCallbacks *, VkInstance *)
Definition: vulkan.h:17981
VkCompareOp
Definition: vulkan.h:2174
VkImageType
Definition: vulkan.h:3501
VkFlags VkBufferUsageFlags
Definition: vulkan.h:965
VkResult
Definition: vulkan.h:4639
@ VK_ACCESS_HOST_READ_BIT
Definition: vulkan.h:1642
@ VK_ACCESS_MEMORY_READ_BIT
Definition: vulkan.h:1644
@ VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT
Definition: vulkan.h:1631
@ VK_ACCESS_INPUT_ATTACHMENT_READ_BIT
Definition: vulkan.h:1633
@ VK_ACCESS_INDIRECT_COMMAND_READ_BIT
Definition: vulkan.h:1629
@ VK_ACCESS_TRANSFER_READ_BIT
Definition: vulkan.h:1640
@ VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT
Definition: vulkan.h:1638
@ VK_ACCESS_SHADER_READ_BIT
Definition: vulkan.h:1634
@ VK_ACCESS_UNIFORM_READ_BIT
Definition: vulkan.h:1632
@ VK_ACCESS_INDEX_READ_BIT
Definition: vulkan.h:1630
@ VK_ACCESS_COLOR_ATTACHMENT_READ_BIT
Definition: vulkan.h:1636
VkFormat
Definition: vulkan.h:2815
int retval
Definition: wcstombs.cpp:91
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
#define WINED3D_MAX_STREAM_OUTPUT_BUFFERS
Definition: wined3d.h:1576
wined3d_resource_type
Definition: wined3d.h:716
@ WINED3D_RTYPE_BUFFER
Definition: wined3d.h:718
#define WINED3D_MAX_RENDER_TARGETS
Definition: wined3d.h:1606
wined3d_query_type
Definition: wined3d.h:725
wined3d_cmp_func
Definition: wined3d.h:460
wined3d_shader_type
Definition: wined3d.h:840
@ WINED3D_SHADER_TYPE_GRAPHICS_COUNT
Definition: wined3d.h:846
wined3d_data_type
#define WINED3D_BITMAP_SIZE(x)
#define WINED3D_QUERY_POOL_SIZE
wined3d_shader_resource_type
#define MAX_ATTRIBS
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)
Definition: context_vk.c:3442
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)
Definition: context_vk.c:1533
static void wined3d_context_vk_reference_sampler(const struct wined3d_context_vk *context_vk, struct wined3d_sampler_vk *sampler_vk)
Definition: wined3d_vk.h:1124
void wined3d_context_vk_destroy_vk_memory(struct wined3d_context_vk *context_vk, VkDeviceMemory vk_memory, uint64_t command_buffer_id)
Definition: context_vk.c:778
VkPipelineStageFlags vk_pipeline_stage_mask_from_bind_flags(uint32_t bind_flags)
Definition: resource.c:552
VkImageViewType vk_image_view_type_from_wined3d(enum wined3d_resource_type type, uint32_t flags)
Definition: view.c:676
void wined3d_query_vk_resume(struct wined3d_query_vk *query_vk, struct wined3d_context_vk *context_vk)
Definition: query.c:1579
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)
Definition: wined3d_vk.h:1037
static void wined3d_context_vk_reference_image(const struct wined3d_context_vk *context_vk, struct wined3d_image_vk *image)
Definition: wined3d_vk.h:1097
static void wined3d_device_vk_allocator_unlock(struct wined3d_device_vk *device_vk)
Definition: wined3d_vk.h:856
static void wined3d_context_vk_reference_query(const struct wined3d_context_vk *context_vk, struct wined3d_query_vk *query_vk)
Definition: wined3d_vk.h:1118
const VkDescriptorBufferInfo * wined3d_buffer_vk_get_buffer_info(struct wined3d_buffer_vk *buffer_vk)
Definition: buffer.c:1187
static VkImageAspectFlags vk_aspect_mask_from_format(const struct wined3d_format *format)
Definition: wined3d_vk.h:294
void wined3d_unordered_access_view_vk_update(struct wined3d_unordered_access_view_vk *view_vk, struct wined3d_context_vk *context_vk)
Definition: view.c:2395
VkAccessFlags vk_access_mask_from_buffer_usage(VkBufferUsageFlags usage)
Definition: adapter_vk.c:835
VkAccessFlags vk_access_mask_from_bind_flags(uint32_t bind_flags)
Definition: resource.c:526
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)
Definition: view.c:916
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)
Definition: view.c:1243
VkCommandBuffer wined3d_context_vk_apply_compute_state(struct wined3d_context_vk *context_vk, const struct wined3d_state *state, struct wined3d_buffer_vk *indirect_vk)
Definition: context_vk.c:4080
void wined3d_shader_resource_view_vk_update_layout(struct wined3d_shader_resource_view_vk *srv_vk, VkImageLayout layout)
Definition: view.c:1161
void wined3d_context_vk_destroy_vk_framebuffer(struct wined3d_context_vk *context_vk, VkFramebuffer vk_framebuffer, uint64_t command_buffer_id)
Definition: context_vk.c:712
void wined3d_shader_resource_view_vk_update_buffer(struct wined3d_shader_resource_view_vk *view_vk, struct wined3d_context_vk *context_vk)
Definition: view.c:1139
unsigned int wined3d_adapter_vk_get_memory_type_index(const struct wined3d_adapter_vk *adapter_vk, uint32_t memory_type_mask, VkMemoryPropertyFlags flags)
Definition: adapter_vk.c:1259
VkMemoryPropertyFlags vk_memory_type_from_access_flags(uint32_t access, uint32_t usage)
Definition: buffer.c:1150
void wined3d_vk_swizzle_from_color_fixup(VkComponentMapping *mapping, struct color_fixup_desc fixup)
Definition: texture.c:4583
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)
Definition: query.c:1390
BOOL wined3d_context_vk_create_bo(struct wined3d_context_vk *context_vk, VkDeviceSize size, VkBufferUsageFlags usage, VkMemoryPropertyFlags memory_type, struct wined3d_bo_vk *bo)
Definition: context_vk.c:528
BOOL wined3d_adapter_vk_init_format_info(struct wined3d_adapter_vk *adapter_vk, const struct wined3d_vk_info *vk_info)
Definition: utils.c:4399
void wined3d_context_vk_destroy_vk_buffer_view(struct wined3d_context_vk *context_vk, VkBufferView vk_view, uint64_t command_buffer_id)
Definition: context_vk.c:931
bool wined3d_device_vk_create_null_resources(struct wined3d_device_vk *device_vk, struct wined3d_context_vk *context_vk)
Definition: device.c:839
void wined3d_context_vk_end_current_render_pass(struct wined3d_context_vk *context_vk)
Definition: context_vk.c:1564
VkShaderStageFlagBits vk_shader_stage_from_wined3d(enum wined3d_shader_type shader_type)
Definition: context_vk.c:59
void wined3d_device_vk_uav_clear_state_init(struct wined3d_device_vk *device_vk)
Definition: view.c:1989
void wined3d_shader_resource_view_vk_generate_mipmap(struct wined3d_shader_resource_view_vk *srv_vk, struct wined3d_context_vk *context_vk)
Definition: view.c:1382
void wined3d_query_vk_suspend(struct wined3d_query_vk *query_vk, struct wined3d_context_vk *context_vk)
Definition: query.c:1587
static void wined3d_context_vk_reference_unordered_access_view(const struct wined3d_context_vk *context_vk, struct wined3d_unordered_access_view_vk *uav_vk)
Definition: wined3d_vk.h:1144
void wined3d_context_vk_destroy_image(struct wined3d_context_vk *context_vk, struct wined3d_image_vk *image_vk)
Definition: context_vk.c:1092
void * wined3d_bo_slab_vk_map(struct wined3d_bo_slab_vk *slab_vk, struct wined3d_context_vk *context_vk)
Definition: adapter_vk.c:796
VkDescriptorSet wined3d_context_vk_create_vk_descriptor_set(struct wined3d_context_vk *context_vk, VkDescriptorSetLayout vk_set_layout)
Definition: context_vk.c:3048
void wined3d_bo_slab_vk_unmap(struct wined3d_bo_slab_vk *slab_vk, struct wined3d_context_vk *context_vk)
Definition: adapter_vk.c:819
wined3d_retired_object_type_vk
Definition: wined3d_vk.h:427
@ WINED3D_RETIRED_QUERY_POOL_VK
Definition: wined3d_vk.h:439
@ WINED3D_RETIRED_SAMPLER_VK
Definition: wined3d_vk.h:438
@ WINED3D_RETIRED_DESCRIPTOR_POOL_VK
Definition: wined3d_vk.h:430
@ WINED3D_RETIRED_ALLOCATOR_BLOCK_VK
Definition: wined3d_vk.h:432
@ WINED3D_RETIRED_EVENT_VK
Definition: wined3d_vk.h:440
@ WINED3D_RETIRED_BUFFER_VK
Definition: wined3d_vk.h:434
@ WINED3D_RETIRED_IMAGE_VIEW_VK
Definition: wined3d_vk.h:437
@ WINED3D_RETIRED_MEMORY_VK
Definition: wined3d_vk.h:431
@ WINED3D_RETIRED_FRAMEBUFFER_VK
Definition: wined3d_vk.h:429
@ WINED3D_RETIRED_IMAGE_VK
Definition: wined3d_vk.h:435
@ WINED3D_RETIRED_BUFFER_VIEW_VK
Definition: wined3d_vk.h:436
@ WINED3D_RETIRED_BO_SLAB_SLICE_VK
Definition: wined3d_vk.h:433
@ WINED3D_RETIRED_PIPELINE_VK
Definition: wined3d_vk.h:441
@ WINED3D_RETIRED_FREE_VK
Definition: wined3d_vk.h:428
const char * wined3d_debug_vkresult(VkResult vr)
Definition: utils.c:5463
void wined3d_context_vk_destroy_vk_image_view(struct wined3d_context_vk *context_vk, VkImageView vk_view, uint64_t command_buffer_id)
Definition: context_vk.c:956
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)
Definition: swapchain.c:1707
BOOL wined3d_texture_vk_prepare_texture(struct wined3d_texture_vk *texture_vk, struct wined3d_context_vk *context_vk)
Definition: texture.c:5244
static const VkAccessFlags WINED3D_READ_ONLY_ACCESS_FLAGS
Definition: wined3d_vk.h:274
static void wined3d_context_vk_reference_texture(const struct wined3d_context_vk *context_vk, struct wined3d_texture_vk *texture_vk)
Definition: wined3d_vk.h:1103
void wined3d_context_vk_destroy_vk_sampler(struct wined3d_context_vk *context_vk, VkSampler vk_sampler, uint64_t command_buffer_id)
Definition: context_vk.c:1042
wined3d_shader_descriptor_type
Definition: wined3d_vk.h:556
@ WINED3D_SHADER_DESCRIPTOR_TYPE_UAV
Definition: wined3d_vk.h:559
@ WINED3D_SHADER_DESCRIPTOR_TYPE_SRV
Definition: wined3d_vk.h:558
@ WINED3D_SHADER_DESCRIPTOR_TYPE_UAV_COUNTER
Definition: wined3d_vk.h:560
@ WINED3D_SHADER_DESCRIPTOR_TYPE_CBV
Definition: wined3d_vk.h:557
@ WINED3D_SHADER_DESCRIPTOR_TYPE_SAMPLER
Definition: wined3d_vk.h:561
VkDeviceMemory wined3d_context_vk_allocate_vram_chunk_memory(struct wined3d_context_vk *context_vk, unsigned int pool, size_t size)
Definition: context_vk.c:362
void wined3d_context_vk_destroy_vk_image(struct wined3d_context_vk *context_vk, VkImage vk_image, uint64_t command_buffer_id)
Definition: context_vk.c:906
void wined3d_swapchain_vk_cleanup(struct wined3d_swapchain_vk *swapchain_vk)
Definition: swapchain.c:125
void wined3d_context_vk_destroy_allocator_block(struct wined3d_context_vk *context_vk, struct wined3d_allocator_block *block, uint64_t command_buffer_id)
Definition: context_vk.c:803
void * wined3d_allocator_chunk_vk_map(struct wined3d_allocator_chunk_vk *chunk_vk, struct wined3d_context_vk *context_vk)
Definition: context_vk.c:304
void wined3d_texture_vk_barrier(struct wined3d_texture_vk *texture_vk, struct wined3d_context_vk *context_vk, uint32_t bind_mask)
Definition: texture.c:5524
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)
Definition: adapter_vk.c:1020
void wined3d_device_vk_destroy_null_views(struct wined3d_device_vk *device_vk, struct wined3d_context_vk *context_vk)
Definition: device.c:1114
static void wined3d_context_vk_reference_shader_resource_view(const struct wined3d_context_vk *context_vk, struct wined3d_shader_resource_view_vk *srv_vk)
Definition: wined3d_vk.h:1137
void wined3d_query_pool_vk_cleanup(struct wined3d_query_pool_vk *pool_vk, struct wined3d_context_vk *context_vk)
Definition: query.c:1378
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)
Definition: context_vk.c:3722
void wined3d_device_vk_destroy_null_resources(struct wined3d_device_vk *device_vk, struct wined3d_context_vk *context_vk)
Definition: device.c:910
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)
Definition: query.c:1366
VkPipelineStageFlags vk_pipeline_stage_mask_from_buffer_usage(VkBufferUsageFlags usage)
Definition: adapter_vk.c:864
VkCommandBuffer wined3d_context_vk_get_command_buffer(struct wined3d_context_vk *context_vk)
Definition: context_vk.c:1805
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)
Definition: wined3d_vk.h:1006
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)
Definition: view.c:2077
static void wined3d_context_vk_reference_rendertarget_view(const struct wined3d_context_vk *context_vk, struct wined3d_rendertarget_view_vk *rtv_vk)
Definition: wined3d_vk.h:1130
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)
Definition: buffer.c:1258
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)
Definition: texture.c:5484
static void wined3d_device_vk_allocator_lock(struct wined3d_device_vk *device_vk)
Definition: wined3d_vk.h:851
void wined3d_device_vk_uav_clear_state_cleanup(struct wined3d_device_vk *device_vk)
Definition: view.c:2057
bool wined3d_device_vk_create_null_views(struct wined3d_device_vk *device_vk, struct wined3d_context_vk *context_vk)
Definition: device.c:929
#define VK_DEVICE_FUNCS()
Definition: wined3d_vk.h:61
wined3d_vk_extension
Definition: wined3d_vk.h:237
@ WINED3D_VK_KHR_SHADER_DRAW_PARAMETERS
Definition: wined3d_vk.h:249
@ WINED3D_VK_EXT_EXTENDED_DYNAMIC_STATE
Definition: wined3d_vk.h:240
@ WINED3D_VK_EXT_EXTENDED_DYNAMIC_STATE2
Definition: wined3d_vk.h:241
@ WINED3D_VK_EXT_SHADER_STENCIL_EXPORT
Definition: wined3d_vk.h:244
@ WINED3D_VK_KHR_MAINTENANCE2
Definition: wined3d_vk.h:247
@ WINED3D_VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE
Definition: wined3d_vk.h:248
@ WINED3D_VK_EXT_VERTEX_ATTRIBUTE_DIVISOR
Definition: wined3d_vk.h:246
@ WINED3D_VK_EXT_HOST_QUERY_RESET
Definition: wined3d_vk.h:243
@ WINED3D_VK_EXT_TRANSFORM_FEEDBACK
Definition: wined3d_vk.h:245
@ WINED3D_VK_EXT_EXTENDED_DYNAMIC_STATE3
Definition: wined3d_vk.h:242
@ WINED3D_VK_EXT_COUNT
Definition: wined3d_vk.h:251
@ WINED3D_VK_EXT_NONE
Definition: wined3d_vk.h:238
void wined3d_context_vk_destroy_bo(struct wined3d_context_vk *context_vk, const struct wined3d_bo_vk *bo)
Definition: context_vk.c:1106
const VkDescriptorImageInfo * wined3d_texture_vk_get_default_image_info(struct wined3d_texture_vk *texture_vk, struct wined3d_context_vk *context_vk)
Definition: texture.c:4601
void wined3d_buffer_vk_barrier(struct wined3d_buffer_vk *buffer_vk, struct wined3d_context_vk *context_vk, uint32_t bind_mask)
Definition: buffer.c:1280
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)
Definition: query.c:1459
static struct wined3d_device_vk * wined3d_device_vk_from_allocator(struct wined3d_allocator *allocator)
Definition: wined3d_vk.h:846
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)
Definition: context_vk.c:610
void wined3d_context_vk_cleanup(struct wined3d_context_vk *context_vk)
Definition: context_vk.c:1725
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)
Definition: context_vk.c:2022
static VkImageView wined3d_rendertarget_view_vk_get_image_view(struct wined3d_rendertarget_view_vk *rtv_vk, struct wined3d_context_vk *context_vk)
Definition: wined3d_vk.h:967
VkCompareOp vk_compare_op_from_wined3d(enum wined3d_cmp_func op)
Definition: context_vk.c:30
static void wined3d_resource_vk_barrier(struct wined3d_resource *resource, struct wined3d_context_vk *context_vk, uint32_t bind_mask)
Definition: wined3d_vk.h:938
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)
Definition: context_vk.c:1896
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)
Definition: sampler.c:277
bool wined3d_query_pool_vk_allocate_query(struct wined3d_query_pool_vk *pool_vk, size_t *idx)
Definition: query.c:1357
static void wined3d_context_vk_reference_bo(const struct wined3d_context_vk *context_vk, struct wined3d_bo_vk *bo)
Definition: wined3d_vk.h:1091
void wined3d_context_vk_destroy_vk_event(struct wined3d_context_vk *context_vk, VkEvent vk_event, uint64_t command_buffer_id)
Definition: context_vk.c:1067
void wined3d_format_colour_to_vk(const struct wined3d_format *format, const struct wined3d_color *c, VkClearColorValue *retval)
Definition: utils.c:5790
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)
Definition: context_vk.c:1623
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)
Definition: query.c:1894
static void wined3d_context_vk_reference_resource(const struct wined3d_context_vk *context_vk, struct wined3d_resource *resource)
Definition: wined3d_vk.h:1109
void wined3d_allocator_chunk_vk_unmap(struct wined3d_allocator_chunk_vk *chunk_vk, struct wined3d_context_vk *context_vk)
Definition: context_vk.c:338
#define VK_INSTANCE_FUNCS()
Definition: wined3d_vk.h:33
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)
Definition: view.c:2533
void wined3d_context_vk_wait_command_buffer(struct wined3d_context_vk *context_vk, uint64_t id)
Definition: context_vk.c:1990
VkBufferUsageFlags vk_buffer_usage_from_bind_flags(uint32_t bind_flags)
Definition: buffer.c:1126
static void wined3d_rendertarget_view_vk_barrier(struct wined3d_rendertarget_view_vk *rtv_vk, struct wined3d_context_vk *context_vk, uint32_t bind_mask)
Definition: wined3d_vk.h:961
void wined3d_context_vk_destroy_vk_pipeline(struct wined3d_context_vk *context_vk, VkPipeline vk_pipeline, uint64_t command_buffer_id)
Definition: context_vk.c:1016
void wined3d_texture_vk_make_generic(struct wined3d_texture_vk *texture_vk, struct wined3d_context_vk *context_vk)
Definition: texture.c:5581
HRESULT wined3d_context_vk_init(struct wined3d_context_vk *context_vk, struct wined3d_swapchain *swapchain)
Definition: context_vk.c:4151
static unsigned int block
Definition: xmlmemory.c:101