mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-26 06:20:09 +01:00
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:
parent
34502840ca
commit
a431e8dfe6
2 changed files with 15 additions and 22 deletions
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue