mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-04-13 05:43:18 -07:00
vkd3d: Co-locate all descriptor-related members.
To optimise cache coherence, because decriptor updates use the most performance-critical code paths.
This commit is contained in:
committed by
Alexandre Julliard
parent
a2741babd9
commit
b8694fd879
Notes:
Alexandre Julliard
2023-12-14 23:31:17 +01:00
Approved-by: Giovanni Mascellani (@giomasce) Approved-by: Henri Verbeet (@hverbeet) Approved-by: Alexandre Julliard (@julliard) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/292
@ -1760,6 +1760,19 @@ struct d3d12_device
|
|||||||
struct vkd3d_desc_object_cache view_desc_cache;
|
struct vkd3d_desc_object_cache view_desc_cache;
|
||||||
struct vkd3d_desc_object_cache cbuffer_desc_cache;
|
struct vkd3d_desc_object_cache cbuffer_desc_cache;
|
||||||
|
|
||||||
|
VkDescriptorPoolSize vk_pool_sizes[VKD3D_DESCRIPTOR_POOL_COUNT];
|
||||||
|
unsigned int vk_pool_count;
|
||||||
|
struct vkd3d_vk_descriptor_heap_layout vk_descriptor_heap_layouts[VKD3D_SET_INDEX_COUNT];
|
||||||
|
bool use_vk_heaps;
|
||||||
|
|
||||||
|
struct d3d12_descriptor_heap **heaps;
|
||||||
|
size_t heap_capacity;
|
||||||
|
size_t heap_count;
|
||||||
|
union vkd3d_thread_handle worker_thread;
|
||||||
|
struct vkd3d_mutex worker_mutex;
|
||||||
|
struct vkd3d_cond worker_cond;
|
||||||
|
bool worker_should_exit;
|
||||||
|
|
||||||
struct vkd3d_mutex pipeline_cache_mutex;
|
struct vkd3d_mutex pipeline_cache_mutex;
|
||||||
struct vkd3d_render_pass_cache render_pass_cache;
|
struct vkd3d_render_pass_cache render_pass_cache;
|
||||||
VkPipelineCache vk_pipeline_cache;
|
VkPipelineCache vk_pipeline_cache;
|
||||||
@ -1800,19 +1813,6 @@ struct d3d12_device
|
|||||||
const struct vkd3d_format_compatibility_list *format_compatibility_lists;
|
const struct vkd3d_format_compatibility_list *format_compatibility_lists;
|
||||||
struct vkd3d_null_resources null_resources;
|
struct vkd3d_null_resources null_resources;
|
||||||
struct vkd3d_uav_clear_state uav_clear_state;
|
struct vkd3d_uav_clear_state uav_clear_state;
|
||||||
|
|
||||||
VkDescriptorPoolSize vk_pool_sizes[VKD3D_DESCRIPTOR_POOL_COUNT];
|
|
||||||
unsigned int vk_pool_count;
|
|
||||||
struct vkd3d_vk_descriptor_heap_layout vk_descriptor_heap_layouts[VKD3D_SET_INDEX_COUNT];
|
|
||||||
bool use_vk_heaps;
|
|
||||||
|
|
||||||
struct d3d12_descriptor_heap **heaps;
|
|
||||||
size_t heap_capacity;
|
|
||||||
size_t heap_count;
|
|
||||||
union vkd3d_thread_handle worker_thread;
|
|
||||||
struct vkd3d_mutex worker_mutex;
|
|
||||||
struct vkd3d_cond worker_cond;
|
|
||||||
bool worker_should_exit;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
HRESULT d3d12_device_create(struct vkd3d_instance *instance,
|
HRESULT d3d12_device_create(struct vkd3d_instance *instance,
|
||||||
|
Reference in New Issue
Block a user