379 Commits

Author SHA1 Message Date
baldurk 444515c67a Always treat vertex buffer formats as scalar packed 2022-05-23 16:33:00 +01:00
baldurk 31feedd16d Remove ShaderConstantDescriptor, inline into ShaderConstantType
* This struct was redundant isnce it was only ever used in the type and not
  meaningfully accessed directly.
2022-05-20 14:15:31 +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
baldurk cee4b25b28 Allow specifying offsets and struct strides manually with offsets
* Use these when generating buffer formatter strings instead of declaring manual
  padding variables.
2022-05-20 13:37:26 +01:00
baldurk 0890afd70e Specify rgb, hex, unorm/snorm and format packing as annotations 2022-05-20 13:37:26 +01:00
baldurk cb49f21f2a Support enums in buffer formatter 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
Benoit Dumesnil dfd00b1e38 Add support for shader model 6.6 bindless resources. 2022-03-21 11:30:47 +00:00
baldurk f4d9cf2b7e Fix UAV slot matching for D3D11 with merged UAV/RTV bindings 2022-03-17 18:10:05 +00: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 a16e1e7995 Add a python script to sort .ui files so grid layouts are in order
* This will help in future to keep diffs more readable
2022-01-10 17:30:57 +00:00
baldurk 1c3f30d90d Resave all UI files with Qt Creator 5.15
* This gets rid of anything that might be changed with the latest version when
  updating these files
2022-01-10 16:57:43 +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 c070dfd847 Clarify root signature index in D3D12 pipeline view
* Internally we split ranges, but for display we should use the original root
  signature index.
2021-10-04 18:39:33 +01:00
baldurk 83da4cb471 Sanitise : in pipeline state vertex input names 2021-10-04 13:05:57 +01:00
baldurk 7700c2a80d Don't trust presence/absence of raw buffer flag on D3D12 descriptors 2021-09-24 13:23:32 +01:00
baldurk c3a93bf61b Fix potential crash reading empty descriptor array on D3D12 2021-09-17 12:50:05 +01:00
baldurk d0acc2a349 Fix display of typed buffers in D3D pipeline state viewer 2021-07-28 11:37:13 +01:00
baldurk 46266a9dd6 Implement bindless feedback for DXBC shaders on D3D12 with patching 2021-07-15 16:41:23 +01:00
baldurk d0accc409b Rename 'name' member of ActionDescription to 'customName'
* This is a deliberate break of compatibility since the field is now often
  empty, for non-markers. This means code will get a more explicit error when
  the name is being referenced, so it can be updated to fetch the name it needs
  as needed.
2021-07-01 15:15:05 +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 e15906fddb Polygon offset clamp is core now 2021-06-17 13:22:16 +01:00
baldurk 71b6e2b321 Speculative crash fix, protect against invalid indices in cbuffer tag 2021-06-15 16:24:25 +01:00
baldurk fe63f8b16d Set uniformRowHeights on Vulkan/D3D12 pipeline state tree widgets
* This prevents Qt from doing O(n) work to calculate row sizes in some cases
  when we know they're all going to be identical.
2021-06-08 14:23:56 +01:00
baldurk 4a9d32db3f Sort GL read/write bindings by bindpoint and use mapping properly
* We need to use the bindpoint mapping to ensure we look up the correct usage
  information. Also iterating over the unsorted shader resources potentially
  gives us out-of-order bindings, so we resort by bindpoint (which was sorted
  into binding order in the implementation).
2021-05-17 13:47:58 +01:00
baldurk b4ec703d97 Expose shader printf messages in the UI 2021-05-11 16:15:31 +01:00
baldurk 96afe77914 Disable hover pipeline thumbnails on remote replay
* Most remote replay links are slow enough that the lag introduced by
  synchronously fetching and displaying these thumbnails would be annoying for
  simple mouse-over scenarios.
2021-04-22 15:52:14 +01:00
baldurk d6c483a255 Hide tooltip thumbnail instead of making it 0x0 2021-04-20 14:44:04 +01:00
baldurk 6f25063eb2 Add icon for context menu item to open in resource inspector 2021-04-20 13:51:41 +01:00
baldurk 9d3f7169ed Add thumbnails to texture tooltips in pipeline state view
* If there would be no tooltip otherwise, it just shows the thumbnail. Otherwise
  any tooltip text (like view parameters or image layout) is displayed below the
  thumbnail
2021-04-20 13:51:41 +01:00
baldurk 270d4e5b07 Add resource usage entries into context menu in pipeline state viewer 2021-04-19 16:44:19 +01:00