Commit Graph

203 Commits

Author SHA1 Message Date
baldurk e38b4e0fff Add support for VK_EXT_mutable_descriptor_type 2022-10-14 12:06:09 +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
Shahbaz Youssefi 75c1d37a45 Expose Vulkan depth clip range in the UI
This change exposes the
VkPipelineViewportDepthClipControlCreateInfoEXT::negativeOneToOne
pipeline state in the UI.  While not a per-viewport state, this state is
output alongside viewport information.

If the extension is not used, or if this flag is false, [0, 1] is shown
as the depth clip range.  If the flag is true, [-1, 1] is shown.
2022-08-31 09:55:12 +01:00
baldurk 84c824e573 Tweak colour used for 'view details' highlighting in pipeline state view
* This helps those who have chosen the dark theme where rich resource text uses
  the default window text colour assuming it's a contrasting colour against the
  background (except when highlighted).
2022-08-18 16:39:42 +01:00
Danylo Piliaiev 6bd7e7cc1a Add support for VK_EXT_attachment_feedback_loop_layout
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
2022-08-18 15:54:33 +01:00
baldurk 5d51b524c6 Fix interpreting and declaring buffer formats that include pointers 2022-07-25 10:08:59 +01:00
baldurk fda5c4819a Scroll shader viewer to entry point file & line using debug info 2022-07-22 16:10:59 +01:00
baldurk 43fa3cd94b Use BufferViewer for viewing constant buffers
* Unifying these views means that constant buffers have all the same
  reformatting and it avoids having multiple paths for what is now effectively
  the same control (a buffer can either have fixed data, repeating data, or
  both)
2022-05-20 14:15:30 +01:00
baldurk a36516c8a5 Explicitly handle unbounded arrays and display declared fixed vars
* GL and Vulkan allow buffers to have fixed variables before a trailing AoS
  unbounded array. These fixed variables can't be easily displayed in a table
  and previously we skipped them. Now we display these in a tree format.
* We also support formats which don't have an unbounded array at all and display
  these just with the tree. This will allow the BufferViewer to subsume the
  capabilities of the ConstantBufferPreviewer (though it needs to handle opaque
  non-buffer-backed variables, and slot-following).
2022-05-20 13:37:26 +01:00
baldurk 97a3943cdd Use packing rules when generating format strings for structs
* This allows the calling code to pass a hint of what packing is known or likely
  to be used, meaning less generated manual offsetting/padding when the implicit
  rules cover it.
2022-05-20 13:37:26 +01:00
Tatsuyuki Ishi 3d4cd457bd foz: Encode sampleMask as array 2022-04-25 14:17:12 +01:00
Tatsuyuki Ishi b0ff54fbcf foz: Reconstruct specialization constants with correct layout 2022-04-25 14:17:12 +01:00
Tatsuyuki Ishi a2d77f58db foz: Rename dynamic rendering colorAttachmentFormats 2022-04-25 14:17:12 +01:00
baldurk 0c672aff22 Set the conservative raster state display properly on vulkan 2022-04-19 12:51:26 +01:00
baldurk fcdea67879 Update copyright years to 2022 2022-02-17 17:38:32 +00:00
Remi Palandri 1abe42c0a4 add dimensions and offset info to HTML pipeline 2022-02-15 19:28:58 +00:00
Remi Palandri d1858f4479 add support for VK_QCOM_FDM_offset 2022-02-14 21:02:27 +00:00
baldurk 6ab4c1ad74 Add support for VK_KHR_fragment_shading_rate. Closes #2426 2022-02-04 16:45:15 +00:00
Leonard Tsai f7c34cdb0c Support VK_KHR_depth_stencil_resolve attachment in pipeline state view
Depth stencil resolve attachments were not being serialized and exposed in the pipeline state view. This change serializes the attachment id for the depth-stencil resolve attachment so that it can show up in the pipeline state view.

Update name of depth/stencil in pipeline viewer

Fix clang formatting

Update struct type
2022-02-03 18:49:10 +00:00
baldurk f1e81f69c5 Fix handling of S8 textures on vulkan. Closes #2428 2022-01-10 12:54:25 +00:00
baldurk 888676ecc7 Fix crash reading D3D12 pipeline state from vulkan for compute selector 2021-11-17 13:07:12 +00:00
baldurk bb3343786b Add support for VK_KHR_dynamic_rendering 2021-11-05 14:15:01 +00:00
baldurk d00556dbb5 Support VK_EXT_dynamic_state2 & VK_EXT_vertex_input_dynamic_state 2021-10-22 16:22:42 +01:00
Steve Karolewics ec785ba167 Add ability to debug compute shaders by dispatch thread ID
In some cases it is easier to know the dispatch thread ID you want to
debug rather than the group/thread IDs. This change adds a new window
when the debug button is clicked, to allow you to specify which thread
to debug in the most convenient way.
2021-10-19 18:14:53 +01:00
baldurk 501b67bccf Further clang warning fixes 2021-10-06 19:17:15 +01:00
baldurk 484f25bb75 Linux compile fixes 2021-10-06 17:14:29 +01:00
baldurk b71b84374f Implement option to export current vulkan pipeline to fossilize db 2021-10-06 16:31:44 +01:00
baldurk c76c761bab Fix some crashes exporting HTML pipeline state on vulkan 2021-10-06 16:31:43 +01:00
baldurk 7149302680 Rename 'draw' or 'drawcall' to action
* There's not a good accepted terminology for this kind of event, and for
  historical reasons 'drawcall' has been the accepted term, even though
  that can be quite confusing when a dispatch or a copy is a 'drawcall'.
* This is particularly highlighted by the event browser filters where
  $draw() includes draws and dispatches, but $dispatch() only includes
  dispatches, it's hard to intuitively understand why $draw() matches all
  of these calls.
* As a result we've defined the term 'action' to cover these types of
  events in the same way that we defined 'event' in the first place to
  mean a single atomic API call.
2021-07-01 15:15:05 +01:00
baldurk 44431cd536 Explicitly mark depth states as 'disabled'. Closes #2296
* On all APIs when depth is disabled the writes are skipped as well. Explicitly
  set the function and write state to say that they are disabled.
* This also papers over a weirdness on D3D11 which has confused a couple of
  people, where the retrieved desc with GetDesc() on a state object can be
  different to the one it was created with when you set ignored parameters -
  like the depth function with depth disabled.
2021-06-22 10:37:49 +01:00
baldurk 16937f160e Fix a crash when push constants are provided insufficient data 2021-06-17 14:30:23 +01:00
baldurk b4ec703d97 Expose shader printf messages in the UI 2021-05-11 16:15:31 +01:00
baldurk 270d4e5b07 Add resource usage entries into context menu in pipeline state viewer 2021-04-19 16:44:19 +01:00
baldurk da66701649 Don't mark bufferless constant buffers as empty due to stage masks
* These aren't present for push constants etc, so we ignore it
2021-04-16 13:55:38 +01:00
baldurk eac94b74f6 Allow cbuffer previewer to apply custom format to non-buffer-backed CBs
* This in particular means push constants and specialization constants on vulkan
  but also applies to root-value cbuffers on D3D12.
* GL bare uniforms are not feasible to expose in this way.
2021-04-14 18:59:12 +01:00
baldurk 30dd13feb8 Pull index byte width and topology out of drawcall state
* These are treated as state on most APIs, only GL treats it as a drawcall
  parameter.
2021-02-24 13:52:07 +00:00
baldurk fd14fdbfa8 Add missing column of data to constant buffer array parent 2021-02-22 16:47:21 +00:00
baldurk 026da176bb Update copyright years to 2021 2021-01-13 13:56:10 +00:00
baldurk fd1b051d2c Add helper for selecting sample mask, which varies in location by API 2020-12-18 14:05:54 +00:00
baldurk 3aaccc4fda Use rdcfixedarray in parameters for functions instead of C arrays
* This maps better to tuples in python
2020-12-15 22:52:38 +00:00
baldurk 58e16414e0 Add a number of control functions to the Qt python interface 2020-11-20 17:02:33 +00:00
baldurk 695ffaaf24 When viewing a texture from pipeline state, default to view typecast 2020-10-30 16:28:03 +00:00
baldurk 42c5ab849e Show dynamically unused slots as unused (italic text) on vulkan pipeline 2020-10-16 16:13:30 +01:00
baldurk 55c57f7e89 Display stencil values in binary and decimal in tooltips. Closes #2052 2020-10-01 15:56:52 +01:00
baldurk 8ca96aa83a Fix arrays of UBOs not displaying properly in vulkan pipeline state 2020-09-11 16:32:17 +01:00
baldurk 56f82f6bf1 Optimise UI for large descriptor arrays with few dynamically used binds
* We tune the pipeline state view and texture viewer to only iterate over a
  small list of dynamically used binds in the (vastly more common) case where
  unused binds are not being shown.
2020-09-03 18:09:47 +01:00
baldurk 83f7a26ee9 Query which shader disassembly formats require a pipeline
* This allows us to be a bit more friendly in the UI when we don't have a
  particular pipeline associated with a shader.
2020-09-01 14:03:59 +01:00
baldurk 9f2fdd6d64 Show view in vulkan pipeline state view when significant 2020-07-06 13:27:10 +01:00
baldurk 3f089b0c92 Don't treat binds with 0 stageMask as completely empty
* We can still highlight them as empty the same as we do for insufficiently
  sized constant buffers, but we should display the proper resource contents.
2020-07-06 13:26:49 +01:00
baldurk 35854957db Add support for VK_EXT_extended_dynamic_state 2020-07-03 15:43:00 +01:00