Tony-LunarG | fb2ab87 | 2021-01-13 15:17:15 -0700 | [diff] [blame] | 1 | /* Copyright (c) 2020-2021 The Khronos Group Inc. |
| 2 | * Copyright (c) 2020-2021 Valve Corporation |
| 3 | * Copyright (c) 2020-2021 LunarG, Inc. |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 4 | * |
| 5 | * Licensed under the Apache License, Version 2.0 (the "License"); |
| 6 | * you may not use this file except in compliance with the License. |
| 7 | * You may obtain a copy of the License at |
| 8 | * |
| 9 | * http://www.apache.org/licenses/LICENSE-2.0 |
| 10 | * |
| 11 | * Unless required by applicable law or agreed to in writing, software |
| 12 | * distributed under the License is distributed on an "AS IS" BASIS, |
| 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 14 | * See the License for the specific language governing permissions and |
| 15 | * limitations under the License. |
| 16 | * |
| 17 | * Author: Tony Barbour <tony@lunarg.com> |
| 18 | */ |
| 19 | |
| 20 | #pragma once |
| 21 | |
| 22 | #include "chassis.h" |
| 23 | #include "vk_mem_alloc.h" |
| 24 | #include "state_tracker.h" |
Tony-LunarG | b5fae46 | 2020-03-05 12:43:25 -0700 | [diff] [blame] | 25 | #include "gpu_utils.h" |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 26 | #include <map> |
Tony-LunarG | b5fae46 | 2020-03-05 12:43:25 -0700 | [diff] [blame] | 27 | class DebugPrintf; |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 28 | |
Tony-LunarG | b5fae46 | 2020-03-05 12:43:25 -0700 | [diff] [blame] | 29 | struct DPFDeviceMemoryBlock { |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 30 | VkBuffer buffer; |
| 31 | VmaAllocation allocation; |
| 32 | }; |
| 33 | |
Tony-LunarG | b5fae46 | 2020-03-05 12:43:25 -0700 | [diff] [blame] | 34 | struct DPFBufferInfo { |
| 35 | DPFDeviceMemoryBlock output_mem_block; |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 36 | VkDescriptorSet desc_set; |
| 37 | VkDescriptorPool desc_pool; |
| 38 | VkPipelineBindPoint pipeline_bind_point; |
Tony-LunarG | b5fae46 | 2020-03-05 12:43:25 -0700 | [diff] [blame] | 39 | DPFBufferInfo(DPFDeviceMemoryBlock output_mem_block, VkDescriptorSet desc_set, VkDescriptorPool desc_pool, |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 40 | VkPipelineBindPoint pipeline_bind_point) |
| 41 | : output_mem_block(output_mem_block), desc_set(desc_set), desc_pool(desc_pool), pipeline_bind_point(pipeline_bind_point){}; |
| 42 | }; |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 43 | |
Tony-LunarG | b5fae46 | 2020-03-05 12:43:25 -0700 | [diff] [blame] | 44 | struct DPFShaderTracker { |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 45 | VkPipeline pipeline; |
| 46 | VkShaderModule shader_module; |
| 47 | std::vector<unsigned int> pgm; |
| 48 | }; |
| 49 | |
| 50 | enum vartype { varsigned, varunsigned, varfloat }; |
Tony-LunarG | b5fae46 | 2020-03-05 12:43:25 -0700 | [diff] [blame] | 51 | struct DPFSubstring { |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 52 | std::string string; |
| 53 | bool needs_value; |
| 54 | vartype type; |
| 55 | uint64_t longval = 0; |
| 56 | }; |
| 57 | |
Tony-LunarG | b5fae46 | 2020-03-05 12:43:25 -0700 | [diff] [blame] | 58 | struct DPFOutputRecord { |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 59 | uint32_t size; |
| 60 | uint32_t shader_id; |
| 61 | uint32_t instruction_position; |
| 62 | uint32_t stage; |
| 63 | uint32_t stage_word_1; |
| 64 | uint32_t stage_word_2; |
| 65 | uint32_t stage_word_3; |
| 66 | uint32_t format_string_id; |
| 67 | uint32_t values; |
| 68 | }; |
| 69 | |
Tony-LunarG | b5fae46 | 2020-03-05 12:43:25 -0700 | [diff] [blame] | 70 | class DebugPrintf : public ValidationStateTracker { |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 71 | VkPhysicalDeviceFeatures supported_features; |
Tony-LunarG | 1dce239 | 2019-10-23 16:49:29 -0600 | [diff] [blame] | 72 | |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 73 | uint32_t unique_shader_module_id = 0; |
Tony-LunarG | b5fae46 | 2020-03-05 12:43:25 -0700 | [diff] [blame] | 74 | std::unordered_map<VkCommandBuffer, std::vector<DPFBufferInfo>> command_buffer_map; |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 75 | uint32_t output_buffer_size; |
Tony-LunarG | 1dce239 | 2019-10-23 16:49:29 -0600 | [diff] [blame] | 76 | |
| 77 | public: |
Mark Lobodzinski | 0dcb87d | 2020-03-30 16:09:24 -0600 | [diff] [blame] | 78 | DebugPrintf() { container_type = LayerObjectTypeDebugPrintf; } |
| 79 | |
Tony-LunarG | 1dce239 | 2019-10-23 16:49:29 -0600 | [diff] [blame] | 80 | bool aborted = false; |
Tony-LunarG | 43416b4 | 2019-10-31 16:47:24 -0600 | [diff] [blame] | 81 | bool verbose = false; |
| 82 | bool use_stdout = false; |
Tony-LunarG | 1dce239 | 2019-10-23 16:49:29 -0600 | [diff] [blame] | 83 | VkDevice device; |
| 84 | VkPhysicalDevice physicalDevice; |
| 85 | uint32_t adjusted_max_desc_sets; |
| 86 | uint32_t desc_set_bind_index; |
Tony-LunarG | 57ada96 | 2020-05-01 16:21:00 -0600 | [diff] [blame] | 87 | VkDescriptorSetLayout debug_desc_layout = VK_NULL_HANDLE; |
| 88 | VkDescriptorSetLayout dummy_desc_layout = VK_NULL_HANDLE; |
Tony-LunarG | b5fae46 | 2020-03-05 12:43:25 -0700 | [diff] [blame] | 89 | std::unique_ptr<UtilDescriptorSetManager> desc_set_manager; |
| 90 | std::unordered_map<uint32_t, DPFShaderTracker> shader_map; |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 91 | PFN_vkSetDeviceLoaderData vkSetDeviceLoaderData; |
Tony-LunarG | 1dce239 | 2019-10-23 16:49:29 -0600 | [diff] [blame] | 92 | VmaAllocator vmaAllocator = {}; |
Tony-LunarG | b5fae46 | 2020-03-05 12:43:25 -0700 | [diff] [blame] | 93 | std::map<VkQueue, UtilQueueBarrierCommandInfo> queue_barrier_command_infos; |
| 94 | std::vector<DPFBufferInfo>& GetBufferInfo(const VkCommandBuffer command_buffer) { |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 95 | auto buffer_list = command_buffer_map.find(command_buffer); |
| 96 | if (buffer_list == command_buffer_map.end()) { |
Tony-LunarG | b5fae46 | 2020-03-05 12:43:25 -0700 | [diff] [blame] | 97 | std::vector<DPFBufferInfo> new_list{}; |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 98 | command_buffer_map[command_buffer] = new_list; |
| 99 | return command_buffer_map[command_buffer]; |
| 100 | } |
| 101 | return buffer_list->second; |
| 102 | } |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 103 | |
Tony-LunarG | 1dce239 | 2019-10-23 16:49:29 -0600 | [diff] [blame] | 104 | template <typename T> |
| 105 | void ReportSetupProblem(T object, const char* const specific_message) const; |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 106 | void PreCallRecordCreateDevice(VkPhysicalDevice gpu, const VkDeviceCreateInfo* pCreateInfo, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 107 | const VkAllocationCallbacks* pAllocator, VkDevice* pDevice, void* modified_create_info) override; |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 108 | void PostCallRecordCreateDevice(VkPhysicalDevice gpu, const VkDeviceCreateInfo* pCreateInfo, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 109 | const VkAllocationCallbacks* pAllocator, VkDevice* pDevice, VkResult result) override; |
| 110 | void PreCallRecordDestroyDevice(VkDevice device, const VkAllocationCallbacks* pAllocator) override; |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 111 | void PreCallRecordCreatePipelineLayout(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, |
| 112 | const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 113 | void* cpl_state_data) override; |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 114 | void PostCallRecordCreatePipelineLayout(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, |
| 115 | const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 116 | VkResult result) override; |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 117 | void ResetCommandBuffer(VkCommandBuffer commandBuffer); |
| 118 | bool PreCallValidateCmdWaitEvents(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, |
| 119 | VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, |
| 120 | uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, |
| 121 | uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 122 | uint32_t imageMemoryBarrierCount, |
| 123 | const VkImageMemoryBarrier* pImageMemoryBarriers) const override; |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 124 | void PreCallRecordCreateGraphicsPipelines(VkDevice device, VkPipelineCache pipelineCache, uint32_t count, |
| 125 | const VkGraphicsPipelineCreateInfo* pCreateInfos, |
| 126 | const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 127 | void* cgpl_state_data) override; |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 128 | void PreCallRecordCreateComputePipelines(VkDevice device, VkPipelineCache pipelineCache, uint32_t count, |
| 129 | const VkComputePipelineCreateInfo* pCreateInfos, |
| 130 | const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 131 | void* ccpl_state_data) override; |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 132 | void PreCallRecordCreateRayTracingPipelinesNV(VkDevice device, VkPipelineCache pipelineCache, uint32_t count, |
| 133 | const VkRayTracingPipelineCreateInfoNV* pCreateInfos, |
| 134 | const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 135 | void* crtpl_state_data) override; |
sourav parmar | cd5fb18 | 2020-07-17 12:58:44 -0700 | [diff] [blame] | 136 | void PreCallRecordCreateRayTracingPipelinesKHR(VkDevice device, VkDeferredOperationKHR deferredOperation, |
| 137 | VkPipelineCache pipelineCache, uint32_t count, |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 138 | const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, |
| 139 | const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 140 | void* crtpl_state_data) override; |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 141 | void PostCallRecordCreateGraphicsPipelines(VkDevice device, VkPipelineCache pipelineCache, uint32_t count, |
| 142 | const VkGraphicsPipelineCreateInfo* pCreateInfos, |
| 143 | const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines, VkResult result, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 144 | void* cgpl_state_data) override; |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 145 | void PostCallRecordCreateComputePipelines(VkDevice device, VkPipelineCache pipelineCache, uint32_t count, |
| 146 | const VkComputePipelineCreateInfo* pCreateInfos, |
| 147 | const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines, VkResult result, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 148 | void* ccpl_state_data) override; |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 149 | void PostCallRecordCreateRayTracingPipelinesNV(VkDevice device, VkPipelineCache pipelineCache, uint32_t count, |
| 150 | const VkRayTracingPipelineCreateInfoNV* pCreateInfos, |
| 151 | const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines, VkResult result, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 152 | void* crtpl_state_data) override; |
Tony-LunarG | fb2ab87 | 2021-01-13 15:17:15 -0700 | [diff] [blame] | 153 | void PostCallRecordCreateRayTracingPipelinesKHR(VkDevice device, VkDeferredOperationKHR deferredOperation, |
| 154 | VkPipelineCache pipelineCache, uint32_t count, |
| 155 | const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, |
| 156 | const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines, |
| 157 | VkResult result, void* crtpl_state_data) override; |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 158 | void PreCallRecordDestroyPipeline(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator) override; |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 159 | bool InstrumentShader(const VkShaderModuleCreateInfo* pCreateInfo, std::vector<unsigned int>& new_pgm, |
| 160 | uint32_t* unique_shader_id); |
| 161 | void PreCallRecordCreateShaderModule(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, |
| 162 | const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 163 | void* csm_state_data) override; |
Tony-LunarG | b5fae46 | 2020-03-05 12:43:25 -0700 | [diff] [blame] | 164 | std::vector<DPFSubstring> ParseFormatString(std::string format_string); |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 165 | std::string FindFormatString(std::vector<unsigned int> pgm, uint32_t string_id); |
Tony-LunarG | 7de10e8 | 2020-11-24 11:31:55 -0700 | [diff] [blame^] | 166 | void AnalyzeAndGenerateMessages(VkCommandBuffer command_buffer, VkQueue queue, DPFBufferInfo &buffer_info, |
Tony-LunarG | 1dce239 | 2019-10-23 16:49:29 -0600 | [diff] [blame] | 167 | uint32_t operation_index, uint32_t* const debug_output_buffer); |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 168 | void PreCallRecordCmdDraw(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 169 | uint32_t firstInstance) override; |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 170 | void PreCallRecordCmdDrawIndexed(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 171 | uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance) override; |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 172 | void PreCallRecordCmdDrawIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t count, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 173 | uint32_t stride) override; |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 174 | void PreCallRecordCmdDrawIndexedIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t count, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 175 | uint32_t stride) override; |
Tony-LunarG | 2fb8ff0 | 2020-06-11 12:45:07 -0600 | [diff] [blame] | 176 | void PreCallRecordCmdDrawIndirectCountKHR(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, |
| 177 | VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 178 | uint32_t stride) override; |
Tony-LunarG | 2fb8ff0 | 2020-06-11 12:45:07 -0600 | [diff] [blame] | 179 | void PreCallRecordCmdDrawIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, |
| 180 | VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 181 | uint32_t stride) override; |
Tony-LunarG | 2fb8ff0 | 2020-06-11 12:45:07 -0600 | [diff] [blame] | 182 | void PreCallRecordCmdDrawIndexedIndirectCountKHR(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, |
| 183 | VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 184 | uint32_t stride) override; |
Tony-LunarG | 2fb8ff0 | 2020-06-11 12:45:07 -0600 | [diff] [blame] | 185 | void PreCallRecordCmdDrawIndexedIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, |
| 186 | VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 187 | uint32_t stride) override; |
Tony-LunarG | 54176fb | 2020-12-02 10:47:22 -0700 | [diff] [blame] | 188 | void PreCallRecordCmdDrawIndirectByteCountEXT(VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, |
| 189 | VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 190 | uint32_t vertexStride) override; |
| 191 | void PreCallRecordCmdDrawMeshTasksNV(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask) override; |
Tony-LunarG | 2fb8ff0 | 2020-06-11 12:45:07 -0600 | [diff] [blame] | 192 | void PreCallRecordCmdDrawMeshTasksIndirectNV(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 193 | uint32_t drawCount, uint32_t stride) override; |
Tony-LunarG | 2fb8ff0 | 2020-06-11 12:45:07 -0600 | [diff] [blame] | 194 | void PreCallRecordCmdDrawMeshTasksIndirectCountNV(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, |
| 195 | VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 196 | uint32_t stride) override; |
| 197 | void PreCallRecordCmdDispatch(VkCommandBuffer commandBuffer, uint32_t x, uint32_t y, uint32_t z) override; |
| 198 | void PreCallRecordCmdDispatchIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset) override; |
Tony-LunarG | d13f9b5 | 2020-09-08 15:45:45 -0600 | [diff] [blame] | 199 | void PreCallRecordCmdDispatchBase(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 200 | uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) override; |
Tony-LunarG | 52c8c60 | 2020-09-10 16:29:56 -0600 | [diff] [blame] | 201 | void PreCallRecordCmdDispatchBaseKHR(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 202 | uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, |
| 203 | uint32_t groupCountZ) override; |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 204 | void PreCallRecordCmdTraceRaysNV(VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer, |
| 205 | VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer, |
| 206 | VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride, |
| 207 | VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset, |
| 208 | VkDeviceSize hitShaderBindingStride, VkBuffer callableShaderBindingTableBuffer, |
| 209 | VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 210 | uint32_t width, uint32_t height, uint32_t depth) override; |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 211 | void PostCallRecordCmdTraceRaysNV(VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer, |
| 212 | VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer, |
| 213 | VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride, |
| 214 | VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset, |
| 215 | VkDeviceSize hitShaderBindingStride, VkBuffer callableShaderBindingTableBuffer, |
| 216 | VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 217 | uint32_t width, uint32_t height, uint32_t depth) override; |
sourav parmar | cd5fb18 | 2020-07-17 12:58:44 -0700 | [diff] [blame] | 218 | void PreCallRecordCmdTraceRaysKHR(VkCommandBuffer commandBuffer, |
| 219 | const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, |
| 220 | const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, |
| 221 | const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, |
| 222 | const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, uint32_t width, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 223 | uint32_t height, uint32_t depth) override; |
sourav parmar | cd5fb18 | 2020-07-17 12:58:44 -0700 | [diff] [blame] | 224 | void PostCallRecordCmdTraceRaysKHR(VkCommandBuffer commandBuffer, |
| 225 | const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, |
| 226 | const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, |
| 227 | const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, |
| 228 | const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, uint32_t width, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 229 | uint32_t height, uint32_t depth) override; |
Tony-LunarG | 1dce239 | 2019-10-23 16:49:29 -0600 | [diff] [blame] | 230 | void PreCallRecordCmdTraceRaysIndirectKHR(VkCommandBuffer commandBuffer, |
sourav parmar | cd5fb18 | 2020-07-17 12:58:44 -0700 | [diff] [blame] | 231 | const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, |
| 232 | const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, |
| 233 | const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, |
Shannon McPherson | 54e1f89 | 2020-11-27 11:04:19 -0700 | [diff] [blame] | 234 | const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 235 | VkDeviceAddress indirectDeviceAddress) override; |
Tony-LunarG | 1dce239 | 2019-10-23 16:49:29 -0600 | [diff] [blame] | 236 | void PostCallRecordCmdTraceRaysIndirectKHR(VkCommandBuffer commandBuffer, |
sourav parmar | cd5fb18 | 2020-07-17 12:58:44 -0700 | [diff] [blame] | 237 | const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, |
| 238 | const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, |
| 239 | const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, |
Shannon McPherson | 54e1f89 | 2020-11-27 11:04:19 -0700 | [diff] [blame] | 240 | const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 241 | VkDeviceAddress indirectDeviceAddress) override; |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 242 | void PostCallRecordQueueSubmit(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 243 | VkResult result) override; |
Tony-LunarG | b5fae46 | 2020-03-05 12:43:25 -0700 | [diff] [blame] | 244 | void AllocateDebugPrintfResources(const VkCommandBuffer cmd_buffer, const VkPipelineBindPoint bind_point); |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 245 | }; |