Commit Graph

12500 Commits

Author SHA1 Message Date
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
baldurk 210f391901 Mark parameters in internal chunks as unimportant
* This prevents overly-inlining in the event browser.
* Also ensure internal chunks are prefixed with Internal:: consistently.
2021-07-28 11:37:14 +01:00
baldurk faebd8b3c7 Fix old breadcrumbs persisting into new captures 2021-07-28 11:37:14 +01:00
baldurk 88d005d945 Update python examples to work with latest code 2021-07-28 11:37:14 +01:00
baldurk 97a83f4dc4 Fix a crash with action durations if there are fake markers added 2021-07-28 11:37:14 +01:00
baldurk 4bb3286d05 Reset action timings when eventbrowser model is reset 2021-07-28 11:37:14 +01:00
baldurk 514f05876f Mark D3D12 shader feedback as non-experimental 2021-07-28 11:37:14 +01:00
baldurk 63e5448275 Fix naming of resource usage on GL/Vulkan 2021-07-28 11:37:14 +01:00
baldurk 50219acaf9 Fix crash when tests are run on linux 2021-07-28 11:37:14 +01:00
baldurk 08b0a1d7ea Fix use-after-free on temporary vector 2021-07-28 11:37:13 +01:00
baldurk d0acc2a349 Fix display of typed buffers in D3D pipeline state viewer 2021-07-28 11:37:13 +01:00
baldurk d2a03c6e06 Fix filling in missing components on typed buffer loads 2021-07-28 11:37:13 +01:00
Jake Turner 076b2827c6 Fixed unused variable warnings when compiling with VS 2022 compiler
Debug & Release builds for renderdoc.sln and demos.sln
2021-07-28 11:06:53 +01:00
baldurk 03648a9580 Serialise out empty map writes. Closes #2323 2021-07-23 13:18:51 +01:00
baldurk 34a65857b1 Use custom sort on shader messages for location/workgroup
* The default sorting is purely text based so 1,0,0 is followed by 10,0,0 not
  2,0,0. We customise the sort so it does the right thing per-column.
2021-07-23 12:01:41 +01:00
baldurk 58afe63fe6 Fix export of shader messages from compute dispatches. Closes #2324 2021-07-23 11:48:07 +01:00
baldurk 4c4b0c58ec Fix 0-based line numbers in shader viewer find results
* Scintilla lines are numbered from 0 but for user display we want to be
  1-based.
2021-07-22 11:57:12 +01:00
baldurk bef75ce7fa Add export options and multi-select to shader msg viewer. Closes #2321 2021-07-22 11:41:20 +01:00
baldurk f06171f733 When copy-pasting from a treeview, trim each line individually
* This helps with views that have icon-only columns at the start or end, which
  would generate unnecessary whitespace when copying multiple lines.
2021-07-22 11:08:28 +01:00