radv: use common entrypoints for VK_KHR_copy_commands2
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9600>
This commit is contained in:
parent
f29de817eb
commit
fb648634b0
|
@ -531,17 +531,6 @@ void sqtt_CmdDispatchIndirect(
|
|||
EVENT_MARKER(DispatchIndirect, commandBuffer, buffer, offset);
|
||||
}
|
||||
|
||||
void sqtt_CmdCopyBuffer(
|
||||
VkCommandBuffer commandBuffer,
|
||||
VkBuffer srcBuffer,
|
||||
VkBuffer destBuffer,
|
||||
uint32_t regionCount,
|
||||
const VkBufferCopy* pRegions)
|
||||
{
|
||||
EVENT_MARKER(CopyBuffer, commandBuffer, srcBuffer, destBuffer,
|
||||
regionCount, pRegions);
|
||||
}
|
||||
|
||||
void sqtt_CmdCopyBuffer2KHR(
|
||||
VkCommandBuffer commandBuffer,
|
||||
const VkCopyBufferInfo2KHR* pCopyBufferInfo)
|
||||
|
@ -572,19 +561,6 @@ void sqtt_CmdUpdateBuffer(
|
|||
dataSize, pData);
|
||||
}
|
||||
|
||||
void sqtt_CmdCopyImage(
|
||||
VkCommandBuffer commandBuffer,
|
||||
VkImage srcImage,
|
||||
VkImageLayout srcImageLayout,
|
||||
VkImage destImage,
|
||||
VkImageLayout destImageLayout,
|
||||
uint32_t regionCount,
|
||||
const VkImageCopy* pRegions)
|
||||
{
|
||||
EVENT_MARKER(CopyImage, commandBuffer, srcImage, srcImageLayout,
|
||||
destImage, destImageLayout, regionCount, pRegions);
|
||||
}
|
||||
|
||||
void sqtt_CmdCopyImage2KHR(
|
||||
VkCommandBuffer commandBuffer,
|
||||
const VkCopyImageInfo2KHR* pCopyImageInfo)
|
||||
|
@ -593,18 +569,6 @@ void sqtt_CmdCopyImage2KHR(
|
|||
pCopyImageInfo);
|
||||
}
|
||||
|
||||
void sqtt_CmdCopyBufferToImage(
|
||||
VkCommandBuffer commandBuffer,
|
||||
VkBuffer srcBuffer,
|
||||
VkImage destImage,
|
||||
VkImageLayout destImageLayout,
|
||||
uint32_t regionCount,
|
||||
const VkBufferImageCopy* pRegions)
|
||||
{
|
||||
EVENT_MARKER(CopyBufferToImage, commandBuffer, srcBuffer, destImage,
|
||||
destImageLayout, regionCount, pRegions);
|
||||
}
|
||||
|
||||
void sqtt_CmdCopyBufferToImage2KHR(
|
||||
VkCommandBuffer commandBuffer,
|
||||
const VkCopyBufferToImageInfo2KHR* pCopyBufferToImageInfo)
|
||||
|
@ -613,18 +577,6 @@ void sqtt_CmdCopyBufferToImage2KHR(
|
|||
commandBuffer, pCopyBufferToImageInfo);
|
||||
}
|
||||
|
||||
void sqtt_CmdCopyImageToBuffer(
|
||||
VkCommandBuffer commandBuffer,
|
||||
VkImage srcImage,
|
||||
VkImageLayout srcImageLayout,
|
||||
VkBuffer destBuffer,
|
||||
uint32_t regionCount,
|
||||
const VkBufferImageCopy* pRegions)
|
||||
{
|
||||
EVENT_MARKER(CopyImageToBuffer, commandBuffer, srcImage, srcImageLayout,
|
||||
destBuffer, regionCount, pRegions);
|
||||
}
|
||||
|
||||
void sqtt_CmdCopyImageToBuffer2KHR(
|
||||
VkCommandBuffer commandBuffer,
|
||||
const VkCopyImageToBufferInfo2KHR* pCopyImageToBufferInfo)
|
||||
|
@ -633,20 +585,6 @@ void sqtt_CmdCopyImageToBuffer2KHR(
|
|||
commandBuffer, pCopyImageToBufferInfo);
|
||||
}
|
||||
|
||||
void sqtt_CmdBlitImage(
|
||||
VkCommandBuffer commandBuffer,
|
||||
VkImage srcImage,
|
||||
VkImageLayout srcImageLayout,
|
||||
VkImage destImage,
|
||||
VkImageLayout destImageLayout,
|
||||
uint32_t regionCount,
|
||||
const VkImageBlit* pRegions,
|
||||
VkFilter filter)
|
||||
{
|
||||
EVENT_MARKER(BlitImage, commandBuffer, srcImage, srcImageLayout,
|
||||
destImage, destImageLayout, regionCount, pRegions, filter);
|
||||
}
|
||||
|
||||
void sqtt_CmdBlitImage2KHR(
|
||||
VkCommandBuffer commandBuffer,
|
||||
const VkBlitImageInfo2KHR* pBlitImageInfo)
|
||||
|
@ -690,19 +628,6 @@ void sqtt_CmdClearAttachments(
|
|||
pAttachments, rectCount, pRects);
|
||||
}
|
||||
|
||||
void sqtt_CmdResolveImage(
|
||||
VkCommandBuffer commandBuffer,
|
||||
VkImage src_image_h,
|
||||
VkImageLayout src_image_layout,
|
||||
VkImage dest_image_h,
|
||||
VkImageLayout dest_image_layout,
|
||||
uint32_t region_count,
|
||||
const VkImageResolve* regions)
|
||||
{
|
||||
EVENT_MARKER(ResolveImage, commandBuffer, src_image_h, src_image_layout,
|
||||
dest_image_h, dest_image_layout, region_count, regions);
|
||||
}
|
||||
|
||||
void sqtt_CmdResolveImage2KHR(
|
||||
VkCommandBuffer commandBuffer,
|
||||
const VkResolveImageInfo2KHR* pResolveImageInfo)
|
||||
|
|
|
@ -659,43 +659,6 @@ blit_image(struct radv_cmd_buffer *cmd_buffer,
|
|||
&cmd_buffer->pool->alloc);
|
||||
}
|
||||
|
||||
void radv_CmdBlitImage(
|
||||
VkCommandBuffer commandBuffer,
|
||||
VkImage srcImage,
|
||||
VkImageLayout srcImageLayout,
|
||||
VkImage dstImage,
|
||||
VkImageLayout dstImageLayout,
|
||||
uint32_t regionCount,
|
||||
const VkImageBlit* pRegions,
|
||||
VkFilter filter)
|
||||
|
||||
{
|
||||
RADV_FROM_HANDLE(radv_cmd_buffer, cmd_buffer, commandBuffer);
|
||||
RADV_FROM_HANDLE(radv_image, src_image, srcImage);
|
||||
RADV_FROM_HANDLE(radv_image, dst_image, dstImage);
|
||||
|
||||
for (unsigned r = 0; r < regionCount; r++) {
|
||||
VkImageBlit2KHR blit = {
|
||||
.sType = VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR,
|
||||
.srcSubresource = pRegions[r].srcSubresource,
|
||||
.srcOffsets = {
|
||||
pRegions[r].srcOffsets[0],
|
||||
pRegions[r].srcOffsets[1],
|
||||
},
|
||||
.dstSubresource = pRegions[r].dstSubresource,
|
||||
.dstOffsets = {
|
||||
pRegions[r].dstOffsets[0],
|
||||
pRegions[r].dstOffsets[1],
|
||||
},
|
||||
};
|
||||
|
||||
blit_image(cmd_buffer,
|
||||
src_image, srcImageLayout,
|
||||
dst_image, dstImageLayout,
|
||||
&blit, filter);
|
||||
}
|
||||
}
|
||||
|
||||
void radv_CmdBlitImage2KHR(
|
||||
VkCommandBuffer commandBuffer,
|
||||
const VkBlitImageInfo2KHR* pBlitImageInfo)
|
||||
|
|
|
@ -466,29 +466,6 @@ copy_buffer(struct radv_cmd_buffer *cmd_buffer,
|
|||
cmd_buffer->state.predicating = old_predicating;
|
||||
}
|
||||
|
||||
void radv_CmdCopyBuffer(
|
||||
VkCommandBuffer commandBuffer,
|
||||
VkBuffer srcBuffer,
|
||||
VkBuffer destBuffer,
|
||||
uint32_t regionCount,
|
||||
const VkBufferCopy* pRegions)
|
||||
{
|
||||
RADV_FROM_HANDLE(radv_cmd_buffer, cmd_buffer, commandBuffer);
|
||||
RADV_FROM_HANDLE(radv_buffer, src_buffer, srcBuffer);
|
||||
RADV_FROM_HANDLE(radv_buffer, dst_buffer, destBuffer);
|
||||
|
||||
for (unsigned r = 0; r < regionCount; r++) {
|
||||
VkBufferCopy2KHR copy = {
|
||||
.sType = VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR,
|
||||
.srcOffset = pRegions[r].srcOffset,
|
||||
.dstOffset = pRegions[r].dstOffset,
|
||||
.size = pRegions[r].size,
|
||||
};
|
||||
|
||||
copy_buffer(cmd_buffer, src_buffer, dst_buffer, ©);
|
||||
}
|
||||
}
|
||||
|
||||
void radv_CmdCopyBuffer2KHR(
|
||||
VkCommandBuffer commandBuffer,
|
||||
const VkCopyBufferInfo2KHR* pCopyBufferInfo)
|
||||
|
|
|
@ -253,34 +253,6 @@ copy_buffer_to_image(struct radv_cmd_buffer *cmd_buffer,
|
|||
radv_meta_restore(&saved_state, cmd_buffer);
|
||||
}
|
||||
|
||||
void radv_CmdCopyBufferToImage(
|
||||
VkCommandBuffer commandBuffer,
|
||||
VkBuffer srcBuffer,
|
||||
VkImage dstImage,
|
||||
VkImageLayout dstImageLayout,
|
||||
uint32_t regionCount,
|
||||
const VkBufferImageCopy* pRegions)
|
||||
{
|
||||
RADV_FROM_HANDLE(radv_cmd_buffer, cmd_buffer, commandBuffer);
|
||||
RADV_FROM_HANDLE(radv_image, dst_image, dstImage);
|
||||
RADV_FROM_HANDLE(radv_buffer, src_buffer, srcBuffer);
|
||||
|
||||
for (unsigned r = 0; r < regionCount; r++) {
|
||||
VkBufferImageCopy2KHR copy = {
|
||||
.sType = VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR,
|
||||
.bufferOffset = pRegions[r].bufferOffset,
|
||||
.bufferRowLength = pRegions[r].bufferRowLength,
|
||||
.bufferImageHeight = pRegions[r].bufferImageHeight,
|
||||
.imageSubresource = pRegions[r].imageSubresource,
|
||||
.imageOffset = pRegions[r].imageOffset,
|
||||
.imageExtent = pRegions[r].imageExtent,
|
||||
};
|
||||
|
||||
copy_buffer_to_image(cmd_buffer, src_buffer, dst_image,
|
||||
dstImageLayout, ©);
|
||||
}
|
||||
}
|
||||
|
||||
void radv_CmdCopyBufferToImage2KHR(
|
||||
VkCommandBuffer commandBuffer,
|
||||
const VkCopyBufferToImageInfo2KHR* pCopyBufferToImageInfo)
|
||||
|
@ -410,34 +382,6 @@ copy_image_to_buffer(struct radv_cmd_buffer *cmd_buffer,
|
|||
radv_meta_restore(&saved_state, cmd_buffer);
|
||||
}
|
||||
|
||||
void radv_CmdCopyImageToBuffer(
|
||||
VkCommandBuffer commandBuffer,
|
||||
VkImage srcImage,
|
||||
VkImageLayout srcImageLayout,
|
||||
VkBuffer destBuffer,
|
||||
uint32_t regionCount,
|
||||
const VkBufferImageCopy* pRegions)
|
||||
{
|
||||
RADV_FROM_HANDLE(radv_cmd_buffer, cmd_buffer, commandBuffer);
|
||||
RADV_FROM_HANDLE(radv_image, src_image, srcImage);
|
||||
RADV_FROM_HANDLE(radv_buffer, dst_buffer, destBuffer);
|
||||
|
||||
for (unsigned r = 0; r < regionCount; r++) {
|
||||
VkBufferImageCopy2KHR copy = {
|
||||
.sType = VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR,
|
||||
.bufferOffset = pRegions[r].bufferOffset,
|
||||
.bufferRowLength = pRegions[r].bufferRowLength,
|
||||
.bufferImageHeight = pRegions[r].bufferImageHeight,
|
||||
.imageSubresource = pRegions[r].imageSubresource,
|
||||
.imageOffset = pRegions[r].imageOffset,
|
||||
.imageExtent = pRegions[r].imageExtent,
|
||||
};
|
||||
|
||||
copy_image_to_buffer(cmd_buffer, dst_buffer, src_image,
|
||||
srcImageLayout, ©);
|
||||
}
|
||||
}
|
||||
|
||||
void radv_CmdCopyImageToBuffer2KHR(
|
||||
VkCommandBuffer commandBuffer,
|
||||
const VkCopyImageToBufferInfo2KHR* pCopyImageToBufferInfo)
|
||||
|
@ -608,36 +552,6 @@ copy_image(struct radv_cmd_buffer *cmd_buffer,
|
|||
radv_meta_restore(&saved_state, cmd_buffer);
|
||||
}
|
||||
|
||||
void radv_CmdCopyImage(
|
||||
VkCommandBuffer commandBuffer,
|
||||
VkImage srcImage,
|
||||
VkImageLayout srcImageLayout,
|
||||
VkImage dstImage,
|
||||
VkImageLayout dstImageLayout,
|
||||
uint32_t regionCount,
|
||||
const VkImageCopy* pRegions)
|
||||
{
|
||||
RADV_FROM_HANDLE(radv_cmd_buffer, cmd_buffer, commandBuffer);
|
||||
RADV_FROM_HANDLE(radv_image, src_image, srcImage);
|
||||
RADV_FROM_HANDLE(radv_image, dst_image, dstImage);
|
||||
|
||||
for (unsigned r = 0; r < regionCount; r++) {
|
||||
VkImageCopy2KHR copy = {
|
||||
.sType = VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR,
|
||||
.srcSubresource = pRegions[r].srcSubresource,
|
||||
.srcOffset = pRegions[r].srcOffset,
|
||||
.dstSubresource = pRegions[r].dstSubresource,
|
||||
.dstOffset = pRegions[r].dstOffset,
|
||||
.extent = pRegions[r].extent,
|
||||
};
|
||||
|
||||
copy_image(cmd_buffer,
|
||||
src_image, srcImageLayout,
|
||||
dst_image, dstImageLayout,
|
||||
©);
|
||||
}
|
||||
}
|
||||
|
||||
void radv_CmdCopyImage2KHR(
|
||||
VkCommandBuffer commandBuffer,
|
||||
const VkCopyImageInfo2KHR* pCopyImageInfo)
|
||||
|
|
|
@ -668,58 +668,6 @@ resolve_image(struct radv_cmd_buffer *cmd_buffer,
|
|||
}
|
||||
}
|
||||
|
||||
void radv_CmdResolveImage(
|
||||
VkCommandBuffer cmd_buffer_h,
|
||||
VkImage src_image_h,
|
||||
VkImageLayout src_image_layout,
|
||||
VkImage dest_image_h,
|
||||
VkImageLayout dest_image_layout,
|
||||
uint32_t region_count,
|
||||
const VkImageResolve* regions)
|
||||
{
|
||||
RADV_FROM_HANDLE(radv_cmd_buffer, cmd_buffer, cmd_buffer_h);
|
||||
RADV_FROM_HANDLE(radv_image, src_image, src_image_h);
|
||||
RADV_FROM_HANDLE(radv_image, dest_image, dest_image_h);
|
||||
enum radv_resolve_method resolve_method = RESOLVE_HW;
|
||||
/* we can use the hw resolve only for single full resolves */
|
||||
if (region_count == 1) {
|
||||
if (regions[0].srcOffset.x ||
|
||||
regions[0].srcOffset.y ||
|
||||
regions[0].srcOffset.z)
|
||||
resolve_method = RESOLVE_COMPUTE;
|
||||
if (regions[0].dstOffset.x ||
|
||||
regions[0].dstOffset.y ||
|
||||
regions[0].dstOffset.z)
|
||||
resolve_method = RESOLVE_COMPUTE;
|
||||
|
||||
if (regions[0].extent.width != src_image->info.width ||
|
||||
regions[0].extent.height != src_image->info.height ||
|
||||
regions[0].extent.depth != src_image->info.depth)
|
||||
resolve_method = RESOLVE_COMPUTE;
|
||||
} else
|
||||
resolve_method = RESOLVE_COMPUTE;
|
||||
|
||||
radv_pick_resolve_method_images(cmd_buffer->device, src_image,
|
||||
src_image->vk_format, dest_image,
|
||||
dest_image_layout, false, cmd_buffer,
|
||||
&resolve_method);
|
||||
|
||||
for (uint32_t r = 0; r < region_count; r++) {
|
||||
VkImageResolve2KHR region = {
|
||||
.sType = VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR,
|
||||
.srcSubresource = regions[r].srcSubresource,
|
||||
.srcOffset = regions[r].srcOffset,
|
||||
.dstSubresource = regions[r].dstSubresource,
|
||||
.dstOffset = regions[r].dstOffset,
|
||||
.extent = regions[r].extent,
|
||||
};
|
||||
|
||||
resolve_image(cmd_buffer, src_image, src_image_layout,
|
||||
dest_image, dest_image_layout,
|
||||
®ion, resolve_method);
|
||||
}
|
||||
}
|
||||
|
||||
void radv_CmdResolveImage2KHR(
|
||||
VkCommandBuffer commandBuffer,
|
||||
const VkResolveImageInfo2KHR* pResolveImageInfo)
|
||||
|
|
Loading…
Reference in New Issue