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:
@@ -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,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user