Commit Graph

899 Commits

Author SHA1 Message Date
Jake Turner 6ce881d5da UI and Config support for dec/hex display option for Offsets or Sizes
Used when fields are marked as being an Offset or Size
Include simple latch to trigger a UI refresh when closing the settings dialog.
Currently only connected to if the Offset/Size format option is altered
2023-12-06 17:19:05 +00:00
baldurk 9057f0d2a2 Bump version to v1.31 2023-12-04 17:19:46 +00:00
baldurk 98dd806298 Remove duplicate docstring 2023-11-17 01:59:18 +00:00
baldurk 3976bba298 Add missing documentation strings 2023-11-17 01:43:19 +00:00
baldurk b0c97182f6 Implement baseline mesh shader on D3D12 2023-11-16 18:20:24 +00:00
baldurk 5ad3e67a2d Implement baseline mesh shader on vulkan
* This supports capture and replay of mesh draws, shader editing with printf
  support, overlays, and pixel shader debugging.
* Not supported yet include the mesh viewer and shader debugging.
2023-11-16 18:20:24 +00:00
baldurk 69dcb42a05 Add enums and API-agnostic handling for new task and mesh shader stages
* The enums are given after compute, to preserve indices for the normal vertex
  pipeline.
* Mesh dispatches are considered a new action type, rather than being bundled
  into the `Drawcall` type. This will allow them to be distinguished by API
  backends as needed. The UI treats them as drawcalls
* We apply this universally even though it's not relevant to D3D11/GL. It means
  a couple of empty array entries but it should not cause any significant
  issues.
* Shader messages will be identified by group and thread as with compute
  shaders. For mesh shaders there is an additional subdivision to identify them
  by task group, since each task group can submit a grid of mesh groups.
2023-11-16 18:20:23 +00:00
Er2 86cb3ebf80 Add FreeBSD operating system support. 2023-11-06 14:42:45 +00:00
baldurk 9a5e4aa5af Bump version to v1.30 2023-09-29 17:23:36 +01:00
baldurk 9d39b8e1a8 Reformat code for clang-format 15 2023-09-05 11:02:08 +01:00
Jake Turner 7631831821 Add "used" attribute to prevent exported symbol dead-stripping
Ideally would use "retain" but that would require upgrading to recent compilers in CI and the project.

__attribute__((retain)) function/variable to prevent linker garbage
collection.
2023-08-03 10:41:22 +01:00
baldurk 44be6bdfff Add documentation for return type 2023-08-01 10:00:54 +01:00
baldurk 7c1164e060 Tidy up and implement support for self capture on linux 2023-07-31 15:45:32 +01:00
baldurk 4087a46d87 Bump version to v1.29 2023-07-31 15:03:11 +01:00
baldurk 7c6b4633df Don't report unsupported file types as 'corrupted' captures
* This adds a specific error message if even the magic number doesn't look like
  a supported file type.
2023-06-23 18:53:41 +01:00
baldurk a6c1ba1fc5 Add support for VK_EXT_attachment_feedback_loop_dynamic_state 2023-06-21 11:40:42 +01:00
baldurk 4b87803071 Add support for VK_EXT_provoking_vertex 2023-06-21 11:40:42 +01:00
baldurk 0f851df6c2 Batch prepare and allow limited buffering for vulkan initial states
* We add a capture option that defines a soft limit we aim to keep under for
  memory overhead during capture, excess initial states after that will be
  stored temporarily on disk.
2023-06-02 18:53:45 +01:00
baldurk 814a73f386 Bump version to v1.28 2023-06-02 18:53:38 +01:00
baldurk 7de3fb54ee Implement new D3D12 state & state setting commands 2023-05-19 14:54:39 +01:00
baldurk 28dcc80892 Implement D3D12's CreateSampler2 and new sampler parameters 2023-05-19 14:54:39 +01:00
baldurk 244a3e671b Bump version to v1.27 2023-03-31 21:15:48 +01:00
baldurk 2283cdc06d Bump version to v1.26 2023-02-01 21:10:42 +00:00
baldurk d47e79ae07 Update copyright years to 2023 2023-02-01 12:23:32 +00:00
Leonard Tsai f578e62684 Allow multiple depth targets to be viewable in the TextureViewer 2023-01-18 12:56:47 +00:00
baldurk 82f205ead6 Add support for VK_EXT_image_view_min_lod 2023-01-17 18:39:06 +00:00
baldurk a440fa2a23 Add support for VK_EXT_non_seamless_cube_map 2023-01-17 18:39:06 +00:00
baldurk caa2ede2b1 Add support for VK_EXT_border_color_swizzle 2023-01-17 18:39:06 +00:00
baldurk 0acb955e19 Create virtual distinction between Vulkan & GL SPIR-V. Closes #2798
* This distinction unfortunately does not exist in SPIR-V so we have to carry
  around this metadata ourselves. Rather than allowing free specification of
  tools based on API, instead pretend that Vulkan and GL SPIR-V are separate
  format, and duplicate all SPIR-V tools to handle "both" types. This allows
  appropriate tool selection based on the encoding.
2022-12-27 13:39:44 +00:00
baldurk e9702cb32f Fix typo accessing incorrect array of resources in pipe state 2022-12-12 13:58:48 +00:00
baldurk 6a9872e56c Fix empty spacer-elements in descriptor arrays being marked as used 2022-12-05 17:00:11 +00:00
baldurk 92f554e0e7 Bump version to v1.25 2022-12-05 15:29:10 +00:00
baldurk 9dba1d1814 Bump version to v1.24 2022-11-29 19:04:55 +00:00
baldurk 69c1990035 Fix handling of descriptor feedback in iterating arrays 2022-11-21 15:22:43 +00:00
baldurk dfe07d6822 Update application API to 1.6.0, add capture title setter 2022-11-21 13:49:15 +00:00
baldurk 7b96647dac When only returning used entries, skip entirely unused descriptor arrays 2022-11-09 18:02:46 +00:00
baldurk 6343a52c2f Conservatively reserve space for return arrays 2022-11-09 16:45:44 +00:00
baldurk d11da2f3a1 Refactor texture viewer thumbnails to not use swapchains
* There seems to be a significant slowdown when using real swapchains, both for
  creation and display. Since thumbnails don't update often (only on event
  change, or if the panel is resized which is not a regular occurence)
  counterintuitively it's better to render and readback the image offscreen and
  re-upload it on the CPU.
2022-11-09 14:14:24 +00:00
baldurk 2e276a7f84 Remove rdcarray sized constructor 2022-11-09 13:22:53 +00:00
baldurk 742e3de252 Cache expanded views from large immutable D3D12 descriptor heaps
* The principle here is that on D3D12 it's common to have huge descriptor heaps
  in which only a handful of descriptors are changed. By caching the expanded
  D3D12Pipe::View results from these unchanging descriptors we don't have to do
  that over and over. Any descriptors written in the captured frame may have
  different contents depending on where we've replayed up to, so we don't cache
  them to keep things simple rather than invalidating the cache.
2022-11-08 17:42:18 +00:00
baldurk 972f56d45a Display type-incompatible bindings overlapping in GL in pipeline view
* This is possible if two sampler uniforms point to the same slot but they are
  not compatible sampler types.
2022-10-21 16:21:34 +01:00
baldurk e38b4e0fff Add support for VK_EXT_mutable_descriptor_type 2022-10-14 12:06:09 +01:00
baldurk 9a22b2cf46 Remove old android prototyping code 2022-10-14 12:00:54 +01:00
baldurk 338541cf3f Handle streams properly in vulkan GS output fetch. Closes #2745
* We only display the rasterized stream in the mesh output view.
2022-10-12 16:08:59 +01:00
baldurk 39920c1b71 Show the version running when connecting to incompatible remote server 2022-10-03 20:10:41 +01:00
baldurk 17e2271030 Include atomic and SSBO buffers in GL read-write resources list 2022-10-03 20:10:41 +01:00
baldurk dff0196bfb Bump version to v1.23 2022-09-23 16:03:20 +01:00
baldurk c19806ad2f Restore IsStrip helper that should not have been removed 2022-09-23 11:35:52 +01:00
Shahbaz Youssefi 8f14374b52 Support VK_EXT_multisampled_render_to_single_sampled
This extension greatly simplifies MSAA rendering on TBR hardware.
2022-09-07 14:47:59 +01:00
John Cortell 3a5ac5859a Enable AMD perf counter support for Samsung GPUs
This change, along with changes in the GPA library, allows the user
to collect AMD counters from a Samsung Xclipse GPU. Previous to this,
the AMD counters could be collected only from GPUs with an AMD PCI
vendor ID.

Most of the changes are related to the fact that the Xclipse GPU has
a unique (Samsung) PCI vendor ID, but is ultimately an AMD
(RDNA2) derivative. So, we need the code to take the AMD path
while technically being its own (non-AMD) GPU.
2022-09-02 17:10:10 +01:00