mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-13 05:20:45 +00:00
Add stubbed functions and hooks for EXT_descriptor_buffer
This commit is contained in:
@@ -1211,6 +1211,10 @@ enum class VulkanChunk : uint32_t
|
||||
vkCmdTraceRaysIndirect2KHR,
|
||||
vkCmdWriteAccelerationStructuresPropertiesKHR,
|
||||
vkCmdBindIndexBuffer2KHR,
|
||||
vkGetDescriptorEXT,
|
||||
vkCmdBindDescriptorBuffersEXT,
|
||||
vkCmdSetDescriptorBufferOffsetsEXT,
|
||||
vkCmdBindDescriptorBufferEmbeddedSamplersEXT,
|
||||
Max,
|
||||
};
|
||||
|
||||
|
||||
@@ -4379,6 +4379,16 @@ bool WrappedVulkan::ProcessChunk(ReadSerialiser &ser, VulkanChunk chunk)
|
||||
return Serialise_vkCmdCopyMemoryToAccelerationStructureKHR(ser, VK_NULL_HANDLE, NULL);
|
||||
case VulkanChunk::vkCreateAccelerationStructureKHR:
|
||||
return Serialise_vkCreateAccelerationStructureKHR(ser, VK_NULL_HANDLE, NULL, NULL, NULL);
|
||||
case VulkanChunk::vkGetDescriptorEXT:
|
||||
return Serialise_vkGetDescriptorEXT(ser, VK_NULL_HANDLE, NULL, 0, NULL);
|
||||
case VulkanChunk::vkCmdBindDescriptorBuffersEXT:
|
||||
return Serialise_vkCmdBindDescriptorBuffersEXT(ser, VK_NULL_HANDLE, 0, NULL);
|
||||
case VulkanChunk::vkCmdSetDescriptorBufferOffsetsEXT:
|
||||
return Serialise_vkCmdSetDescriptorBufferOffsetsEXT(
|
||||
ser, VK_NULL_HANDLE, VK_PIPELINE_BIND_POINT_MAX_ENUM, VK_NULL_HANDLE, 0, 0, NULL, NULL);
|
||||
case VulkanChunk::vkCmdBindDescriptorBufferEmbeddedSamplersEXT:
|
||||
return Serialise_vkCmdBindDescriptorBufferEmbeddedSamplersEXT(
|
||||
ser, VK_NULL_HANDLE, VK_PIPELINE_BIND_POINT_MAX_ENUM, VK_NULL_HANDLE, 0);
|
||||
|
||||
case VulkanChunk::vkCmdBindShadersEXT:
|
||||
return Serialise_vkCmdBindShadersEXT(ser, VK_NULL_HANDLE, 0, NULL, NULL);
|
||||
|
||||
@@ -3054,4 +3054,35 @@ public:
|
||||
void vkGetImageSubresourceLayout2EXT(VkDevice device, VkImage image,
|
||||
const VkImageSubresource2 *pSubresource,
|
||||
VkSubresourceLayout2 *pLayout);
|
||||
|
||||
// VK_EXT_descriptor_buffer
|
||||
void vkGetDescriptorSetLayoutSizeEXT(VkDevice device, VkDescriptorSetLayout layout,
|
||||
VkDeviceSize *pLayoutSizeInBytes);
|
||||
void vkGetDescriptorSetLayoutBindingOffsetEXT(VkDevice device, VkDescriptorSetLayout layout,
|
||||
uint32_t binding, VkDeviceSize *pOffset);
|
||||
VkResult vkGetBufferOpaqueCaptureDescriptorDataEXT(VkDevice device,
|
||||
const VkBufferCaptureDescriptorDataInfoEXT *pInfo,
|
||||
void *pData);
|
||||
VkResult vkGetImageOpaqueCaptureDescriptorDataEXT(VkDevice device,
|
||||
const VkImageCaptureDescriptorDataInfoEXT *pInfo,
|
||||
void *pData);
|
||||
VkResult vkGetImageViewOpaqueCaptureDescriptorDataEXT(
|
||||
VkDevice device, const VkImageViewCaptureDescriptorDataInfoEXT *pInfo, void *pData);
|
||||
VkResult vkGetSamplerOpaqueCaptureDescriptorDataEXT(
|
||||
VkDevice device, const VkSamplerCaptureDescriptorDataInfoEXT *pInfo, void *pData);
|
||||
VkResult vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(
|
||||
VkDevice device, const VkAccelerationStructureCaptureDescriptorDataInfoEXT *pInfo, void *pData);
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, vkGetDescriptorEXT, VkDevice device,
|
||||
const VkDescriptorGetInfoEXT *pDescriptorInfo, size_t dataSize,
|
||||
void *pDescriptor);
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, vkCmdBindDescriptorBuffersEXT, VkCommandBuffer commandBuffer,
|
||||
uint32_t bufferCount,
|
||||
const VkDescriptorBufferBindingInfoEXT *pBindingInfos);
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, vkCmdSetDescriptorBufferOffsetsEXT,
|
||||
VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint,
|
||||
VkPipelineLayout layout, uint32_t firstSet, uint32_t setCount,
|
||||
const uint32_t *pBufferIndices, const VkDeviceSize *pOffsets);
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, vkCmdBindDescriptorBufferEmbeddedSamplersEXT,
|
||||
VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint,
|
||||
VkPipelineLayout layout, uint32_t set);
|
||||
};
|
||||
|
||||
@@ -548,7 +548,8 @@
|
||||
DeclExt(KHR_ray_tracing_maintenance1); \
|
||||
DeclExt(KHR_maintenance5); \
|
||||
DeclExt(EXT_image_compression_control); \
|
||||
DeclExt(EXT_image_compression_control_swapchain);
|
||||
DeclExt(EXT_image_compression_control_swapchain); \
|
||||
DeclExt(EXT_descriptor_buffer);
|
||||
|
||||
// for simplicity and since the check itself is platform agnostic,
|
||||
// these aren't protected in platform defines
|
||||
@@ -686,7 +687,8 @@
|
||||
CheckExt(KHR_ray_tracing_maintenance1, VKXX); \
|
||||
CheckExt(KHR_maintenance5, VKXX); \
|
||||
CheckExt(EXT_image_compression_control, VKXX); \
|
||||
CheckExt(EXT_image_compression_control_swapchain, VKXX);
|
||||
CheckExt(EXT_image_compression_control_swapchain, VKXX); \
|
||||
CheckExt(EXT_descriptor_buffer, VKXX);
|
||||
|
||||
#define HookInitVulkanInstanceExts_PhysDev() \
|
||||
HookInitExtension(KHR_surface, GetPhysicalDeviceSurfaceSupportKHR); \
|
||||
@@ -1058,6 +1060,17 @@
|
||||
HookInitExtension(KHR_maintenance5, GetImageSubresourceLayout2KHR); \
|
||||
HookInitExtension(KHR_maintenance5, GetRenderingAreaGranularityKHR); \
|
||||
HookInitExtension(EXT_image_compression_control, GetImageSubresourceLayout2EXT); \
|
||||
HookInitExtension(EXT_descriptor_buffer, CmdBindDescriptorBufferEmbeddedSamplersEXT); \
|
||||
HookInitExtension(EXT_descriptor_buffer, CmdBindDescriptorBuffersEXT); \
|
||||
HookInitExtension(EXT_descriptor_buffer, CmdSetDescriptorBufferOffsetsEXT); \
|
||||
HookInitExtension(EXT_descriptor_buffer, GetBufferOpaqueCaptureDescriptorDataEXT); \
|
||||
HookInitExtension(EXT_descriptor_buffer, GetDescriptorEXT); \
|
||||
HookInitExtension(EXT_descriptor_buffer, GetDescriptorSetLayoutBindingOffsetEXT); \
|
||||
HookInitExtension(EXT_descriptor_buffer, GetDescriptorSetLayoutSizeEXT); \
|
||||
HookInitExtension(EXT_descriptor_buffer, GetImageOpaqueCaptureDescriptorDataEXT); \
|
||||
HookInitExtension(EXT_descriptor_buffer, GetImageViewOpaqueCaptureDescriptorDataEXT); \
|
||||
HookInitExtension(EXT_descriptor_buffer, GetSamplerOpaqueCaptureDescriptorDataEXT); \
|
||||
HookInitExtension(EXT_descriptor_buffer, GetAccelerationStructureOpaqueCaptureDescriptorDataEXT); \
|
||||
HookInitExtension_Device_Win32(); \
|
||||
HookInitExtension_Device_Linux(); \
|
||||
HookInitExtension_Device_Android(); \
|
||||
@@ -1975,6 +1988,29 @@
|
||||
const VkRenderingAreaInfo *, pRenderingAreaInfo, VkExtent2D *, pGranularity); \
|
||||
HookDefine4(void, vkGetImageSubresourceLayout2EXT, VkDevice, device, VkImage, image, \
|
||||
const VkImageSubresource2 *, pSubresource, VkSubresourceLayout2 *, pLayout); \
|
||||
HookDefine3(void, vkGetDescriptorSetLayoutSizeEXT, VkDevice, device, VkDescriptorSetLayout, \
|
||||
layout, VkDeviceSize *, pLayoutSizeInBytes); \
|
||||
HookDefine4(void, vkGetDescriptorSetLayoutBindingOffsetEXT, VkDevice, device, \
|
||||
VkDescriptorSetLayout, layout, uint32_t, binding, VkDeviceSize *, pOffset); \
|
||||
HookDefine4(void, vkGetDescriptorEXT, VkDevice, device, const VkDescriptorGetInfoEXT *, \
|
||||
pDescriptorInfo, size_t, dataSize, void *, pDescriptor); \
|
||||
HookDefine3(void, vkCmdBindDescriptorBuffersEXT, VkCommandBuffer, commandBuffer, uint32_t, \
|
||||
bufferCount, const VkDescriptorBufferBindingInfoEXT *, pBindingInfos); \
|
||||
HookDefine7(void, vkCmdSetDescriptorBufferOffsetsEXT, VkCommandBuffer, commandBuffer, \
|
||||
VkPipelineBindPoint, pipelineBindPoint, VkPipelineLayout, layout, uint32_t, firstSet, \
|
||||
uint32_t, setCount, const uint32_t *, pBufferIndices, const VkDeviceSize *, pOffsets); \
|
||||
HookDefine4(void, vkCmdBindDescriptorBufferEmbeddedSamplersEXT, VkCommandBuffer, commandBuffer, \
|
||||
VkPipelineBindPoint, pipelineBindPoint, VkPipelineLayout, layout, uint32_t, set); \
|
||||
HookDefine3(VkResult, vkGetBufferOpaqueCaptureDescriptorDataEXT, VkDevice, device, \
|
||||
const VkBufferCaptureDescriptorDataInfoEXT *, pInfo, void *, pData); \
|
||||
HookDefine3(VkResult, vkGetImageOpaqueCaptureDescriptorDataEXT, VkDevice, device, \
|
||||
const VkImageCaptureDescriptorDataInfoEXT *, pInfo, void *, pData); \
|
||||
HookDefine3(VkResult, vkGetImageViewOpaqueCaptureDescriptorDataEXT, VkDevice, device, \
|
||||
const VkImageViewCaptureDescriptorDataInfoEXT *, pInfo, void *, pData); \
|
||||
HookDefine3(VkResult, vkGetSamplerOpaqueCaptureDescriptorDataEXT, VkDevice, device, \
|
||||
const VkSamplerCaptureDescriptorDataInfoEXT *, pInfo, void *, pData); \
|
||||
HookDefine3(VkResult, vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT, VkDevice, device, \
|
||||
const VkAccelerationStructureCaptureDescriptorDataInfoEXT *, pInfo, void *, pData); \
|
||||
HookDefine_Win32(); \
|
||||
HookDefine_Linux(); \
|
||||
HookDefine_Android(); \
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
template <>
|
||||
rdcstr DoStringise(const VulkanChunk &el)
|
||||
{
|
||||
RDCCOMPILE_ASSERT((uint32_t)VulkanChunk::Max == 1218, "Chunks changed without updating names");
|
||||
RDCCOMPILE_ASSERT((uint32_t)VulkanChunk::Max == 1222, "Chunks changed without updating names");
|
||||
|
||||
BEGIN_ENUM_STRINGISE(VulkanChunk)
|
||||
{
|
||||
@@ -250,6 +250,10 @@ rdcstr DoStringise(const VulkanChunk &el)
|
||||
STRINGISE_ENUM_CLASS(vkCmdTraceRaysIndirect2KHR)
|
||||
STRINGISE_ENUM_CLASS(vkCmdWriteAccelerationStructuresPropertiesKHR)
|
||||
STRINGISE_ENUM_CLASS(vkCmdBindIndexBuffer2KHR)
|
||||
STRINGISE_ENUM_CLASS(vkGetDescriptorEXT)
|
||||
STRINGISE_ENUM_CLASS(vkCmdBindDescriptorBuffersEXT)
|
||||
STRINGISE_ENUM_CLASS(vkCmdSetDescriptorBufferOffsetsEXT)
|
||||
STRINGISE_ENUM_CLASS(vkCmdBindDescriptorBufferEmbeddedSamplersEXT)
|
||||
STRINGISE_ENUM_CLASS_NAMED(Max, "Max Chunk");
|
||||
}
|
||||
END_ENUM_STRINGISE()
|
||||
|
||||
@@ -8667,6 +8667,52 @@ void WrappedVulkan::vkCmdBindIndexBuffer2KHR(VkCommandBuffer commandBuffer, VkBu
|
||||
}
|
||||
}
|
||||
|
||||
template <typename SerialiserType>
|
||||
bool WrappedVulkan::Serialise_vkCmdBindDescriptorBuffersEXT(
|
||||
SerialiserType &ser, VkCommandBuffer commandBuffer, uint32_t bufferCount,
|
||||
const VkDescriptorBufferBindingInfoEXT *pBindingInfos)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
void WrappedVulkan::vkCmdBindDescriptorBuffersEXT(VkCommandBuffer commandBuffer, uint32_t bufferCount,
|
||||
const VkDescriptorBufferBindingInfoEXT *pBindingInfos)
|
||||
{
|
||||
}
|
||||
|
||||
template <typename SerialiserType>
|
||||
bool WrappedVulkan::Serialise_vkCmdSetDescriptorBufferOffsetsEXT(
|
||||
SerialiserType &ser, VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint,
|
||||
VkPipelineLayout layout, uint32_t firstSet, uint32_t setCount, const uint32_t *pBufferIndices,
|
||||
const VkDeviceSize *pOffsets)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
void WrappedVulkan::vkCmdSetDescriptorBufferOffsetsEXT(VkCommandBuffer commandBuffer,
|
||||
VkPipelineBindPoint pipelineBindPoint,
|
||||
VkPipelineLayout layout, uint32_t firstSet,
|
||||
uint32_t setCount,
|
||||
const uint32_t *pBufferIndices,
|
||||
const VkDeviceSize *pOffsets)
|
||||
{
|
||||
}
|
||||
|
||||
template <typename SerialiserType>
|
||||
bool WrappedVulkan::Serialise_vkCmdBindDescriptorBufferEmbeddedSamplersEXT(
|
||||
SerialiserType &ser, VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint,
|
||||
VkPipelineLayout layout, uint32_t set)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
void WrappedVulkan::vkCmdBindDescriptorBufferEmbeddedSamplersEXT(VkCommandBuffer commandBuffer,
|
||||
VkPipelineBindPoint pipelineBindPoint,
|
||||
VkPipelineLayout layout,
|
||||
uint32_t set)
|
||||
{
|
||||
}
|
||||
|
||||
INSTANTIATE_FUNCTION_SERIALISED(VkResult, vkCreateCommandPool, VkDevice device,
|
||||
const VkCommandPoolCreateInfo *pCreateInfo,
|
||||
const VkAllocationCallbacks *, VkCommandPool *pCommandPool);
|
||||
@@ -8862,3 +8908,14 @@ INSTANTIATE_FUNCTION_SERIALISED(void, vkCmdBindShadersEXT, VkCommandBuffer comma
|
||||
INSTANTIATE_FUNCTION_SERIALISED(void, vkCmdBindIndexBuffer2KHR, VkCommandBuffer commandBuffer,
|
||||
VkBuffer buffer, VkDeviceSize offset, VkDeviceSize size,
|
||||
VkIndexType indexType);
|
||||
|
||||
INSTANTIATE_FUNCTION_SERIALISED(void, vkCmdBindDescriptorBuffersEXT, VkCommandBuffer commandBuffer,
|
||||
uint32_t bufferCount,
|
||||
const VkDescriptorBufferBindingInfoEXT *pBindingInfos);
|
||||
INSTANTIATE_FUNCTION_SERIALISED(void, vkCmdSetDescriptorBufferOffsetsEXT,
|
||||
VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint,
|
||||
VkPipelineLayout layout, uint32_t firstSet, uint32_t setCount,
|
||||
const uint32_t *pBufferIndices, const VkDeviceSize *pOffsets);
|
||||
INSTANTIATE_FUNCTION_SERIALISED(void, vkCmdBindDescriptorBufferEmbeddedSamplersEXT,
|
||||
VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint,
|
||||
VkPipelineLayout layout, uint32_t set);
|
||||
|
||||
@@ -1870,6 +1870,19 @@ void WrappedVulkan::vkUpdateDescriptorSetWithTemplate(
|
||||
}
|
||||
}
|
||||
|
||||
template <typename SerialiserType>
|
||||
bool WrappedVulkan::Serialise_vkGetDescriptorEXT(SerialiserType &ser, VkDevice device,
|
||||
const VkDescriptorGetInfoEXT *pDescriptorInfo,
|
||||
size_t dataSize, void *pDescriptor)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
void WrappedVulkan::vkGetDescriptorEXT(VkDevice device, const VkDescriptorGetInfoEXT *pDescriptorInfo,
|
||||
size_t dataSize, void *pDescriptor)
|
||||
{
|
||||
}
|
||||
|
||||
INSTANTIATE_FUNCTION_SERIALISED(VkResult, vkCreateDescriptorSetLayout, VkDevice device,
|
||||
const VkDescriptorSetLayoutCreateInfo *pCreateInfo,
|
||||
const VkAllocationCallbacks *, VkDescriptorSetLayout *pSetLayout);
|
||||
@@ -1897,3 +1910,7 @@ INSTANTIATE_FUNCTION_SERIALISED(void, vkUpdateDescriptorSetWithTemplate, VkDevic
|
||||
VkDescriptorSet descriptorSet,
|
||||
VkDescriptorUpdateTemplate descriptorUpdateTemplate,
|
||||
const void *pData);
|
||||
|
||||
INSTANTIATE_FUNCTION_SERIALISED(void, vkGetDescriptorEXT, VkDevice device,
|
||||
const VkDescriptorGetInfoEXT *pDescriptorInfo, size_t dataSize,
|
||||
void *pDescriptor);
|
||||
|
||||
@@ -1332,3 +1332,67 @@ void WrappedVulkan::vkGetImageSubresourceLayout2EXT(VkDevice device, VkImage ima
|
||||
ObjDisp(device)->GetImageSubresourceLayout2EXT(Unwrap(device), Unwrap(image), pSubresource,
|
||||
pLayout);
|
||||
}
|
||||
|
||||
void WrappedVulkan::vkGetDescriptorSetLayoutSizeEXT(VkDevice device, VkDescriptorSetLayout layout,
|
||||
VkDeviceSize *pLayoutSizeInBytes)
|
||||
{
|
||||
ObjDisp(device)->GetDescriptorSetLayoutSizeEXT(Unwrap(device), Unwrap(layout), pLayoutSizeInBytes);
|
||||
}
|
||||
|
||||
void WrappedVulkan::vkGetDescriptorSetLayoutBindingOffsetEXT(VkDevice device,
|
||||
VkDescriptorSetLayout layout,
|
||||
uint32_t binding, VkDeviceSize *pOffset)
|
||||
{
|
||||
ObjDisp(device)->GetDescriptorSetLayoutBindingOffsetEXT(Unwrap(device), Unwrap(layout), binding,
|
||||
pOffset);
|
||||
}
|
||||
|
||||
VkResult WrappedVulkan::vkGetBufferOpaqueCaptureDescriptorDataEXT(
|
||||
VkDevice device, const VkBufferCaptureDescriptorDataInfoEXT *pInfo, void *pData)
|
||||
{
|
||||
VkBufferCaptureDescriptorDataInfoEXT unwrappedInfo = *pInfo;
|
||||
unwrappedInfo.buffer = Unwrap(unwrappedInfo.buffer);
|
||||
|
||||
return ObjDisp(device)->GetBufferOpaqueCaptureDescriptorDataEXT(Unwrap(device), &unwrappedInfo,
|
||||
pData);
|
||||
}
|
||||
|
||||
VkResult WrappedVulkan::vkGetImageOpaqueCaptureDescriptorDataEXT(
|
||||
VkDevice device, const VkImageCaptureDescriptorDataInfoEXT *pInfo, void *pData)
|
||||
{
|
||||
VkImageCaptureDescriptorDataInfoEXT unwrappedInfo = *pInfo;
|
||||
unwrappedInfo.image = Unwrap(unwrappedInfo.image);
|
||||
|
||||
return ObjDisp(device)->GetImageOpaqueCaptureDescriptorDataEXT(Unwrap(device), &unwrappedInfo,
|
||||
pData);
|
||||
}
|
||||
|
||||
VkResult WrappedVulkan::vkGetImageViewOpaqueCaptureDescriptorDataEXT(
|
||||
VkDevice device, const VkImageViewCaptureDescriptorDataInfoEXT *pInfo, void *pData)
|
||||
{
|
||||
VkImageViewCaptureDescriptorDataInfoEXT unwrappedInfo = *pInfo;
|
||||
unwrappedInfo.imageView = Unwrap(unwrappedInfo.imageView);
|
||||
|
||||
return ObjDisp(device)->GetImageViewOpaqueCaptureDescriptorDataEXT(Unwrap(device), &unwrappedInfo,
|
||||
pData);
|
||||
}
|
||||
|
||||
VkResult WrappedVulkan::vkGetSamplerOpaqueCaptureDescriptorDataEXT(
|
||||
VkDevice device, const VkSamplerCaptureDescriptorDataInfoEXT *pInfo, void *pData)
|
||||
{
|
||||
VkSamplerCaptureDescriptorDataInfoEXT unwrappedInfo = *pInfo;
|
||||
unwrappedInfo.sampler = Unwrap(unwrappedInfo.sampler);
|
||||
|
||||
return ObjDisp(device)->GetSamplerOpaqueCaptureDescriptorDataEXT(Unwrap(device), &unwrappedInfo,
|
||||
pData);
|
||||
}
|
||||
|
||||
VkResult WrappedVulkan::vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(
|
||||
VkDevice device, const VkAccelerationStructureCaptureDescriptorDataInfoEXT *pInfo, void *pData)
|
||||
{
|
||||
VkAccelerationStructureCaptureDescriptorDataInfoEXT unwrappedInfo = *pInfo;
|
||||
unwrappedInfo.accelerationStructure = Unwrap(unwrappedInfo.accelerationStructure);
|
||||
|
||||
return ObjDisp(device)->GetAccelerationStructureOpaqueCaptureDescriptorDataEXT(
|
||||
Unwrap(device), &unwrappedInfo, pData);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user