panvk: Implement VK_KHR_synchronization2
It's easier to switch to sync2 before CmdPipelineBarrier gets any more complicated. Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15436>
This commit is contained in:
committed by
Marge Bot
parent
39c395d1d2
commit
b573b22628
@@ -151,6 +151,7 @@ panvk_get_device_extensions(const struct panvk_physical_device *device,
|
||||
#ifdef PANVK_USE_WSI_PLATFORM
|
||||
.KHR_swapchain = true,
|
||||
#endif
|
||||
.KHR_synchronization2 = true,
|
||||
.EXT_custom_border_color = true,
|
||||
.EXT_index_type_uint8 = true,
|
||||
.EXT_vertex_attribute_divisor = true,
|
||||
@@ -558,7 +559,7 @@ panvk_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,
|
||||
.shaderTerminateInvocation = false,
|
||||
.subgroupSizeControl = false,
|
||||
.computeFullSubgroups = false,
|
||||
.synchronization2 = false,
|
||||
.synchronization2 = true,
|
||||
.textureCompressionASTC_HDR = false,
|
||||
.shaderZeroInitializeWorkgroupMemory = false,
|
||||
.dynamicRendering = false,
|
||||
|
||||
@@ -95,10 +95,10 @@ panvk_CmdEndQuery(VkCommandBuffer commandBuffer,
|
||||
}
|
||||
|
||||
void
|
||||
panvk_CmdWriteTimestamp(VkCommandBuffer commandBuffer,
|
||||
VkPipelineStageFlagBits pipelineStage,
|
||||
VkQueryPool queryPool,
|
||||
uint32_t query)
|
||||
panvk_CmdWriteTimestamp2(VkCommandBuffer commandBuffer,
|
||||
VkPipelineStageFlags2 stage,
|
||||
VkQueryPool queryPool,
|
||||
uint32_t query)
|
||||
{
|
||||
panvk_stub();
|
||||
}
|
||||
|
||||
@@ -1105,16 +1105,8 @@ panvk_per_arch(CmdEndRenderPass)(VkCommandBuffer cmd)
|
||||
|
||||
|
||||
void
|
||||
panvk_per_arch(CmdPipelineBarrier)(VkCommandBuffer commandBuffer,
|
||||
VkPipelineStageFlags srcStageMask,
|
||||
VkPipelineStageFlags destStageMask,
|
||||
VkDependencyFlags dependencyFlags,
|
||||
uint32_t memoryBarrierCount,
|
||||
const VkMemoryBarrier *pMemoryBarriers,
|
||||
uint32_t bufferMemoryBarrierCount,
|
||||
const VkBufferMemoryBarrier *pBufferMemoryBarriers,
|
||||
uint32_t imageMemoryBarrierCount,
|
||||
const VkImageMemoryBarrier *pImageMemoryBarriers)
|
||||
panvk_per_arch(CmdPipelineBarrier2)(VkCommandBuffer commandBuffer,
|
||||
const VkDependencyInfo *pDependencyInfo)
|
||||
{
|
||||
VK_FROM_HANDLE(panvk_cmd_buffer, cmdbuf, commandBuffer);
|
||||
|
||||
@@ -1195,9 +1187,9 @@ panvk_add_wait_event_operation(struct panvk_cmd_buffer *cmdbuf,
|
||||
}
|
||||
|
||||
void
|
||||
panvk_per_arch(CmdSetEvent)(VkCommandBuffer commandBuffer,
|
||||
VkEvent _event,
|
||||
VkPipelineStageFlags stageMask)
|
||||
panvk_per_arch(CmdSetEvent2)(VkCommandBuffer commandBuffer,
|
||||
VkEvent _event,
|
||||
const VkDependencyInfo *pDependencyInfo)
|
||||
{
|
||||
VK_FROM_HANDLE(panvk_cmd_buffer, cmdbuf, commandBuffer);
|
||||
VK_FROM_HANDLE(panvk_event, event, _event);
|
||||
@@ -1209,9 +1201,9 @@ panvk_per_arch(CmdSetEvent)(VkCommandBuffer commandBuffer,
|
||||
}
|
||||
|
||||
void
|
||||
panvk_per_arch(CmdResetEvent)(VkCommandBuffer commandBuffer,
|
||||
VkEvent _event,
|
||||
VkPipelineStageFlags stageMask)
|
||||
panvk_per_arch(CmdResetEvent2)(VkCommandBuffer commandBuffer,
|
||||
VkEvent _event,
|
||||
VkPipelineStageFlags2 stageMask)
|
||||
{
|
||||
VK_FROM_HANDLE(panvk_cmd_buffer, cmdbuf, commandBuffer);
|
||||
VK_FROM_HANDLE(panvk_event, event, _event);
|
||||
@@ -1223,17 +1215,10 @@ panvk_per_arch(CmdResetEvent)(VkCommandBuffer commandBuffer,
|
||||
}
|
||||
|
||||
void
|
||||
panvk_per_arch(CmdWaitEvents)(VkCommandBuffer commandBuffer,
|
||||
uint32_t eventCount,
|
||||
const VkEvent *pEvents,
|
||||
VkPipelineStageFlags srcStageMask,
|
||||
VkPipelineStageFlags dstStageMask,
|
||||
uint32_t memoryBarrierCount,
|
||||
const VkMemoryBarrier *pMemoryBarriers,
|
||||
uint32_t bufferMemoryBarrierCount,
|
||||
const VkBufferMemoryBarrier *pBufferMemoryBarriers,
|
||||
uint32_t imageMemoryBarrierCount,
|
||||
const VkImageMemoryBarrier *pImageMemoryBarriers)
|
||||
panvk_per_arch(CmdWaitEvents2)(VkCommandBuffer commandBuffer,
|
||||
uint32_t eventCount,
|
||||
const VkEvent *pEvents,
|
||||
const VkDependencyInfo *pDependencyInfos)
|
||||
{
|
||||
VK_FROM_HANDLE(panvk_cmd_buffer, cmdbuf, commandBuffer);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user