summaryrefslogtreecommitdiffstats
path: root/src/amd/vulkan/radv_radeon_winsys.h
diff options
context:
space:
mode:
authorBas Nieuwenhuizen <[email protected]>2018-04-09 12:46:49 +0200
committerBas Nieuwenhuizen <[email protected]>2018-04-18 22:56:54 +0200
commit4b13fe55a454723bc8642d8f5d754cd9a57e5c7c (patch)
tree75438bbb5de1fb0031ecb16f0527060ddf3fa913 /src/amd/vulkan/radv_radeon_winsys.h
parent22d6b89e395e8cab06cbcbde111e64b613e675b6 (diff)
radv: Keep a global BO list for VkMemory.
With update after bind we can't attach bo's to the command buffer from the descriptor set anymore, so we have to have a global BO list. I am somewhat surprised this works really well even though we have implicit synchronization in the WSI based on the bo list associations and with the new behavior every command buffer is associated with every swapchain image. But I could not find slowdowns in games because of it. Reviewed-by: Samuel Pitoiset <[email protected]>
Diffstat (limited to 'src/amd/vulkan/radv_radeon_winsys.h')
-rw-r--r--src/amd/vulkan/radv_radeon_winsys.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/amd/vulkan/radv_radeon_winsys.h b/src/amd/vulkan/radv_radeon_winsys.h
index ba16bf332ab..7f19934ab80 100644
--- a/src/amd/vulkan/radv_radeon_winsys.h
+++ b/src/amd/vulkan/radv_radeon_winsys.h
@@ -178,6 +178,11 @@ struct radv_winsys_sem_info {
struct radv_winsys_sem_counts signal;
};
+struct radv_winsys_bo_list {
+ struct radeon_winsys_bo **bos;
+ unsigned count;
+};
+
struct radeon_winsys {
void (*destroy)(struct radeon_winsys *ws);
@@ -246,6 +251,7 @@ struct radeon_winsys {
struct radeon_winsys_cs *initial_preamble_cs,
struct radeon_winsys_cs *continue_preamble_cs,
struct radv_winsys_sem_info *sem_info,
+ const struct radv_winsys_bo_list *bo_list, /* optional */
bool can_patch,
struct radeon_winsys_fence *fence);