Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
6698ec90
Commit
6698ec90
authored
Dec 22, 2022
by
Zebediah Figura
Committed by
Alexandre Julliard
Jul 07, 2023
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wined3d: Move struct wined3d_context_vk to wined3d_vk.h.
parent
07680133
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
302 additions
and
302 deletions
+302
-302
wined3d_private.h
dlls/wined3d/wined3d_private.h
+0
-302
wined3d_vk.h
dlls/wined3d/wined3d_vk.h
+302
-0
No files found.
dlls/wined3d/wined3d_private.h
View file @
6698ec90
...
...
@@ -2387,308 +2387,6 @@ void wined3d_context_gl_wait_command_fence(struct wined3d_context_gl *context_gl
#include "wined3d_vk.h"
struct
wined3d_command_buffer_vk
{
uint64_t
id
;
VkCommandBuffer
vk_command_buffer
;
VkFence
vk_fence
;
};
enum
wined3d_retired_object_type_vk
{
WINED3D_RETIRED_FREE_VK
,
WINED3D_RETIRED_FRAMEBUFFER_VK
,
WINED3D_RETIRED_DESCRIPTOR_POOL_VK
,
WINED3D_RETIRED_MEMORY_VK
,
WINED3D_RETIRED_ALLOCATOR_BLOCK_VK
,
WINED3D_RETIRED_BO_SLAB_SLICE_VK
,
WINED3D_RETIRED_BUFFER_VK
,
WINED3D_RETIRED_IMAGE_VK
,
WINED3D_RETIRED_BUFFER_VIEW_VK
,
WINED3D_RETIRED_IMAGE_VIEW_VK
,
WINED3D_RETIRED_SAMPLER_VK
,
WINED3D_RETIRED_QUERY_POOL_VK
,
WINED3D_RETIRED_EVENT_VK
,
WINED3D_RETIRED_PIPELINE_VK
,
};
struct
wined3d_retired_object_vk
{
enum
wined3d_retired_object_type_vk
type
;
union
{
struct
wined3d_retired_object_vk
*
next
;
VkFramebuffer
vk_framebuffer
;
VkDescriptorPool
vk_descriptor_pool
;
VkDeviceMemory
vk_memory
;
struct
wined3d_allocator_block
*
block
;
struct
{
struct
wined3d_bo_slab_vk
*
slab
;
size_t
idx
;
}
slice
;
VkBuffer
vk_buffer
;
VkImage
vk_image
;
VkBufferView
vk_buffer_view
;
VkImageView
vk_image_view
;
VkSampler
vk_sampler
;
VkEvent
vk_event
;
VkPipeline
vk_pipeline
;
struct
{
struct
wined3d_query_pool_vk
*
pool_vk
;
uint32_t
start
;
uint32_t
count
;
}
queries
;
}
u
;
uint64_t
command_buffer_id
;
};
struct
wined3d_retired_objects_vk
{
struct
wined3d_retired_object_vk
*
objects
;
struct
wined3d_retired_object_vk
*
free
;
SIZE_T
size
;
SIZE_T
count
;
};
#define WINED3D_FB_ATTACHMENT_FLAG_DISCARDED 1
#define WINED3D_FB_ATTACHMENT_FLAG_CLEAR_C 2
#define WINED3D_FB_ATTACHMENT_FLAG_CLEAR_S 4
#define WINED3D_FB_ATTACHMENT_FLAG_CLEAR_Z 8
struct
wined3d_render_pass_attachment_vk
{
VkFormat
vk_format
;
VkSampleCountFlagBits
vk_samples
;
VkImageLayout
vk_layout
;
uint32_t
flags
;
};
struct
wined3d_render_pass_key_vk
{
struct
wined3d_render_pass_attachment_vk
rt
[
WINED3D_MAX_RENDER_TARGETS
];
struct
wined3d_render_pass_attachment_vk
ds
;
uint32_t
rt_mask
;
};
struct
wined3d_render_pass_vk
{
struct
wine_rb_entry
entry
;
struct
wined3d_render_pass_key_vk
key
;
VkRenderPass
vk_render_pass
;
};
struct
wined3d_pipeline_layout_key_vk
{
VkDescriptorSetLayoutBinding
*
bindings
;
SIZE_T
binding_count
;
};
struct
wined3d_pipeline_layout_vk
{
struct
wine_rb_entry
entry
;
struct
wined3d_pipeline_layout_key_vk
key
;
VkPipelineLayout
vk_pipeline_layout
;
VkDescriptorSetLayout
vk_set_layout
;
};
struct
wined3d_graphics_pipeline_key_vk
{
VkPipelineShaderStageCreateInfo
stages
[
WINED3D_SHADER_TYPE_GRAPHICS_COUNT
];
VkVertexInputBindingDivisorDescriptionEXT
divisors
[
MAX_ATTRIBS
];
VkVertexInputAttributeDescription
attributes
[
MAX_ATTRIBS
];
VkVertexInputBindingDescription
bindings
[
MAX_ATTRIBS
];
VkViewport
viewports
[
WINED3D_MAX_VIEWPORTS
];
VkRect2D
scissors
[
WINED3D_MAX_VIEWPORTS
];
VkSampleMask
sample_mask
;
VkPipelineColorBlendAttachmentState
blend_attachments
[
WINED3D_MAX_RENDER_TARGETS
];
VkPipelineVertexInputDivisorStateCreateInfoEXT
divisor_desc
;
VkPipelineVertexInputStateCreateInfo
input_desc
;
VkPipelineInputAssemblyStateCreateInfo
ia_desc
;
VkPipelineTessellationStateCreateInfo
ts_desc
;
VkPipelineViewportStateCreateInfo
vp_desc
;
VkPipelineRasterizationStateCreateInfo
rs_desc
;
VkPipelineMultisampleStateCreateInfo
ms_desc
;
VkPipelineDepthStencilStateCreateInfo
ds_desc
;
VkPipelineColorBlendStateCreateInfo
blend_desc
;
VkPipelineDynamicStateCreateInfo
dynamic_desc
;
VkGraphicsPipelineCreateInfo
pipeline_desc
;
};
struct
wined3d_graphics_pipeline_vk
{
struct
wine_rb_entry
entry
;
struct
wined3d_graphics_pipeline_key_vk
key
;
VkPipeline
vk_pipeline
;
};
enum
wined3d_shader_descriptor_type
{
WINED3D_SHADER_DESCRIPTOR_TYPE_CBV
,
WINED3D_SHADER_DESCRIPTOR_TYPE_SRV
,
WINED3D_SHADER_DESCRIPTOR_TYPE_UAV
,
WINED3D_SHADER_DESCRIPTOR_TYPE_UAV_COUNTER
,
WINED3D_SHADER_DESCRIPTOR_TYPE_SAMPLER
,
};
struct
wined3d_shader_resource_binding
{
enum
wined3d_shader_type
shader_type
;
enum
wined3d_shader_descriptor_type
shader_descriptor_type
;
size_t
resource_idx
;
enum
wined3d_shader_resource_type
resource_type
;
enum
wined3d_data_type
resource_data_type
;
size_t
binding_idx
;
};
struct
wined3d_shader_resource_bindings
{
struct
wined3d_shader_resource_binding
*
bindings
;
SIZE_T
size
,
count
;
};
struct
wined3d_shader_descriptor_writes_vk
{
VkWriteDescriptorSet
*
writes
;
SIZE_T
size
,
count
;
};
struct
wined3d_context_vk
{
struct
wined3d_context
c
;
const
struct
wined3d_vk_info
*
vk_info
;
uint32_t
update_compute_pipeline
:
1
;
uint32_t
update_stream_output
:
1
;
uint32_t
padding
:
30
;
struct
{
VkShaderModule
vk_modules
[
WINED3D_SHADER_TYPE_GRAPHICS_COUNT
];
struct
wined3d_graphics_pipeline_key_vk
pipeline_key_vk
;
VkPipeline
vk_pipeline
;
VkPipelineLayout
vk_pipeline_layout
;
VkDescriptorSetLayout
vk_set_layout
;
struct
wined3d_shader_resource_bindings
bindings
;
}
graphics
;
struct
{
VkPipeline
vk_pipeline
;
VkPipelineLayout
vk_pipeline_layout
;
VkDescriptorSetLayout
vk_set_layout
;
struct
wined3d_shader_resource_bindings
bindings
;
}
compute
;
VkCommandPool
vk_command_pool
;
struct
wined3d_command_buffer_vk
current_command_buffer
;
uint64_t
completed_command_buffer_id
;
VkDeviceSize
retired_bo_size
;
struct
{
struct
wined3d_command_buffer_vk
*
buffers
;
SIZE_T
buffers_size
;
SIZE_T
buffer_count
;
}
submitted
,
completed
;
struct
wined3d_shader_descriptor_writes_vk
descriptor_writes
;
VkFramebuffer
vk_framebuffer
;
VkRenderPass
vk_render_pass
;
SIZE_T
vk_descriptor_pools_size
;
SIZE_T
vk_descriptor_pool_count
;
VkDescriptorPool
*
vk_descriptor_pools
;
VkSampleCountFlagBits
sample_count
;
unsigned
int
rt_count
;
VkBuffer
vk_so_counters
[
WINED3D_MAX_STREAM_OUTPUT_BUFFERS
];
VkDeviceSize
vk_so_offsets
[
WINED3D_MAX_STREAM_OUTPUT_BUFFERS
];
struct
wined3d_bo_vk
vk_so_counter_bo
;
struct
list
render_pass_queries
;
struct
list
active_queries
;
struct
list
completed_query_pools
;
struct
list
free_occlusion_query_pools
;
struct
list
free_timestamp_query_pools
;
struct
list
free_pipeline_statistics_query_pools
;
struct
list
free_stream_output_statistics_query_pools
;
struct
wined3d_retired_objects_vk
retired
;
struct
wine_rb_tree
render_passes
;
struct
wine_rb_tree
pipeline_layouts
;
struct
wine_rb_tree
graphics_pipelines
;
struct
wine_rb_tree
bo_slab_available
;
};
static
inline
struct
wined3d_context_vk
*
wined3d_context_vk
(
struct
wined3d_context
*
context
)
{
return
CONTAINING_RECORD
(
context
,
struct
wined3d_context_vk
,
c
);
}
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
)
DECLSPEC_HIDDEN
;
VkDeviceMemory
wined3d_context_vk_allocate_vram_chunk_memory
(
struct
wined3d_context_vk
*
context_vk
,
unsigned
int
pool
,
size_t
size
)
DECLSPEC_HIDDEN
;
VkCommandBuffer
wined3d_context_vk_apply_compute_state
(
struct
wined3d_context_vk
*
context_vk
,
const
struct
wined3d_state
*
state
,
struct
wined3d_buffer_vk
*
indirect_vk
)
DECLSPEC_HIDDEN
;
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
)
DECLSPEC_HIDDEN
;
void
wined3d_context_vk_cleanup
(
struct
wined3d_context_vk
*
context_vk
)
DECLSPEC_HIDDEN
;
BOOL
wined3d_context_vk_create_bo
(
struct
wined3d_context_vk
*
context_vk
,
VkDeviceSize
size
,
VkBufferUsageFlags
usage
,
VkMemoryPropertyFlags
memory_type
,
struct
wined3d_bo_vk
*
bo
)
DECLSPEC_HIDDEN
;
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
)
DECLSPEC_HIDDEN
;
void
wined3d_context_vk_destroy_allocator_block
(
struct
wined3d_context_vk
*
context_vk
,
struct
wined3d_allocator_block
*
block
,
uint64_t
command_buffer_id
)
DECLSPEC_HIDDEN
;
void
wined3d_context_vk_destroy_bo
(
struct
wined3d_context_vk
*
context_vk
,
const
struct
wined3d_bo_vk
*
bo
)
DECLSPEC_HIDDEN
;
void
wined3d_context_vk_destroy_image
(
struct
wined3d_context_vk
*
context_vk
,
struct
wined3d_image_vk
*
image_vk
)
DECLSPEC_HIDDEN
;
void
wined3d_context_vk_destroy_vk_buffer_view
(
struct
wined3d_context_vk
*
context_vk
,
VkBufferView
vk_view
,
uint64_t
command_buffer_id
)
DECLSPEC_HIDDEN
;
void
wined3d_context_vk_destroy_vk_framebuffer
(
struct
wined3d_context_vk
*
context_vk
,
VkFramebuffer
vk_framebuffer
,
uint64_t
command_buffer_id
)
DECLSPEC_HIDDEN
;
void
wined3d_context_vk_destroy_vk_image
(
struct
wined3d_context_vk
*
context_vk
,
VkImage
vk_image
,
uint64_t
command_buffer_id
)
DECLSPEC_HIDDEN
;
void
wined3d_context_vk_destroy_vk_image_view
(
struct
wined3d_context_vk
*
context_vk
,
VkImageView
vk_view
,
uint64_t
command_buffer_id
)
DECLSPEC_HIDDEN
;
void
wined3d_context_vk_destroy_vk_memory
(
struct
wined3d_context_vk
*
context_vk
,
VkDeviceMemory
vk_memory
,
uint64_t
command_buffer_id
)
DECLSPEC_HIDDEN
;
void
wined3d_context_vk_destroy_vk_sampler
(
struct
wined3d_context_vk
*
context_vk
,
VkSampler
vk_sampler
,
uint64_t
command_buffer_id
)
DECLSPEC_HIDDEN
;
void
wined3d_context_vk_destroy_vk_event
(
struct
wined3d_context_vk
*
context_vk
,
VkEvent
vk_event
,
uint64_t
command_buffer_id
)
DECLSPEC_HIDDEN
;
void
wined3d_context_vk_destroy_vk_pipeline
(
struct
wined3d_context_vk
*
context_vk
,
VkPipeline
vk_pipeline
,
uint64_t
command_buffer_id
)
DECLSPEC_HIDDEN
;
void
wined3d_context_vk_end_current_render_pass
(
struct
wined3d_context_vk
*
context_vk
)
DECLSPEC_HIDDEN
;
VkCommandBuffer
wined3d_context_vk_get_command_buffer
(
struct
wined3d_context_vk
*
context_vk
)
DECLSPEC_HIDDEN
;
struct
wined3d_pipeline_layout_vk
*
wined3d_context_vk_get_pipeline_layout
(
struct
wined3d_context_vk
*
context_vk
,
VkDescriptorSetLayoutBinding
*
bindings
,
SIZE_T
binding_count
)
DECLSPEC_HIDDEN
;
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
)
DECLSPEC_HIDDEN
;
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
)
DECLSPEC_HIDDEN
;
HRESULT
wined3d_context_vk_init
(
struct
wined3d_context_vk
*
context_vk
,
struct
wined3d_swapchain
*
swapchain
)
DECLSPEC_HIDDEN
;
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
)
DECLSPEC_HIDDEN
;
void
wined3d_context_vk_wait_command_buffer
(
struct
wined3d_context_vk
*
context_vk
,
uint64_t
id
)
DECLSPEC_HIDDEN
;
VkDescriptorSet
wined3d_context_vk_create_vk_descriptor_set
(
struct
wined3d_context_vk
*
context_vk
,
VkDescriptorSetLayout
vk_set_layout
)
DECLSPEC_HIDDEN
;
typedef
void
(
*
APPLYSTATEFUNC
)(
struct
wined3d_context
*
ctx
,
const
struct
wined3d_state
*
state
,
DWORD
state_id
);
struct
wined3d_state_entry
...
...
dlls/wined3d/wined3d_vk.h
View file @
6698ec90
...
...
@@ -362,4 +362,306 @@ HRESULT wined3d_query_vk_create(struct wined3d_device *device, enum wined3d_quer
void
wined3d_query_vk_resume
(
struct
wined3d_query_vk
*
query_vk
,
struct
wined3d_context_vk
*
context_vk
)
DECLSPEC_HIDDEN
;
void
wined3d_query_vk_suspend
(
struct
wined3d_query_vk
*
query_vk
,
struct
wined3d_context_vk
*
context_vk
)
DECLSPEC_HIDDEN
;
struct
wined3d_command_buffer_vk
{
uint64_t
id
;
VkCommandBuffer
vk_command_buffer
;
VkFence
vk_fence
;
};
enum
wined3d_retired_object_type_vk
{
WINED3D_RETIRED_FREE_VK
,
WINED3D_RETIRED_FRAMEBUFFER_VK
,
WINED3D_RETIRED_DESCRIPTOR_POOL_VK
,
WINED3D_RETIRED_MEMORY_VK
,
WINED3D_RETIRED_ALLOCATOR_BLOCK_VK
,
WINED3D_RETIRED_BO_SLAB_SLICE_VK
,
WINED3D_RETIRED_BUFFER_VK
,
WINED3D_RETIRED_IMAGE_VK
,
WINED3D_RETIRED_BUFFER_VIEW_VK
,
WINED3D_RETIRED_IMAGE_VIEW_VK
,
WINED3D_RETIRED_SAMPLER_VK
,
WINED3D_RETIRED_QUERY_POOL_VK
,
WINED3D_RETIRED_EVENT_VK
,
WINED3D_RETIRED_PIPELINE_VK
,
};
struct
wined3d_retired_object_vk
{
enum
wined3d_retired_object_type_vk
type
;
union
{
struct
wined3d_retired_object_vk
*
next
;
VkFramebuffer
vk_framebuffer
;
VkDescriptorPool
vk_descriptor_pool
;
VkDeviceMemory
vk_memory
;
struct
wined3d_allocator_block
*
block
;
struct
{
struct
wined3d_bo_slab_vk
*
slab
;
size_t
idx
;
}
slice
;
VkBuffer
vk_buffer
;
VkImage
vk_image
;
VkBufferView
vk_buffer_view
;
VkImageView
vk_image_view
;
VkSampler
vk_sampler
;
VkEvent
vk_event
;
VkPipeline
vk_pipeline
;
struct
{
struct
wined3d_query_pool_vk
*
pool_vk
;
uint32_t
start
;
uint32_t
count
;
}
queries
;
}
u
;
uint64_t
command_buffer_id
;
};
struct
wined3d_retired_objects_vk
{
struct
wined3d_retired_object_vk
*
objects
;
struct
wined3d_retired_object_vk
*
free
;
SIZE_T
size
;
SIZE_T
count
;
};
#define WINED3D_FB_ATTACHMENT_FLAG_DISCARDED 1
#define WINED3D_FB_ATTACHMENT_FLAG_CLEAR_C 2
#define WINED3D_FB_ATTACHMENT_FLAG_CLEAR_S 4
#define WINED3D_FB_ATTACHMENT_FLAG_CLEAR_Z 8
struct
wined3d_render_pass_attachment_vk
{
VkFormat
vk_format
;
VkSampleCountFlagBits
vk_samples
;
VkImageLayout
vk_layout
;
uint32_t
flags
;
};
struct
wined3d_render_pass_key_vk
{
struct
wined3d_render_pass_attachment_vk
rt
[
WINED3D_MAX_RENDER_TARGETS
];
struct
wined3d_render_pass_attachment_vk
ds
;
uint32_t
rt_mask
;
};
struct
wined3d_render_pass_vk
{
struct
wine_rb_entry
entry
;
struct
wined3d_render_pass_key_vk
key
;
VkRenderPass
vk_render_pass
;
};
struct
wined3d_pipeline_layout_key_vk
{
VkDescriptorSetLayoutBinding
*
bindings
;
SIZE_T
binding_count
;
};
struct
wined3d_pipeline_layout_vk
{
struct
wine_rb_entry
entry
;
struct
wined3d_pipeline_layout_key_vk
key
;
VkPipelineLayout
vk_pipeline_layout
;
VkDescriptorSetLayout
vk_set_layout
;
};
struct
wined3d_graphics_pipeline_key_vk
{
VkPipelineShaderStageCreateInfo
stages
[
WINED3D_SHADER_TYPE_GRAPHICS_COUNT
];
VkVertexInputBindingDivisorDescriptionEXT
divisors
[
MAX_ATTRIBS
];
VkVertexInputAttributeDescription
attributes
[
MAX_ATTRIBS
];
VkVertexInputBindingDescription
bindings
[
MAX_ATTRIBS
];
VkViewport
viewports
[
WINED3D_MAX_VIEWPORTS
];
VkRect2D
scissors
[
WINED3D_MAX_VIEWPORTS
];
VkSampleMask
sample_mask
;
VkPipelineColorBlendAttachmentState
blend_attachments
[
WINED3D_MAX_RENDER_TARGETS
];
VkPipelineVertexInputDivisorStateCreateInfoEXT
divisor_desc
;
VkPipelineVertexInputStateCreateInfo
input_desc
;
VkPipelineInputAssemblyStateCreateInfo
ia_desc
;
VkPipelineTessellationStateCreateInfo
ts_desc
;
VkPipelineViewportStateCreateInfo
vp_desc
;
VkPipelineRasterizationStateCreateInfo
rs_desc
;
VkPipelineMultisampleStateCreateInfo
ms_desc
;
VkPipelineDepthStencilStateCreateInfo
ds_desc
;
VkPipelineColorBlendStateCreateInfo
blend_desc
;
VkPipelineDynamicStateCreateInfo
dynamic_desc
;
VkGraphicsPipelineCreateInfo
pipeline_desc
;
};
struct
wined3d_graphics_pipeline_vk
{
struct
wine_rb_entry
entry
;
struct
wined3d_graphics_pipeline_key_vk
key
;
VkPipeline
vk_pipeline
;
};
enum
wined3d_shader_descriptor_type
{
WINED3D_SHADER_DESCRIPTOR_TYPE_CBV
,
WINED3D_SHADER_DESCRIPTOR_TYPE_SRV
,
WINED3D_SHADER_DESCRIPTOR_TYPE_UAV
,
WINED3D_SHADER_DESCRIPTOR_TYPE_UAV_COUNTER
,
WINED3D_SHADER_DESCRIPTOR_TYPE_SAMPLER
,
};
struct
wined3d_shader_resource_binding
{
enum
wined3d_shader_type
shader_type
;
enum
wined3d_shader_descriptor_type
shader_descriptor_type
;
size_t
resource_idx
;
enum
wined3d_shader_resource_type
resource_type
;
enum
wined3d_data_type
resource_data_type
;
size_t
binding_idx
;
};
struct
wined3d_shader_resource_bindings
{
struct
wined3d_shader_resource_binding
*
bindings
;
SIZE_T
size
,
count
;
};
struct
wined3d_shader_descriptor_writes_vk
{
VkWriteDescriptorSet
*
writes
;
SIZE_T
size
,
count
;
};
struct
wined3d_context_vk
{
struct
wined3d_context
c
;
const
struct
wined3d_vk_info
*
vk_info
;
uint32_t
update_compute_pipeline
:
1
;
uint32_t
update_stream_output
:
1
;
uint32_t
padding
:
30
;
struct
{
VkShaderModule
vk_modules
[
WINED3D_SHADER_TYPE_GRAPHICS_COUNT
];
struct
wined3d_graphics_pipeline_key_vk
pipeline_key_vk
;
VkPipeline
vk_pipeline
;
VkPipelineLayout
vk_pipeline_layout
;
VkDescriptorSetLayout
vk_set_layout
;
struct
wined3d_shader_resource_bindings
bindings
;
}
graphics
;
struct
{
VkPipeline
vk_pipeline
;
VkPipelineLayout
vk_pipeline_layout
;
VkDescriptorSetLayout
vk_set_layout
;
struct
wined3d_shader_resource_bindings
bindings
;
}
compute
;
VkCommandPool
vk_command_pool
;
struct
wined3d_command_buffer_vk
current_command_buffer
;
uint64_t
completed_command_buffer_id
;
VkDeviceSize
retired_bo_size
;
struct
{
struct
wined3d_command_buffer_vk
*
buffers
;
SIZE_T
buffers_size
;
SIZE_T
buffer_count
;
}
submitted
,
completed
;
struct
wined3d_shader_descriptor_writes_vk
descriptor_writes
;
VkFramebuffer
vk_framebuffer
;
VkRenderPass
vk_render_pass
;
SIZE_T
vk_descriptor_pools_size
;
SIZE_T
vk_descriptor_pool_count
;
VkDescriptorPool
*
vk_descriptor_pools
;
VkSampleCountFlagBits
sample_count
;
unsigned
int
rt_count
;
VkBuffer
vk_so_counters
[
WINED3D_MAX_STREAM_OUTPUT_BUFFERS
];
VkDeviceSize
vk_so_offsets
[
WINED3D_MAX_STREAM_OUTPUT_BUFFERS
];
struct
wined3d_bo_vk
vk_so_counter_bo
;
struct
list
render_pass_queries
;
struct
list
active_queries
;
struct
list
completed_query_pools
;
struct
list
free_occlusion_query_pools
;
struct
list
free_timestamp_query_pools
;
struct
list
free_pipeline_statistics_query_pools
;
struct
list
free_stream_output_statistics_query_pools
;
struct
wined3d_retired_objects_vk
retired
;
struct
wine_rb_tree
render_passes
;
struct
wine_rb_tree
pipeline_layouts
;
struct
wine_rb_tree
graphics_pipelines
;
struct
wine_rb_tree
bo_slab_available
;
};
static
inline
struct
wined3d_context_vk
*
wined3d_context_vk
(
struct
wined3d_context
*
context
)
{
return
CONTAINING_RECORD
(
context
,
struct
wined3d_context_vk
,
c
);
}
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
)
DECLSPEC_HIDDEN
;
VkDeviceMemory
wined3d_context_vk_allocate_vram_chunk_memory
(
struct
wined3d_context_vk
*
context_vk
,
unsigned
int
pool
,
size_t
size
)
DECLSPEC_HIDDEN
;
VkCommandBuffer
wined3d_context_vk_apply_compute_state
(
struct
wined3d_context_vk
*
context_vk
,
const
struct
wined3d_state
*
state
,
struct
wined3d_buffer_vk
*
indirect_vk
)
DECLSPEC_HIDDEN
;
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
)
DECLSPEC_HIDDEN
;
void
wined3d_context_vk_cleanup
(
struct
wined3d_context_vk
*
context_vk
)
DECLSPEC_HIDDEN
;
BOOL
wined3d_context_vk_create_bo
(
struct
wined3d_context_vk
*
context_vk
,
VkDeviceSize
size
,
VkBufferUsageFlags
usage
,
VkMemoryPropertyFlags
memory_type
,
struct
wined3d_bo_vk
*
bo
)
DECLSPEC_HIDDEN
;
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
)
DECLSPEC_HIDDEN
;
void
wined3d_context_vk_destroy_allocator_block
(
struct
wined3d_context_vk
*
context_vk
,
struct
wined3d_allocator_block
*
block
,
uint64_t
command_buffer_id
)
DECLSPEC_HIDDEN
;
void
wined3d_context_vk_destroy_bo
(
struct
wined3d_context_vk
*
context_vk
,
const
struct
wined3d_bo_vk
*
bo
)
DECLSPEC_HIDDEN
;
void
wined3d_context_vk_destroy_image
(
struct
wined3d_context_vk
*
context_vk
,
struct
wined3d_image_vk
*
image_vk
)
DECLSPEC_HIDDEN
;
void
wined3d_context_vk_destroy_vk_buffer_view
(
struct
wined3d_context_vk
*
context_vk
,
VkBufferView
vk_view
,
uint64_t
command_buffer_id
)
DECLSPEC_HIDDEN
;
void
wined3d_context_vk_destroy_vk_framebuffer
(
struct
wined3d_context_vk
*
context_vk
,
VkFramebuffer
vk_framebuffer
,
uint64_t
command_buffer_id
)
DECLSPEC_HIDDEN
;
void
wined3d_context_vk_destroy_vk_image
(
struct
wined3d_context_vk
*
context_vk
,
VkImage
vk_image
,
uint64_t
command_buffer_id
)
DECLSPEC_HIDDEN
;
void
wined3d_context_vk_destroy_vk_image_view
(
struct
wined3d_context_vk
*
context_vk
,
VkImageView
vk_view
,
uint64_t
command_buffer_id
)
DECLSPEC_HIDDEN
;
void
wined3d_context_vk_destroy_vk_memory
(
struct
wined3d_context_vk
*
context_vk
,
VkDeviceMemory
vk_memory
,
uint64_t
command_buffer_id
)
DECLSPEC_HIDDEN
;
void
wined3d_context_vk_destroy_vk_sampler
(
struct
wined3d_context_vk
*
context_vk
,
VkSampler
vk_sampler
,
uint64_t
command_buffer_id
)
DECLSPEC_HIDDEN
;
void
wined3d_context_vk_destroy_vk_event
(
struct
wined3d_context_vk
*
context_vk
,
VkEvent
vk_event
,
uint64_t
command_buffer_id
)
DECLSPEC_HIDDEN
;
void
wined3d_context_vk_destroy_vk_pipeline
(
struct
wined3d_context_vk
*
context_vk
,
VkPipeline
vk_pipeline
,
uint64_t
command_buffer_id
)
DECLSPEC_HIDDEN
;
void
wined3d_context_vk_end_current_render_pass
(
struct
wined3d_context_vk
*
context_vk
)
DECLSPEC_HIDDEN
;
VkCommandBuffer
wined3d_context_vk_get_command_buffer
(
struct
wined3d_context_vk
*
context_vk
)
DECLSPEC_HIDDEN
;
struct
wined3d_pipeline_layout_vk
*
wined3d_context_vk_get_pipeline_layout
(
struct
wined3d_context_vk
*
context_vk
,
VkDescriptorSetLayoutBinding
*
bindings
,
SIZE_T
binding_count
)
DECLSPEC_HIDDEN
;
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
)
DECLSPEC_HIDDEN
;
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
)
DECLSPEC_HIDDEN
;
HRESULT
wined3d_context_vk_init
(
struct
wined3d_context_vk
*
context_vk
,
struct
wined3d_swapchain
*
swapchain
)
DECLSPEC_HIDDEN
;
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
)
DECLSPEC_HIDDEN
;
void
wined3d_context_vk_wait_command_buffer
(
struct
wined3d_context_vk
*
context_vk
,
uint64_t
id
)
DECLSPEC_HIDDEN
;
VkDescriptorSet
wined3d_context_vk_create_vk_descriptor_set
(
struct
wined3d_context_vk
*
context_vk
,
VkDescriptorSetLayout
vk_set_layout
)
DECLSPEC_HIDDEN
;
#endif
/* __WINE_WINED3D_VK */
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment