mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-04-18 19:00:37 +02:00
nvk: implement VK_AMD_buffer_marker
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35507>
This commit is contained in:
parent
3a6b85aa2b
commit
93eafbf04f
4 changed files with 27 additions and 1 deletions
|
|
@ -682,7 +682,7 @@ Khronos extensions that are not part of any Vulkan version:
|
|||
VK_NV_compute_shader_derivatives DONE (anv, hasvk, nvk, radv, vn)
|
||||
VK_EXT_acquire_drm_display DONE (anv, hk, nvk, radv, tu, v3dv, vn)
|
||||
VK_VALVE_mutable_descriptor_type DONE (anv, hasvk, hk, nvk, radv, tu, vn)
|
||||
VK_AMD_buffer_marker DONE (anv, radv, tu)
|
||||
VK_AMD_buffer_marker DONE (anv, nvk, radv, tu)
|
||||
VK_AMD_device_coherent_memory DONE (radv)
|
||||
VK_AMD_draw_indirect_count DONE (radv)
|
||||
VK_AMD_gcn_shader DONE (radv)
|
||||
|
|
|
|||
|
|
@ -18,3 +18,4 @@ GL_NV_shader_atomic_int64 on radeonsi and Panfrost V9+
|
|||
VK_KHR_maintenance7 on panvk/v10+
|
||||
VK_KHR_maintenance8 on panvk/v10+
|
||||
VK_KHR_maintenance9 on panvk
|
||||
VK_AMD_buffer_marker on NVK
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@
|
|||
#include "nvk_device.h"
|
||||
#include "nvk_device_memory.h"
|
||||
#include "nvk_entrypoints.h"
|
||||
#include "nvk_event.h"
|
||||
#include "nvk_mme.h"
|
||||
#include "nvk_physical_device.h"
|
||||
#include "nvk_shader.h"
|
||||
|
|
@ -21,6 +22,7 @@
|
|||
#include "clb097.h"
|
||||
#include "clcb97.h"
|
||||
#include "nv_push_cl906f.h"
|
||||
#include "nv_push_cl9097.h"
|
||||
#include "nv_push_cl90b5.h"
|
||||
#include "nv_push_cla097.h"
|
||||
#include "nv_push_cla0c0.h"
|
||||
|
|
@ -1257,3 +1259,25 @@ 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,
|
||||
});
|
||||
}
|
||||
|
|
@ -280,6 +280,7 @@ nvk_get_device_extensions(const struct nvk_instance *instance,
|
|||
.EXT_ycbcr_2plane_444_formats = true,
|
||||
.EXT_ycbcr_image_arrays = true,
|
||||
.EXT_zero_initialize_device_memory = true,
|
||||
.AMD_buffer_marker = true,
|
||||
#if DETECT_OS_ANDROID
|
||||
.ANDROID_native_buffer = vk_android_get_ugralloc() != NULL,
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue