Fix core compiling

This commit is contained in:
baldurk
2015-12-10 12:13:34 +01:00
parent 59398c8567
commit 3649fc4134
5 changed files with 109 additions and 125 deletions
+2 -8
View File
@@ -184,7 +184,6 @@ enum VulkanChunkType
CREATE_IMAGE_VIEW,
CREATE_DEPTH_TARGET_VIEW,
CREATE_SAMPLER,
CREATE_SHADER,
CREATE_SHADER_MODULE,
CREATE_PIPE_LAYOUT,
CREATE_PIPE_CACHE,
@@ -211,8 +210,6 @@ enum VulkanChunkType
BEGIN_CMD_BUFFER,
END_CMD_BUFFER,
QUEUE_SIGNAL_SEMAPHORE,
QUEUE_WAIT_SEMAPHORE,
QUEUE_WAIT_IDLE,
DEVICE_WAIT_IDLE,
@@ -220,9 +217,7 @@ enum VulkanChunkType
BIND_BUFFER_MEM,
BIND_IMAGE_MEM,
BIND_SPARSE_BUF,
BIND_SPARSE_OPAQUE_IM,
BIND_SPARSE_IM,
BIND_SPARSE,
BEGIN_RENDERPASS,
NEXT_SUBPASS,
@@ -256,8 +251,7 @@ enum VulkanChunkType
CLEAR_COLOR,
CLEAR_DEPTHSTENCIL,
CLEAR_COLOR_ATTACH,
CLEAR_DEPTHSTENCIL_ATTACH,
CLEAR_ATTACH,
PIPELINE_BARRIER,
WRITE_TIMESTAMP,
+73 -91
View File
@@ -33,7 +33,7 @@
static bool operator <(const VkExtensionProperties &a, const VkExtensionProperties &b)
{
int cmp = strcmp(a.extName, b.extName);
int cmp = strcmp(a.extensionName, b.extensionName);
if(cmp == 0)
return a.specVersion < b.specVersion;
@@ -67,7 +67,6 @@ const char *VkChunkNames[] =
"vkCreateImageView",
"vkCreateDepthTargetView",
"vkCreateSampler",
"vkCreateShader",
"vkCreateShaderModule",
"vkCreatePipelineLayout",
"vkCreatePipelineCache",
@@ -94,8 +93,6 @@ const char *VkChunkNames[] =
"vkBeginCommandBuffer",
"vkEndCommandBuffer",
"vkQueueSignalSemaphore",
"vkQueueWaitSemaphore",
"vkQueueWaitIdle",
"vkDeviceWaitIdle",
@@ -103,9 +100,7 @@ const char *VkChunkNames[] =
"vkBindBufferMemory",
"vkBindImageMemory",
"vkQueueBindSparseBufferMemory",
"vkQueueBindSparseImageOpaqueMemory",
"vkQueueBindSparseImageMemory",
"vkQueueBindSparse",
"vkCmdBeginRenderPass",
"vkCmdNextSubpass",
@@ -139,8 +134,7 @@ const char *VkChunkNames[] =
"vkCmdClearColorImage",
"vkCmdClearDepthStencilImage",
"vkCmdClearColorAttachment",
"vkCmdClearDepthStencilAttachment",
"vkCmdClearAttachments",
"vkCmdPipelineBarrier",
"vkCmdWriteTimestamp",
@@ -206,17 +200,17 @@ void VkInitParams::Set(const VkInstanceCreateInfo* pCreateInfo, ResourceId inst)
{
RDCASSERT(pCreateInfo);
if(pCreateInfo->pAppInfo)
if(pCreateInfo->pApplicationInfo)
{
// we don't support any extensions on appinfo structure
RDCASSERT(pCreateInfo->pAppInfo->pNext == NULL);
RDCASSERT(pCreateInfo->pApplicationInfo->pNext == NULL);
AppName = pCreateInfo->pAppInfo->pAppName ? pCreateInfo->pAppInfo->pAppName : "";
EngineName = pCreateInfo->pAppInfo->pEngineName ? pCreateInfo->pAppInfo->pEngineName : "";
AppName = pCreateInfo->pApplicationInfo->pApplicationName ? pCreateInfo->pApplicationInfo->pApplicationName : "";
EngineName = pCreateInfo->pApplicationInfo->pEngineName ? pCreateInfo->pApplicationInfo->pEngineName : "";
AppVersion = pCreateInfo->pAppInfo->appVersion;
EngineVersion = pCreateInfo->pAppInfo->engineVersion;
APIVersion = pCreateInfo->pAppInfo->apiVersion;
AppVersion = pCreateInfo->pApplicationInfo->applicationVersion;
EngineVersion = pCreateInfo->pApplicationInfo->engineVersion;
APIVersion = pCreateInfo->pApplicationInfo->apiVersion;
}
else
{
@@ -228,13 +222,13 @@ void VkInitParams::Set(const VkInstanceCreateInfo* pCreateInfo, ResourceId inst)
APIVersion = 0;
}
Layers.resize(pCreateInfo->layerCount);
Extensions.resize(pCreateInfo->extensionCount);
Layers.resize(pCreateInfo->enabledLayerNameCount);
Extensions.resize(pCreateInfo->enabledExtensionNameCount);
for(uint32_t i=0; i < pCreateInfo->layerCount; i++)
for(uint32_t i=0; i < pCreateInfo->enabledLayerNameCount; i++)
Layers[i] = pCreateInfo->ppEnabledLayerNames[i];
for(uint32_t i=0; i < pCreateInfo->extensionCount; i++)
for(uint32_t i=0; i < pCreateInfo->enabledExtensionNameCount; i++)
Extensions[i] = pCreateInfo->ppEnabledExtensionNames[i];
InstanceID = inst;
@@ -374,8 +368,8 @@ VkCommandBuffer WrappedVulkan::GetNextCmd()
}
else
{
VkCmdBufferCreateInfo cmdInfo = { VK_STRUCTURE_TYPE_CMD_BUFFER_CREATE_INFO, NULL, Unwrap(m_InternalCmds.m_CmdPool), VK_CMD_BUFFER_LEVEL_PRIMARY, 0 };
VkResult vkr = ObjDisp(m_Device)->CreateCommandBuffer(Unwrap(m_Device), &cmdInfo, &ret);
VkCommandBufferAllocateInfo cmdInfo = { VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO, NULL, Unwrap(m_InternalCmds.m_CmdPool), VK_COMMAND_BUFFER_LEVEL_PRIMARY, 1 };
VkResult vkr = ObjDisp(m_Device)->AllocateCommandBuffers(Unwrap(m_Device), &cmdInfo, &ret);
RDCASSERT(vkr == VK_SUCCESS);
GetResourceManager()->WrapResource(Unwrap(m_Device), ret);
@@ -395,7 +389,14 @@ void WrappedVulkan::SubmitCmds()
vector<VkCommandBuffer> cmds = m_InternalCmds.pendingcmds;
for(size_t i=0; i < cmds.size(); i++) cmds[i] = Unwrap(cmds[i]);
VkResult vkr = ObjDisp(m_Queue)->QueueSubmit(Unwrap(m_Queue), (uint32_t)cmds.size(), &cmds[0], VK_NULL_HANDLE);
VkSubmitInfo submitInfo = {
VK_STRUCTURE_TYPE_SUBMIT_INFO, NULL,
0, NULL, // wait semaphores
(uint32_t)cmds.size(), &cmds[0], // command buffers
0, NULL, // signal semaphores
};
VkResult vkr = ObjDisp(m_Queue)->QueueSubmit(Unwrap(m_Queue), 1, &submitInfo, VK_NULL_HANDLE);
RDCASSERT(vkr == VK_SUCCESS);
m_InternalCmds.submittedcmds.insert(m_InternalCmds.submittedcmds.end(), m_InternalCmds.pendingcmds.begin(), m_InternalCmds.pendingcmds.end());
@@ -760,22 +761,21 @@ bool WrappedVulkan::EndFrameCapture(void *dev, void *wnd)
// create identical image
VkImageCreateInfo imInfo = {
VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO, NULL,
VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO, NULL, 0,
VK_IMAGE_TYPE_2D, swapInfo.format,
{ swapInfo.extent.width, swapInfo.extent.height, 1 }, 1, 1, 1,
VK_IMAGE_TILING_LINEAR, VK_IMAGE_USAGE_TRANSFER_DESTINATION_BIT,
0,
{ swapInfo.extent.width, swapInfo.extent.height, 1 }, 1, 1,
VK_SAMPLE_COUNT_1_BIT,
VK_IMAGE_TILING_LINEAR, VK_IMAGE_USAGE_TRANSFER_DST_BIT,
VK_SHARING_MODE_EXCLUSIVE, 0, NULL,
VK_IMAGE_LAYOUT_UNDEFINED,
};
vt->CreateImage(Unwrap(dev), &imInfo, &readbackIm);
vt->CreateImage(Unwrap(dev), &imInfo, NULL, &readbackIm);
RDCASSERT(vkr == VK_SUCCESS);
VkMemoryRequirements mrq;
vkr = vt->GetImageMemoryRequirements(Unwrap(dev), readbackIm, &mrq);
RDCASSERT(vkr == VK_SUCCESS);
vt->GetImageMemoryRequirements(Unwrap(dev), readbackIm, &mrq);
VkImageSubresource subr = { VK_IMAGE_ASPECT_COLOR, 0, 0 };
VkImageSubresource subr = { VK_IMAGE_ASPECT_COLOR_BIT, 0, 0 };
VkSubresourceLayout layout = { 0 };
vt->GetImageSubresourceLayout(Unwrap(dev), readbackIm, &subr, &layout);
@@ -785,7 +785,7 @@ bool WrappedVulkan::EndFrameCapture(void *dev, void *wnd)
mrq.size, GetReadbackMemoryIndex(mrq.memoryTypeBits),
};
vkr = vt->AllocMemory(Unwrap(dev), &allocInfo, &readbackMem);
vkr = vt->AllocateMemory(Unwrap(dev), &allocInfo, NULL, &readbackMem);
RDCASSERT(vkr == VK_SUCCESS);
vkr = vt->BindImageMemory(Unwrap(dev), readbackIm, readbackMem, 0);
RDCASSERT(vkr == VK_SUCCESS);
@@ -797,16 +797,16 @@ bool WrappedVulkan::EndFrameCapture(void *dev, void *wnd)
RDCASSERT(vkr == VK_SUCCESS);
VkImageCopy cpy = {
{ VK_IMAGE_ASPECT_COLOR, 0, 0, 1 },
{ VK_IMAGE_ASPECT_COLOR_BIT, 0, 0, 1 },
{ 0, 0, 0 },
{ VK_IMAGE_ASPECT_COLOR, 0, 0, 1 },
{ VK_IMAGE_ASPECT_COLOR_BIT, 0, 0, 1 },
{ 0, 0, 0 },
{ imInfo.extent.width, imInfo.extent.height, 1 },
};
VkImageMemoryBarrier bbBarrier = {
VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER, NULL,
0, 0, VK_IMAGE_LAYOUT_PRESENT_SOURCE_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
0, 0, VK_IMAGE_LAYOUT_PRESENT_SRC_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
VK_QUEUE_FAMILY_IGNORED, VK_QUEUE_FAMILY_IGNORED,
Unwrap(backbuffer),
{ VK_IMAGE_ASPECT_COLOR_BIT, 0, 1, 0, 1 }
@@ -942,8 +942,8 @@ bool WrappedVulkan::EndFrameCapture(void *dev, void *wnd)
vt->UnmapMemory(Unwrap(dev), readbackMem);
// delete all
vt->DestroyImage(Unwrap(dev), readbackIm);
vt->FreeMemory(Unwrap(dev), readbackMem);
vt->DestroyImage(Unwrap(dev), readbackIm, NULL);
vt->FreeMemory(Unwrap(dev), readbackMem, NULL);
}
byte *jpgbuf = NULL;
@@ -1264,14 +1264,14 @@ void WrappedVulkan::ContextReplayLog(LogState readType, uint32_t startEventID, u
// destroy any events we created for waiting on
for(size_t i=0; i < m_CleanupEvents.size(); i++)
ObjDisp(GetDev())->DestroyEvent(Unwrap(GetDev()), m_CleanupEvents[i]);
ObjDisp(GetDev())->DestroyEvent(Unwrap(GetDev()), m_CleanupEvents[i], NULL);
m_CleanupEvents.clear();
if(m_PartialReplayData.resultPartialCmdBuffer != VK_NULL_HANDLE)
{
// deliberately call our own function, so this is destroyed as a wrapped object
vkDestroyCommandBuffer(m_PartialReplayData.partialDevice, m_PartialReplayData.resultPartialCmdBuffer);
vkFreeCommandBuffers(m_PartialReplayData.partialDevice, m_PartialReplayData.resultPartialCmdPool, 1, &m_PartialReplayData.resultPartialCmdBuffer);
m_PartialReplayData.resultPartialCmdBuffer = VK_NULL_HANDLE;
}
@@ -1339,14 +1339,14 @@ void WrappedVulkan::ProcessChunk(uint64_t offset, VulkanChunkType context)
Serialise_vkEnumeratePhysicalDevices(GetMainSerialiser(), NULL, NULL, NULL);
break;
case CREATE_DEVICE:
Serialise_vkCreateDevice(GetMainSerialiser(), VK_NULL_HANDLE, NULL, NULL);
Serialise_vkCreateDevice(GetMainSerialiser(), VK_NULL_HANDLE, NULL, NULL, NULL);
break;
case GET_DEVICE_QUEUE:
Serialise_vkGetDeviceQueue(GetMainSerialiser(), VK_NULL_HANDLE, 0, 0, NULL);
break;
case ALLOC_MEM:
Serialise_vkAllocMemory(GetMainSerialiser(), VK_NULL_HANDLE, NULL, NULL);
Serialise_vkAllocateMemory(GetMainSerialiser(), VK_NULL_HANDLE, NULL, NULL, NULL);
break;
case UNMAP_MEM:
Serialise_vkUnmapMemory(GetMainSerialiser(), VK_NULL_HANDLE, VK_NULL_HANDLE);
@@ -1358,65 +1358,62 @@ void WrappedVulkan::ProcessChunk(uint64_t offset, VulkanChunkType context)
RDCERR("vkFreeMemory should not be serialised directly");
break;
case CREATE_CMD_POOL:
Serialise_vkCreateCommandPool(GetMainSerialiser(), VK_NULL_HANDLE, NULL, NULL);
Serialise_vkCreateCommandPool(GetMainSerialiser(), VK_NULL_HANDLE, NULL, NULL, NULL);
break;
case CREATE_CMD_BUFFER:
RDCERR("vkCreateCommandBuffer should not be serialised directly");
break;
case CREATE_FRAMEBUFFER:
Serialise_vkCreateFramebuffer(GetMainSerialiser(), VK_NULL_HANDLE, NULL, NULL);
Serialise_vkCreateFramebuffer(GetMainSerialiser(), VK_NULL_HANDLE, NULL, NULL, NULL);
break;
case CREATE_RENDERPASS:
Serialise_vkCreateRenderPass(GetMainSerialiser(), VK_NULL_HANDLE, NULL, NULL);
Serialise_vkCreateRenderPass(GetMainSerialiser(), VK_NULL_HANDLE, NULL, NULL, NULL);
break;
case CREATE_DESCRIPTOR_POOL:
Serialise_vkCreateDescriptorPool(GetMainSerialiser(), VK_NULL_HANDLE, NULL, NULL);
Serialise_vkCreateDescriptorPool(GetMainSerialiser(), VK_NULL_HANDLE, NULL, NULL, NULL);
break;
case CREATE_DESCRIPTOR_SET_LAYOUT:
Serialise_vkCreateDescriptorSetLayout(GetMainSerialiser(), VK_NULL_HANDLE, NULL, NULL);
Serialise_vkCreateDescriptorSetLayout(GetMainSerialiser(), VK_NULL_HANDLE, NULL, NULL, NULL);
break;
case CREATE_BUFFER:
Serialise_vkCreateBuffer(GetMainSerialiser(), VK_NULL_HANDLE, NULL, NULL);
Serialise_vkCreateBuffer(GetMainSerialiser(), VK_NULL_HANDLE, NULL, NULL, NULL);
break;
case CREATE_BUFFER_VIEW:
Serialise_vkCreateBufferView(GetMainSerialiser(), VK_NULL_HANDLE, NULL, NULL);
Serialise_vkCreateBufferView(GetMainSerialiser(), VK_NULL_HANDLE, NULL, NULL, NULL);
break;
case CREATE_IMAGE:
Serialise_vkCreateImage(GetMainSerialiser(), VK_NULL_HANDLE, NULL, NULL);
Serialise_vkCreateImage(GetMainSerialiser(), VK_NULL_HANDLE, NULL, NULL, NULL);
break;
case CREATE_IMAGE_VIEW:
Serialise_vkCreateImageView(GetMainSerialiser(), VK_NULL_HANDLE, NULL, NULL);
Serialise_vkCreateImageView(GetMainSerialiser(), VK_NULL_HANDLE, NULL, NULL, NULL);
break;
case CREATE_SAMPLER:
Serialise_vkCreateSampler(GetMainSerialiser(), VK_NULL_HANDLE, NULL, NULL);
break;
case CREATE_SHADER:
Serialise_vkCreateShader(GetMainSerialiser(), VK_NULL_HANDLE, NULL, NULL);
Serialise_vkCreateSampler(GetMainSerialiser(), VK_NULL_HANDLE, NULL, NULL, NULL);
break;
case CREATE_SHADER_MODULE:
Serialise_vkCreateShaderModule(GetMainSerialiser(), VK_NULL_HANDLE, NULL, NULL);
Serialise_vkCreateShaderModule(GetMainSerialiser(), VK_NULL_HANDLE, NULL, NULL, NULL);
break;
case CREATE_PIPE_LAYOUT:
Serialise_vkCreatePipelineLayout(GetMainSerialiser(), VK_NULL_HANDLE, NULL, NULL);
Serialise_vkCreatePipelineLayout(GetMainSerialiser(), VK_NULL_HANDLE, NULL, NULL, NULL);
break;
case CREATE_PIPE_CACHE:
Serialise_vkCreatePipelineCache(GetMainSerialiser(), VK_NULL_HANDLE, NULL, NULL);
Serialise_vkCreatePipelineCache(GetMainSerialiser(), VK_NULL_HANDLE, NULL, NULL, NULL);
break;
case CREATE_GRAPHICS_PIPE:
Serialise_vkCreateGraphicsPipelines(GetMainSerialiser(), VK_NULL_HANDLE, VK_NULL_HANDLE, 0, NULL, NULL);
Serialise_vkCreateGraphicsPipelines(GetMainSerialiser(), VK_NULL_HANDLE, VK_NULL_HANDLE, 0, NULL, NULL, NULL);
break;
case CREATE_COMPUTE_PIPE:
Serialise_vkCreateComputePipelines(GetMainSerialiser(), VK_NULL_HANDLE, VK_NULL_HANDLE, 0, NULL, NULL);
Serialise_vkCreateComputePipelines(GetMainSerialiser(), VK_NULL_HANDLE, VK_NULL_HANDLE, 0, NULL, NULL, NULL);
break;
case GET_SWAPCHAIN_IMAGE:
Serialise_vkGetSwapchainImagesKHR(GetMainSerialiser(), VK_NULL_HANDLE, VK_NULL_HANDLE, NULL, NULL);
break;
case CREATE_SEMAPHORE:
Serialise_vkCreateSemaphore(GetMainSerialiser(), VK_NULL_HANDLE, NULL, NULL);
Serialise_vkCreateSemaphore(GetMainSerialiser(), VK_NULL_HANDLE, NULL, NULL, NULL);
break;
case CREATE_FENCE:
Serialise_vkCreateFence(GetMainSerialiser(), VK_NULL_HANDLE, NULL, NULL);
Serialise_vkCreateFence(GetMainSerialiser(), VK_NULL_HANDLE, NULL, NULL, NULL);
break;
case GET_FENCE_STATUS:
Serialise_vkGetFenceStatus(GetMainSerialiser(), VK_NULL_HANDLE, VK_NULL_HANDLE);
@@ -1429,7 +1426,7 @@ void WrappedVulkan::ProcessChunk(uint64_t offset, VulkanChunkType context)
break;
case CREATE_EVENT:
Serialise_vkCreateEvent(GetMainSerialiser(), VK_NULL_HANDLE, NULL, NULL);
Serialise_vkCreateEvent(GetMainSerialiser(), VK_NULL_HANDLE, NULL, NULL, NULL);
break;
case GET_EVENT_STATUS:
Serialise_vkGetEventStatus(GetMainSerialiser(), VK_NULL_HANDLE, VK_NULL_HANDLE);
@@ -1442,11 +1439,11 @@ void WrappedVulkan::ProcessChunk(uint64_t offset, VulkanChunkType context)
break;
case CREATE_QUERY_POOL:
Serialise_vkCreateQueryPool(GetMainSerialiser(), VK_NULL_HANDLE, NULL, NULL);
Serialise_vkCreateQueryPool(GetMainSerialiser(), VK_NULL_HANDLE, NULL, NULL, NULL);
break;
case ALLOC_DESC_SET:
Serialise_vkAllocDescriptorSets(GetMainSerialiser(), VK_NULL_HANDLE, VK_NULL_HANDLE, VK_DESCRIPTOR_SET_USAGE_MAX_ENUM, 0, NULL, NULL);
Serialise_vkAllocateDescriptorSets(GetMainSerialiser(), VK_NULL_HANDLE, NULL, NULL);
break;
case UPDATE_DESC_SET:
Serialise_vkUpdateDescriptorSets(GetMainSerialiser(), VK_NULL_HANDLE, 0, NULL, 0, NULL);
@@ -1459,12 +1456,6 @@ void WrappedVulkan::ProcessChunk(uint64_t offset, VulkanChunkType context)
Serialise_vkEndCommandBuffer(GetMainSerialiser(), VK_NULL_HANDLE);
break;
case QUEUE_SIGNAL_SEMAPHORE:
Serialise_vkQueueSignalSemaphore(GetMainSerialiser(), VK_NULL_HANDLE, VK_NULL_HANDLE);
break;
case QUEUE_WAIT_SEMAPHORE:
Serialise_vkQueueWaitSemaphore(GetMainSerialiser(), VK_NULL_HANDLE, VK_NULL_HANDLE);
break;
case QUEUE_WAIT_IDLE:
Serialise_vkQueueWaitIdle(GetMainSerialiser(), VK_NULL_HANDLE);
break;
@@ -1482,21 +1473,15 @@ void WrappedVulkan::ProcessChunk(uint64_t offset, VulkanChunkType context)
Serialise_vkBindImageMemory(GetMainSerialiser(), VK_NULL_HANDLE, VK_NULL_HANDLE, VK_NULL_HANDLE, 0);
break;
case BIND_SPARSE_BUF:
Serialise_vkQueueBindSparseBufferMemory(GetMainSerialiser(), VK_NULL_HANDLE, VK_NULL_HANDLE, 0, NULL);
break;
case BIND_SPARSE_OPAQUE_IM:
Serialise_vkQueueBindSparseImageOpaqueMemory(GetMainSerialiser(), VK_NULL_HANDLE, VK_NULL_HANDLE, 0, NULL);
break;
case BIND_SPARSE_IM:
Serialise_vkQueueBindSparseImageMemory(GetMainSerialiser(), VK_NULL_HANDLE, VK_NULL_HANDLE, 0, NULL);
case BIND_SPARSE:
Serialise_vkQueueBindSparse(GetMainSerialiser(), VK_NULL_HANDLE, 0, NULL, VK_NULL_HANDLE);
break;
case BEGIN_RENDERPASS:
Serialise_vkCmdBeginRenderPass(GetMainSerialiser(), VK_NULL_HANDLE, NULL, VK_RENDER_PASS_CONTENTS_MAX_ENUM);
Serialise_vkCmdBeginRenderPass(GetMainSerialiser(), VK_NULL_HANDLE, NULL, VK_SUBPASS_CONTENTS_MAX_ENUM);
break;
case NEXT_SUBPASS:
Serialise_vkCmdNextSubpass(GetMainSerialiser(), VK_NULL_HANDLE, VK_RENDER_PASS_CONTENTS_MAX_ENUM);
Serialise_vkCmdNextSubpass(GetMainSerialiser(), VK_NULL_HANDLE, VK_SUBPASS_CONTENTS_MAX_ENUM);
break;
case EXEC_CMDS:
Serialise_vkCmdExecuteCommands(GetMainSerialiser(), VK_NULL_HANDLE, 0, NULL);
@@ -1554,7 +1539,7 @@ void WrappedVulkan::ProcessChunk(uint64_t offset, VulkanChunkType context)
Serialise_vkCmdCopyImage(GetMainSerialiser(), VK_NULL_HANDLE, VK_NULL_HANDLE, VK_IMAGE_LAYOUT_MAX_ENUM, VK_NULL_HANDLE, VK_IMAGE_LAYOUT_MAX_ENUM, 0, NULL);
break;
case BLIT_IMG:
Serialise_vkCmdBlitImage(GetMainSerialiser(), VK_NULL_HANDLE, VK_NULL_HANDLE, VK_IMAGE_LAYOUT_MAX_ENUM, VK_NULL_HANDLE, VK_IMAGE_LAYOUT_MAX_ENUM, 0, NULL, VK_TEX_FILTER_MAX_ENUM);
Serialise_vkCmdBlitImage(GetMainSerialiser(), VK_NULL_HANDLE, VK_NULL_HANDLE, VK_IMAGE_LAYOUT_MAX_ENUM, VK_NULL_HANDLE, VK_IMAGE_LAYOUT_MAX_ENUM, 0, NULL, VK_FILTER_MAX_ENUM);
break;
case RESOLVE_IMG:
Serialise_vkCmdResolveImage(GetMainSerialiser(), VK_NULL_HANDLE, VK_NULL_HANDLE, VK_IMAGE_LAYOUT_MAX_ENUM, VK_NULL_HANDLE, VK_IMAGE_LAYOUT_MAX_ENUM, 0, NULL);
@@ -1577,17 +1562,14 @@ void WrappedVulkan::ProcessChunk(uint64_t offset, VulkanChunkType context)
case CLEAR_DEPTHSTENCIL:
Serialise_vkCmdClearDepthStencilImage(GetMainSerialiser(), VK_NULL_HANDLE, VK_NULL_HANDLE, VK_IMAGE_LAYOUT_MAX_ENUM, NULL, 0, NULL);
break;
case CLEAR_COLOR_ATTACH:
Serialise_vkCmdClearColorAttachment(GetMainSerialiser(), VK_NULL_HANDLE, 0, VK_IMAGE_LAYOUT_MAX_ENUM, NULL, 0, NULL);
break;
case CLEAR_DEPTHSTENCIL_ATTACH:
Serialise_vkCmdClearDepthStencilAttachment(GetMainSerialiser(), VK_NULL_HANDLE, 0, VK_IMAGE_LAYOUT_MAX_ENUM, NULL, 0, NULL);
case CLEAR_ATTACH:
Serialise_vkCmdClearAttachments(GetMainSerialiser(), VK_NULL_HANDLE, 0, NULL, 0, NULL);
break;
case PIPELINE_BARRIER:
Serialise_vkCmdPipelineBarrier(GetMainSerialiser(), VK_NULL_HANDLE, 0, 0, VK_FALSE, 0, NULL);
break;
case WRITE_TIMESTAMP:
Serialise_vkCmdWriteTimestamp(GetMainSerialiser(), VK_NULL_HANDLE, VK_TIMESTAMP_TYPE_MAX_ENUM, VK_NULL_HANDLE, 0);
Serialise_vkCmdWriteTimestamp(GetMainSerialiser(), VK_NULL_HANDLE, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, VK_NULL_HANDLE, 0);
break;
case COPY_QUERY_RESULTS:
Serialise_vkCmdCopyQueryPoolResults(GetMainSerialiser(), VK_NULL_HANDLE, VK_NULL_HANDLE, 0, 0, VK_NULL_HANDLE, 0, 0, VK_QUERY_RESULT_DEFAULT);
@@ -1603,13 +1585,13 @@ void WrappedVulkan::ProcessChunk(uint64_t offset, VulkanChunkType context)
break;
case CMD_SET_EVENT:
Serialise_vkCmdSetEvent(GetMainSerialiser(), VK_NULL_HANDLE, VK_NULL_HANDLE, VK_PIPELINE_STAGE_ALL_GPU_COMMANDS);
Serialise_vkCmdSetEvent(GetMainSerialiser(), VK_NULL_HANDLE, VK_NULL_HANDLE, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT);
break;
case CMD_RESET_EVENT:
Serialise_vkCmdResetEvent(GetMainSerialiser(), VK_NULL_HANDLE, VK_NULL_HANDLE, VK_PIPELINE_STAGE_ALL_GPU_COMMANDS);
Serialise_vkCmdResetEvent(GetMainSerialiser(), VK_NULL_HANDLE, VK_NULL_HANDLE, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT);
break;
case CMD_WAIT_EVENTS:
Serialise_vkCmdWaitEvents(GetMainSerialiser(), VK_NULL_HANDLE, 0, NULL, VK_PIPELINE_STAGE_ALL_GPU_COMMANDS, VK_PIPELINE_STAGE_ALL_GPU_COMMANDS, 0, NULL);
Serialise_vkCmdWaitEvents(GetMainSerialiser(), VK_NULL_HANDLE, 0, NULL, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, 0, NULL);
break;
case DRAW:
@@ -1642,7 +1624,7 @@ void WrappedVulkan::ProcessChunk(uint64_t offset, VulkanChunkType context)
break;
case CREATE_SWAP_BUFFER:
Serialise_vkCreateSwapchainKHR(GetMainSerialiser(), VK_NULL_HANDLE, NULL, NULL);
Serialise_vkCreateSwapchainKHR(GetMainSerialiser(), VK_NULL_HANDLE, NULL, NULL, NULL);
break;
case CAPTURE_SCOPE:
+1
View File
@@ -264,6 +264,7 @@ private:
// the command buffer chunks, the partial command buffer will be
// created as a temporary new command buffer and when it comes to
// the queue that should submit it, it can submit this instead.
VkCommandPool resultPartialCmdPool;
VkCommandBuffer resultPartialCmdBuffer;
VkDevice partialDevice; // device for above cmd buffer
+31 -23
View File
@@ -185,11 +185,11 @@ void VulkanDebugManager::GPUBuffer::Create(WrappedVulkan *driver, VkDevice dev,
RDCASSERT(vkr == VK_SUCCESS);
}
void VulkanDebugManager::GPUBuffer::FillDescriptor(VkDescriptorInfo &desc)
void VulkanDebugManager::GPUBuffer::FillDescriptor(VkDescriptorBufferInfo &desc)
{
desc.bufferInfo.buffer = Unwrap(buf);
desc.bufferInfo.offset = 0;
desc.bufferInfo.range = sz;
desc.buffer = Unwrap(buf);
desc.offset = 0;
desc.range = sz;
}
void VulkanDebugManager::GPUBuffer::Destroy(const VkLayerDispatchTable *vt, VkDevice dev)
@@ -1243,50 +1243,58 @@ VulkanDebugManager::VulkanDebugManager(WrappedVulkan *driver, VkDevice dev)
// don't need to ring this, as we hard-sync for readback anyway
m_HistogramUBO.Create(driver, dev, sizeof(histogramuniforms), 1, 0);
VkDescriptorInfo desc[8];
RDCEraseEl(desc);
VkDescriptorBufferInfo bufInfo[6];
RDCEraseEl(bufInfo);
// tex display is updated right before rendering
m_CheckerboardUBO.FillDescriptor(desc[0]);
m_TextGeneralUBO.FillDescriptor(desc[1]);
m_TextGlyphUBO.FillDescriptor(desc[2]);
m_TextStringUBO.FillDescriptor(desc[3]);
desc[4].imageLayout = VK_IMAGE_LAYOUT_GENERAL;
desc[4].imageView = Unwrap(m_TextAtlasView);
desc[4].sampler = Unwrap(m_LinearSampler);
m_CheckerboardUBO.FillDescriptor(bufInfo[0]);
m_TextGeneralUBO.FillDescriptor(bufInfo[1]);
m_TextGlyphUBO.FillDescriptor(bufInfo[2]);
m_TextStringUBO.FillDescriptor(bufInfo[3]);
m_MeshUBO.FillDescriptor(bufInfo[4]);
m_OutlineUBO.FillDescriptor(bufInfo[5]);
VkDescriptorImageInfo atlasImInfo;
atlasImInfo.imageLayout = VK_IMAGE_LAYOUT_GENERAL;
atlasImInfo.imageView = Unwrap(m_TextAtlasView);
atlasImInfo.sampler = Unwrap(m_LinearSampler);
m_MeshUBO.FillDescriptor(desc[6]);
m_OutlineUBO.FillDescriptor(desc[7]);
VkWriteDescriptorSet writeSet[] = {
{
VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET, NULL,
Unwrap(m_CheckerboardDescSet), 0, 0, 1, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, &desc[0]
Unwrap(m_CheckerboardDescSet), 0, 0, 1, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC,
NULL, &bufInfo[0], NULL
},
{
VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET, NULL,
Unwrap(m_TextDescSet), 0, 0, 1, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, &desc[1]
Unwrap(m_TextDescSet), 0, 0, 1, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC,
NULL, &bufInfo[1], NULL
},
{
VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET, NULL,
Unwrap(m_TextDescSet), 1, 0, 1, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, &desc[2]
Unwrap(m_TextDescSet), 1, 0, 1, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
NULL, &bufInfo[2], NULL
},
{
VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET, NULL,
Unwrap(m_TextDescSet), 2, 0, 1, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, &desc[3]
Unwrap(m_TextDescSet), 2, 0, 1, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC,
NULL, &bufInfo[3], NULL
},
{
VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET, NULL,
Unwrap(m_TextDescSet), 3, 0, 1, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, &desc[4]
Unwrap(m_TextDescSet), 3, 0, 1, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
&atlasImInfo, NULL, NULL
},
{
VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET, NULL,
Unwrap(m_MeshDescSet), 0, 0, 1, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, &desc[6]
Unwrap(m_MeshDescSet), 0, 0, 1, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC,
NULL, &bufInfo[4], NULL
},
{
VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET, NULL,
Unwrap(m_OutlineDescSet), 0, 0, 1, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, &desc[7]
Unwrap(m_OutlineDescSet), 0, 0, 1, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC,
NULL, &bufInfo[5], NULL
},
};
+2 -3
View File
@@ -127,7 +127,7 @@ class VulkanDebugManager
void Create(WrappedVulkan *driver, VkDevice dev, VkDeviceSize size, uint32_t ringSize, uint32_t flags);
void Destroy(const VkLayerDispatchTable *vt, VkDevice dev);
void FillDescriptor(VkDescriptorInfo &desc);
void FillDescriptor(VkDescriptorBufferInfo &desc);
void *Map(const VkLayerDispatchTable *vt, VkDevice dev, VkDeviceSize &bindoffset, VkDeviceSize usedsize = 0);
void *Map(const VkLayerDispatchTable *vt, VkDevice dev, uint32_t *bindoffset = NULL, VkDeviceSize usedsize = 0);
@@ -202,7 +202,6 @@ class VulkanDebugManager
VkPipelineLayout m_MeshPipeLayout;
VkDescriptorSet m_MeshDescSet;
GPUBuffer m_MeshUBO, m_MeshBBoxVB, m_MeshAxisFrustumVB;
VkShader m_MeshShaders[3];
VkShaderModule m_MeshModules[3];
GPUBuffer m_MinMaxTileResult; // tile result buffer
@@ -236,7 +235,7 @@ class VulkanDebugManager
VulkanResourceManager *GetResourceManager() { return m_ResourceManager; }
void PatchFixedColShader(VkShaderModule &mod, VkShader &shad, float col[4]);
void PatchFixedColShader(VkShaderModule &mod, float col[4]);
void RenderTextInternal(const TextPrintState &textstate, float x, float y, const char *text);
void MakeGraphicsPipelineInfo(VkGraphicsPipelineCreateInfo &pipeCreateInfo, ResourceId pipeline);