nvk: Use semaphore helper for BufferMarker2AMD

By calling into nvk_event_report_semaphore we get better support for
queues other than graphics.

Reviewed-by: Thomas H.P. Andersen <phomes@gmail.com>
Reviewed-by: Mary Guillemard <mary@mary.zone>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36617>
This commit is contained in:
Mel Henning 2025-12-16 14:09:01 -05:00 committed by Marge Bot
parent 34502840ca
commit a431e8dfe6
2 changed files with 15 additions and 22 deletions

View file

@ -1275,25 +1275,3 @@ nvk_CmdPushDescriptorSetWithTemplate2KHR(
VK_SHADER_STAGE_COMPUTE_BIT,
set, set + 1);
}
VKAPI_ATTR void VKAPI_CALL
nvk_CmdWriteBufferMarker2AMD(VkCommandBuffer commandBuffer,
VkPipelineStageFlags2 stage,
VkBuffer _buffer,
VkDeviceSize offset,
uint32_t marker)
{
VK_FROM_HANDLE(nvk_cmd_buffer, cmd, commandBuffer);
VK_FROM_HANDLE(nvk_buffer, buffer, _buffer);
const uint64_t marker_addr = vk_buffer_address(&buffer->vk, offset);
struct nv_push *p = nvk_cmd_buffer_push(cmd, 5);
P_MTHD(p, NV9097, SET_REPORT_SEMAPHORE_A);
P_NV9097_SET_REPORT_SEMAPHORE_A(p, marker_addr >> 32);
P_NV9097_SET_REPORT_SEMAPHORE_B(p, marker_addr);
P_NV9097_SET_REPORT_SEMAPHORE_C(p, marker);
P_NV9097_SET_REPORT_SEMAPHORE_D(p, {
.pipeline_location = vk_stage_flags_to_nv9097_pipeline_location(stage),
.structure_size = STRUCTURE_SIZE_ONE_WORD,
});
}

View file

@ -4,6 +4,7 @@
*/
#include "nvk_event.h"
#include "nvk_buffer.h"
#include "nvk_cmd_buffer.h"
#include "nvk_device.h"
#include "nvk_entrypoints.h"
@ -258,3 +259,17 @@ nvk_CmdWaitEvents2(VkCommandBuffer commandBuffer,
nvk_cmd_invalidate_deps(cmd, eventCount, pDependencyInfos);
}
VKAPI_ATTR void VKAPI_CALL
nvk_CmdWriteBufferMarker2AMD(VkCommandBuffer commandBuffer,
VkPipelineStageFlags2 stage,
VkBuffer _buffer,
VkDeviceSize offset,
uint32_t marker)
{
VK_FROM_HANDLE(nvk_cmd_buffer, cmd, commandBuffer);
VK_FROM_HANDLE(nvk_buffer, buffer, _buffer);
const uint64_t marker_addr = vk_buffer_address(&buffer->vk, offset);
nvk_event_report_semaphore(cmd, stage, marker_addr, marker);
}