mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2024-09-13 09:16:14 -07:00
include: Document structure vkd3d_image_resource_create_info.
This commit is contained in:
parent
2679b10fcb
commit
3f43d06f5c
Notes:
Alexandre Julliard
2024-05-02 22:40:34 +02: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/819
@ -313,18 +313,58 @@ struct vkd3d_optional_device_extensions_info
|
||||
uint32_t extension_count;
|
||||
};
|
||||
|
||||
/* vkd3d_image_resource_create_info flags */
|
||||
/**
|
||||
* When specified as a flag of vkd3d_image_resource_create_info, it means that vkd3d will do the
|
||||
* initial transition operation on the image from VK_IMAGE_LAYOUT_UNDEFINED to its appropriate
|
||||
* Vulkan layout (depending on its D3D12 resource state). If this flag is not specified the caller
|
||||
* is responsible for transitioning the Vulkan image to the appropriate layout.
|
||||
*/
|
||||
#define VKD3D_RESOURCE_INITIAL_STATE_TRANSITION 0x00000001
|
||||
/**
|
||||
* When specified as a flag of vkd3d_image_resource_create_info, it means that field present_state
|
||||
* is honored.
|
||||
*/
|
||||
#define VKD3D_RESOURCE_PRESENT_STATE_TRANSITION 0x00000002
|
||||
|
||||
/**
|
||||
* A chained structure containing the parameters to create a D3D12 resource backed by a Vulkan
|
||||
* image.
|
||||
*/
|
||||
struct vkd3d_image_resource_create_info
|
||||
{
|
||||
/** Must be set to VKD3D_STRUCTURE_TYPE_IMAGE_RESOURCE_CREATE_INFO. */
|
||||
enum vkd3d_structure_type type;
|
||||
/** Optional pointer to a structure containing further parameters. */
|
||||
const void *next;
|
||||
|
||||
/** The Vulkan image that backs the resource. */
|
||||
VkImage vk_image;
|
||||
/** The resource description. */
|
||||
D3D12_RESOURCE_DESC desc;
|
||||
/**
|
||||
* A combination of zero or more flags. The valid flags are
|
||||
* VKD3D_RESOURCE_INITIAL_STATE_TRANSITION and VKD3D_RESOURCE_PRESENT_STATE_TRANSITION.
|
||||
*/
|
||||
unsigned int flags;
|
||||
/**
|
||||
* This field specifies how to handle resource state D3D12_RESOURCE_STATE_PRESENT for
|
||||
* the resource. Notice that on D3D12 there is no difference between
|
||||
* D3D12_RESOURCE_STATE_COMMON and D3D12_RESOURCE_STATE_PRESENT (they have the same value),
|
||||
* while on Vulkan two different layouts are used (VK_IMAGE_LAYOUT_GENERAL and
|
||||
* VK_IMAGE_LAYOUT_PRESENT_SRC_KHR).
|
||||
*
|
||||
* * When flag VKD3D_RESOURCE_PRESENT_STATE_TRANSITION is not specified, field
|
||||
* present_state is ignored and resource state D3D12_RESOURCE_STATE_COMMON/_PRESENT is
|
||||
* mapped to VK_IMAGE_LAYOUT_GENERAL; this is useful for non-swapchain resources.
|
||||
* * Otherwise, when present_state is D3D12_RESOURCE_STATE_PRESENT/_COMMON, resource state
|
||||
* D3D12_RESOURCE_STATE_COMMON/_PRESENT is mapped to VK_IMAGE_LAYOUT_PRESENT_SRC_KHR;
|
||||
* this is useful for swapchain resources that are directly backed by a Vulkan swapchain
|
||||
* image.
|
||||
* * Otherwise, resource state D3D12_RESOURCE_STATE_COMMON/_PRESENT is treated as resource
|
||||
* state present_state; this is useful for swapchain resources that backed by a Vulkan
|
||||
* non-swapchain image, which the client will likely consume with a copy or drawing
|
||||
* operation at presentation time.
|
||||
*/
|
||||
D3D12_RESOURCE_STATES present_state;
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user