Philip Rebohle : vkd3d: Factor out root parameter invalidation.
Alexandre Julliard
julliard at winehq.org
Wed Nov 13 12:56:14 CST 2019
Module: vkd3d
Branch: master
Commit: 72246862af70a338c818d9c423ce241a50bf48a4
URL: https://source.winehq.org/git/vkd3d.git/?a=commit;h=72246862af70a338c818d9c423ce241a50bf48a4
Author: Philip Rebohle <philip.rebohle at tu-dortmund.de>
Date: Mon Nov 11 17:03:39 2019 +0100
vkd3d: Factor out root parameter invalidation.
Signed-off-by: Philip Rebohle <philip.rebohle at tu-dortmund.de>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
libs/vkd3d/command.c | 18 +++++++++++++++---
1 file changed, 15 insertions(+), 3 deletions(-)
diff --git a/libs/vkd3d/command.c b/libs/vkd3d/command.c
index 5db2007..297054b 100644
--- a/libs/vkd3d/command.c
+++ b/libs/vkd3d/command.c
@@ -1872,6 +1872,19 @@ static void d3d12_command_list_invalidate_bindings(struct d3d12_command_list *li
}
}
+static void d3d12_command_list_invalidate_root_parameters(struct d3d12_command_list *list,
+ VkPipelineBindPoint bind_point)
+{
+ struct vkd3d_pipeline_bindings *bindings = &list->pipeline_bindings[bind_point];
+
+ if (!bindings->root_signature)
+ return;
+
+ bindings->descriptor_set = VK_NULL_HANDLE;
+ bindings->descriptor_table_dirty_mask = bindings->descriptor_table_active_mask & bindings->root_signature->descriptor_table_mask;
+ bindings->push_descriptor_dirty_mask = bindings->push_descriptor_active_mask & bindings->root_signature->push_descriptor_mask;
+}
+
static bool vk_barrier_parameters_from_d3d12_resource_state(unsigned int state, unsigned int stencil_state,
const struct d3d12_resource *resource, VkQueueFlags vk_queue_flags, const struct vkd3d_vulkan_info *vk_info,
VkAccessFlags *access_mask, VkPipelineStageFlags *stage_flags, VkImageLayout *image_layout)
@@ -4039,9 +4052,8 @@ static void d3d12_command_list_set_root_signature(struct d3d12_command_list *lis
return;
bindings->root_signature = root_signature;
- bindings->descriptor_set = VK_NULL_HANDLE;
- bindings->descriptor_table_dirty_mask = bindings->descriptor_table_active_mask & root_signature->descriptor_table_mask;
- bindings->push_descriptor_dirty_mask = bindings->push_descriptor_active_mask & root_signature->push_descriptor_mask;
+
+ d3d12_command_list_invalidate_root_parameters(list, bind_point);
}
static void STDMETHODCALLTYPE d3d12_command_list_SetComputeRootSignature(ID3D12GraphicsCommandList1 *iface,
More information about the wine-cvs
mailing list