19#ifndef __VKD3D_PRIVATE_H
20#define __VKD3D_PRIVATE_H
23#define WIDL_C_INLINE_WRAPPERS
26#define NONAMELESSUNION
27#define VK_NO_PROTOTYPES
35#include "wine/rbtree.h"
44#define VK_CALL(f) (vk_procs->f)
46#define VKD3D_DESCRIPTOR_MAGIC_FREE 0x00000000u
47#define VKD3D_DESCRIPTOR_MAGIC_CBV VKD3D_MAKE_TAG('C', 'B', 'V', 0)
48#define VKD3D_DESCRIPTOR_MAGIC_SRV VKD3D_MAKE_TAG('S', 'R', 'V', 0)
49#define VKD3D_DESCRIPTOR_MAGIC_UAV VKD3D_MAKE_TAG('U', 'A', 'V', 0)
50#define VKD3D_DESCRIPTOR_MAGIC_SAMPLER VKD3D_MAKE_TAG('S', 'M', 'P', 0)
51#define VKD3D_DESCRIPTOR_MAGIC_DSV VKD3D_MAKE_TAG('D', 'S', 'V', 0)
52#define VKD3D_DESCRIPTOR_MAGIC_RTV VKD3D_MAKE_TAG('R', 'T', 'V', 0)
54#define VKD3D_MAX_COMPATIBLE_FORMAT_COUNT 6u
55#define VKD3D_MAX_QUEUE_FAMILY_COUNT 3u
56#define VKD3D_MAX_SHADER_EXTENSIONS 5u
57#define VKD3D_MAX_SHADER_STAGES 5u
58#define VKD3D_MAX_VK_SYNC_OBJECTS 4u
59#define VKD3D_MAX_DEVICE_BLOCKED_QUEUES 16u
60#define VKD3D_MAX_DESCRIPTOR_SETS 64u
62#define VKD3D_MAX_DESCRIPTOR_SET_SAMPLERS 2048u
66#define VKD3D_MAX_VIRTUAL_HEAP_DESCRIPTORS_PER_TYPE (16 * 1024u)
81#define DECLARE_VK_PFN(name) PFN_##name name;
84#define VK_INSTANCE_PFN DECLARE_VK_PFN
85#define VK_INSTANCE_EXT_PFN DECLARE_VK_PFN
91#define VK_INSTANCE_PFN DECLARE_VK_PFN
92#define VK_DEVICE_PFN DECLARE_VK_PFN
93#define VK_DEVICE_EXT_PFN DECLARE_VK_PFN
324 IUnknown_Release(
data->u.object);
352 const GUID *
tag,
unsigned int data_size,
const void *
data);
413 VkSemaphore *timeline_semaphore);
441#define VKD3D_RESOURCE_PUBLIC_FLAGS \
442 (VKD3D_RESOURCE_INITIAL_STATE_TRANSITION | VKD3D_RESOURCE_PRESENT_STATE_TRANSITION)
443#define VKD3D_RESOURCE_EXTERNAL 0x00000004
444#define VKD3D_RESOURCE_DEDICATED_HEAP 0x00000008
445#define VKD3D_RESOURCE_LINEAR_TILING 0x00000010
535 UINT *sub_resource_tiling_count,
UINT first_sub_resource_tiling,
646 union d3d12_desc_object
821# define VKD3D_DESCRIPTOR_HEAP_ALIGN 8
823# define VKD3D_DESCRIPTOR_HEAP_ALIGN 4
826# define VKD3D_DESCRIPTOR_HEAP_ALIGN sizeof(void *)
892 unsigned int query_index)
894 unsigned int index = query_index / (
sizeof(*
heap->availability_mask) *
CHAR_BIT);
895 unsigned int shift = query_index % (
sizeof(*
heap->availability_mask) *
CHAR_BIT);
900 unsigned int query_index)
902 unsigned int index = query_index / (
sizeof(*
heap->availability_mask) *
CHAR_BIT);
903 unsigned int shift = query_index % (
sizeof(*
heap->availability_mask) *
CHAR_BIT);
1531#define VKD3D_DESCRIPTOR_POOL_COUNT 6
1618 return ID3D12Device9_QueryInterface(&
device->ID3D12Device9_iface, iid,
object);
1623 return ID3D12Device9_AddRef(&
device->ID3D12Device9_iface);
1628 return ID3D12Device9_Release(&
device->ID3D12Device9_iface);
1634 return ID3D12Device9_GetDescriptorHandleIncrementSize(&
device->ID3D12Device9_iface, descriptor_type);
1661 unsigned int row_pitch,
unsigned int slice_pitch,
1662 unsigned int x,
unsigned int y,
unsigned int z)
1664 return z * slice_pitch
1665 + (
y /
format->block_height) * row_pitch
1671 return format->block_byte_count != 1;
1675 unsigned int src_row_pitch,
unsigned int src_slice_pitch,
uint8_t *
dst,
unsigned int dst_row_pitch,
1676 unsigned int dst_slice_pitch,
unsigned int w,
unsigned int h,
unsigned int d);
1694 return box->right <=
box->left ||
box->bottom <=
box->top ||
box->back <=
box->front;
1698 unsigned int miplevel_idx)
1700 return max(1,
desc->Width >> miplevel_idx);
1704 unsigned int miplevel_idx)
1706 return max(1,
desc->Height >> miplevel_idx);
1710 unsigned int miplevel_idx)
1713 return max(1,
d >> miplevel_idx);
1728 return (
thread_count + workgroup_size - 1) / workgroup_size;
1754 FIXME(
"Ignoring node mask 0x%08x.\n",
mask);
1777 vk_structure->pNext = vk_header->
pNext;
1778 vk_header->
pNext = vk_structure;
1787 } *vkd3d_header =
header, *vkd3d_structure = structure;
1790 vkd3d_structure->next = vkd3d_header->next;
1791 vkd3d_header->next = vkd3d_structure;
1800 const void *
key,
size_t key_size,
const void *
value,
size_t value_size);
1802 const void *
key,
size_t key_size,
void *
value,
size_t *value_size);
_Check_return_ _Ret_maybenull_ _In_ size_t alignment
static void list_remove(struct list_entry *entry)
static void list_init(struct list_entry *head)
const UINT D3D12_VS_INPUT_REGISTER_COUNT
D3D12_PRIMITIVE_TOPOLOGY_TYPE
const UINT D3D12_MAX_ROOT_COST
@ D3D12_RESOURCE_DIMENSION_BUFFER
@ D3D12_RESOURCE_DIMENSION_TEXTURE3D
@ D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL
D3D12_ROOT_SIGNATURE_FLAGS
const UINT D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT
const UINT D3D12_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT
D3D12_ROOT_PARAMETER_TYPE
D3D12_DESCRIPTOR_HEAP_TYPE
@ D3D12_SHADER_VISIBILITY_PIXEL
D3D12_INDEX_BUFFER_STRIP_CUT_VALUE
const UINT D3D12_SO_BUFFER_SLOT_COUNT
D3D12_PIPELINE_STATE_FLAGS
UINT64 D3D12_GPU_VIRTUAL_ADDRESS
static HINSTANCE instance
static WCHAR reason[MAX_STRING_RESOURCE_LEN]
static void depth_stencil(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
GLint GLint GLint GLint GLint x
GLuint GLuint GLsizei GLenum type
GLint GLint GLint GLint GLint GLint y
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLenum GLenum GLenum GLenum mapping
GLubyte GLubyte GLubyte GLubyte w
GLfloat GLfloat GLfloat GLfloat h
static char * program_name
#define memcpy(s1, s2, n)
D3D11_SHADER_VARIABLE_DESC desc
static HANDLE PIO_APC_ROUTINE PVOID PIO_STATUS_BLOCK ULONG PVOID ULONG PVOID ULONG out_size
static unsigned int WINAPI thread_main(void *args)
static uint32_t thread_count(IN pnfs_layout_state *state, IN enum pnfs_iomode iomode, IN uint64_t offset, IN uint64_t length)
static unsigned __int64 next
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
D3D12_MIP_REGION SamplerFeedbackMipRegion
struct VkBaseOutStructure * pNext
struct d3d12_device * device
VkDescriptorPool * descriptor_pools
struct vkd3d_private_store private_store
size_t transfer_buffer_count
struct vkd3d_view ** views
size_t free_descriptor_pools_size
VkCommandBuffer * command_buffers
VkCommandPool vk_command_pool
VkDescriptorPool vk_descriptor_pool
D3D12_COMMAND_LIST_TYPE type
VkBufferView * buffer_views
ID3D12CommandAllocator ID3D12CommandAllocator_iface
VkQueueFlags vk_queue_flags
size_t free_descriptor_pool_count
struct vkd3d_buffer * transfer_buffers
size_t descriptor_pools_size
size_t descriptor_pool_count
struct d3d12_command_list * current_command_list
VkDescriptorPool * free_descriptor_pools
VkFramebuffer * framebuffers
size_t command_buffer_count
size_t transfer_buffers_size
size_t command_buffers_size
D3D12_PRIMITIVE_TOPOLOGY primitive_topology
VkFramebuffer current_framebuffer
VkPipeline current_pipeline
VkBuffer so_counter_buffers[D3D12_SO_BUFFER_SLOT_COUNT]
VkQueueFlags vk_queue_flags
ID3D12GraphicsCommandList6 ID3D12GraphicsCommandList6_iface
unsigned int fb_layer_count
unsigned int descriptor_heap_count
VkCommandBuffer vk_command_buffer
struct vkd3d_private_store private_store
struct vkd3d_pipeline_bindings pipeline_bindings[VKD3D_PIPELINE_BIND_POINT_COUNT]
struct d3d12_device * device
D3D12_COMMAND_LIST_TYPE type
DXGI_FORMAT index_buffer_format
VkRenderPass pso_render_pass
VkDeviceSize so_counter_buffer_offsets[D3D12_SO_BUFFER_SLOT_COUNT]
uint32_t strides[D3D12_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT]
struct d3d12_pipeline_state * state
struct d3d12_descriptor_heap * descriptor_heaps[64]
VkRenderPass current_render_pass
struct d3d12_command_allocator * allocator
VkImageView rtvs[D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT]
struct vkd3d_cs_op_data * ops
struct vkd3d_private_store private_store
D3D12_COMMAND_QUEUE_DESC desc
const struct d3d12_fence * last_waited_fence
bool supports_sparse_binding
ID3D12CommandQueue ID3D12CommandQueue_iface
struct d3d12_command_queue_op_array op_queue
struct vkd3d_mutex op_mutex
struct d3d12_device * device
uint64_t last_waited_fence_value
struct d3d12_command_queue_op_array aux_op_queue
struct vkd3d_queue * vkd3d_queue
struct vkd3d_fence_worker fence_worker
struct d3d12_device * device
unsigned int internal_refcount
struct vkd3d_private_store private_store
ID3D12CommandSignature ID3D12CommandSignature_iface
D3D12_COMMAND_SIGNATURE_DESC desc
struct d3d12_desc::@6032 s
struct vkd3d_desc_header * header
union d3d12_desc::@6032::d3d12_desc_object u
struct vkd3d_cbuffer_desc * cb_desc
struct vkd3d_mutex vk_sets_mutex
D3D12_DESCRIPTOR_HEAP_DESC desc
struct d3d12_descriptor_heap_vk_set vk_descriptor_sets[VKD3D_SET_INDEX_COUNT]
struct vkd3d_private_store private_store
ID3D12DescriptorHeap ID3D12DescriptorHeap_iface
struct d3d12_device * device
unsigned int volatile dirty_list_head
VkDescriptorPool vk_descriptor_pool
uint8_t DECLSPEC_ALIGN(VKD3D_DESCRIPTOR_HEAP_ALIGN) descriptors[]
unsigned int unbounded_offset
VkDescriptorSetLayout vk_layout
D3D12_FEATURE_DATA_D3D12_OPTIONS5 feature_options5
struct vkd3d_desc_object_cache view_desc_cache
struct vkd3d_null_resources null_resources
D3D12_FEATURE_DATA_D3D12_OPTIONS feature_options
struct vkd3d_mutex pipeline_cache_mutex
struct vkd3d_uav_clear_state uav_clear_state
struct vkd3d_render_pass_cache render_pass_cache
VkPhysicalDevice vk_physical_device
struct vkd3d_desc_object_cache cbuffer_desc_cache
D3D12_FEATURE_DATA_D3D12_OPTIONS4 feature_options4
struct vkd3d_gpu_va_allocator gpu_va_allocator
unsigned int vk_pool_count
struct vkd3d_private_store private_store
struct vkd3d_mutex worker_mutex
struct vkd3d_mutex blocked_queues_mutex
VkPipelineCache vk_pipeline_cache
struct vkd3d_vk_device_procs vk_procs
unsigned int queue_family_count
struct vkd3d_vulkan_info vk_info
unsigned int blocked_queue_count
VkDescriptorPoolSize vk_pool_sizes[VKD3D_DESCRIPTOR_POOL_COUNT]
const struct vkd3d_format * depth_stencil_formats
unsigned int format_compatibility_list_count
struct d3d12_command_queue * blocked_queues[VKD3D_MAX_DEVICE_BLOCKED_QUEUES]
struct vkd3d_vk_descriptor_heap_layout vk_descriptor_heap_layouts[VKD3D_SET_INDEX_COUNT]
D3D12_FEATURE_DATA_D3D12_OPTIONS1 feature_options1
D3D12_FEATURE_DATA_D3D12_OPTIONS2 feature_options2
struct vkd3d_cond worker_cond
uint32_t queue_family_indices[VKD3D_MAX_QUEUE_FAMILY_COUNT]
PFN_vkd3d_signal_event signal_event
struct vkd3d_queue * direct_queue
const struct vkd3d_format_compatibility_list * format_compatibility_lists
struct vkd3d_queue * copy_queue
D3D12_FEATURE_DATA_D3D12_OPTIONS3 feature_options3
ID3D12Device9 ID3D12Device9_iface
struct vkd3d_queue * compute_queue
VkPhysicalDeviceMemoryProperties memory_properties
struct d3d12_descriptor_heap ** heaps
struct vkd3d_instance * vkd3d_instance
VkTimeDomainEXT vk_host_time_domain
enum vkd3d_shader_spirv_environment environment
union vkd3d_thread_handle worker_thread
VkSampleCountFlagBits sample_count
struct d3d12_resource * resource
const struct vkd3d_format * format
uint64_t pending_timeline_value
struct vkd3d_signaled_semaphore * semaphores
struct vkd3d_cond null_event_cond
unsigned int internal_refcount
struct d3d12_fence::vkd3d_waiting_event * events
ID3D12Fence1 ID3D12Fence1_iface
struct vkd3d_private_store private_store
unsigned int semaphore_count
VkFence old_vk_fences[VKD3D_MAX_VK_SYNC_OBJECTS]
struct d3d12_device * device
VkSemaphore timeline_semaphore
uint64_t max_pending_value
VkFormat rtv_formats[D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT]
VkPipelineDepthStencilStateCreateInfo ds_desc
D3D12_INDEX_BUFFER_STRIP_CUT_VALUE index_buffer_strip_cut_value
unsigned int null_attachment_mask
VkPipelineMultisampleStateCreateInfo ms_desc
VkVertexInputAttributeDescription attributes[D3D12_VS_INPUT_REGISTER_COUNT]
VkPipelineRasterizationStateCreateInfo rs_desc
const struct d3d12_root_signature * root_signature
VkSampleMask sample_mask[2]
VkVertexInputBindingDivisorDescriptionEXT instance_divisors[D3D12_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT]
struct list compiled_pipelines
size_t instance_divisor_count
VkPipelineRasterizationDepthClipStateCreateInfoEXT rs_depth_clip_info
VkVertexInputRate input_rates[D3D12_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT]
VkPipelineColorBlendAttachmentState blend_attachments[D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT]
VkPipelineRasterizationStateStreamCreateInfoEXT rs_stream_info
struct vkd3d_private_store private_store
unsigned int resource_count
struct d3d12_device * device
ID3D12Heap ID3D12Heap_iface
D3D12_STREAM_OUTPUT_DESC stream_output
D3D12_BLEND_DESC blend_state
D3D12_INPUT_LAYOUT_DESC input_layout
D3D12_DEPTH_STENCIL_DESC1 depth_stencil_state
D3D12_VIEW_INSTANCING_DESC view_instancing_desc
struct D3D12_RT_FORMAT_ARRAY rtv_formats
D3D12_CACHED_PIPELINE_STATE cached_pso
D3D12_PIPELINE_STATE_FLAGS flags
D3D12_INDEX_BUFFER_STRIP_CUT_VALUE strip_cut_value
DXGI_SAMPLE_DESC sample_desc
D3D12_RASTERIZER_DESC rasterizer_state
D3D12_PRIMITIVE_TOPOLOGY_TYPE primitive_topology_type
ID3D12RootSignature * root_signature
VkPipelineBindPoint vk_bind_point
struct d3d12_graphics_pipeline_state graphics
struct d3d12_compute_pipeline_state compute
struct vkd3d_private_store private_store
ID3D12PipelineState ID3D12PipelineState_iface
ID3D12RootSignature * implicit_root_signature
union d3d12_pipeline_state::@6034 u
struct d3d12_device * device
struct d3d12_pipeline_uav_counter_state uav_counters
unsigned int binding_count
struct vkd3d_shader_uav_counter_binding * bindings
VkDescriptorSetLayout vk_set_layout
VkPipelineLayout vk_pipeline_layout
VkQueryPool vk_query_pool
uint64_t availability_mask[]
struct d3d12_device * device
struct vkd3d_private_store private_store
ID3D12QueryHeap ID3D12QueryHeap_iface
unsigned int subresource_count
struct vkd3d_subresource_tile_info * subresources
unsigned int standard_mip_count
unsigned int packed_mip_tile_count
ID3D12Resource2 ID3D12Resource2_iface
unsigned int internal_refcount
union d3d12_resource::@6027 u
D3D12_RESOURCE_STATES initial_state
struct d3d12_resource_tile_info tiles
D3D12_GPU_VIRTUAL_ADDRESS gpu_address
struct vkd3d_private_store private_store
const struct vkd3d_format * format
D3D12_RESOURCE_STATES present_state
D3D12_RESOURCE_DESC1 desc
struct d3d12_device * device
VkShaderStageFlags stage_flags
unsigned int descriptor_count
unsigned int base_register_idx
unsigned int vk_binding_count
uint32_t descriptor_magic
enum vkd3d_shader_descriptor_type type
unsigned int register_space
struct d3d12_root_descriptor_table_range * ranges
struct d3d12_root_descriptor_table descriptor_table
union d3d12_root_parameter::@6033 u
struct d3d12_root_descriptor descriptor
D3D12_ROOT_PARAMETER_TYPE parameter_type
VkPushConstantRange push_constant_ranges[D3D12_SHADER_VISIBILITY_PIXEL+1]
unsigned int static_sampler_count
unsigned int root_constant_count
uint64_t descriptor_table_mask
uint32_t push_descriptor_mask
unsigned int root_descriptor_count
unsigned int push_constant_range_count
struct d3d12_descriptor_set_layout descriptor_set_layouts[VKD3D_MAX_DESCRIPTOR_SETS]
ID3D12RootSignature ID3D12RootSignature_iface
unsigned int descriptor_table_offset
unsigned int uav_mapping_count
unsigned int binding_count
unsigned int parameter_count
struct vkd3d_shader_push_constant_buffer * root_constants
struct d3d12_root_parameter * parameters
struct vkd3d_shader_descriptor_offset * descriptor_offsets
bool use_descriptor_arrays
struct vkd3d_shader_descriptor_offset * uav_counter_offsets
VkSampler * static_samplers
unsigned int descriptor_table_count
struct vkd3d_private_store private_store
struct vkd3d_shader_uav_counter_binding * uav_counter_mapping
D3D12_ROOT_SIGNATURE_FLAGS flags
struct vkd3d_shader_resource_binding * descriptor_mapping
struct d3d12_device * device
VkPipelineLayout vk_pipeline_layout
VkSampleCountFlagBits sample_count
const struct vkd3d_format * format
struct d3d12_resource * resource
VkDescriptorBufferInfo vk_cbv_info
D3D12_TILE_REGION_SIZE region_size
struct d3d12_resource * src_resource
struct d3d12_resource * dst_resource
D3D12_TILE_MAPPING_FLAGS flags
D3D12_TILED_RESOURCE_COORDINATE dst_region_start_coordinate
D3D12_TILED_RESOURCE_COORDINATE src_region_start_coordinate
VkCommandBuffer * buffers
unsigned int buffer_count
struct vkd3d_cs_execute execute
struct vkd3d_cs_signal signal
struct vkd3d_cs_wait wait
struct vkd3d_cs_update_mappings update_mappings
struct vkd3d_cs_copy_mappings copy_mappings
union vkd3d_cs_op_data::@6038 u
struct d3d12_fence * fence
D3D12_TILE_REGION_SIZE * region_sizes
struct d3d12_resource * resource
D3D12_TILED_RESOURCE_COORDINATE * region_start_coordinates
D3D12_TILE_RANGE_FLAGS * range_flags
UINT * heap_range_offsets
D3D12_TILE_MAPPING_FLAGS flags
struct d3d12_fence * fence
struct desc_object_cache_head heads[16]
unsigned int storage_image_max_descriptors
unsigned int uniform_buffer_max_descriptors
unsigned int storage_buffer_max_descriptors
unsigned int sampled_image_max_descriptors
unsigned int sampler_max_descriptors
struct vkd3d_queue * queue
void(* wait_for_gpu_fence)(struct vkd3d_fence_worker *worker, const struct vkd3d_waiting_fence *enqueued_fence)
struct vkd3d_waiting_fence * fences
struct d3d12_device * device
union vkd3d_thread_handle thread
D3D12_GPU_VIRTUAL_ADDRESS base
struct vkd3d_gpu_va_slab * free_slab
size_t fallback_allocations_size
struct vkd3d_gpu_va_allocation * fallback_allocations
struct vkd3d_gpu_va_slab * slabs
size_t fallback_allocation_count
D3D12_GPU_VIRTUAL_ADDRESS fallback_floor
struct vkd3d_vulkan_info vk_info
enum vkd3d_api_version api_version
VkDebugReportCallbackEXT vk_debug_callback
struct vkd3d_vk_global_procs vk_global_procs
PFN_vkd3d_signal_event signal_event
PFN_vkd3d_join_thread join_thread
uint64_t host_ticks_per_second
struct vkd3d_vk_instance_procs vk_procs
PFN_vkd3d_create_thread create_thread
VkImage vk_2d_storage_image
VkBuffer vk_storage_buffer
VkDeviceMemory vk_buffer_memory
VkDeviceMemory vk_2d_image_memory
VkDeviceMemory vk_2d_storage_image_memory
VkDeviceMemory vk_storage_buffer_memory
struct vkd3d_push_descriptor push_descriptors[D3D12_MAX_ROOT_COST/2]
const struct d3d12_root_signature * root_signature
uint32_t push_descriptor_dirty_mask
size_t vk_uav_counter_views_size
struct d3d12_desc * descriptor_tables[D3D12_MAX_ROOT_COST]
uint32_t push_descriptor_active_mask
VkBufferView * vk_uav_counter_views
VkDescriptorSet descriptor_sets[VKD3D_MAX_DESCRIPTOR_SETS]
uint64_t descriptor_table_dirty_mask
uint64_t descriptor_table_active_mask
uint64_t cbv_srv_uav_heap_id
size_t descriptor_set_count
VkPipelineBindPoint vk_bind_point
union vkd3d_private_data::@6024 u
struct vkd3d_push_descriptor::@6035::@6036 cbv
VkBufferView vk_buffer_view
union vkd3d_push_descriptor::@6035 u
struct vkd3d_queue::@6037 * semaphores
uint64_t completed_sequence_number
VkSemaphore old_vk_semaphores[VKD3D_MAX_VK_SYNC_OBJECTS]
uint64_t submitted_sequence_number
VkQueueFlags vk_queue_flags
size_t render_passes_size
struct vkd3d_render_pass_entry * render_passes
VkRenderPass vk_render_pass
unsigned int sample_count
VkFormat vk_formats[D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT+1]
unsigned int attachment_count
struct vkd3d_resource_view::@6029::@6030 buffer
VkImageView vk_image_view
VkBufferView vk_counter_view
struct vkd3d_resource_view::@6029::@6031 texture
enum vkd3d_view_type type
const struct vkd3d_format * format
union vkd3d_resource_view::@6029 info
VkBufferView vk_buffer_view
unsigned int miplevel_idx
VkImageViewType vk_view_type
union vkd3d_resource_view::@6028 u
union vkd3d_signaled_semaphore::@6025 u
const struct vkd3d_queue * signalling_queue
struct vkd3d_signaled_semaphore::@6025::@6026 binary
unsigned int miplevel_idx
VkComponentMapping components
const struct vkd3d_format * format
VkImageAspectFlags vk_image_aspect
unsigned int miplevel_count
VkImageViewType view_type
VkPipeline image_1d_array
VkPipeline image_2d_array
VkDescriptorSetLayout vk_set_layout_image
VkDescriptorSetLayout vk_set_layout_buffer
struct vkd3d_uav_clear_pipelines pipelines_uint
VkPipelineLayout vk_pipeline_layout_buffer
struct vkd3d_uav_clear_pipelines pipelines_float
VkPipelineLayout vk_pipeline_layout_image
VkDescriptorSetLayout vk_set_layout
D3D12_DESCRIPTOR_HEAP_TYPE applicable_heap_type
PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties
PFN_vkCreateInstance vkCreateInstance
PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr
bool EXT_shader_viewport_index_layer
bool KHR_get_memory_requirements2
VkPhysicalDeviceLimits device_limits
bool vertex_attrib_zero_divisor
bool EXT_shader_stencil_export
VkPhysicalDeviceSparseProperties sparse_properties
bool uav_read_without_format
bool KHR_dedicated_allocation
bool EXT_transform_feedback
bool EXT_fragment_shader_interlock
bool KHR_draw_indirect_count
D3D_FEATURE_LEVEL max_feature_level
bool EXT_texel_buffer_alignment
unsigned int shader_extension_count
bool EXT_vertex_attribute_divisor
bool KHR_get_physical_device_properties2
bool KHR_image_format_list
bool EXT_conditional_rendering
bool EXT_depth_range_unrestricted
struct vkd3d_device_descriptor_limits descriptor_limits
bool KHR_portability_subset
VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT texel_buffer_alignment_properties
bool EXT_shader_demote_to_helper_invocation
bool rasterization_stream
bool tessellation_shaders
enum vkd3d_shader_spirv_extension shader_extensions[VKD3D_MAX_SHADER_EXTENSIONS]
bool KHR_sampler_mirror_clamp_to_edge
bool transform_feedback_queries
bool EXT_calibrated_timestamps
bool EXT_mutable_descriptor_type
bool KHR_timeline_semaphore
unsigned int max_vertex_attrib_divisor
bool EXT_depth_clip_enable
bool EXT_descriptor_indexing
union vkd3d_waiting_fence::@6023 u
struct d3d12_fence * fence
uint64_t queue_sequence_number
#define CONTAINING_RECORD(address, type, field)
void *(* PFN_vkd3d_thread)(void *data)
void *(* PFN_vkd3d_create_thread)(PFN_vkd3d_thread thread_main, void *data)
HRESULT(* PFN_vkd3d_signal_event)(HANDLE event)
HRESULT(* PFN_vkd3d_join_thread)(void *thread)
static void vkd3d_mutex_init(struct vkd3d_mutex *lock)
#define VKD3D_PRINTF_FUNC(fmt, args)
static void vkd3d_mutex_destroy(struct vkd3d_mutex *lock)
static bool vkd3d_atomic_compare_exchange_u32(uint32_t volatile *x, uint32_t expected, uint32_t val)
#define VKD3D_ASSERT(cond)
static void vkd3d_free(void *ptr)
void vkd3d_render_pass_cache_init(struct vkd3d_render_pass_cache *cache)
static bool vkd3d_format_is_compressed(const struct vkd3d_format *format)
#define VKD3D_MAX_DESCRIPTOR_SETS
void vkd3d_queue_destroy(struct vkd3d_queue *queue, struct d3d12_device *device)
VkSampleCountFlagBits vk_samples_from_dxgi_sample_desc(const DXGI_SAMPLE_DESC *desc)
struct d3d12_root_signature * unsafe_impl_from_ID3D12RootSignature(ID3D12RootSignature *iface)
vkd3d_vk_descriptor_set_index
@ VKD3D_SET_INDEX_MUTABLE
@ VKD3D_SET_INDEX_STORAGE_IMAGE
@ VKD3D_SET_INDEX_UNIFORM_TEXEL_BUFFER
@ VKD3D_SET_INDEX_SAMPLED_IMAGE
@ VKD3D_SET_INDEX_UNIFORM_BUFFER
@ VKD3D_SET_INDEX_STORAGE_TEXEL_BUFFER
@ VKD3D_SET_INDEX_SAMPLER
@ VKD3D_SET_INDEX_UAV_COUNTER
void vkd3d_gpu_va_allocator_free(struct vkd3d_gpu_va_allocator *allocator, D3D12_GPU_VIRTUAL_ADDRESS address)
@ VKD3D_FORMAT_TYPE_OTHER
@ VKD3D_FORMAT_TYPE_TYPELESS
static void vk_prepend_struct(void *header, void *structure)
static unsigned int d3d12_desc_heap_range_size(const struct d3d12_desc *descriptor)
static void vkd3d_private_store_destroy(struct vkd3d_private_store *store)
static struct d3d12_rtv_desc * d3d12_rtv_desc_from_cpu_handle(D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle)
vkd3d_pipeline_bind_point
@ VKD3D_PIPELINE_BIND_POINT_COUNT
@ VKD3D_PIPELINE_BIND_POINT_GRAPHICS
@ VKD3D_PIPELINE_BIND_POINT_COMPUTE
const char * debug_vk_memory_heap_flags(VkMemoryHeapFlags flags)
void d3d12_desc_create_cbv(struct d3d12_desc *descriptor, struct d3d12_device *device, const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc)
HRESULT d3d12_root_signature_create(struct d3d12_device *device, const void *bytecode, size_t bytecode_length, struct d3d12_root_signature **root_signature)
VkResult vkd3d_create_timeline_semaphore(const struct d3d12_device *device, uint64_t initial_value, VkSemaphore *timeline_semaphore)
static ULONG d3d12_device_release(struct d3d12_device *device)
HRESULT return_interface(void *iface, REFIID iface_iid, REFIID requested_iid, void **object)
void d3d12_dsv_desc_create_dsv(struct d3d12_dsv_desc *dsv_desc, struct d3d12_device *device, struct d3d12_resource *resource, const D3D12_DEPTH_STENCIL_VIEW_DESC *desc)
static void d3d12_resource_desc1_from_desc(D3D12_RESOURCE_DESC1 *desc1, const D3D12_RESOURCE_DESC *desc)
static unsigned int d3d12_device_get_descriptor_handle_increment_size(struct d3d12_device *device, D3D12_DESCRIPTOR_HEAP_TYPE descriptor_type)
HRESULT d3d12_reserved_resource_create(struct d3d12_device *device, const D3D12_RESOURCE_DESC1 *desc, D3D12_RESOURCE_STATES initial_state, const D3D12_CLEAR_VALUE *optimized_clear_value, struct d3d12_resource **resource)
void d3d12_resource_get_tiling(struct d3d12_device *device, const struct d3d12_resource *resource, UINT *total_tile_count, D3D12_PACKED_MIP_INFO *packed_mip_info, D3D12_TILE_SHAPE *standard_tile_shape, UINT *sub_resource_tiling_count, UINT first_sub_resource_tiling, D3D12_SUBRESOURCE_TILING *sub_resource_tilings)
HRESULT vkd3d_render_pass_cache_find(struct vkd3d_render_pass_cache *cache, struct d3d12_device *device, const struct vkd3d_render_pass_key *key, VkRenderPass *vk_render_pass)
HRESULT vkd3d_load_vk_device_procs(struct vkd3d_vk_device_procs *procs, const struct vkd3d_vk_instance_procs *parent_procs, VkDevice device)
static enum vkd3d_vk_descriptor_set_index vkd3d_vk_descriptor_set_index_from_vk_descriptor_type(VkDescriptorType type)
static ULONG d3d12_device_add_ref(struct d3d12_device *device)
void d3d12_rtv_desc_create_rtv(struct d3d12_rtv_desc *rtv_desc, struct d3d12_device *device, struct d3d12_resource *resource, const D3D12_RENDER_TARGET_VIEW_DESC *desc)
static unsigned int d3d12_resource_desc_get_sub_resource_count(const D3D12_RESOURCE_DESC1 *desc)
static HRESULT d3d12_device_query_interface(struct d3d12_device *device, REFIID iid, void **object)
static bool d3d12_query_heap_is_result_available(const struct d3d12_query_heap *heap, unsigned int query_index)
void d3d12_desc_copy(struct d3d12_desc *dst, const struct d3d12_desc *src, struct d3d12_descriptor_heap *dst_heap, struct d3d12_device *device)
static bool d3d12_box_is_empty(const D3D12_BOX *box)
uint64_t object_global_serial_id
static struct d3d12_resource * impl_from_ID3D12Resource2(ID3D12Resource2 *iface)
int vkd3d_parse_root_signature_v_1_0(const struct vkd3d_shader_code *dxbc, struct vkd3d_shader_versioned_root_signature_desc *desc)
static unsigned int d3d12_resource_desc_get_width(const D3D12_RESOURCE_DESC1 *desc, unsigned int miplevel_idx)
HRESULT d3d12_heap_create(struct d3d12_device *device, const D3D12_HEAP_DESC *desc, const struct d3d12_resource *resource, ID3D12ProtectedResourceSession *protected_session, struct d3d12_heap **heap)
const char * debug_vk_extent_3d(VkExtent3D extent)
HRESULT vkd3d_set_private_data(struct vkd3d_private_store *store, const GUID *tag, unsigned int data_size, const void *data)
bool is_valid_resource_state(D3D12_RESOURCE_STATES state)
void d3d12_desc_flush_vk_heap_updates_locked(struct d3d12_descriptor_heap *descriptor_heap, struct d3d12_device *device)
static bool d3d12_resource_is_buffer(const struct d3d12_resource *resource)
const char * debug_vk_memory_property_flags(VkMemoryPropertyFlags flags)
HRESULT d3d12_pipeline_state_create_graphics(struct d3d12_device *device, const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc, struct d3d12_pipeline_state **state)
HRESULT d3d12_fence_create(struct d3d12_device *device, uint64_t initial_value, D3D12_FENCE_FLAGS flags, struct d3d12_fence **fence)
#define VKD3D_MAX_DEVICE_BLOCKED_QUEUES
void * vkd3d_gpu_va_allocator_dereference(struct vkd3d_gpu_va_allocator *allocator, D3D12_GPU_VIRTUAL_ADDRESS address)
const char * debug_d3d12_shader_component_mapping(unsigned int mapping)
static bool d3d12_pipeline_state_is_graphics(const struct d3d12_pipeline_state *state)
static void debug_ignored_node_mask(unsigned int mask)
HRESULT vkd3d_load_vk_instance_procs(struct vkd3d_vk_instance_procs *procs, const struct vkd3d_vk_global_procs *global_procs, VkInstance instance)
static HRESULT vkd3d_private_store_init(struct vkd3d_private_store *store)
static unsigned int dsv_attachment_mask(const struct d3d12_graphics_pipeline_state *graphics)
#define VKD3D_MAX_SHADER_EXTENSIONS
static unsigned int d3d12_resource_desc_get_layer_count(const D3D12_RESOURCE_DESC1 *desc)
HRESULT d3d12_resource_validate_desc(const D3D12_RESOURCE_DESC1 *desc, struct d3d12_device *device)
HRESULT vkd3d_set_private_data_interface(struct vkd3d_private_store *store, const GUID *tag, const IUnknown *object)
VkResult vkd3d_set_vk_object_name_utf8(struct d3d12_device *device, uint64_t vk_object, VkDebugReportObjectTypeEXT vk_object_type, const char *name)
static size_t vkd3d_format_get_data_offset(const struct vkd3d_format *format, unsigned int row_pitch, unsigned int slice_pitch, unsigned int x, unsigned int y, unsigned int z)
void vkd3d_destroy_null_resources(struct vkd3d_null_resources *null_resources, struct d3d12_device *device)
int vkd3d_shader_cache_put(struct vkd3d_shader_cache *cache, const void *key, size_t key_size, const void *value, size_t value_size)
void vkd3d_format_copy_data(const struct vkd3d_format *format, const uint8_t *src, unsigned int src_row_pitch, unsigned int src_slice_pitch, uint8_t *dst, unsigned int dst_row_pitch, unsigned int dst_slice_pitch, unsigned int w, unsigned int h, unsigned int d)
bool is_write_resource_state(D3D12_RESOURCE_STATES state)
HRESULT d3d12_command_list_create(struct d3d12_device *device, UINT node_mask, D3D12_COMMAND_LIST_TYPE type, ID3D12CommandAllocator *allocator_iface, ID3D12PipelineState *initial_pipeline_state, struct d3d12_command_list **list)
HRESULT hresult_from_vk_result(VkResult vr)
static struct d3d12_desc * d3d12_desc_from_cpu_handle(D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle)
static const struct vkd3d_format * vkd3d_format_from_d3d12_resource_desc(const struct d3d12_device *device, const D3D12_RESOURCE_DESC1 *desc, DXGI_FORMAT view_format)
static struct d3d12_desc * d3d12_desc_from_gpu_handle(D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle)
HRESULT vkd3d_load_vk_global_procs(struct vkd3d_vk_global_procs *procs, PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr)
HRESULT vkd3d_uav_clear_state_init(struct vkd3d_uav_clear_state *state, struct d3d12_device *device)
bool is_valid_feature_level(D3D_FEATURE_LEVEL feature_level)
int vkd3d_shader_cache_get(struct vkd3d_shader_cache *cache, const void *key, size_t key_size, void *value, size_t *value_size)
VkPipeline d3d12_pipeline_state_get_or_create_pipeline(struct d3d12_pipeline_state *state, D3D12_PRIMITIVE_TOPOLOGY topology, const uint32_t *strides, VkFormat dsv_format, VkRenderPass *vk_render_pass)
void vkd3d_view_decref(void *view, struct d3d12_device *device)
HRESULT vkd3d_get_image_allocation_info(struct d3d12_device *device, const D3D12_RESOURCE_DESC1 *desc, struct vkd3d_resource_allocation_info *allocation_info)
struct d3d12_heap * unsafe_impl_from_ID3D12Heap(ID3D12Heap *iface)
bool vkd3d_create_raw_buffer_view(struct d3d12_device *device, D3D12_GPU_VIRTUAL_ADDRESS gpu_address, D3D12_ROOT_PARAMETER_TYPE parameter_type, VkBufferView *vk_buffer_view)
HRESULT hresult_from_vkd3d_result(int vkd3d_result)
HRESULT vkd3d_create_buffer(struct d3d12_device *device, const D3D12_HEAP_PROPERTIES *heap_properties, D3D12_HEAP_FLAGS heap_flags, const D3D12_RESOURCE_DESC1 *desc, VkBuffer *vk_buffer)
HRESULT d3d12_descriptor_heap_create(struct d3d12_device *device, const D3D12_DESCRIPTOR_HEAP_DESC *desc, struct d3d12_descriptor_heap **descriptor_heap)
struct d3d12_command_signature * unsafe_impl_from_ID3D12CommandSignature(ID3D12CommandSignature *iface)
#define VKD3D_MAX_QUEUE_FAMILY_COUNT
HRESULT d3d12_device_add_descriptor_heap(struct d3d12_device *device, struct d3d12_descriptor_heap *heap)
HRESULT d3d12_committed_resource_create(struct d3d12_device *device, const D3D12_HEAP_PROPERTIES *heap_properties, D3D12_HEAP_FLAGS heap_flags, const D3D12_RESOURCE_DESC1 *desc, D3D12_RESOURCE_STATES initial_state, const D3D12_CLEAR_VALUE *optimized_clear_value, ID3D12ProtectedResourceSession *protected_session, struct d3d12_resource **resource)
HRESULT vkd3d_create_static_sampler(struct d3d12_device *device, const D3D12_STATIC_SAMPLER_DESC *desc, VkSampler *vk_sampler)
static void vkd3d_private_data_destroy(struct vkd3d_private_data *data)
bool vkd3d_get_program_name(char program_name[PATH_MAX])
static bool d3d12_pipeline_state_is_compute(const struct d3d12_pipeline_state *state)
enum vkd3d_vk_descriptor_set_index vk_descriptor_set_index_table[]
D3D12_GPU_VIRTUAL_ADDRESS vkd3d_gpu_va_allocator_allocate(struct vkd3d_gpu_va_allocator *allocator, size_t alignment, uint64_t size, void *ptr)
static void * d3d12_desc_get_object_ref(const volatile struct d3d12_desc *src, struct d3d12_device *device)
HRESULT d3d12_command_allocator_create(struct d3d12_device *device, D3D12_COMMAND_LIST_TYPE type, struct d3d12_command_allocator **allocator)
#define VKD3D_MAX_SHADER_STAGES
HRESULT hresult_from_errno(int rc)
bool d3d12_resource_is_cpu_accessible(const struct d3d12_resource *resource)
static bool vkd3d_view_incref(void *desc)
const struct vkd3d_format * vkd3d_get_format(const struct d3d12_device *device, DXGI_FORMAT dxgi_format, bool depth_stencil)
void vkd3d_uav_clear_state_cleanup(struct vkd3d_uav_clear_state *state, struct d3d12_device *device)
static bool d3d12_pipeline_state_has_unknown_dsv_format(struct d3d12_pipeline_state *state)
bool vkd3d_create_buffer_view(struct d3d12_device *device, uint32_t magic, VkBuffer vk_buffer, const struct vkd3d_format *format, VkDeviceSize offset, VkDeviceSize size, struct vkd3d_view **view)
static struct d3d12_resource * impl_from_ID3D12Resource(ID3D12Resource *iface)
void d3d12_desc_create_uav(struct d3d12_desc *descriptor, struct d3d12_device *device, struct d3d12_resource *resource, struct d3d12_resource *counter_resource, const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc)
struct d3d12_pipeline_state * unsafe_impl_from_ID3D12PipelineState(ID3D12PipelineState *iface)
void d3d12_device_mark_as_removed(struct d3d12_device *device, HRESULT reason, const char *message,...) VKD3D_PRINTF_FUNC(3
void vkd3d_queue_release(struct vkd3d_queue *queue)
HRESULT vkd3d_join_thread(struct vkd3d_instance *instance, union vkd3d_thread_handle *thread)
HRESULT d3d12_query_heap_create(struct d3d12_device *device, const D3D12_QUERY_HEAP_DESC *desc, struct d3d12_query_heap **heap)
void d3d12_desc_create_srv(struct d3d12_desc *descriptor, struct d3d12_device *device, struct d3d12_resource *resource, const D3D12_SHADER_RESOURCE_VIEW_DESC *desc)
HRESULT vkd3d_init_format_info(struct d3d12_device *device)
struct d3d12_resource * unsafe_impl_from_ID3D12Resource(ID3D12Resource *iface)
bool vkd3d_create_texture_view(struct d3d12_device *device, uint32_t magic, VkImage vk_image, const struct vkd3d_texture_view_desc *desc, struct vkd3d_view **view)
unsigned int vkd3d_shader_cache_incref(struct vkd3d_shader_cache *cache)
static bool d3d12_resource_is_texture(const struct d3d12_resource *resource)
static unsigned int d3d12_resource_desc_get_height(const D3D12_RESOURCE_DESC1 *desc, unsigned int miplevel_idx)
const char * debug_gpu_handle(D3D12_GPU_DESCRIPTOR_HANDLE handle)
@ VKD3D_VIEW_TYPE_SAMPLER
bool d3d12_device_is_uma(struct d3d12_device *device, bool *coherent)
static void d3d12_desc_copy_raw(struct d3d12_desc *dst, const struct d3d12_desc *src)
const char * debug_vk_queue_flags(VkQueueFlags flags)
#define VKD3D_MAX_COMPATIBLE_FORMAT_COUNT
HRESULT vkd3d_set_vk_object_name(struct d3d12_device *device, uint64_t vk_object, VkDebugReportObjectTypeEXT vk_object_type, const WCHAR *name)
struct vkd3d_queue * d3d12_device_get_vkd3d_queue(struct d3d12_device *device, D3D12_COMMAND_LIST_TYPE type)
void d3d12_desc_write_atomic(struct d3d12_desc *dst, const struct d3d12_desc *src, struct d3d12_device *device)
HRESULT d3d12_command_queue_create(struct d3d12_device *device, const D3D12_COMMAND_QUEUE_DESC *desc, struct d3d12_command_queue **queue)
VkCompareOp vk_compare_op_from_d3d12(D3D12_COMPARISON_FUNC op)
HRESULT vkd3d_queue_create(struct d3d12_device *device, uint32_t family_index, const VkQueueFamilyProperties *properties, struct vkd3d_queue **queue)
const char * debug_d3d12_box(const D3D12_BOX *box)
HRESULT vkd3d_init_null_resources(struct vkd3d_null_resources *null_resources, struct d3d12_device *device)
void vkd3d_cleanup_format_info(struct d3d12_device *device)
HRESULT vkd3d_create_thread(struct vkd3d_instance *instance, PFN_vkd3d_thread thread_main, void *data, union vkd3d_thread_handle *thread)
const struct vkd3d_format * vkd3d_find_uint_format(const struct d3d12_device *device, DXGI_FORMAT dxgi_format)
HRESULT d3d12_pipeline_state_create_compute(struct d3d12_device *device, const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc, struct d3d12_pipeline_state **state)
#define VKD3D_MAX_VK_SYNC_OBJECTS
void d3d12_device_remove_descriptor_heap(struct d3d12_device *device, struct d3d12_descriptor_heap *heap)
VkQueue vkd3d_queue_acquire(struct vkd3d_queue *queue)
void vkd3d_render_pass_cache_cleanup(struct vkd3d_render_pass_cache *cache, struct d3d12_device *device)
void struct d3d12_device * unsafe_impl_from_ID3D12Device9(ID3D12Device9 *iface)
const char * debug_cpu_handle(D3D12_CPU_DESCRIPTOR_HANDLE handle)
static unsigned int d3d12_resource_desc_get_depth(const D3D12_RESOURCE_DESC1 *desc, unsigned int miplevel_idx)
@ VKD3D_CONFIG_FLAG_VIRTUAL_HEAPS
@ VKD3D_CONFIG_FLAG_VULKAN_DEBUG
HRESULT d3d12_pipeline_state_create(struct d3d12_device *device, const D3D12_PIPELINE_STATE_STREAM_DESC *desc, struct d3d12_pipeline_state **state)
VkSampleCountFlagBits vk_samples_from_sample_count(unsigned int sample_count)
struct d3d12_query_heap * unsafe_impl_from_ID3D12QueryHeap(ID3D12QueryHeap *iface)
#define VKD3D_DESCRIPTOR_POOL_COUNT
HRESULT vkd3d_allocate_buffer_memory(struct d3d12_device *device, VkBuffer vk_buffer, const D3D12_HEAP_PROPERTIES *heap_properties, D3D12_HEAP_FLAGS heap_flags, VkDeviceMemory *vk_memory, uint32_t *vk_memory_type, VkDeviceSize *vk_memory_size)
void d3d12_desc_create_sampler(struct d3d12_desc *sampler, struct d3d12_device *device, const D3D12_SAMPLER_DESC *desc)
static void vkd3d_prepend_struct(void *header, void *structure)
static void d3d12_query_heap_mark_result_as_available(struct d3d12_query_heap *heap, unsigned int query_index)
HRESULT vkd3d_get_private_data(struct vkd3d_private_store *store, const GUID *tag, unsigned int *out_size, void *out)
unsigned int vkd3d_shader_cache_decref(struct vkd3d_shader_cache *cache)
HRESULT d3d12_device_create(struct vkd3d_instance *instance, const struct vkd3d_device_create_info *create_info, struct d3d12_device **device)
static unsigned int vkd3d_compute_workgroup_count(unsigned int thread_count, unsigned int workgroup_size)
static struct d3d12_dsv_desc * d3d12_dsv_desc_from_cpu_handle(D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle)
@ VKD3D_CS_OP_UPDATE_MAPPINGS
@ VKD3D_CS_OP_COPY_MAPPINGS
HRESULT d3d12_placed_resource_create(struct d3d12_device *device, struct d3d12_heap *heap, uint64_t heap_offset, const D3D12_RESOURCE_DESC1 *desc, D3D12_RESOURCE_STATES initial_state, const D3D12_CLEAR_VALUE *optimized_clear_value, struct d3d12_resource **resource)
int vkd3d_shader_open_cache(struct vkd3d_shader_cache **cache)
HRESULT d3d12_command_signature_create(struct d3d12_device *device, const D3D12_COMMAND_SIGNATURE_DESC *desc, struct d3d12_command_signature **signature)
static struct d3d12_descriptor_heap * d3d12_desc_get_descriptor_heap(const struct d3d12_desc *descriptor)
vkd3d_shader_spirv_extension
vkd3d_shader_descriptor_type
vkd3d_shader_spirv_environment
VkFlags VkMemoryPropertyFlags
VkFlags VkImageAspectFlags
VkFlags VkImageUsageFlags
PFN_vkVoidFunction(VKAPI_PTR * PFN_vkGetInstanceProcAddr)(VkInstance, const char *)
@ VK_PIPELINE_BIND_POINT_GRAPHICS
@ VK_PIPELINE_BIND_POINT_COMPUTE
VkDebugReportObjectTypeEXT
VkFlags VkMemoryHeapFlags
VkResult(VKAPI_PTR * PFN_vkCreateInstance)(const VkInstanceCreateInfo *, const VkAllocationCallbacks *, VkInstance *)
PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(VkInstance instance, const char *pName)
VkFlags VkShaderStageFlags
VkResult(VKAPI_PTR * PFN_vkEnumerateInstanceExtensionProperties)(const char *, uint32_t *, VkExtensionProperties *)
@ VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out