Commit Graph

1124 Commits

Author SHA1 Message Date
baldurk 7ff0796b89 Check for incomplete textures on OpenGL. closes #214 2019-12-18 19:09:18 +00:00
baldurk e302ecfe83 Don't leak target control handle 2019-12-17 15:51:16 +00:00
baldurk 14d01ff995 Remove support for serialising STL types, remove STL interop 2019-12-16 18:10:32 +00:00
baldurk c4ca8cb1d1 Reduce reliance on big public headers where possible
* Mostly moving includes from common headers to cpp where possible, and removing
  includes of the whole thing where only enums or rdcstr etc are needed.
2019-12-16 17:06:16 +00:00
baldurk ec7a852582 Refactor and improve rdcarray/rdcstr interface
* We are going to replace all std::string/std::vector use with these.
2019-12-16 17:06:15 +00:00
baldurk c82d0f58b9 Rename WASD to Flycam in mesh viewer controls
* This should now work regardless of keyboard layout, e.g. on AZERTY the same
  physical keys will still work. We also add arrow keys as a backup
2019-12-13 16:37:14 +00:00
baldurk 24e4f4179f Fix projection guessing controls sometimes being enabled when unused 2019-12-13 16:36:44 +00:00
baldurk 4f3ea6d12b Special-case VK_LOD_CLAMP_NONE for samplers in pipeline state view 2019-12-06 01:04:12 +00:00
baldurk cfe601123c In debug builds display resource ID in resource inspector
* This can save some breakpointing and looking up in maps when a resource is
  named (especially if it's not given a unique name).
2019-12-02 20:28:05 +00:00
baldurk ff08748238 Ensure all files have trailing new-lines and enforce with clang warning 2019-12-02 20:28:05 +00:00
baldurk 23c3a38496 Create fake buffer for D3D11 UAV hidden counters. Closes #1593 2019-11-29 13:53:45 +00:00
baldurk 3bf805ec35 Add 'expand all' menu to resource inspector 2019-11-29 13:53:45 +00:00
baldurk f514815e3c Update buffer formatter help text, save its visibility in config 2019-11-29 13:53:45 +00:00
baldurk e205054317 Add UI support for GPU typed pointers in buffers 2019-11-29 13:53:44 +00:00
baldurk b3979262a5 Replace FormatElement with ShaderConstant/ShaderVariableType
* FormatElement is now a static BufferFormatter class to help generate and parse
  buffer formatting strings
2019-11-29 13:53:44 +00:00
baldurk 324b96c977 Remove FormatElement::byteSize(), move to ResourceFormat 2019-11-29 13:53:44 +00:00
baldurk 00170e2ec3 Make GetVariants a free function taking interpreting format directly
* We also store the format in BufferElementProperties for the buffer viewer
  since we'll later remove the ResourceFormat stored in FormatElement
2019-11-29 13:53:44 +00:00
baldurk f046423664 Split buffer-centric properties out of FormatElement 2019-11-29 13:53:44 +00:00
baldurk b0afdd2988 Don't force typecast from real texture when saving overlay/custom shader 2019-11-27 11:06:03 +00:00
baldurk 186ca30045 Treat binding viewcasts are always definitive
* On APIs like vulkan the view casting happens from an already typed format, so
  don't assume that casts are only applied when the underlying format is
  typeless. When a cast is not valid the view format should never be different
  from the underlying image format as the API should never make it possible to
  validly create or bind a view with a different format.
2019-11-26 17:38:26 +00:00
baldurk db563bb0bf Refactor public interface around handling of textures
* Subresource handling is more consistent - we pass around a struct now that
  contains the array slice, mip level, and sample. We remove the concept of
  'MSAA textures count samples as extra slices within the real slices' and
  internalise that completely. This also means we have a consistent set
  everywhere that we need to refer to a subresource.
* Functions that used to be in the ReplayOutput and use a couple of implicit
  parameters from the texture viewer configuration are now in the
  ReplayController and take them explicitly. This includes GetMinMax,
  GetHistogram, and PickPixel.
* Since these functions aren't ReplayOutput relative, if you want to decode the
  custom shader texture or the overlay texture you need to pass that ID
  directly.
2019-11-26 17:38:25 +00:00
baldurk 01344c7e83 Rename typeHint to typeCast 2019-11-26 17:38:25 +00:00
baldurk f42cb9e23c Use shader bindpoint mapping when generating HLSL shader editing stubs 2019-11-21 21:25:40 +00:00
baldurk 1c062c1eda When a capture is loaded in the API inspector, populate the events 2019-11-21 17:09:01 +00:00
baldurk 4458ab3205 Remove assumptions that captures are always frames
* Previously we had "Frame X" and "Start of Frame" hardcoded in the event
  browser, and the end of frame was in many cases assumed to be a present call.
  However with the in-application API this is not necessarily true.
* Presents are now serialised separately in all APIs and displayed wherever they
  happen in the frame, and if there is no present at the end of the frame an
  "End of Capture" marker is inserted. Similarly API-defined captures are not
  given a potentially misleading frame number.
2019-11-21 17:09:01 +00:00
baldurk 5ea8d7b3d8 Add possible cause of JDWP failures - bad intent arguments 2019-11-19 23:20:56 +00:00
baldurk 13f796a0ef Add an error if intent arguments aren't formatted correctly. 2019-11-19 23:20:55 +00:00
Lionel Landwerlin 80183c068a Expose Vulkan performance counter from VK_KHR_performance_query 2019-11-18 22:01:12 +00:00
baldurk 6201183504 Fix broken buffer viewer UI protection 2019-11-15 18:33:17 +00:00
baldurk 07e8731776 Protect against buffer view being closed during async render thread work 2019-11-13 17:25:01 +00:00
baldurk e713c82dcd The slice parameter for 3D textures should be mip-relative too 2019-11-13 10:05:31 +00:00
baldurk 3fbb9ee7ad PickPixel's x and y parameters should be mip-relative
* Previously x and y always ranged from 0,0 to width-1,height-1. Even for lower
  mips, the value was just effectively shifted.
* This is quite unclear at the API level so instead x and y are now relative to
  the selected mip's dimensions.
2019-11-13 10:05:30 +00:00
baldurk 6653316a62 Protect against window being closed during async render thread work 2019-11-12 20:44:35 +00:00
mweber 2b7753af67 Implemented PerformanceCounterViewer::OnEventChanged handling
Implemented PerformanceCounterViewer::OnEventChanged to handle global event changes.
Behaviour can be toggled on/off via a new 'Sync Views' button similar to the Mesh Viewer; the default is off.
2019-11-06 17:52:00 +00:00
baldurk ee2a491f20 Fix status bar display of A8 textures 2019-10-25 18:29:30 +01:00
baldurk a08455c4fb Don't crash if vertex buffer stride is 0 when picking vertices 2019-10-23 11:23:32 +01:00
baldurk fd5fd7269a Split up texture viewer status bar into separate items to wrap better 2019-10-21 13:56:10 +01:00
baldurk 7533c6b7ac Improve handling of different cases registering vulkan layer on linux
* In particular, if there is a mismatched layer registered under e.g. /etc then
  we always need to elevate, even if the user wants their layer to be fixed and
  registered user-local.
2019-10-16 15:12:38 +01:00
baldurk f5cc5c22ad Don't display typed buffers as structured in D3D11 pipeline state 2019-10-15 17:34:38 +01:00
baldurk 03ddc61779 Support rich resource text in buffer viewer 2019-10-15 15:05:38 +01:00
baldurk d48b84d8f5 Pass buffer length to format string parse, for better default format
* If we are only looking at a 4-byte buffer, don't use a uint4 default or it
  will fail to display anything
2019-10-15 10:54:42 +01:00
baldurk 179dbb0e43 Display sample mask in D3D12 pipeline state 2019-10-14 14:06:42 +01:00
baldurk 5acb6af862 Fix some painting not reacting to different fonts correctly 2019-10-11 13:07:36 +01:00
baldurk 0908588481 Don't delete capture unless it's still temporary, even if we own it 2019-10-11 13:07:36 +01:00
baldurk 8ce2ea2202 Improve calculation of histogram
* The histogram shouldn't be calculated as channel-wise averages, but instead by
  'stacking' the channels (each channel contributes 1 to the appropriate
  bucket).
* Degenerate channels (where min==max) are excluded and listed only as a single
  spike, to avoid blowing out the automatic y-axis.
2019-10-10 16:48:42 +01:00
baldurk 4e6af7a47a Don't crash if the event browser isn't open when opening a capture 2019-10-10 16:48:42 +01:00
baldurk e9dda8343f When deleting temp files, remove from the recent file list. Closes #1540
* If the UI was launched with a filename as a parameter to open the capture, it
  will be added to the recent capture file list. Only later (relatively
  speaking) if we make a capture connection will we realise that it is temporary
  and potentially delete the file. If we do so, remove the capture from the
  recent file list.
2019-10-10 16:48:42 +01:00
baldurk e3d902e686 Don't try to set find icons if no capture is loaded 2019-09-30 16:30:40 +01:00
baldurk ca6c6faf27 Highlight combined image/samplers to clarify sampler use. Closes #1533
* When the same sampler is used in multiple combined image/sampler descriptors
  we only list the sampler once to avoid really verbose unnecessary rows. Use
  row highlighting to indicate which sampler is used with which image, and add
  it to the view details tooltip with the image layout
2019-09-30 16:30:40 +01:00
baldurk 94f469b361 Open capture with options should not be a top-level window 2019-09-23 13:14:28 +01:00