-
Notifications
You must be signed in to change notification settings - Fork 358
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for Vulkan video extensions #307
Labels
investigating
Still to be determined whether we work on this
Comments
adam-sawicki-a
added
the
investigating
Still to be determined whether we work on this
label
Dec 20, 2022
locke-lunarg
added a commit
to locke-lunarg/gfxreconstruct
that referenced
this issue
Jul 11, 2024
VMA doesn't support VideoSession See GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator#307 We need to do the unsupported part ourselves.
locke-lunarg
added a commit
to locke-lunarg/gfxreconstruct
that referenced
this issue
Jul 11, 2024
VMA doesn't support VideoSession See GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator#307 We need to do the unsupported part ourselves.
locke-lunarg
added a commit
to locke-lunarg/gfxreconstruct
that referenced
this issue
Jul 11, 2024
VMA doesn't support VideoSession See GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator#307 We need to do the unsupported part ourselves.
locke-lunarg
added a commit
to LunarG/gfxreconstruct
that referenced
this issue
Jul 16, 2024
* Allocator support VideoSession Allocator does something for VideoSession, that is similar with Buffer and Image. The different is that a VideoSeesion could bind plural memories. See GetVideoSessionMemoryRequirements and BindVideoSessionMemory. * Fill VMA unsupported part VMA doesn't support VideoSession See GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator#307 We need to do the unsupported part ourselves. * Use replay MemoryRequirements of VideoSession replay MemoryRequirements could have different count and size. Depend on device, driver, and queue. Some have one big MemoryRequirements. Some have plural small. Use replay MemoryRequirements to AllocateMemory and Bind on RebindAllocator.
bartosz-muszarski-arm
added a commit
to bartosz-muszarski-arm/gfxreconstruct
that referenced
this issue
Aug 22, 2024
commit d2196b654db3f48806dba7f929b0c8c54a2cb43b Author: bradgrantham-lunarg <[email protected]> Date: Tue Aug 20 16:33:15 2024 -0700 add missing C_FLAGS to x86_32 toolchain (#1676) commit 4c5b7628171632be4dc0bb6300b845a912b60a02 Author: Panagiotis Apostolou <[email protected]> Date: Tue Aug 20 12:41:42 2024 +0300 Some fixes in the resolve path of VulkanResourcesUtil commit 452c212dec491add89679a9e95b68b41a77348a2 Author: David Pinedo <[email protected]> Date: Mon Aug 19 16:42:38 2024 -0600 Dump resources: Use VK_NULL_HANDLE rather than nullptr commit ebefe901e18f0eb1ed47ce0f27eeca684ad4a1c3 Author: David Pinedo <[email protected]> Date: Mon Aug 19 16:03:14 2024 -0600 Dump resources: Fix code formatting error commit 56694beb41fc488b61c2795f078cfa5b231125b2 Author: David Pinedo <[email protected]> Date: Mon Aug 19 11:26:01 2024 -0600 Dump resources: Fix params in call to vkResolveImage Dump of image with VK_SAMPLE_COUNT_4_BIT now works commit 14a1d2e08672c77885d1debfaa79a980dd92bc3d Author: David Pinedo <[email protected]> Date: Wed Jul 31 15:33:23 2024 -0600 Dump resources: Don't dump stencil buffers Stencil buffer dump is not yet supported commit 4a1445f3f6b586946086cb9b63e33cd64e8b365d Author: David Pinedo <[email protected]> Date: Tue Jul 30 13:16:52 2024 -0600 Dump resources: Remove extra call to ReadFromBufferResource commit 0e1264acc7cdfd103ad7c30a3b24a35d619f28ee Author: David Pinedo <[email protected]> Date: Thu Jul 18 15:57:10 2024 -0600 Dump resources: Handle case when vkCmdBindDesriptorSets has null value in pDescriptorSets commit 6df5ebc3e6c61bfc891b530c36554ee54aa754e2 Author: David Pinedo <[email protected]> Date: Thu Jul 18 13:30:06 2024 -0600 Dump resources: Handle null depth attachment in vkCmdBeginRenderingKHR commit 25a46797370f11b1a8d6ea6311eb94b851ab4832 Author: David Pinedo <[email protected]> Date: Wed Jul 17 16:44:02 2024 -0600 Dump resources bug fixes - Remove extreaneous assert - Handle sems correctly - Dump index/vertext buffers commit f5df57e92d3cd403d9536b0a9db50976b12fc155 Author: Nick Driscoll <[email protected]> Date: Mon Aug 19 15:02:44 2024 -0400 Save process environment variables to capture file * Add new metadata block SetEnvironmentVariablesCommand * Add new flag to gfxrecon-info '--env-vars-only' * Add new flag to gfxrecon-renamed-replay.py '-e|--environment-variables' commit ef157dadea74b8b055749ce3f1ca04389501d526 Author: Fabian Schmidt <[email protected]> Date: Tue Aug 13 16:35:49 2024 +0200 Fix regression: handle vkDestroy*** calls being passed null-handles (#1666) commit 6a3abfaa1ea07ac196b82b5946d505981a6a261e Author: Fabian Schmidt <[email protected]> Date: Tue Aug 13 09:22:26 2024 +0200 Add macOS to github-release-build action (#1651) commit 7876c5196c14bb7f41e1458e548a40233cc94376 Author: Fabian Schmidt <[email protected]> Date: Tue Aug 13 08:56:48 2024 +0200 Avoid async w. externally synched pipeline-caches (#1661) - Keep track of externally synchronized pipeline-caches - Avoid async operations when using externally synched pipeline-cache commit 5b217b9cb00c58198249831b75a56397d8e95a16 Author: Fabian Schmidt <[email protected]> Date: Tue Aug 13 08:54:01 2024 +0200 Check SPIRV-capabilities, early exit parser (#1662) Check SPIRV-capabilities, early exit parser - check for required CapabilityPhysicalStorageBufferAddresses - bail out early, decrease avg parsing-time commit 77ebadcd8cc5f675f132867956076b8194c341ba Author: Marius Pelegrin <[email protected]> Date: Thu Aug 8 10:58:58 2024 +0200 Fix `VulkanSwapchainOptions` - Offscreen swapchain frame boundary option has been forgotten when creating the `VulkanSwapchainOptions` structure, breaking it - Fix inconsistent variable names in the structure Change-Id: I84a7956575d6b0d96fee40ba9c1aed873afda325 commit 2f4d66d39a2282799a5199ba329c28337f4ea18b Author: Marius Pelegrin <[email protected]> Date: Wed Jun 5 14:21:39 2024 +0200 Remove empty command buffer from frame boundary submission Change-Id: I8d75b37dd5512fc6c1abbdb49f131d3ce7b6cc7c commit cb7716a12fe2f00a1f91481b893f3906abaa50e6 Author: Ihor Zvieriev <[email protected]> Date: Fri Jun 14 18:27:25 2024 +0200 Fixing ppBuildRanges for gfxrecon-convert ppBuildRanges is a an array of pointers of infoCount pointers to arrays of geometryCount of a particular build geometry info. Previously, convert was failing to extract this information if the infoCount or geometryCount was > 1. This commit enables convert to extract the info correctly. Change-Id: Ic48932516226124be8487c245d6a1782dddbdb8c commit 189d48f6421a6838e358ac9c2febbc348cc5c3de Author: Marius Pelegrin <[email protected]> Date: Fri Jul 26 16:57:03 2024 +0200 Fix noop functions address comparison It sometimes is necessary to check if a vulkan call in a table is noop or not. Current prototypes of noop functions include the `static` keyword, making address comparison impossible because the address changes for each translation unit. These functions are all one-liners with a simple call to a logging message. I propose to replace the `static` keyword with `inline`. The C++ standard specifies that inline functions have the same address accross translation units. Change-Id: If39e134d4d0cef2d818541b6b376eb26bf001880 commit 8357295204e2b5c64fb5c27995a6ac79a388a555 Author: Fabian Schmidt <[email protected]> Date: Thu Aug 8 10:26:29 2024 +0200 Rework async-dependency-tracking to be deterministic (#1655) - Resolve vkDestroyFoo for tracked async-handles: sync/block instead of deferred-delete - Avoids shuffling of certain vkDestroyFoo calls when using --pcj X option commit 45e2d882d1cda19bede83e0424178709a067d7a9 Author: Charles Giessen <[email protected]> Date: Mon Aug 5 12:19:07 2024 -0500 build: Apply /bigobj for encode & decode targets Rather than adding the /bigobj flag to individual files, apply it to the entire static library on MSVC commit 3dd2c600cf705cf57073050062c4ae5619abf529 Author: Ihor Zvieriev <[email protected]> Date: Mon Apr 8 16:20:17 2024 +0200 Fix uninitialized member that led to gfxrecon-info incorrectly reporting usage of page guard external memory Change-Id: I72dc2af6a59bc820cfeb4e17f0f0aa59d7764faa commit fbc8e1e03630c1ce3beaa62ff49f9cd8a615d297 Author: Bartosz Muszarski <[email protected]> Date: Mon Aug 5 14:51:39 2024 +0200 Remove assert from DestroyCommandPool VkDestroyCommandPool specs state that pool can be a null handle, yet its override in replay asserts the pool info struct pointer. Change-Id: I4aa551a1bdd3288b9a6085c3c691f4c7841bb888 commit e65e80ae7be3fb3e7ff04f89b4c604b984f17baa Author: ziga-lunarg <[email protected]> Date: Tue Aug 6 12:08:59 2024 +0200 Remove duplicated line in dump resources doc (#1653) commit a457f7de3f9876d869bd5f809d15aca2710c8eff Author: Fabian Schmidt <[email protected]> Date: Mon Aug 5 18:35:25 2024 +0200 Check SPIRV/Buffer-References inlined in pNext (#1650) Check SPIRV/Buffer-References inlined in pNext - VkPipelineShaderStageCreateInfo 'can' provide a VkShaderModuleCreateInfo in pNext -> Add helper-routines to check for that case - Add required nullptr-check to OverrideDestroyPipeline - minor refactoring: vulkan_struct_extract_handle_ids routine - cleanup+doc for vulkan_check_buffer_references routines commit de5170713918ac4b2e0e3c88db5b41b15b114f8f Author: ziga-lunarg <[email protected]> Date: Sun Aug 4 12:03:16 2024 +0200 Fix wrong setting name in android usage doc (#1649) commit 7686fea4f5dc55db0e798d316fb58ecc42d6bf9b Author: Mike Schuchardt <[email protected]> Date: Wed Jul 31 22:54:27 2024 -0700 tocpp: Don't assert on positive return codes Fixes a crash when an array query changes length between capture and replay (VK_INCOMPLETE) commit 57ef7297a1214039a26a80ed2c1881371e58f5e9 Author: Mike Schuchardt <[email protected]> Date: Wed Jul 31 22:50:05 2024 -0700 tocpp: Fix array args Looks like a copy/paste error was treating them like handle values commit 378107f44cf42d584298ea979c5bd59701914e16 Author: Mike Schuchardt <[email protected]> Date: Wed Jul 31 22:34:14 2024 -0700 tocpp: Fix output arguments - Rework/simplify some pretty confusing control flow in the generator - Add a null check before creating local variables for output arguments - Initialize scalar output arguments to the capture value so the count in entry points like vkGetPhysicalDeviceSurfaceFormats2KHR works correctly - Initialize array and struct output arguments to zero so the driver doesn't try to dereference any uninitialized pNext pointers commit cec1c78798924e4a123b4d685d2e8a327f067b92 Author: Mike Schuchardt <[email protected]> Date: Thu May 23 11:21:53 2024 -0700 tocpp: Add support for output pointer struct members commit 9718b7c57dfb34284e41a36523a5ab7f60913e8e Author: Fabian Schmidt <[email protected]> Date: Fri Aug 2 18:29:45 2024 +0200 Fix wrong/forgotten copyright in a header-file (#1648) commit de565052d84620a45bb5afe958c0647791708274 Author: Fabian Schmidt <[email protected]> Date: Fri Aug 2 08:47:13 2024 +0200 Extend Async Support: vkCreateComputePipelines, vkCreateShadersEXT (#1646) * Extend Async Support: vkCreateComputePipelines, vkCreateShadersEXT - minor improvement for vulkan_struct_deep_copy routine, cover some edge-cases - sync pipeline-handle before destruction, potentially in-flight - cleanup/refactoring commit 464c8c845dc9b24b446691d036b666ae902a418a Author: Panagiotis Apostolou <[email protected]> Date: Thu Aug 1 19:32:48 2024 +0200 vulkan dump resources fixes (#1642) The calculations for the size of indirect draw calls param buffer was off. commit 1aacbd501b23e33d65e9dd135a51ba02f92483bd Author: Fabian Schmidt <[email protected]> Date: Tue Jul 30 16:56:14 2024 +0200 Refactor encode::vulkan_trackers::TrackStruct() routine (#1643) Refactor encode::vulkan_trackers::TrackStruct() routine - Built on top of graphics::vulkan_struct_deep_copy routines - Avoids duplication, reduces code-footprint, less coupling, less memory-allocations commit 7e1e375ea6a59d2a0ae9de8088fc52d5fab5c257 Author: Fabian Schmidt <[email protected]> Date: Tue Jul 30 09:01:50 2024 +0200 Asynchronous Pipeline Creation (#1607) - Add Threadpool to utils - Add generic vulkan_struct_deep_copy for deep-copies of input structures - Add a type-trait has_handle_future to retrieve handles via std::future - Add tracking and deferred deletion of handles used during asynchronous ops - Apply all that for vkCreateGraphicsPipelines only first - Add CLI-option --pipeline-creation-jobs or --pcj - default: 0 commit f6e175620b7fbf7554d60abc06c72a30223e809d Author: Panagiotis Apostolou <[email protected]> Date: Tue Jul 30 07:44:36 2024 +0200 Vulkan dump resources: Fix indirect params fetching (#1639) Fetching of indirect draw call params should be fetched at all times, not only when dumping of vertex buffers is requested commit 1d577c94373144b27c91062bd0ee65514245bddd Author: Dustin Graves <[email protected]> Date: Wed Dec 6 14:54:39 2023 -0700 Fix DX12 render pass union encode/decode Fix encoding/decoding for the D3D12_RENDER_PASS_BEGINNING_ACCESS and D3D12_RENDER_PASS_ENDING_ACCESS union members: - The Clear/Resolve union members were always encoded/decoded, regardless of render pass access type, resulting in uninitialized pointers being dereferenced when the type was not clear or resolve. - A new union member, PreserveLocal, added by the Agility SDK, was not being processed for encoding/decoding. commit 0afe247e939bfa4f8516017b9ca705310a82ceae Author: Ming Zheng <[email protected]> Date: Mon Jul 29 14:39:22 2024 -0400 Fix playback handling error of ID3D12Device::CreateConstantBufferView (#1631) * Fix playback issue for handling ID3D12Device::CreateConstantBufferView In the API ID3D12Device::CreateConstantBufferView, pDesc is an optional parameter, so we need to include nullptr protection for it. commit 243e4941cf0dcf0397c135ce746b5bcbd7ed41e6 Author: Dustin Graves <[email protected]> Date: Thu Jun 29 14:56:26 2023 -0600 Add ID3D12DeviceFactory replay override Add a replay override for ID3D12DeviceFactory::CreateDevice to perform the same device initialization as the D3D12CreateDevice replay override. commit 7977e0a75d9309d04c1217ec4462c4764959bfa2 Author: Nick Driscoll <[email protected]> Date: Mon Jul 29 09:00:42 2024 -0400 Fix broken trimming for vkCmdPushDescriptorSetWithTemplate[2]KHR commands (#1633) Use BeginTrackedApiCallCapture and EndCommandApiCallCapture as well fix mistake in tracked resource consumer. commit 0e83e75cf561aa99a3333f6cdbc49c07318ead35 Author: Locke Lin <[email protected]> Date: Fri Jul 26 15:16:01 2024 -0600 Avoid writing redundant QueueSubmit (#1638) commit 5720914d71c450e9edd5fa69684d14110fb8b7e9 Author: ziga-lunarg <[email protected]> Date: Sat Jul 20 11:35:24 2024 +0200 Fix typo in dump resources log (#1630) commit cdb4df5d40f8cd1e444ccebe7ee58d6a407300df Author: davidd-lunarg <[email protected]> Date: Sat Jun 22 13:06:09 2024 -0700 Track more info with each dumped resource commit 2399ee11e20f7e373def55af43bddb8bc427d986 Author: davidd-lunarg <[email protected]> Date: Sat Jun 22 10:42:23 2024 -0700 Use a customizable delegate for dumping res data commit 85cfe0ed028576f082217313953a477ff4754c68 Author: Mike Schuchardt <[email protected]> Date: Mon Jul 8 00:14:30 2024 -0700 Uffd restart interrupted system calls Some applications were observed to crash when using the userfaultfd memory tracking mode due to interrupted system calls failing with EINTR. Set the SA_RESTART flag on the RT signal handler so that interrupted system calls on application threads blocked by UffdBlockFaultingThreads are automatically restarted. Note that although not all system calls can be restarted, this change does improve compatiblity for a handful of tested applications on Android. commit 2a1de94d0ea0ff0ce66bc149e330a6f8533b30ec Author: Locke Lin <[email protected]> Date: Tue Jul 16 13:04:25 2024 -0600 Allocator support VideoSession (#1620) * Allocator support VideoSession Allocator does something for VideoSession, that is similar with Buffer and Image. The different is that a VideoSeesion could bind plural memories. See GetVideoSessionMemoryRequirements and BindVideoSessionMemory. * Fill VMA unsupported part VMA doesn't support VideoSession See https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator/issues/307 We need to do the unsupported part ourselves. * Use replay MemoryRequirements of VideoSession replay MemoryRequirements could have different count and size. Depend on device, driver, and queue. Some have one big MemoryRequirements. Some have plural small. Use replay MemoryRequirements to AllocateMemory and Bind on RebindAllocator. commit 2bc2daa015e74814a73637e484a41a48cd7c13f1 Author: Charles Giessen <[email protected]> Date: Thu Jul 11 15:01:42 2024 -0500 Add --pbi-all and --pbis options for all FileProcessor subclasses commit 12ce47d1c263ebae8d1206cccfd2e19e7c48a252 Author: Charles Giessen <[email protected]> Date: Thu Jul 11 15:41:12 2024 -0500 Refactor PreloadFileProcessor recording logic Moves common patterns into a utility function ReadParameterBytes. commit 815902b7a0119b98dccedc2c87d69032797525d9 Author: Charles Giessen <[email protected]> Date: Wed Jun 26 14:37:28 2024 -0500 Make FileProcessor::ProcessBlocks common code reuseable Any class extending FileProcessor does so to modify how blocks are processed. The logic ProcessBlocks does not lend itself well to abstraction, so the best alternative is to move as much code into the subfunctions as possible. The offending code was frame delimiter code, which was properly copied into subclasses, while logic to fixup old traces lacking frame delimiters was not. commit c449b4066091dbc6bba05544f2308c37dff0a5dd Author: Bartosz Muszarski <[email protected]> Date: Mon Jun 19 18:37:29 2023 +0200 Add trace preload option Adds preload-measurement-range option allowing to preload a frame range specified with --measurement-frame-range option from the trace file into a continuous, expandable buffer, in order to mitigate the impact of read file commands on performance mesurements. Change-Id: Ic3580b163edc5107b496b122c8fdd72dec8ca13f commit 64f7c1ce9dd4a38629e8d3f936fea72669fddd59 Author: Nick Driscoll <[email protected]> Date: Fri Jul 12 13:59:54 2024 -0400 Update Vulkan headers to 1.3.290 (#1624) commit 58b31d9620d62c8de35dfe2697e6c30bdc61c1ac Author: Fabian Schmidt <[email protected]> Date: Fri Jul 12 10:49:26 2024 +0200 Update SPIRV-Reflect submodule (#1622) - upstream-fix prevents crashes for certain shaders using buffer-references. commit f9b6598bdde280ab21dc8b2c2d5113e586c95922 Author: Marius Pélégrin - ARM <[email protected]> Date: Thu Jul 11 21:43:43 2024 +0200 Fix handle mapping/unwrapping for acceleration structure building (#1590) Change-Id: I526eb16c866785c60aab0121dd21df2131ba6893 commit 6b1fc0b02591ae2427abf3a0b822bececdf2c1a2 Author: Panagiotis Apostolou <[email protected]> Date: Thu Jul 11 19:12:08 2024 +0300 Vulkan dump resources vertex input rate instance (#1618) * Use VkDrawIndirectCommand and VkDrawIndexedIndirectCommand instead * Dump vertex bindings with instance input rate commit ef8bb3b42e39fb74931758d7054b312c34fcb343 Author: ziga-lunarg <[email protected]> Date: Tue Jul 9 22:28:57 2024 +0200 Fix shadow semaphores used in VkSubmitInfo (#1537) * Fix shadow semaphores used with VkSubmitInfo A semaphore can be signaled with both vkAcquireNextImage and with VkSubmitInfo pass to vkQueueSubmit. If a null-swapchain/surface is signaling a semaphore we use the shadow_signaled variable to track the state of the semaphore, instead of actually signaling and waiting on it with vk commands. This works if such a semaphore is only used with vkAcquireNextImageKHR and vkQueuePresentKHR, but if the same semaphore is being used with VkSubmitInfo passed to vkQueueSubmit the semaphore will never be signaled, but will be waited on in vkQueueSubmit. To fix this we add a variable signaled, which is used to track the actual semaphore state when used in VkSubmitInfo. * Move duplicated code to a helper function commit 2ed92659fbade8ccd1b2699051e08a49a35367b4 Author: Marius Pélégrin - ARM <[email protected]> Date: Mon Jul 8 18:48:33 2024 +0200 Fix OverrideCreateInstance and OverrideCreateDevice (#1478) These two functions have become very hard to read and modify, and full of small edge-case bugs because of this. With this commit I propose to clean a little these two functions, by: - Removing some unecessary nested if that should belong in a validation layer, and eventually replacing them with an assert - Uniformizing variable names between these two functions as they perform a lot of very similar operations - Adding VK_EXT_frame_boundary as a DEVICE extension, and not an instance extension, which it has never been (and also doing so before setting the modified_extensions in the create info, not after) - Adding fake support for VK_EXT_frame_boundary - Removing unsupported device features should only happen when `--remove-unsupported` option is set Change-Id: If861652dbe32c0e7cec3caa2bd6532f4d3d68398 commit c80eb05f4e4992a95c839b91997d34df8ac596ec Author: Fabian Schmidt <[email protected]> Date: Mon Jul 8 18:40:41 2024 +0200 MacOS: Correct window-size during replay (#1612) - Avoid high-DPI resolution conversions ([screen convertRectFromBacking:]) - Add explicit [window setContentSize:] to enforce same window & framebuffer sizes commit f37bb05442db7e2ba08f9600d219b8839a73e85f Author: beau-lunarg <[email protected]> Date: Fri Jul 5 09:46:12 2024 -0400 Add pipeline creation attempt annotation (#1559) * Add pipeline creation attempt annotation * Fix formatting * Formatting commit 068a5487a3b61d7acaeff99d212be149841d6a06 Author: Locke Lin <[email protected]> Date: Wed Jul 3 10:24:28 2024 -0600 options "--pbi-all" and "--pbis" Print block information commit d570c3bf0edbdb571b1a3c0598136ae12490d344 Author: Fabian Schmidt <[email protected]> Date: Thu Jul 4 09:08:35 2024 +0200 Add SpirV-reflection to detect usage of buffer-references (#1577) Add SpirV-reflection to detect usage of buffer-references - Add a SpirV-parser to detect dereferencing of buffer-references - track back to their definition and extract descriptor-set/binding/push-constant-block - from there using spirv_reflect: extract buffer-offsets and potential array-strides - issue a warning in case buffer-references are used, currently unsupported - remove multiple copies of spirv.h in external/precompiled - Add SPIRV-Headers as submodule - Add SPIRV-Reflect as submodule commit 1c20857b4a31c27237fc2be95fa2d211266827ba Author: ziga-lunarg <[email protected]> Date: Wed Jul 3 19:32:40 2024 +0200 Add missing shadow fences from VkSwapchainPresentFenceInfoEXT (#1600) Fences can be signaled with VkSwapchainPresentFenceInfoEXT through vkQueuePresent, and if we are replaying with --surface-index the surface used by vkQueuePresent might not be used. Therefore we have to shadow signal the fence. vkGetFenceStatus must also check for shadow fences commit 07a5481ad22e4518f1e77a556bd17f069f1c7132 Author: Locke Lin <[email protected]> Date: Mon Jul 1 17:56:47 2024 -0600 Update VulkanMemoryAllocator to v3.1.0 https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator/blob/v3.1.0/include/vk_mem_alloc.h commit 30c79ebe48a8faee4e413e744476ae84bb69af26 Author: JerryAMD <[email protected]> Date: Tue Jul 2 14:08:13 2024 -0400 Set size of Dx12 swapchain to associated windows (#1563) * Set size of Dx12 swapchain to associated windows Problem IDXGIFactory::CreateSwapChainForHwnd allow swapchain's width and height as zero. When replay the trace, GFXR creates 0x0 window to replay. https://learn.microsoft.com/en-us/windows/win32/api/dxgi1_2/nf-dxgi1_2-idxgifactory2-createswapchainforhwnd#remarks Solution Inject a metadata block right before CreateSwapChainXXX() call and record the proper swapchain size. Replace the proper swapchain size by the metablock during replay. commit 734aeaa869432e2e3826bdb7077c88c4e33b98ff Author: Brad Grantham <[email protected]> Date: Fri Jun 28 10:17:42 2024 -0700 fix formatting commit c0b128b4f7d75019ebf56447eab6fd226e4530bb Author: Brad Grantham <[email protected]> Date: Fri Jun 28 09:56:26 2024 -0700 add precompiled library for spirv-reflect for MacOS * From SPIRV-Reflect 756e7b13243b5c4b110bb63dba72d10716dd1dfe * Change spirv_reflect.h to include spirv.h from precompiled commit 6404a456b9b7a61c75f391b8321fbeab17b1c770 Author: Panagiotis Apostolou <[email protected]> Date: Fri Jun 28 19:11:06 2024 +0300 Dump resources merged feature branch Vulkan fixes (#1609) * Vulkan dump resources src generation should not use blacklist * Fix output json annotation of images that failed scaling commit 366c5bac939bf7b8de00e9b08b3808448c87730f Author: davidd-lunarg <[email protected]> Date: Thu Jun 27 13:42:35 2024 -0700 Apply formatting commit 0a0286c8bd0cb7ed8b4eb52d827f7c9cee709f7d Merge: 5efb345c2 ba7cc84b5 Author: davidd-lunarg <[email protected]> Date: Thu Jun 27 11:35:14 2024 -0700 Merge branch 'dev' into davidp_dump_resources_merge4 commit ba7cc84b51b43f6f4bb51a5afa95906d3f1884b6 Author: Marius Pelegrin <[email protected]> Date: Fri Oct 6 08:54:04 2023 +0200 Add vkCmdInsertDebugUtilsLabelEXT as a frame delimiter Currently only vkCmdDebugMarkerInsertEXT (under conditions on the name of the marker) is considered a frame delimiter (aside from queue present). However, VK_EXT_debug_marker is deprecated and promoted to the VK_EXT_debug_utils extension that support an almost identical command vkCmdInsertDebugUtilsLabelEXT. This commit only add this command as a frame delimiter under the same conditions on the name of the label (which replaces the marker). Change-Id: Ic4164ee65eba2c1295ef8c45084ee6136dc796a8 commit 3de39bd354418759b3509200cabc76f104aa5919 Author: Panagiotis Apostolou <[email protected]> Date: Thu Jun 27 10:54:03 2024 +0300 Convert AHB related errors into warnings (#1603) * Convert AHB related errors into warnings * fix clang-format --------- Co-authored-by: bradgrantham-lunarg <[email protected]> commit 5efb345c29c128c1e3d3fb9bc60710a5074537a3 Author: davidd-lunarg <[email protected]> Date: Wed Jun 26 09:59:26 2024 -0700 dx dump: fix some res files not being written commit 0320b1d360b51e9d44f3ea761f77342f4e2967be Author: Panagiotis Apostolou <[email protected]> Date: Wed Jun 26 17:34:52 2024 +0300 uffd: Do pthread_cond_timedwait instead (#1604) It is possible that the signal send by the uffd logic to block the applications threads cannot be delivered. For this reason do pthread_cond_timedwait on the condition variable instead of pthread_cond_wait which causes a deadlock in these cases. commit 01a17004d65b42f6f7ed5c4e73a68c3b7346ba28 Author: David Pinedo <[email protected]> Date: Tue Jun 25 16:41:31 2024 -0600 Fix bin file names use for dx12 output Make sure underscores are in the right place in the file names. commit 4ca784a7a537ea94ee8a896008575f320fc7c981 Author: David Pinedo <[email protected]> Date: Tue Jun 25 09:32:30 2024 -0600 Change DX12 dump resource json output header so it is consistant with VUlkan Also changed the name of the output json file to <capturefilename>_dr.json for both DX12 and Vulkan. It previously was <capturefilename>_rd.json. commit d572f67ffea3877e205aff9436295d0ddd03bab7 Author: Panagiotis Apostolou <[email protected]> Date: Mon Jun 24 13:46:51 2024 +0300 Remove rebase/merge leftover line commit 790697b263a3e1df368dfe197fb4f02a2e3b13ee Author: Panagiotis Apostolou <[email protected]> Date: Fri Jun 21 14:32:40 2024 +0300 vkUpdateDescriptorSets should be overridden commit 6d36d184ba12047952c35bb9caa6fe548d9cd37a Author: nickdriscoll-lunarg <[email protected]> Date: Thu Jun 20 15:57:13 2024 -0400 Support CmdPushDescriptorSetWithTemplate2KHR (#1594) Add support for vkCmdPushDescriptorSetWithTemplate2KHR() such that the functionality is at parity with the original function. commit c10fc1c205f0dacca4387e526c260843ba559dd7 Author: Fabian Schmidt <[email protected]> Date: Tue Jun 18 09:02:35 2024 +0200 Add paragraph for MacOS/codesigning to build instructions (#1587) commit 32c722641fd8e90c8e31724b914e5255f655f72a Author: bradgrantham-lunarg <[email protected]> Date: Mon Jun 17 18:15:46 2024 -0700 use NDK 26 (#1589) commit 82b38f9efe7ce58ea7deb39d8b40f8ea6e38f07a Author: Ihor Zvieriev <[email protected]> Date: Sat Jun 15 00:35:40 2024 +0200 Fix of infinite loop when looping over pNext chain (#1582) In case when searching for a struct on pNext chain, if the relevant struct is not the first in the list, we would have an infinite loop. This commit fixes that. Change-Id: I949c7f7e249caca0dbb206812b056d3d2292ffb2 commit bb4eb35eaebb3ec3076a82a22cbe6b23b93b3353 Author: Bartosz Muszarski <[email protected]> Date: Tue May 21 16:42:58 2024 +0200 Fix decoder completion condition Currently decoder will return true from IsComplete and trigger early exit if it has two consumers and one of them completed before the other. This happens because completed consumers are erased from the consumers list which size is then compared against the count of completed consumers. With this change decoder will report completion only if all its consumers have completed. Change-Id: I5b22d048c9db88c88e1ceffd98f21a90ee666abb commit 15b18115cd3bd14436d29b06568ec92fdcd8854b Author: David Pinedo <[email protected]> Date: Thu Jun 13 15:38:14 2024 -0600 Fix Android build Prior merge omitted a commit commit 214eab439d70f282759e6d284456444dd489cb32 Author: David Pinedo <[email protected]> Date: Wed Jun 12 13:32:58 2024 -0600 Fix code gen error in previous merge commit 9d6d1055618d2ace3fcfbc390d8c2221d28fd0c5 Merge: 31ab39df1 976d49717 Author: David Pinedo <[email protected]> Date: Wed Jun 12 13:20:14 2024 -0600 Merge branch 'davidp_dump_resources_merge2' into vulkan_dump_resources commit 31ab39df1d07aac1ed099106197b323d7412633f Author: Panagiotis Apostolou <[email protected]> Date: Fri May 31 16:01:53 2024 +0300 Try to detect proper image tiling when scaling images commit 5ca00dd2994be82b5d25f08c501c34d93de89a8c Author: Panagiotis Apostolou <[email protected]> Date: Fri May 31 15:46:03 2024 +0300 Mark in output json images that failed scaling commit 415207ec6d2bdc8f056bfd12e4bb96574a0e1500 Author: Panagiotis Apostolou <[email protected]> Date: Mon May 27 16:28:26 2024 +0300 Add support for vkCmdTraceRaysIndirect2KHR commit 3e6565abd9ca016275e2196916349544b8f8ceea Author: Panagiotis Apostolou <[email protected]> Date: Mon May 27 11:26:09 2024 +0300 Some updates in dump resources documentation commit da3cfe9c4526cffce8c1ce61c391e06585b40416 Author: Panagiotis Apostolou <[email protected]> Date: Fri May 24 09:59:22 2024 +0300 Demote inability to scale errors into warnings commit 97f78d10961fa26c6832c939e5cae2ec84921636 Author: Panagiotis Apostolou <[email protected]> Date: Fri May 24 09:32:47 2024 +0300 --dump-resources-json-output-per-command should be fixed now commit b81104647799adb0376b4f36ee7c47c86e06c793 Author: Panagiotis Apostolou <[email protected]> Date: Wed May 22 15:20:39 2024 +0300 Terminate process on error commit 1171e327d436f63a6dcd474269834f5ced4fa1c5 Author: Panagiotis Apostolou <[email protected]> Date: Tue May 21 08:56:34 2024 +0300 WritePngImage should not print errno value stbi_write_png can fail because of non file io reasons, so in these cases errno will not have a outdated value. commit 3c3ac2432ad280b353701bace67083a0490e9c2b Author: Panagiotis Apostolou <[email protected]> Date: Tue May 21 08:55:29 2024 +0300 Cast to uint32_t before passing down to GFXRECON_LOG_ERROR_ONCE commit 94db56be562bfc32725550150861bfa5800ad252 Author: Daniel Friederich <[email protected]> Date: Mon May 20 09:39:42 2024 +0300 Fix in GFXRECON_zlib_compress2 The function assumes the zlib function compress2 always uses less memory for its result than for the input, which is not correct. zlib exposes a helper function compressBound to properly extend the size possibly needed. commit 7585174ff5bbcc505cb409177216e0679c5998cc Author: Panagiotis Apostolou <[email protected]> Date: Mon May 20 09:35:13 2024 +0300 Giving 2 variables a better name commit 8914ee607d1f5d4d9cbe27f5806a827e1fe02f3f Author: Panagiotis Apostolou <[email protected]> Date: Mon May 20 08:58:06 2024 +0300 Should be == instead of != VK_VERTEX_INPUT_RATE_VERTEX commit 1c2cbe7f1640ab61cc8154f6b36ac88b279d6149 Author: Panagiotis Apostolou <[email protected]> Date: Fri May 17 16:12:32 2024 +0300 Removed some forgotten printfs commit 7f8adfd178da1c94daf14e0685c2c16700ebd64d Author: Panagiotis Apostolou <[email protected]> Date: Fri May 17 15:28:14 2024 +0300 Omit "vertexBuffers" entry in json when there aren't any commit 46004a38ce7f80b50236f923120521a8c308c1d9 Author: Panagiotis Apostolou <[email protected]> Date: Fri May 17 15:19:15 2024 +0300 DumpImmutableResources should dump the previous rp's resources commit a31aba1fcadd3244d6c99b8e2c8984eb207c52f0 Author: Panagiotis Apostolou <[email protected]> Date: Thu May 16 10:52:55 2024 +0300 Fix image writer functions to handle screenshots Consolidated WritePngImageNoAlpha with WritePngImage and WriteBmpImageNoAlpha with WriteBmpImage commit bcdb83c1f92832dc8a08bbbbb8cc0f2c1b22cd4b Author: Panagiotis Apostolou <[email protected]> Date: Tue May 14 14:55:07 2024 +0300 clang format parse_dump_resources_cli.cpp commit 361969664b5738fe2b8c0855bc4e451dbb71d971 Author: Panagiotis Apostolou <[email protected]> Date: Tue May 14 14:32:33 2024 +0300 Remove redundant json library commit ab373e7c35efe1ca70ebd107433584ebf064713c Author: Panagiotis Apostolou <[email protected]> Date: Tue May 14 13:52:51 2024 +0300 Reset first_block_ each time the file is closed commit a8422ceaca3f6c36b016ff9e5cba946a279e7852 Author: Panagiotis Apostolou <[email protected]> Date: Tue May 14 11:15:17 2024 +0300 Vertex/Index buffers are now dumped per draw call commit 3baf6168a00fc1f9e9c559f915d9f7b967ec902d Author: Panagiotis Apostolou <[email protected]> Date: Sun May 12 09:57:12 2024 +0300 Handle VK_ATTACHMENT_UNUSED when creating render passes commit e4ccb7ffc75429931c26454f7d40838f529110b4 Author: Panagiotis Apostolou <[email protected]> Date: Fri May 10 14:14:24 2024 +0300 Fix windows build commit 9966a3095183386c744b2c90d203a520166ffafd Author: Panagiotis Apostolou <[email protected]> Date: Fri May 10 09:00:36 2024 +0300 Don't scale images below 1 pixel in any dimension commit f911fe44f518a1872ada4a70a619631df8360be2 Author: Panos Apostolou <[email protected]> Date: Thu May 9 17:57:05 2024 +0300 Fix project version header include commit e60535fcf3b27769ac0062bec7018becd04e0c66 Author: Panagiotis Apostolou <[email protected]> Date: Thu May 9 13:53:14 2024 +0300 Some logic for fetching TraceRaysIndirect was missing commit e377d7ae12aa5c684eb91ce331c45f979d24aad9 Author: Panagiotis Apostolou <[email protected]> Date: Thu May 9 13:24:26 2024 +0300 DestroyCommandPool should release any relevant dumping resources commit 17d465ac1d98e61d1c8cad63dbd8de345fac8c75 Author: Panagiotis Apostolou <[email protected]> Date: Thu May 9 09:00:50 2024 +0300 WritePngImage*() now checks return value from stbi_write_png commit 96dc02fc9a33fee98215e5892d48c084cf7ffe7c Author: Panagiotis Apostolou <[email protected]> Date: Wed May 8 13:26:52 2024 +0300 Dump vertex and index buffers per render pass commit 327c4a17a0f6d1920f26c66b26fc2bfc51f23598 Author: Panagiotis Apostolou <[email protected]> Date: Tue May 7 17:03:28 2024 +0300 Remove QueueSubmit object from output json commit 29ea52ae2288e36eeb39e583e93336081d4a9dd7 Author: Panagiotis Apostolou <[email protected]> Date: Thu May 2 18:23:08 2024 +0300 Should be ok to reuse a command buffer for dumping commit c0d5bdeefa44843f2a528bb6df7c74f1ad76c434 Author: Panagiotis Apostolou <[email protected]> Date: Fri May 3 09:41:30 2024 +0300 Amend last rebase with dev commit 238d9258c6201b0d8c2270d3e8eb7acaae52332d Author: Panagiotis Apostolou <[email protected]> Date: Wed May 1 10:44:10 2024 +0300 Begin new json block for each QueueSubmit commit a90fd3f1b509d9f0749a0868d653fb2782a61857 Author: Panagiotis Apostolou <[email protected]> Date: Wed May 1 08:46:48 2024 +0300 CopyBufferResource should handle VK_WHOLE_SIZE commit d3e0fb9cdfad1439c3a25ae3c2885d7cf5e22d09 Author: Panagiotis Apostolou <[email protected]> Date: Tue Apr 30 14:05:01 2024 +0300 Add support for vkCmdTraceRaysIndirectKHR commit fefb890a7f96024f6231a6a148ead1abe4225701 Author: Panagiotis Apostolou <[email protected]> Date: Tue Apr 30 11:31:05 2024 +0300 CopyBufferResource() implementation was missing commit 3bcb69f9ca610e421a9e8ea6f50638130abf6ffe Author: Panagiotis Apostolou <[email protected]> Date: Tue Apr 30 11:08:44 2024 +0300 Small fixes in the json output generation commit 6f3bab556b18ce6e14b847f7add3496ae07f4796 Author: Panagiotis Apostolou <[email protected]> Date: Mon Apr 29 18:49:45 2024 +0300 Include qs and bcb index in all dumped filenames commit ab69bcfe796df202f2c90f4833e70d9105ea18c2 Author: Panagiotis Apostolou <[email protected]> Date: Mon Apr 29 13:44:31 2024 +0300 Small refactoring in dispatch/traceRays resources Dispatch and TraceRays outputs now support descriptor arrays commit a0f6295c3a61155bfdf21712e45ac515fbc0be7e Author: Panagiotis Apostolou <[email protected]> Date: Fri Apr 26 17:56:27 2024 +0300 Write dispatch and trace rays params in output json commit 3b22d77ba71293698f0e7135c0286f8f962cce86 Author: Panagiotis Apostolou <[email protected]> Date: Fri Apr 26 17:56:05 2024 +0300 Avoid some crashes from VulkanReplayDumpResourcesJson commit eb516884d629a3fb9b01b027c5f0c82efb050e2c Author: Panagiotis Apostolou <[email protected]> Date: Fri Apr 26 17:02:56 2024 +0300 Simplify calls to GetFormatAspects() commit f5d493ac201763bf5172a49092a479d781ce5253 Author: Panagiotis Apostolou <[email protected]> Date: Fri Apr 26 16:53:00 2024 +0300 Help function to get shader stage name commit 0b17b16ac1020a6c49f710fcb8b5d10dd2a19079 Author: Panagiotis Apostolou <[email protected]> Date: Fri Apr 26 16:08:30 2024 +0300 Write dump resources options in json output commit 4d84f3ff6c2c6a763ffed4910154ad284e4d7ef7 Author: Panagiotis Apostolou <[email protected]> Date: Fri Apr 26 10:47:05 2024 +0300 Enhance dump resources json output for dispatch/traceRays commit ea4300f8da1f97cb1ad19a16362fcda09a65932d Author: Panagiotis Apostolou <[email protected]> Date: Thu Apr 25 19:04:49 2024 +0300 GenerateOutputJsonDrawCallInfo makes more sense like this commit cf613dbc4d9b3c43df6152dd87efc0d5a59df97f Author: Panagiotis Apostolou <[email protected]> Date: Thu Apr 25 18:45:57 2024 +0300 Fixed DrawCall entries to be an array in json output commit ed1a00d6698e5cb54711150a84cf21f9b2341810 Author: Panagiotis Apostolou <[email protected]> Date: Thu Apr 25 10:37:21 2024 +0300 Enhance dump resources json output commit ae2192ebf3611ba8955763d52c656094fa00ebaf Author: Panagiotis Apostolou <[email protected]> Date: Mon Apr 22 09:47:22 2024 +0300 Renamed replay options variable commit 4f52ec8bd5fa552e790a9c0f3877401dee8d7e9b Author: Panagiotis Apostolou <[email protected]> Date: Mon Apr 22 07:39:24 2024 +0300 Simplify attribute name used for the scale factor commit f41f4bd03e6dc49886778e815601435445ff9368 Author: Panagiotis Apostolou <[email protected]> Date: Fri Apr 19 12:46:06 2024 +0300 Remove redundant _ from filenames commit eec15cd2fd42456ffd8d626740058d2eac640cf8 Author: Panagiotis Apostolou <[email protected]> Date: Fri Apr 19 12:23:29 2024 +0300 FinalizeCommandBuffer needs to be called twice when dumping before commit cbc60cb0fbb1fcc205515f1fd918bc0304f31b27 Author: Panagiotis Apostolou <[email protected]> Date: Fri Apr 19 11:56:17 2024 +0300 Fixed a copy/paste type commit 05ff01e3eced4cb7d15ff10fa18a6f1e622009ab Author: Panagiotis Apostolou <[email protected]> Date: Fri Apr 19 11:12:09 2024 +0300 Add missing index from depth attachments in output json commit 893faea31ee2e93efbfe143888d4be92b65dc8bd Author: Panagiotis Apostolou <[email protected]> Date: Fri Apr 19 10:39:03 2024 +0300 Fixed a copy/paste mistake commit 6bdf6fb2839fec037cb2103e9ebfc42a22a917ae Author: Panagiotis Apostolou <[email protected]> Date: Fri Apr 19 10:35:36 2024 +0300 Queue submit indices do not need to be sorted commit b413563f92c31cec9cb77fd9beaaee42a52b02ad Author: Panagiotis Apostolou <[email protected]> Date: Thu Apr 18 09:32:08 2024 +0300 Relax checks for sorted indices BCB and QS indices can be unsorted commit 1735a034b65251116a77528f8845cdb060bb0ec1 Author: Panagiotis Apostolou <[email protected]> Date: Thu Apr 18 07:32:04 2024 +0300 Added missing params from documentation commit 24352c9e8b64f2cf7cbe26534fdae5113f6623eb Author: Panagiotis Apostolou <[email protected]> Date: Wed Apr 17 14:07:53 2024 +0300 Fixing conflicts that escaped last rebase with dev commit 78332561940d5c7b1ea8c3d991d86ba6a80407c5 Author: Panagiotis Apostolou <[email protected]> Date: Tue Apr 16 08:09:13 2024 +0300 Do not delete old dump files commit 45e4d1ac2e0aa7913edfef3139cf243a5f916f71 Author: Panagiotis Apostolou <[email protected]> Date: Mon Apr 15 16:23:57 2024 +0300 Small changes in VulkanReplayDumpResourcesJson - Intermediate smart pointer to nlohmann::ordered_json was not necessary and is removed - VulkanReplayDumpResourcesJsonData is replaced by a template function - Scale factor is printed in the header - Print errno in case fopen fails commit 456c210b037ac3a108166837bbb692af75a02597 Author: Panagiotis Apostolou <[email protected]> Date: Mon Apr 15 15:31:15 2024 +0300 Add missing file extensions in output json commit 6f94a0faafabdf1b3f9326456876bea7e6966741 Author: Panagiotis Apostolou <[email protected]> Date: Mon Apr 15 15:14:34 2024 +0300 Handle missing dir separator when deleting old dumped files commit d9962ec4a92be9de88e477a00ba580bf49b3531a Author: Panagiotis Apostolou <[email protected]> Date: Fri Apr 12 12:22:47 2024 +0300 Enrich error messages commit 20256b8153e90c035f61d5020c76dc1c3798e29c Author: Panagiotis Apostolou <[email protected]> Date: Fri Apr 12 12:22:19 2024 +0300 Release resources instead of terminating process commit c2a3a906e38762fcc5b1b96612a888ea2577bfa5 Author: Panagiotis Apostolou <[email protected]> Date: Sat Apr 6 09:53:18 2024 +0300 Better handling for descriptor binding sizes and allocations commit e4dfba3f9da1f1291e63dc8a65a06a036e9fe3a3 Author: Panagiotis Apostolou <[email protected]> Date: Sat Apr 6 09:48:40 2024 +0300 Some fixes in WriteAstcImage's error checking logic commit 03592ce6864b36242435889b0e69ac1614e2b6a7 Author: Panagiotis Apostolou <[email protected]> Date: Fri Apr 5 17:45:09 2024 +0300 Dynamic offsets for descriptors do not work correctly commit 05bc3a53540c460cbfe38bc51e6c55e085b1033f Author: Panagiotis Apostolou <[email protected]> Date: Fri Apr 5 13:50:26 2024 +0300 Handle dynamic rendering commit cdcea61abde5ca2d1447fdc2c7fe4288a900904f Author: Panagiotis Apostolou <[email protected]> Date: Thu Apr 4 11:27:12 2024 +0300 Basic dumping for inline uniform block descriptors commit b4e73c5842deca2a895f387f62cb11af53397a61 Author: Panagiotis Apostolou <[email protected]> Date: Thu Apr 4 09:40:22 2024 +0300 Support dynamic offsets for dynamic uniform and storage buffers commit a443a07ec5df5fca4ddde659b3d1577a16c7a344 Author: Panos Apostolou <[email protected]> Date: Thu Mar 7 12:18:41 2024 +0200 Split dump resources code into several files Cli option for dumping depth attachment Cli option to specify which color attachment to dump Update documentation with latest dump resources cli options Minimize # of arguments passed to dumping context classes Dump resources: Dump vertex and index buffers Hide some global constants Updated documentation for vertex/index buffers Refactor help text of dump resources params Option for one output json per dumped command Dump immutable shader descriptors Implement overrides for CmdPipelineBarrier2[KHR] Dump R8_UNORM images Isolate output json generation in a separate function Handle descriptor index arrays for Dispatch/TraceRays too Track immutable descriptor in Dispatch/RayTracing context Dump immutable descriptors from Dispatch/TraceRays Group functions according to their classes in the .cpp file Fix png image format Align dump resources and screenshot handler Dump astc compressed textures as .astc images Check for discrepancies between shader descriptors Check for discrepancies between descriptors detected by SPIRV-Reflect and the Vulkan descriptors Some clean ups for astc textures Dump immutable descriptors for Dispatch/TraceRays Store mutable resources clones in the command parameters Split dump resources code into several files commit 84533afa5133808e41fc5d8591f528436ea11f5b Author: David Pinedo <[email protected]> Date: Tue Feb 27 14:50:35 2024 -0700 Dump resources documentation tweaks commit aa6af555aa90297d6ae4016aaa0ea8937b06e113 Author: Panos Apostolou <[email protected]> Date: Fri Feb 23 12:57:45 2024 +0200 Dump resources detailed documentation commit fa1efbb0dfc69c6da43c0caaadb1e3ee97d0cbdf Author: Panos Apostolou <[email protected]> Date: Thu Mar 7 09:28:21 2024 +0200 Fix some leftover conflicts after merging with dev commit a0f70b60f280b65e3f71ba87b955053aa2cf01b6 Author: Panos Apostolou <[email protected]> Date: Thu Feb 29 17:11:56 2024 +0200 Dumping resources boolean vulkan option had stopped working commit 84f8364da2b70b9aae74a7642a6905aacac95271 Author: Panos Apostolou <[email protected]> Date: Tue Feb 27 11:37:08 2024 +0200 Fix linux build Some difficulties finding libjsoncpp between different platforms commit 49cf8ba356c81c9a1325c75f39a71c88d1cd502d Author: David Pinedo <[email protected]> Date: Mon Feb 26 15:56:58 2024 -0700 Add more block indices to dump resources json output commit 7f24082215c893d50563fc97fe016202315e5044 Author: David Pinedo <[email protected]> Date: Mon Feb 26 14:14:46 2024 -0700 Use static jsoncpp library on Windows commit 9b7986520d971fbea6cc92785bf4cd5b25e7289e Author: Panos Apostolou <[email protected]> Date: Mon Feb 26 10:04:44 2024 +0200 Moved variable members at end of class declaration commit 0d138988732786b4222a81e8c727b37478fb7f4a Author: David Pinedo <[email protected]> Date: Fri Feb 23 13:24:55 2024 -0700 Added win32 jsoncpp.lib and spirv-reflect-static.lib to external/precompiled Also updated these libs for win64 Also updated include header files for these libs Also tweaked a CMakeLists.txt file commit 914fb2941d33019945aa0699184fc5e88109f517 Author: Panos Apostolou <[email protected]> Date: Fri Feb 23 12:02:29 2024 +0200 Temporarily disable png format for dump resources commit 4e5747f6fde9f311118fb53ad4a92661e3f7154e Author: Panos Apostolou <[email protected]> Date: Fri Feb 23 11:51:12 2024 +0200 Recompiled SPIRV-Reflect android binaries for x86 and x86_64 Recompiled with -fPIC parameter this time commit cd6ae12893fb5f471056761b7146c57c5fa598d0 Author: Panos Apostolou <[email protected]> Date: Fri Feb 23 10:55:31 2024 +0200 Add jsoncpp precompiles binaries for x86 and x86_64 for Android builds commit 9f506950019c6fb484757774fedc4ac53d22bc7b Author: David Pinedo <[email protected]> Date: Thu Feb 22 16:38:13 2024 -0700 Improved --dump-resources arg error messsages commit 1b5d247f3a248c0b7f2d8e757f4325708dc87380 Author: David Pinedo <[email protected]> Date: Thu Feb 22 15:59:36 2024 -0700 Implement json output for TraceRays and Dispatch commit 21b62a1100e5eb4cd36f7aa8258bc4d1f076535f Author: Panos Apostolou <[email protected]> Date: Thu Feb 22 14:36:17 2024 +0200 Fix Android compilation after merging json output patches commit 84e20d618ba97251514cd655bb0ffe8cb1f5c568 Author: David Pinedo <[email protected]> Date: Thu Feb 1 11:40:14 2024 -0700 Change cli help text Fix error message json output partial implementation cli arg parsing fixes, fix an incorrecty merged file - fix parsing when dump args are on command line - fix Windows compile errors - correct misspellings in error messages - fixed recent incorrect merge of USAGE_desktop_Vulkan.md Additional json output implementation Replace all whitespace with spaces in dump resources command input line Clear json output at start of each block Fixed bug in which a short block output after a long block would have stuff in it from the long block. Include all target images in json output commit b7f250f9c2b3f5c1e258e45b6bd920b1dbde2ea9 Author: Panagiotis Apostolou <[email protected]> Date: Tue Feb 20 17:52:14 2024 +0200 Fix hangs when dumping from multiple command buffers commit aae2a026918bcd9b39889f323a2f6ed8aec2030b Author: Panagiotis Apostolou <[email protected]> Date: Mon Feb 19 17:01:21 2024 +0200 Fixes in the dumping context destructors commit ac9b33812cc2eb11409c0c6a2f92a2123eda9a0b Author: Panagiotis Apostolou <[email protected]> Date: Mon Feb 19 15:16:56 2024 +0200 Abstract out blit logic in VulkanResourcesUtil commit 1d57d777076e77e3ce4de99a9b23f02239e78fa2 Author: Panagiotis Apostolou <[email protected]> Date: Fri Feb 16 18:14:28 2024 +0200 Fixes in VulkanResourcesUtil Fixes in the scale image path: - Pipeline barrier after Blit was using stale/wrong srcAccessMask and dstAccessMask - Some artifacts are seen on amd 7800 and on the S22 when Blit command uses LINEAR filter. Switching to NEAREST appears to be fixing these artifacts - Stricter checks are performed if the implementation supports the requested combination of image format and tiling. It is possible that an implementation does not support to perform blit in some cases. - Since scale is allowed to be greater than 1.0f the scaled image dimensions need to be checked with the limits impossed by the implementation Other fixes in VulkanResourcesUtil: - Fixes in some src access masks and stages commit da00840d00f27185a8093563c54bb8bd2a228f65 Author: Panagiotis Apostolou <[email protected]> Date: Fri Feb 16 12:23:26 2024 +0200 Temporarily disabling mutable resources backup/restoring commit 8e2b8427317f385755c6aed777e0a45924e04af9 Author: Panagiotis Apostolou <[email protected]> Date: Fri Feb 16 11:26:22 2024 +0200 Removed most of debug printfs from the dump resources class commit 66771939e76782c3b6ba70876f95cbb845cfc9cf Author: Panagiotis Apostolou <[email protected]> Date: Fri Feb 16 11:12:16 2024 +0200 Renamed the resourcer dumper variable with a more meaningful name commit 4d73c44b950bc7d3bdcf01a0259e139bd47b0a90 Author: Panagiotis Apostolou <[email protected]> Date: Fri Feb 16 11:09:25 2024 +0200 Small fix for VulkanReplayConsumerBodyGenerator All api entries should check if resource dumping is enabled in the same manner commit 996edc89bb0ff7efc3309251227947d8e0404851 Author: Panagiotis Apostolou <[email protected]> Date: Thu Feb 15 15:45:18 2024 +0200 Another fix for multiple render passes The logic for which command buffers take the new render pass and which take the original render pass has been fixed Command line option for dump resources output directory Copied dump resources command line options to Android usage doc commit b7450a150df9f739fc57c463c3adee26b6f31133 Author: Panagiotis Apostolou <[email protected]> Date: Thu Feb 15 12:40:08 2024 +0200 Allow for equal consequtive indices in the QueueSubmit index list commit 18e9c0c3d24e8f9075c8380ff70afed92c10ca75 Author: Panagiotis Apostolou <[email protected]> Date: Thu Feb 15 09:42:17 2024 +0200 Handle empty render passes Empty render passes were attempted to be handled and be assigned draw calls that belonged to subsequent render passes. Now they should only be recorded without special treatment commit 09cf7dfabf437bf73c14d47dad2741985ee223ae Author: Panagiotis Apostolou <[email protected]> Date: Thu Feb 15 09:34:04 2024 +0200 Don't assert when resource dumping is disabled commit 618d3ad071afcca0dd4abe4c85c6eb144f8c7e74 Author: Panagiotis Apostolou <[email protected]> Date: Wed Feb 14 09:47:14 2024 +0200 Stricter indices checks in the cli json parser Fixes for png writer Bmp writer can dump the whole line into the file Hide conversion buffer inside ConvertIntoTemporaryBuffer commit c6cf9958faf676a3585ae0dffd03294d6ad883be Author: Panagiotis Apostolou <[email protected]> Date: Mon Feb 12 12:27:19 2024 +0200 Change class and file names for consistency commit 9b60c48feb1b1057b9d51f0c137486b263902a5a Author: Panagiotis Apostolou <[email protected]> Date: Mon Feb 12 11:04:55 2024 +0200 Filename generation moved to separate functions commit f4e866abfcb4642d1c88f726cf7ce97b01ef0ec5 Author: Panagiotis Apostolou <[email protected]> Date: Mon Feb 12 09:33:27 2024 +0200 Removed render pass info printfs commit cfffc4756181d548cda6d0a048c7c9b011240a49 Author: Panagiotis Apostolou <[email protected]> Date: Mon Feb 12 09:29:34 2024 +0200 Removed stale timing logic commit 8fde5fb0b9c6cbc217c7078909f34d00aa4e41e0 Author: Panagiotis Apostolou <[email protected]> Date: Mon Feb 12 09:26:11 2024 +0200 Some clean up in the dumped filenames commit 04c6f080ea5f81b8e2a6fedf5afed6498cfc113a Author: Panagiotis Apostolou <[email protected]> Date: Mon Feb 12 07:59:30 2024 +0200 Narrow down dumped resources Shaders can have resources defined in them that are not accessed inside their code, let alone updated. Using SPIRV-Reflect's accessed flag we can detect these resources and ignore them when dumping Dispatch/TraceRays resources commit bf65684322e857e410e6076b921dd9b72feac5fc Author: Panagiotis Apostolou <[email protected]> Date: Mon Feb 12 07:45:35 2024 +0200 Buffer writer was leaking file descriptors commit dcbaf7a8db43f39aa067f46615cdb788ff101e9b Author: Panos Apostolou <[email protected]> Date: Thu Feb 8 09:24:11 2024 +0200 Added support for R16G16B16A16_SFLOAT in the image writter commit d6c5e3421f91fc620b03c187d54c4ced942b8265 Author: Panos Apostolou <[email protected]> Date: Mon Feb 5 18:22:31 2024 +0200 Random small fixes in dump resources commit 66a8ce1d76e2aefabcb38bbcba1c3ed7b9d35c45 Author: Panos Apostolou <[email protected]> Date: Fri Feb 2 11:14:07 2024 +0200 Do some more elaborate sanity checks on dump resource indices commit adede0055533b6cd84682a624b7cf99a748fb093 Author: Panos Apostolou <[email protected]> Date: Fri Feb 2 09:25:26 2024 +0200 Renamed function Renamed DumpingSubmissionIndex to the more sensible ShouldDumpQueueSubmitIndex commit 18ade25c696b91bab8bd94069cf9daa4f77eb1d7 Author: Panos Apostolou <[email protected]> Date: Thu Feb 1 16:28:37 2024 +0200 An attempt for better handling of errors during submissions commit 9d37511664f7a152874fced7797b551318cb5857 Author: Panos Apostolou <[email protected]> Date: Thu Feb 1 12:51:06 2024 +0200 Some fixes for the scaling path in VulkanResourcesUtil - Images with more than 1 mip levels are now handled - Taken care to transition the new scaled image in the correct layouts - Pipeline barrier to make sure blit is completed before copying the new image commit 9a7eaeb9b5f00e1ece0ab44d91038d37ae08561e Author: Panos Apostolou <[email protected]> Date: Wed Jan 24 14:18:31 2024 +0200 Dispatch/TraceRays dump resources initial commit Fix some leftovers from merge with dev Fixes for Dispatch/TraceRays dump resources Fixed several mistakes in DispatchRaysCommandBufferContext::CopyImageResource Removed redundant dumping resources replay option boolean Added hard coded indices for temple run on the S22 Fix D3D12 build Don't initialize dump resources indices from global variables. ...and a few other minor tweaks Dumping CmdTraceRays resources is now handled by resource dump class Fixes in Override pipelines creations Cache info should be checked for null before dereferencing Integrated format conversion into png writter Y inversion of image can be handled in WriteBmpImage Dumping resources before Dispatch/TraceRays Removed printfs from PerformReflectionOnShaderModule Move dump resources arg parsing into a separate file clang-format changes Fix namespace declarations in parse_dump_resources_cli.* Integrade dump resource json parsing in Android Also replaced libjsoncpp pre-build binaries for Android with Release builds instead of Debug Fix for dumping Dispatch/TraceRays Dumping was done from wrong image Implement scaling of dump images Fix dump of 16-bit depth to png files Fixed bad stride when writing the file Dumping unhandled formats as plain binary files Dump resource image format can be configured from CL Some minor fixes for scaling for dump resources Enable dump resources scaling in Android too Removed hard-coded dump resources indices commit 9475cac4001dc84b390fe221f93e3b1720e12986 Author: David Pinedo <[email protected]> Date: Tue Jan 23 15:53:21 2024 -0700 Fix an error check commit 5b8751b45f9a784240cf6981fba191bea349bdff Author: David Pinedo <[email protected]> Date: Tue Jan 23 15:31:31 2024 -0700 Rework cli to allow for multiple subpasses commit 051fc22ac953504b8562926648f24da7b268985e Author: David Pinedo <[email protected]> Date: Thu Jan 18 13:16:01 2024 -0700 Update spirv-reflect header file commit 1b3080d1c07bcdaaa683d8a68926527dc51b2ccf Author: Panos Apostolou <[email protected]> Date: Thu Jan 18 09:44:59 2024 +0200 Moved jsoncpp lib to appropriate folders Moved jsoncpp under the appropriate external/precompiled directories Added pre-compiled binaries for linux 32bit, android 32 and android 64 commit 5d6c22aea369fab990ee84c5365f180d32a7bd89 Author: David Pinedo <[email protected]> Date: Wed Jan 17 12:59:23 2024 -0700 Command line interface: reworked args including adding json file arg commit df2099076b71dd3e5bebc8784eaeb4a2b5a5ef9f Author: Panos Apostolou <[email protected]> Date: Thu Dec 7 08:18:13 2023 +0200 Dump resoruces initial commit Dump resources starts tracking descriptors This should be the logic for dumping vkCmdTraceRaysKHR Moved indices in replay options This should be passed as command line options Doing some primitive resource tracking Separate color from depth attachments Dumping depth attachment Dumping compute resources seems to work Dumping storage buffers to binary files Each pipeline has its own descriptors Perhaps draw calls can be isolated Basic logic for dumping multiple DCs Works for vkCube Convert DIS and TR indices into vectors like for DCs Rename member variable names to align with project's coding style Log errors for error codes from Vulkan calls Switch to unordered_maps Back up mutable resources Handle multiple render passes Handle subpasses Support the rest of the vkCmdDraw* api entries Fixed Android build Better handle of subpasses Render area should be per render pass, not per sub pass DumpAttachments function belongs better to CommandBufferStack Timming submission and dumping times Total submssion times (total time to submit and wait each command buffer) and total dumping times (total time it takes to extract render targets and dump them in a file) are printed Mulitple subpasses broke multiple render passes Now both cases and combination of them should work Handling VK_FORMAT_X8_D24 More fixes for render pass handling Support mulitple BeginCommandBuffer Use FindCommandBufferStack instead of searching manually Update vkCmd[Begin|End]RenderPass2 and vkCmdNextSubpass2 Deleted commented out code Image layout of render target images is handled by the render passe clones Dumping render targets right before draw calls is now possible Add --dump-resources command line option for Vulkun CLI params now correctly passed to VulkanReplayResourceDump class Draw calls from command line are now stored in vector of vectors Fixes to last merge Add --dump-resources-before-draw option Merged DavidP's changes Dumping before draw calls broke dumping after draw calls Small fix for cmdNextSubpass Fix compile error when D3D12 not enabled. Cmd line args work now. Keep hardcoded index values in vulkan_replay_options.h Keep the hardcoded indices until we have a way to provide these values from a file via a command line option Perform shader reflection using SPIRV-Reflect Removed some stale variables Remove SPIRV-Reflect submodule and include precompiled binaries VulkanReplayResourceDump can now handle empty vectors Minor clean up for render targets Track bound pipeline VulkanResourcesUtil can skip image transition If image is already in the TRANSFER_SOURCE_OPTIMAL layout then the pipeline barrier can be omitted More fixes for render passes in dump resources - Inject appropriate external renderpass dependencies. - The image layout reported to VulkanResourcesUtil class was wrong resulting in image corruption. - VK_IMAGE_USAGE_TRANSFER_SRC_BIT is injected in all images when dump resources is enabled Two new formats for image writter Added support for VK_FORMAT_B10G11R11_UFLOAT_PACK32 and VK_FORMAT_A2B10G10R10_UNORM_PACK32 in image writer class Add spirv_refect precompiled static lib Added some error checking logic in image writer Delete existing dump files on Android On Android there is an issue with files which are manually deleted (for example from adb shell) then fopen with "wb" might fail with the error that the file already exists. Deleting the file from code can workaround this. Code generation for dump resources commit 329c7f77515e4a04a6f872d4db442a96160b0978 Author: David Pinedo <[email protected]> Date: Thu Oct 26 11:48:05 2023 -0600 Command list resource tracking - first pass Insert missing newline in generated file generated_vulkan_replay_consumer.cpp Add debug code, will wanto back out most of this change More changes. Define cb save struct. Save cur cb in struct. Compiles. Param buffer is passed to replay funcs in call_info Can capture a cmd buf as raw data from capture file Replay of saved cmd buffer works. Includes test code embedded in endcommandbuffer. Need to fix it all up. Also, added a global var, will need to address this. g_decoder is no more, decoder added to ApiCallInfo. TESTCODE is autogened Fixes to handle nesting of begincmdbuf/endcmdbuf. Remove some unneeded vars. commit 976d4971710db75dcf3c2fc048a26ad6ef901568 Author: Locke Lin <[email protected]> Date: Wed May 15 21:41:15 2024 -0600 dx12 dump refactor Move all dump code from Dx12ReplayConsumerBase to Dx12DumpResources. In Dx12ReplayConsumerBase and Dx12ReplayConsumer, if it needs to do dump resources tasks, it becomes if (options_.enable_dump_resources) { GFXRECON_ASSERT(dump_resources_); dump_resources_->...(...); } or if(options_.enable_dump_resources) { GFXRECON_ASSERT(dump_resources_); auto dump_command_sets = dump_resources_->GetCommandListsForDumpResources(...); for (auto& command_set : dump_command_sets) { command_set.list->...(); } } commit c565cd4e6af2542e5610c6a0c418cb012393da99 Author: Brad Grantham <[email protected]> Date: Thu Jun 6 10:23:38 2024 -0700 count is greatest + 1 commit 31f7061caa74e7b8421d273570fe970192411644 Author: Panagiotis Apostolou <[email protected]> Date: Fri May 31 16:01:53 2024 +0300 Try to detect p…
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This is a note to myself and a call for feedback on adding support for Vulkan video - a group of extensions, as described here, for example:
https://www.khronos.org/blog/khronos-finalizes-vulkan-video-extensions-for-accelerated-h.264-and-h.265-decode
Extensions VK_KHR_video_queue, VK_KHR_video_decode_queue etc.
One thing to add will be the creation of
VkVideoSessionKHR
together with allocation and binding of memory required by it, similarly to the existingvmaCreateBuffer
andvmaCreateImage
. The new function should:vkCreateVideoSessionKHR
to createVkVideoSessionKHR
object.vkGetVideoSessionMemoryRequirementsKHR
to query for memory requirements.vkBindVideoSessionMemoryKHR
to bind this memory with this session object.VkVideoSessionKHR
object and an array ofVmaAllocation
objects.The function could look somewhat like this:
One difficulty is that this object requires a whole sequence of memory allocations of unknown length, not just one. This length is not known before the session object is created. Questions:
vmaAllocateMemoryForBuffer
, so that users need to create the session object themselves, query for memory requirements to know the length, and then allocate memory using VMA.VmaAllocationCreateInfo
structure if the session object might require multiple allocations from different memory types (e.g. one from GPU and one CPU memory)? Should the function accept only some new, simplified structure that doesn't offer manual control over memory types?The text was updated successfully, but these errors were encountered: