Commit Graph

12518 Commits

Author SHA1 Message Date
baldurk 3f2f74bba4 Fix backwards check on upload buffer being available 2021-08-26 09:51:37 +01:00
Jake Turner 833a63e639 Add missing renderdoccmd .h file to sources
Helpful for IDE project generation from CMake ie. xcode project
2021-08-24 21:33:51 +01:00
Jake Turner 01a1549628 Add missing renderdoc/driver .h file to sources
Helpful for IDE project generation from CMake ie. xcode project
2021-08-24 21:33:51 +01:00
Jake Turner ae118264c5 Add some missing renderdoc .h files to sources
Helpful for IDE project generation from CMake ie. xcode project
2021-08-24 21:33:51 +01:00
baldurk c820ea7735 When no draw action is selected in the mesh viewer, be explicit about it 2021-08-24 19:01:05 +01:00
baldurk 137893f508 When giving nodes an effective EID, ignore trailing PopMarker EID
* This applies when selecting a marker region, the effective EID is the one
  actually replayed to an represented in the UI. As-if it were directly
  selected.
2021-08-24 19:00:44 +01:00
baldurk fe50a5674a Fix a crash getting the event name of EID 0 2021-08-24 19:00:05 +01:00
baldurk f258261a21 Add a couple of extra protection checks in D3D12 code against crashes 2021-08-24 18:59:45 +01:00
baldurk f45f8eac43 Don't do anything in PickVertex if there are no vertices 2021-08-24 17:46:00 +01:00
baldurk dd8265bf9e Add extra protection against invalid buffers in buffer viewer 2021-08-24 17:09:28 +01:00
baldurk f32e8525f2 Only allow reports from builds with valid commit hashes 2021-08-24 16:29:03 +01:00
baldurk 341478a3da Don't try to enable debug exts for internal android vulkan instance
* We create an instance during early android startup to force our library to
  stay loaded, but we shouldn't try to enable any debug extensions because on
  some android devices that can cause problems.
2021-08-24 15:43:58 +01:00
baldurk f8cf943c42 Fix problem where a new profile wouldn't have default event filter
* In v1.15 if you upgraded from a previous version and had a renderdoc config
  file then the persistent storage storing the filters would get loaded with an
  empty variant map, so the defaults could be set. However if you had no config
  file at all this wouldn't happen so no defaults would be set.
* We detect the case where we load an old profile and it has blank current
  filter or saved filters, and fill in the defaults now. If the filter has been
  customised or some saved filters exist, respectively, we don't touch them.
2021-08-24 10:57:36 +01:00
baldurk 9486cac1ca Fix mac compile error 2021-08-19 00:19:05 +01:00
baldurk 8ddc6eaa10 Fix docstring reference 2021-08-18 23:18:14 +01:00
baldurk aa26252a77 Update key before looking up bindless slot lookup on D3D12 2021-08-18 20:12:07 +01:00
baldurk 3d168b3836 Fix a crash for buffer views in descriptors 2021-08-18 20:12:07 +01:00
baldurk cd6df12f8b Fix assert to properly use expected state 2021-08-18 20:12:07 +01:00
baldurk a76aa1dede Update RGA devices list to include RDNA2
* We also drop everything gfx804 to keep the device list from being too bloated,
  as well as AMD planning to remove support for these devices soon.
2021-08-18 20:12:07 +01:00
baldurk cab76389c7 Add fatal (device lost/out of memory) error checking to backends
* We check for errors to try to catch them as soon as possible, and early-out
  return even in the middle of functions. The idea being even if this leaves us
  in a weird state we won't get called again as the replay controller will
  detect the error and substitute out a dummy driver.
2021-08-18 20:12:07 +01:00
baldurk 620e75c2a1 Add a system for backends to handle device lost/OOM errors and report it
* The UI will become non-functional and the backend will be replaced with a do-
  nothing one that keeps things alive without needing error bulletproofing
  everywhere in the real backend.
2021-08-18 20:12:07 +01:00
baldurk dc955079ab Fix RELEASE define on linux
* This fixes some debug text appearing in the resource inspector, and lets linux
  users submit manual bug reports from release builds.
2021-08-18 20:12:07 +01:00
baldurk 45a8a63474 Dynamically allocate shaders and structured files to allow detaching
* These are the only handles returned up by reference from the replay driver,
  dynamically allocating them means that we can steal/move the ownership of
  these and keep them valid even after the replay driver is destroyed.
* Note - ShaderDebugTrace is also returned by reference but it is already
  dynamically allocated like this.
2021-08-18 20:12:06 +01:00
baldurk c319ac0234 Store API pipeline states in the replay controller
* Instead of storing the API pipeline states in the replay driver and returning
  pointers, we store them in the replay controller and write into it from the
  replay driver.
* This will allow us to remove the replay driver and still keep any previously
  obtained references/pointers to the pipeline state valid.
2021-08-18 20:12:06 +01:00
baldurk 0804ef63be Emulate bad vertex attribute casts on GL in mesh viewer
* On GL you can specify a vertex attribute that's stored as int but gets
  converted to float with glVertexAttribFormat instead of glVertexAttribIFormat.
  However if the shader accepts an int this is invalid and the value is
  undefined - we emulate this as the float bits being read as int directly, but
  that's not guaranteed behaviour.
* Normally we don't emulate this kind of mis-cast behaviour and just display the
  type of data passed to the shader, but in this case GL lets you specify three
  types (stored as int, cast to float, read as int) so our normal behaviour of
  just showing the input can be more misleading than normal.
2021-08-16 10:54:47 +01:00
baldurk 441ab2520b 32-bit compilation fix 2021-08-12 16:18:34 +01:00
baldurk d851e8de9c Add small optimisation and fix for extremely large ExecuteIndirect calls 2021-08-12 15:17:42 +01:00
baldurk a38ab1b0d3 Handle conservatively marked storage images in assert 2021-08-12 14:11:43 +01:00
baldurk 100ccc9c65 Specify entry point when disassembling with spirv-cross. Closes #2342 2021-08-11 21:53:15 +01:00
baldurk c2e5d2a7fb Allow find text to be preserved when closed and reopened 2021-08-11 18:11:23 +01:00
丛越 752c839072 Fix missing D3D12 counter
Improve D3D12 action callback match the Vulkan callback.

1.D3D12 action callback add Misc type callback to process copies/clears/etc actions.
2.D3D12GPUTimerCallback, D3D12AMDActionCallback, D3D12QuadOverdrawCallback and D3D12InitPostVSCallback implement Misc type callbacks.
3.Modify D3D12CommandData::HandlePreCallback to be consistent with Vulkan, and add the ActionFlags parameter.
4.Define corresponding macros for the action callbacks of Draw, Dispatch, Execute Bundle, Copy, and Clear commands.
2021-08-11 18:10:40 +01:00
baldurk da4c6497e7 Make D3D12 initial state resource padding more generous 2021-08-10 16:07:38 +01:00
baldurk a2da75c6dd Implement emulated depth readbacks on GL. Closes #2336 2021-08-10 15:38:45 +01:00
baldurk b8fd1fce02 When finding in the event browser, respect the current filter
* This means we'll jump to the nearest _visible_ result, rather than just the
  next result whether or not it's visible. This also applies to EID searches,
  when doing a go-to on a particular EID we'll end up jumping to the next
  visible EID.
2021-08-10 13:53:25 +01:00
baldurk 96408c30d3 Fix backwards compatibility issue loading vulkan captures
* This is a regression _since_ v1.15. In 2bfc3c2 to be precise
2021-08-10 12:20:14 +01:00
baldurk 87e08feb7c Document that only 64-bit x86 is supported on linux. Closes #2332 2021-08-02 22:55:12 +01:00
Pavel Asyutchenko c31c04712d Fix broken capture when app uses dedicated allocation weirdly
Both handles in VkMemoryDedicatedAllocateInfo can be VK_NULL_HANDLE,
specification allows this. Should be safe to ignore struct in this case.
2021-08-02 21:51:36 +01:00
baldurk 93f8a59a8f Linux compile fixes 2021-08-02 16:27:48 +01:00
baldurk 5279b1378d Sort final list of used descriptors in D3D12 shader feedback 2021-08-02 16:24:28 +01:00
baldurk d9a886ee62 Reset current bind every time we iterate over a range for a stage 2021-08-02 16:24:06 +01:00
baldurk 2bfc3c2264 For storage resources be pessimistic about their usage in the frame
* If a storage resource is only referenced in a copy as a destination and gets
  CompleteWrite state, this may be inaccurate because we no longer track
  descriptor set access to images or buffers. That means there could be an
  earlier use of the resource in a read/write fashion but on replay we would
  clear it for initial states.
* For images this is easy as we can fix this up at the end of the frame, for
  memory we need to iterate over all storage buffers and update the memrefs on
  their bindings.
2021-08-02 11:15:24 +01:00
baldurk a3d5404393 Don't use the W from VS input (and VS out with geom/tess) positions
* This allows W to be filled with 1.0 which our mesh viewing shader expects to
  have to be able to multiply by the MVP matrix.
2021-08-02 10:22:40 +01:00
baldurk 7e080857aa Fix an infinite recursion crash when opening the event browser
* If a capture was opened it would recurse between initialising the event
  browser and the marker breadcrumbs.
2021-08-02 10:05:42 +01:00
baldurk 4932f91f28 Fix bindless feedback setting resource arrays as unused in DXIL shaders 2021-07-29 19:31:10 +01:00
baldurk dc68a1d5e1 Fix off-by-one error with indirect count draws on vulkan 2021-07-29 15:37:13 +01:00
baldurk 9655a029a9 Handle fake markers in timeline bar. Closes #2327 2021-07-29 12:51:47 +01:00
TotalCaesar659 4d31495b25 Update URLs to HTTPS 2021-07-29 11:57:56 +01:00
baldurk 715caed7a0 Bump version to 1.16 2021-07-28 17:14:09 +01:00
baldurk a490606012 Handle D3D12 CreateConstantBufferView with a NULL desc v1.15 2021-07-28 14:01:13 +01:00
baldurk a516c2d483 Disable view instancing on D3D12 for postvs
* It's unclear if this is supposed to be legal or not, and if it is legal then
  how the output is arranged.
2021-07-28 13:02:19 +01:00