Releases: google/gapid
1.6.1
Graphics API Debugger, version 1.6.1 contains a few bug fixes and improvements to the GAPID Perfetto integration.
Fixes
- Make Android Perfetto tracing work on Windows
- Fix for taking a perfetto trace on desktop
- Fix Perfetto help text
- Disable the horizontal mouse wheel in the Perfetto view
- Look for the Perfetto config in GAPID package
- Update to latest Perfetto
- Fix handling of CPU/CPU Frequency track presence
- Handle empty counter results
- GPU Queue/Render stages UI
- Don't try to dispose the clipboard if the display is already disposed
v1.6.0
Graphics API Debugger, version 1.6.0 contains a number of improvements and bug fixes.
Vulkan Features & Fixes
- Fix SEGV when using invalid image views
- Guard invalid device memory flushes
- Fix virtual swapchain
- Fix DCE incorrectly removing vkDeviceWaitIdle calls
- Add VkApplicationInfo in Instance state object
- Add Stadia Support
- First pass on adding multi-planar images
- Add VK_KHR_draw_indirect_count extensions
- Add support for VK_KHR_image_format_list
- Add VK_AMD_buffer_marker and VK_EXT_debug_utils extension support
- Fix for descriptors if we cannot parse the SPIR-V module
GLES Features & Fixes
Android Features & Fixes
- Fix GAPIR Android app termination
- Fix the case where some applications mis-label their ABI
- Use the Android Q settings driven layers to trace
- Add standalone APK creation to export_replay
- Replay frame delimiters for EGL
- Automatically unlock device screen when possible
- Fix tracing on Chromebooks
General Features & Fixes
- Added help text to gapir
- Check if the GAPIR connection exists before shutting down
- Initial Perfetto Support in GAPIS
- Launched gapid.dev
- Update to latest golang runtime
- Initial scaffolding for profiling replays
- Main Perfetto UI for System Profiling
- Fix the memory copy misalignment bug in memory view
- Make two UI modifications in Welcoming window and Help-About dialog
- Perfetto Counter UI and GPU Group
Command Line Tools
libinterceptor v1.0
Build of libinterceptor Android shared libraries to be used by the build.
v1.5.0
Graphics API Debugger, version 1.5.0 contains a number of improvements and bug fixes
Bug Fixes:
- Vulkan: Fix stencil image data priming
- Don't rely on context cancelation to release a Vulkan device.
- Fix the keyboard menu shortcuts.
- Fallback to glReadPixels if glReadnPixels is unavailable.
- Correctly set the target/min SDK API.
- Handle a missed GL_HALF_FLOAT vs GL_HALF_FLOAT_OES case.
- Fix reading of depth textures/buffers in ODR.
- Work around exception in the report view on MacOS.
- Shutdown the gRPC server on interrupt.
- Fix SEGV when using invalid image views.
Improvements
Command-line tool fixes
v.1.4.0
Graphics API Debugger, version 1.4.0 contains a number of improvements and bug fixes for the trace and replay use cases.
Bug Fixes:
- Fix bug when invalid image aspect will be referenced.
- Allowed changes to the SSH config while gapis is running.
- Fix effect of pointer[n] for n > 0
- Fix condition on shader cross-compilation
Improvements
v1.3.1
Graphics API Debugger, version 1.3.1 contains a number of new features, bug fixes and optimizations to trace and replay.
General Fixes:
Android fixes:
- Fix path in Android's
hasGLorGLES
. - Add the API level to the device label.
- Fix JDWP interception to work if debug names are missing.
- Handle a new JDWP signature for tracing.
- Query the SDK version for Android devices.
- Handle (some) PLT type functions in libInterceptor.
OpenGL ES Fixes
Vulkan features:
- Added a dependency graph visualization tool
- Switch to new (dependency graph) dead code elimination
- Vulkan: sampler_ycbcr_conversion step 3, bind memory for planes
- Vulkan: Sampler_ycbcr_conversion step 2
- Vulkan: Extension sampler_ycbcr_conversion Step 1
- Vulkan: support of VK_KHR_maintenance3 extension
- Vulkan: Support for external memory/fence/semaphore capabilities
- Vulkan: Support of VK_KHR_maintenance2 extension
- Vulkan: Show first layer in case of layered rendering
Vulkan fixes:
- Clear the global
PhysicalDevices
map onvkDestroyInstance
. - Fall-back to using all descriptors if we can't parse the SPIR-V.
- Handle the case where we destroy an ImageView attached to a framebuffer.
- Vulkan: Rebuild pNext for VkDeviceCreateInfo
- Vulkan: Fix image depth in
accessImageSubresourceSlice
- Make sure that the image/view exist before deleting them.
- Vulkan: A list of low hang extensions toward Vulkan 1.1 support
- Vulkan: Correctly handle 3D images with 2D views
- Vulkan: Added
Views
field toImageObject
to store image views - Vulkan: Fix wrong aspect flag used in image primer buffer copy job
- Mute the validation layer output on the gapir side by default
- Vulkan: 2D <-> 3D image copy support
- Vulkan: Fix state rebuilder to handle status change in query pools
- Vulkan: Fix the attachment image layout tracking
- Fix error in VkBeginCommandBuffer.
- Vulkan: Fix trace behavior of vkCmdCopyBufferToImage.
- Vulkan: Fix
BasePipeline
value set invkCreate*Pipelines
- Vulkan: Fix infinite loop in state_rebuilder.
- Vulkan: Guard access to pipeline DynamicState and push constants
- Vulkan: Fix incorrect image layout for multi-layer-level depth/stencil images
- Vulkan: Validate command buffer state when adding commands
- Vulkan: Validate handles in vkCmdBindDescriptorSets
UI Fixes:
- Fixes the intinite loop in the memory view.
- Lower the verbosity of the GRPC log.
- Use
SaveCapture
in favor ofExportCapture
to support large files. - Bunch of Shutdown Fixes
Build Fixes:
- Minor changes to fix build on Xcode 10
- Fix Macos build
- Add a
@gapic_third_party
indirection to the gapic build.
Command Line Tools:
- gapit: print capture id when loading a capture
- gapit dump_resources: include shader type in file extension
- Added gapit status.
- Gapit benchmark: stop gapis trace before closing client connection.
Additional features:
- Allow the remote ssh cfg to be parsed from json string
- Configurable default replay cache path for remote ssh devices
Optimizations:
v1.2.1
Graphics API Debugger, version 1.2.1 contains a number of new features, bug fixes and optimizations to trace and replay.
New Features:
Command Line Tools
- New
enum_lookup
command for outputting enum names by value - Use existing shader type in gapit replace_resource.
- Export_replay using original device.
- Most gapit verbs can now take a capture ID instead of a gfxtrace file.
Optimizations:
Fixes:
- Minor fix for the temporary directory for on-disk cache
- Allow partially valid results returned from
find
command when listing files and directories - Check for oob command path.
- Add create index to resource handle string.
- Change kMaxFramebufferObservation to 4K.
- Set the maximum number of ssh connection to a ssh remote target to 15
OpenGL ES Fixes:
- Fix Compressed Texture Compat
- Avoid querying GLES 3.0 features in 2.0.
- Correctly handle texture layer FB attachemnts in DCE.
Vulkan Fixes:
- Fix vulkan-smoketest replay
- Support of VkTrimCommandPoolKHR
- Vulkan: Do not allow nil texture data
- Vulkan: Drop VkDestroyXXX and VkFreeXXX commands that refer to not tracked handles
- Stop aborting on some handle failures.
- Vulkan: Fix framebuffer and querypool creation for initial state
- Vulkan: Fix some image layout errors reported by validation layers
- Vulkan: Track the const pNext pointers for all supported cases
v1.2.0
Graphics API Debugger, version 1.2.0 contains a number of new features, bug fixes and optimizations to trace and replay.
New Features:
- New UI to pick the device used for replay and new support for OpenGL ES on-device replay
- New experimental support for OpenGL ES Mid-Execution capture
- Trace dialog is now uniform across all trace targets
Vulkan
- Added support for replaying to the screen on Windows and Linux
- Added the option to export replay payloads for later replay with gapir
- Add overdraw as option to GAPID UI framebuffer view
- Vulkan validation layer output is now included in the Report view
Command Line Tools
- New
gapit stats
verb for printing capture statistics - New
gapit memory
verb for a breakdown of Vulkan memory usage gapit
can now replace shader source in a.gfxtrace
gapit screenshot
can now specify an attachmentgapit state
filtering now supports wildcardsVkPipeline
s are now listed as a resource typegapit screenshot
can now create multiple screenshots in one call
Misc
Optimizations:
- Only take the slow-path in
MutationCmdsFor
if we really have to. - Don't encode commands pre MEC
- Drop the global lock around most of the Vulkan API commands
- Another way to drop raw bytes of the capture data
- Add
@spy_disabled
annotation to subroutines. - Pre-resolve dependency graph
- Switched the map iteration template to refs instead of copies.
- Add Dense map to the API language.
- Limit the size of replay resource data chunks to reduce memory usage
- Do not cache the instruction builder for replay execution
- Fix to reduce memory usage of
gapis video
. - Vulkan: Reduce DCE memory usage
- Optimize resource hashing
- Elide ALL commands that we are not trying to trace.
- Optimize byte slice copies
Fixes:
- Increase the connect timeout to the gapii socket.
- Linux: Be more aggressive about keeping the memory tracker on.
- Return better error messages from remote ssh connection
- Fix type cast panic (bug #2190)
- Close ssh tunnel when either end closes the connection
- Fix an issue with linux remote-ssh package listing.
- Workaround an issue in golang 1.10.3 where a 4GB file is truncated.
- Use a more robust way to retrieve screen states
- Allow more memory in gapir if we are on desktop.
- Add support for rendering during replay to the surface
- Don't merge stdout/stderr on remote device-info.
- Overdraw: Check for format support and convert if necessary
- gapii/client: Use a timeout for the Dial
- Create gapic GL contexts ourselves on Linux.
- Fix command tree grouping by frame.
- Fix a bug in virtual swapchain
- Add a workaround for some Linux drivers.
OpenGL ES Fixes:
Vulkan Fixes:
- Fix an overrun in the dependencySync.
- Smarter check for temporary shader modules, renderpasses etc.
- Fix a bug in current DCE about dynamic offsets
- Ad-hoc fix to add a minimum image memory allocation size
- Fix incorrect traversal of descriptor bindings
- re-Fix wrong descriptor set indices when binding descriptor sets
- Made descriptor bindings refs.
- Cache the base pipeline only if the creating pipeling has derivative bit
- vkGetPhysicalDevice*PresentationSupportKHR reads and validate the physical device
- Added vkCmdBlitImage api implementation
- Fix typo in descriptor api.
- Update how we handle descriptor sets again.
- Fix wrong descriptor set indices when binding descriptor sets
- Remove explicit write in doVkCmdFillBuffer.
- Make sure we don't use uninitialized memory in BaseSwapchain::Destroy
- Fix bugs about linear images
- Warn when imageview aspect flags not subset of image aspects
- A few more small fixes around images and descriptor sets.
- Add a couple of checks around image usage.
- Copy depth aspect by rendering in overdraw
- Use framebuffer extent in depth aspect copy, fixes #2071
- Fix a DCE bug with vkCreateBufferView
- Reduce the num of cmds for state rebuilding again
- Fix the crash during tracing vkCmdFillBuffer
- State rebuilding optimization reduce the number of commands
- Fix Crashes caused by not using NewXXX ctor
- Fix the unit test failure due to nil query pool object
- Improve the queue selection logic during state rebuilding
- Fix Device Lost error due to using wrong queue for querypools
- Make associativity explicit for copy_clear_commands
- Allocation optimization for byte slice during state rebuilding
- Add support to BC4 and BC5 format
- Fix a bug in current DCE
- Fix crash at VkDestroyDebugReportCallbackEXT
- Fix missing fetches of physical device properties
- Vulkan Overdraw Tracking
- Lazily resolve Vulkan commands (actually all indirect commands)
- Fix a crash due to footprint builder
- Support pending VkFence signal
- Fix support of sparse buffer
- Image/Buffer view stores back refs to their users
- Fix crashes with Vulkan sparse bindings
- Fix for sparse binding, when unbinding a page.
- Fix for linear image with preinitialized intial layout
- Don't recreate framebuffers that have invalid image views.
- Dont prime depth by copy
- Handle VK_REMAINING_ARRAY_LAYER/MIP_LEVEL
- Cleaned up a bunch of error message in Vulkan.
- Disable our optimization for not re-priming undefined images.
- Now that we clean up images from views, handle that on recreation.
- [Fix command buffers whose recording spans...
v1.1.0
Graphics API Debugger, version 1.1.0 contains a number of bug fixes and improvements.
Note: Due to some of the changes, this is a file-format breaking release.
New Features:
- Works with Android P
- The geometry view now let's you customize how to display the vertex streams.
- Vulkan presentations on the compute queue inspected.
- You can now specify additional Android intent flags for tracing.
Optimizations:
Fixes:
- Fix for crashes on certain AMD hardware.
- Fix tonemapping sliders for certain HDR images.
- Fix for deviceinfo failing if there is no GL driver
OpenGL ES Fixes:
- Fix for OpenGL ES undefined framebuffer pattern.
- Fix for OpenGL ES replay when there's a bad command.
- Replay of Shaders > GLSL 330 will now work on host drivers that support it.
- Fix for bad replay of
glBindBufferRange
. - Fix crash when examining textures of type
GL_INT
. - Fix tracing of pre-compiled shader commands when not disabled.
- Improvements to the logging of replay errors.
- Fix
GL_MAX_VIEWS_OVR
inglGetInteger
- Add
GL_TEXTURE_BORDER_COLOR
toglTexParametervX
Vulkan Fixes:
- Reworked Vulkan Mid-Execution Capture
- Fix Vulkan trace and replay when the host doesn't have GL drivers.
- Coherent SSBOs are now correctly read.
- Vulkan commands that take a
nullptr
allocator now replay correctly. - Replay fix of the start of a Vulkan queue-submit.
- Replay fixes for
vkGetImageMemoryRequirements2KHR
. - Fix for tracing apps that use VulkanSDK loaders.
- Fix for commands getting dropped after repeat calls to
vkCreateInstance
. - Fix for the use of overflow descriptors.
- Fix replay on hosts with multiple GPUs.
- Fix for incorrect surface types being exposed.
- Fix for crash in
vkDestroyImageView
. - Fix bad replay of
vkBufferImageCopy
. - Fix replay of D24 textures.
- Fix crash in
vkDestroyDevice
. - Fix NPE on
vkDestroyImage
. - Clean up presentation and submission images.
- Fix the data dependency for destroyed framebuffers
- Fixes for Sparse Images
- Fix for missing
libvulkan.so
- Fix for tracing / replaying while validation layers are enabled
- Fix for not correctly tracking Vulkan image layout transitions
- Fix for replaying Vulkan applications that use debug report
- Fix segfault in deviceinfo for Vulkan
- Fixed a rare crash when
vkDestroyDevice
was in the trace
Check here for a complete list of changes.
v1.0.3
Graphics API Debugger, version 1.0.3 contains a number of crash fixes, including an important crash fix for macOS High Sierra.