Tony-LunarG | 4c25337 | 2022-01-18 13:51:07 -0700 | [diff] [blame] | 1 | /* Copyright (c) 2020-2022 The Khronos Group Inc. |
| 2 | * Copyright (c) 2020-2022 Valve Corporation |
| 3 | * Copyright (c) 2020-2022 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 | |
Tony-LunarG | b5fae46 | 2020-03-05 12:43:25 -0700 | [diff] [blame] | 22 | #include "gpu_utils.h" |
Tony-LunarG | b5fae46 | 2020-03-05 12:43:25 -0700 | [diff] [blame] | 23 | class DebugPrintf; |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 24 | |
Tony-LunarG | b5fae46 | 2020-03-05 12:43:25 -0700 | [diff] [blame] | 25 | struct DPFDeviceMemoryBlock { |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 26 | VkBuffer buffer; |
| 27 | VmaAllocation allocation; |
| 28 | }; |
| 29 | |
Tony-LunarG | b5fae46 | 2020-03-05 12:43:25 -0700 | [diff] [blame] | 30 | struct DPFBufferInfo { |
| 31 | DPFDeviceMemoryBlock output_mem_block; |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 32 | VkDescriptorSet desc_set; |
| 33 | VkDescriptorPool desc_pool; |
| 34 | VkPipelineBindPoint pipeline_bind_point; |
Tony-LunarG | b5fae46 | 2020-03-05 12:43:25 -0700 | [diff] [blame] | 35 | DPFBufferInfo(DPFDeviceMemoryBlock output_mem_block, VkDescriptorSet desc_set, VkDescriptorPool desc_pool, |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 36 | VkPipelineBindPoint pipeline_bind_point) |
| 37 | : output_mem_block(output_mem_block), desc_set(desc_set), desc_pool(desc_pool), pipeline_bind_point(pipeline_bind_point){}; |
| 38 | }; |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 39 | |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 40 | enum vartype { varsigned, varunsigned, varfloat }; |
Tony-LunarG | b5fae46 | 2020-03-05 12:43:25 -0700 | [diff] [blame] | 41 | struct DPFSubstring { |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 42 | std::string string; |
| 43 | bool needs_value; |
| 44 | vartype type; |
| 45 | uint64_t longval = 0; |
| 46 | }; |
| 47 | |
Tony-LunarG | b5fae46 | 2020-03-05 12:43:25 -0700 | [diff] [blame] | 48 | struct DPFOutputRecord { |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 49 | uint32_t size; |
| 50 | uint32_t shader_id; |
| 51 | uint32_t instruction_position; |
| 52 | uint32_t stage; |
| 53 | uint32_t stage_word_1; |
| 54 | uint32_t stage_word_2; |
| 55 | uint32_t stage_word_3; |
| 56 | uint32_t format_string_id; |
| 57 | uint32_t values; |
| 58 | }; |
| 59 | |
Jeremy Gebben | 37c5c5d | 2022-03-21 07:16:03 -0600 | [diff] [blame] | 60 | namespace debug_printf_state { |
Jeremy Gebben | 5ca80b3 | 2022-04-11 10:58:39 -0600 | [diff] [blame^] | 61 | class CommandBuffer : public gpu_utils_state::CommandBuffer { |
Jeremy Gebben | f6bb4bb | 2021-08-11 15:41:09 -0600 | [diff] [blame] | 62 | public: |
| 63 | std::vector<DPFBufferInfo> buffer_infos; |
| 64 | |
Jeremy Gebben | 37c5c5d | 2022-03-21 07:16:03 -0600 | [diff] [blame] | 65 | CommandBuffer(DebugPrintf* dp, VkCommandBuffer cb, const VkCommandBufferAllocateInfo* create_info, |
| 66 | const COMMAND_POOL_STATE* pool); |
Jeremy Gebben | f6bb4bb | 2021-08-11 15:41:09 -0600 | [diff] [blame] | 67 | |
Jeremy Gebben | 5ca80b3 | 2022-04-11 10:58:39 -0600 | [diff] [blame^] | 68 | bool NeedsProcessing() const final { return !buffer_infos.empty(); } |
| 69 | |
| 70 | void Process(VkQueue queue) final; |
Jeremy Gebben | f6bb4bb | 2021-08-11 15:41:09 -0600 | [diff] [blame] | 71 | void Reset() final; |
| 72 | }; |
Jeremy Gebben | 37c5c5d | 2022-03-21 07:16:03 -0600 | [diff] [blame] | 73 | }; // namespace debug_printf_state |
Jeremy Gebben | f6bb4bb | 2021-08-11 15:41:09 -0600 | [diff] [blame] | 74 | |
Jeremy Gebben | 37c5c5d | 2022-03-21 07:16:03 -0600 | [diff] [blame] | 75 | VALSTATETRACK_DERIVED_STATE_OBJECT(VkCommandBuffer, debug_printf_state::CommandBuffer, CMD_BUFFER_STATE); |
Jeremy Gebben | 78684b1 | 2022-02-23 17:31:56 -0700 | [diff] [blame] | 76 | |
Jeremy Gebben | 5160e03 | 2022-03-28 14:57:43 -0600 | [diff] [blame] | 77 | class DebugPrintf : public GpuAssistedBase { |
Tony-LunarG | 1dce239 | 2019-10-23 16:49:29 -0600 | [diff] [blame] | 78 | public: |
Jeremy Gebben | 5160e03 | 2022-03-28 14:57:43 -0600 | [diff] [blame] | 79 | DebugPrintf() { |
| 80 | setup_vuid = "UNASSIGNED-DEBUG-PRINTF"; |
| 81 | container_type = LayerObjectTypeDebugPrintf; |
| 82 | desired_features.vertexPipelineStoresAndAtomics = true; |
| 83 | desired_features.fragmentStoresAndAtomics = true; |
| 84 | } |
Mark Lobodzinski | 0dcb87d | 2020-03-30 16:09:24 -0600 | [diff] [blame] | 85 | |
Jeremy Gebben | 36a3b83 | 2022-03-23 10:54:18 -0600 | [diff] [blame] | 86 | void CreateDevice(const VkDeviceCreateInfo* pCreateInfo) override; |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 87 | bool PreCallValidateCmdWaitEvents(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, |
| 88 | VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, |
| 89 | uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, |
| 90 | uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 91 | uint32_t imageMemoryBarrierCount, |
| 92 | const VkImageMemoryBarrier* pImageMemoryBarriers) const override; |
Jeremy Gebben | a3705f4 | 2021-01-19 16:47:43 -0700 | [diff] [blame] | 93 | bool PreCallValidateCmdWaitEvents2KHR(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, |
| 94 | const VkDependencyInfoKHR* pDependencyInfos) const override; |
Tony-LunarG | 1364cf5 | 2021-11-17 16:10:11 -0700 | [diff] [blame] | 95 | bool PreCallValidateCmdWaitEvents2(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, |
| 96 | const VkDependencyInfo* pDependencyInfos) const override; |
sfricke-samsung | 7fac88a | 2022-01-26 11:44:22 -0800 | [diff] [blame] | 97 | bool InstrumentShader(const VkShaderModuleCreateInfo* pCreateInfo, std::vector<uint32_t>& new_pgm, uint32_t* unique_shader_id); |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 98 | void PreCallRecordCreateShaderModule(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, |
| 99 | const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 100 | void* csm_state_data) override; |
Tony-LunarG | b5fae46 | 2020-03-05 12:43:25 -0700 | [diff] [blame] | 101 | std::vector<DPFSubstring> ParseFormatString(std::string format_string); |
sfricke-samsung | 7fac88a | 2022-01-26 11:44:22 -0800 | [diff] [blame] | 102 | std::string FindFormatString(std::vector<uint32_t> pgm, uint32_t string_id); |
Tony-LunarG | 7de10e8 | 2020-11-24 11:31:55 -0700 | [diff] [blame] | 103 | void AnalyzeAndGenerateMessages(VkCommandBuffer command_buffer, VkQueue queue, DPFBufferInfo &buffer_info, |
Tony-LunarG | 1dce239 | 2019-10-23 16:49:29 -0600 | [diff] [blame] | 104 | uint32_t operation_index, uint32_t* const debug_output_buffer); |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 105 | 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] | 106 | uint32_t firstInstance) override; |
Tony-LunarG | 745150c | 2021-07-02 15:07:31 -0600 | [diff] [blame] | 107 | void PreCallRecordCmdDrawMultiEXT(VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawInfoEXT* pVertexInfo, |
| 108 | uint32_t instanceCount, uint32_t firstInstance, uint32_t stride) override; |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 109 | void PreCallRecordCmdDrawIndexed(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 110 | uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance) override; |
Tony-LunarG | 745150c | 2021-07-02 15:07:31 -0600 | [diff] [blame] | 111 | void PreCallRecordCmdDrawMultiIndexedEXT(VkCommandBuffer commandBuffer, uint32_t drawCount, |
| 112 | const VkMultiDrawIndexedInfoEXT* pIndexInfo, uint32_t instanceCount, |
| 113 | uint32_t firstInstance, uint32_t stride, const int32_t* pVertexOffset) override; |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 114 | void PreCallRecordCmdDrawIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t count, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 115 | uint32_t stride) override; |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 116 | void PreCallRecordCmdDrawIndexedIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t count, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 117 | uint32_t stride) override; |
Tony-LunarG | 2fb8ff0 | 2020-06-11 12:45:07 -0600 | [diff] [blame] | 118 | void PreCallRecordCmdDrawIndirectCountKHR(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, |
| 119 | VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 120 | uint32_t stride) override; |
Tony-LunarG | 2fb8ff0 | 2020-06-11 12:45:07 -0600 | [diff] [blame] | 121 | void PreCallRecordCmdDrawIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, |
| 122 | VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 123 | uint32_t stride) override; |
Tony-LunarG | 2fb8ff0 | 2020-06-11 12:45:07 -0600 | [diff] [blame] | 124 | void PreCallRecordCmdDrawIndexedIndirectCountKHR(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, |
| 125 | VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 126 | uint32_t stride) override; |
Tony-LunarG | 2fb8ff0 | 2020-06-11 12:45:07 -0600 | [diff] [blame] | 127 | void PreCallRecordCmdDrawIndexedIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, |
| 128 | VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 129 | uint32_t stride) override; |
Tony-LunarG | 54176fb | 2020-12-02 10:47:22 -0700 | [diff] [blame] | 130 | void PreCallRecordCmdDrawIndirectByteCountEXT(VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, |
| 131 | VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 132 | uint32_t vertexStride) override; |
| 133 | void PreCallRecordCmdDrawMeshTasksNV(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask) override; |
Tony-LunarG | 2fb8ff0 | 2020-06-11 12:45:07 -0600 | [diff] [blame] | 134 | void PreCallRecordCmdDrawMeshTasksIndirectNV(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 135 | uint32_t drawCount, uint32_t stride) override; |
Tony-LunarG | 2fb8ff0 | 2020-06-11 12:45:07 -0600 | [diff] [blame] | 136 | void PreCallRecordCmdDrawMeshTasksIndirectCountNV(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, |
| 137 | VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 138 | uint32_t stride) override; |
| 139 | void PreCallRecordCmdDispatch(VkCommandBuffer commandBuffer, uint32_t x, uint32_t y, uint32_t z) override; |
| 140 | void PreCallRecordCmdDispatchIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset) override; |
Tony-LunarG | d13f9b5 | 2020-09-08 15:45:45 -0600 | [diff] [blame] | 141 | 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] | 142 | uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) override; |
Tony-LunarG | 52c8c60 | 2020-09-10 16:29:56 -0600 | [diff] [blame] | 143 | void PreCallRecordCmdDispatchBaseKHR(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 144 | uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, |
| 145 | uint32_t groupCountZ) override; |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 146 | void PreCallRecordCmdTraceRaysNV(VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer, |
| 147 | VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer, |
| 148 | VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride, |
| 149 | VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset, |
| 150 | VkDeviceSize hitShaderBindingStride, VkBuffer callableShaderBindingTableBuffer, |
| 151 | VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 152 | uint32_t width, uint32_t height, uint32_t depth) override; |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 153 | void PostCallRecordCmdTraceRaysNV(VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer, |
| 154 | VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer, |
| 155 | VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride, |
| 156 | VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset, |
| 157 | VkDeviceSize hitShaderBindingStride, VkBuffer callableShaderBindingTableBuffer, |
| 158 | VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 159 | uint32_t width, uint32_t height, uint32_t depth) override; |
sourav parmar | cd5fb18 | 2020-07-17 12:58:44 -0700 | [diff] [blame] | 160 | void PreCallRecordCmdTraceRaysKHR(VkCommandBuffer commandBuffer, |
| 161 | const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, |
| 162 | const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, |
| 163 | const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, |
| 164 | const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, uint32_t width, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 165 | uint32_t height, uint32_t depth) override; |
sourav parmar | cd5fb18 | 2020-07-17 12:58:44 -0700 | [diff] [blame] | 166 | void PostCallRecordCmdTraceRaysKHR(VkCommandBuffer commandBuffer, |
| 167 | const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, |
| 168 | const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, |
| 169 | const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, |
| 170 | const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, uint32_t width, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 171 | uint32_t height, uint32_t depth) override; |
Tony-LunarG | 1dce239 | 2019-10-23 16:49:29 -0600 | [diff] [blame] | 172 | void PreCallRecordCmdTraceRaysIndirectKHR(VkCommandBuffer commandBuffer, |
sourav parmar | cd5fb18 | 2020-07-17 12:58:44 -0700 | [diff] [blame] | 173 | const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, |
| 174 | const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, |
| 175 | const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, |
Shannon McPherson | 54e1f89 | 2020-11-27 11:04:19 -0700 | [diff] [blame] | 176 | const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 177 | VkDeviceAddress indirectDeviceAddress) override; |
Tony-LunarG | 1dce239 | 2019-10-23 16:49:29 -0600 | [diff] [blame] | 178 | void PostCallRecordCmdTraceRaysIndirectKHR(VkCommandBuffer commandBuffer, |
sourav parmar | cd5fb18 | 2020-07-17 12:58:44 -0700 | [diff] [blame] | 179 | const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, |
| 180 | const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, |
| 181 | const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, |
Shannon McPherson | 54e1f89 | 2020-11-27 11:04:19 -0700 | [diff] [blame] | 182 | const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, |
Mark Lobodzinski | 7a42ff0 | 2020-12-03 14:55:57 -0700 | [diff] [blame] | 183 | VkDeviceAddress indirectDeviceAddress) override; |
Tony-LunarG | b5fae46 | 2020-03-05 12:43:25 -0700 | [diff] [blame] | 184 | void AllocateDebugPrintfResources(const VkCommandBuffer cmd_buffer, const VkPipelineBindPoint bind_point); |
Jeremy Gebben | 3d22d58 | 2021-08-11 15:37:58 -0600 | [diff] [blame] | 185 | |
Jeremy Gebben | f6bb4bb | 2021-08-11 15:41:09 -0600 | [diff] [blame] | 186 | std::shared_ptr<CMD_BUFFER_STATE> CreateCmdBufferState(VkCommandBuffer cb, const VkCommandBufferAllocateInfo* create_info, |
Jeremy Gebben | cd7fa28 | 2021-10-27 10:25:32 -0600 | [diff] [blame] | 187 | const COMMAND_POOL_STATE* pool) final; |
Jeremy Gebben | f6bb4bb | 2021-08-11 15:41:09 -0600 | [diff] [blame] | 188 | |
| 189 | void DestroyBuffer(DPFBufferInfo& buffer_info); |
Jeremy Gebben | 14499e8 | 2022-03-17 11:03:10 -0600 | [diff] [blame] | 190 | |
Jeremy Gebben | 5160e03 | 2022-03-28 14:57:43 -0600 | [diff] [blame] | 191 | private: |
Jeremy Gebben | 14499e8 | 2022-03-17 11:03:10 -0600 | [diff] [blame] | 192 | bool verbose = false; |
| 193 | bool use_stdout = false; |
Tony-LunarG | 0471752 | 2019-10-17 10:41:17 -0600 | [diff] [blame] | 194 | }; |