Commit Graph

12537 Commits

Author SHA1 Message Date
baldurk 7d1cc7a6b8 Fix ubuntu docker build failing due to packages moving URLs 2021-08-31 08:54:34 +01:00
baldurk 037f05f3b4 Fetch vulkan shader printf messages from a pristine replayed state
* For draws/dispatches that aren't pure - i.e. modify state that they read from
  - we need to be sure we don't replay the action before running it to fetch
  feedback. For that reason we need to replay up to the action first, then fetch
  feedback.
2021-08-30 17:09:04 +01:00
baldurk ad1aba9632 Use the right attachment to calculate mip/slice for glClear destination 2021-08-30 16:51:06 +01:00
baldurk afa7723efc Don't iterate samplers in SPIR-V GL shaders, they should not be mutable 2021-08-30 16:50:43 +01:00
baldurk 6953aacbbe Mark importants properly in glDispatchCompute 2021-08-30 16:50:25 +01:00
baldurk 93238bf160 Add checks in event browser for when no capture is loaded 2021-08-30 15:55:46 +01:00
baldurk a4ba2e671c Only populate input variables declared in the interface for an entry
* This prevents us from trying to fill in e.g. vertex shader inputs when
  debugging a pixel shader if a module contains multiple entry points
2021-08-30 15:25:54 +01:00
baldurk b50a99113b Remove all entry points properly when debugging pixel shaders 2021-08-30 15:25:16 +01:00
baldurk 241587a231 Offset image operands is only valid for gather operations 2021-08-30 14:41:54 +01:00
baldurk 107077fde2 Patch image view usage to match framebuffer usage
* This is all a result of us adding extra usage to images - for imageless
  framebuffers the usage needs to match so we need to patch the framebuffer
  usage at create time. Then if image views are used that have specified usage
  subset we need to patch that too.
2021-08-30 14:34:28 +01:00
baldurk 4e58264035 Don't include inf/nan times in summation
* These can be generated by buggy drivers particularly on GL, so try to mitigate
  the effect of that.
2021-08-30 13:15:59 +01:00
baldurk b1ec61acc7 Reduce image acquire timeout down to 2 seconds to be safe 2021-08-27 13:59:53 +01:00
baldurk 9e52554495 Wrapped swapchain textures should be tracked in resource manager 2021-08-27 13:14:13 +01:00
baldurk 2fd1b75270 Fix copy-paste error in resource naming 2021-08-27 12:40:43 +01:00
baldurk 1ef790ab80 Update capture connections when an open capture is saved. Closes #2352 2021-08-27 11:33:40 +01:00
baldurk cd65e5beee Ignore unused attachments being cleared 2021-08-26 15:49:11 +01:00
baldurk 69a27aea40 Handle MakeResident/Evict being refcounted, and handle placed resources
* Placed resources aren't directly resident or non-resident, it's the underlying
  heap that needs to be made resident or evicted.
2021-08-26 12:06:25 +01:00
baldurk a21d245114 Remove show unused/show empty options from texture viewer 2021-08-26 09:51:37 +01:00
baldurk 3bb4e8c22c Avoid crash if no pipeline is bound for D3D12 shader feedback 2021-08-26 09:51:37 +01:00
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