Commit Graph
7526 Commits
Author SHA1 Message Date
baldurk 3cc0d94f51 Set loader dispatch table on external queue command buffers
* Not really necessary as the loader will never see them, but it's more correct.
2018-06-21 11:32:14 +01:00
Remi Palandri 6085fe66e1 adding support for multiview and MSAA in GL replays 2018-06-21 11:31:48 +01:00
baldurk 67037ed4a1 Fix GLES initial state readback of compressed cubemaps 2018-06-20 22:31:32 +01:00
baldurk 44edfc64cc Handle eGL_UNSIGNED_SHORT_5_6_5 in GLTypeSize 2018-06-20 22:31:32 +01:00
baldurk 3eb522c316 Register any context's default framebuffer as a resource 2018-06-20 22:31:32 +01:00
baldurk dfaa632d2e Remove promotion of unsized formats to sized formats
* It turns out there are some corners of the spec where *only* an unsized format
  is valid, and a sized format that's at least as large will break, so the only
  way to fix this is to preserve unsized formats.
* This does mean things could break if the driver at replay-time makes a
  different decision about what sized format to pick, but hopefully that won't
  be an issue.
2018-06-20 22:31:32 +01:00
baldurk 4f65bb1b80 Ensure context pair is set up before creating per-context objects
* Without this, client-memory IBs/VBs will not have the correct context
  sharegroup set.
2018-06-20 22:31:32 +01:00
baldurk 7b63aa9546 Register some common classes with the crash handler to preserve
* This hopefully makes crash dumps more useful if we can get at their direct
  members reliably.
2018-06-20 22:31:32 +01:00
baldurk 4d763758d4 Fix some multi-queue bugs
* If the capture requires an external queue but never uses it (e.g. it has some
  resource that's on another queue and either incorrectly accesses it on the
  wrong queue or doesn't access it at all but still somehow has it referenced)
  we need an external queue - if we didn't find one in the capture by the time
  we get to ApplyInitialContents() we fetch it ourselves.
* We also fix up device creation info if we've remapped the queues into
  duplicates by having the replay with fewer queue families than capture.
2018-06-20 22:31:32 +01:00
baldurk 2fb575693d Allow equal EIDs for fake markers generated in core code 2018-06-20 22:31:31 +01:00
baldurk b3a49858ab Fix compilation on linux 2018-06-20 09:34:45 +01:00
baldurk dc8347262e Add support for ARB_gl_spirv. Closes #767 2018-06-19 20:48:30 +01:00
baldurk d7db77cd12 Remap default FBO in glClear*Buffer functions 2018-06-19 20:48:30 +01:00
baldurk 082c5e3d07 Don't delete context's own record when deleting context resources 2018-06-19 20:48:30 +01:00
baldurk fe910c4eab Add support for all GL 4.6 extensions except SPIR-V 2018-06-19 20:48:30 +01:00
baldurk c4c4c4b67d Display multiview state in vulkan pipeline state viewer 2018-06-19 20:48:30 +01:00
baldurk 53364adeef Support mesh output from different view indices on vulkan
* When using VK_KHR_multiview you can select which view to view the mesh data from.
2018-06-19 20:48:30 +01:00
baldurk ad2673965d Fix grep range in hookset.pl 2018-06-19 20:48:30 +01:00
baldurk e87eacb2a0 Fix switching between pipeline state viewers 2018-06-19 12:38:18 +01:00
baldurk 0795e739f9 Fix python docstring copy-paste error 2018-06-18 19:05:04 +01:00
baldurk 545d019a62 Exclude API Calls markers from previous/next list. Closes #868 2018-06-18 18:39:06 +01:00
baldurk 0dda96a045 Change previous/next/parent IDs in DrawcallDescription to pointers
* This is a legacy holdover from the C# interop not being able to preserve
  pointers easily.
2018-06-18 18:39:06 +01:00
baldurk f919ea81e2 Don't unwrap instance before calling wrapper. Closes #1012 2018-06-18 18:39:06 +01:00
baldurk 14e3a3d360 Move API-agnostic pipeline state wrapper into core interface
* There's no need for this to be in the UI, and moving it allows it to be used
  from script which is very useful.
2018-06-18 18:39:06 +01:00
baldurk 7ae6581a65 Remove assert on duplicate GPU Address ranges
* It's valid to have overlapping buffers on a heap, which could end up with
  overlapping ranges.
* It's impossible from the API to tell which buffer an address came from if
  there are multiple possibilities, but any of them will be technically correct,
  we just might display a different buffer than the user expected.
2018-06-18 15:41:05 +01:00
baldurk 8024c8c342 Store and serialise resources in D3D12 descriptors by id directly
* The problem with storing resource pointers in descriptors is that it can be
  invalidated without detection - a kind of A-B-A problem - if the resource is
  deleted and then another resource is allocated with the same pointer.
* Descriptor creation in D3D12 is extremely complex and there are many ways a
  resource could become incompatible with the descriptor metadata struct.
  Detecting all possible ways a new resource could be incompatible is not
  feasible.
* As a solution, we store the ResourceId which we know is immutable, serialise
  via the pointer, and keep the live ResourceId on replay. If the resource was
  deleted, the serialisation will fail because we look up the pointer at the
  point of serialise, and a deleted resource will end up being NULL.
* To try and abstract this away and avoid potential confusion with the
  ResourceIds, we make the descriptor contents private and provide accessors.
2018-06-18 15:20:08 +01:00
baldurk 11091f1e54 Tidy up python documentation and add examples 2018-06-15 19:44:37 +01:00
baldurk 45c3c27923 Rename DrawFlags::UseIBuffer to DrawFlags::Indexed 2018-06-15 19:40:54 +01:00
baldurk 4561b55464 Persist a default browse directory for file dialogs, if none is provided
* This provides a slightly more sensible default than the application working
  directory.
* The default is shared across all dialogs and open/save.
2018-06-15 19:40:54 +01:00
baldurk efd11bb7f2 Don't crash if OMSetRTVs is called with no RTVs and single handle flag 2018-06-15 10:34:05 +01:00
baldurk c737ecebba Fix mesh output with multiview - always output view 0 2018-06-15 10:10:22 +01:00
baldurk 093e8a6b40 Support NewFloatingArea and LastUsedArea properly in AddDockWindow 2018-06-14 17:57:31 +01:00
baldurk 68bd58a308 Fix typo in python docstring 2018-06-14 17:56:26 +01:00
baldurk bf70aeb64d Handle None being passed from Python for a QWidget pointer 2018-06-14 17:56:18 +01:00
baldurk 4b11dce193 Fix linux compilation 2018-06-13 20:54:30 +01:00
baldurk b36b1fa453 Change remote server version to be == RenderDoc version
* Any time the replay types serialisation change, the remote server becomes
  incompatible. We're not going to add backwards compatibility to that system,
  so we need to break it every time.
* Really the version should be bumped any time renderdoc_serialise.inl changes,
  but we don't have an auto-incrementing revision to use.
2018-06-13 17:40:02 +01:00
baldurk ae5323bccc Remove mention of single-queue limitation from docs 2018-06-13 17:18:00 +01:00
baldurk 0ee6406a34 Don't cull while rendering meshes on GL 2018-06-13 16:58:54 +01:00
baldurk d4b4355b89 Don't create aliasing fake physical devices 2018-06-13 16:16:07 +01:00
baldurk add4b44283 Fix some cases missing multiqueue handling 2018-06-13 16:15:52 +01:00
baldurk 47f3f64fc7 Rename Samples Written to Samples Passed
* This measure the number of samples that pass the depth/stencil tests -
 In the case of early tests, this means it doesn't account for shader discard before writing.
2018-06-13 13:22:11 +01:00
baldurk 0a965045f7 Add support for extension VK_KHR_get_surface_capabilities2 2018-06-13 13:11:52 +01:00
baldurk d79514f926 Don't process DX12 maps that have an invalid/empty written range 2018-06-13 09:17:04 +01:00
baldurk abd67a7702 Add some DX12 performance optimisations
* Switches some contended mutexes for R/W locks
2018-06-13 09:17:03 +01:00
baldurk de969105d4 Add R/W lock to OS-specific wrapper 2018-06-13 09:17:03 +01:00
baldurk ea3e2c8610 Add multiqueue support for Vulkan. Closes #373 2018-06-13 09:17:03 +01:00
baldurk 2c8674790c Add spacers in pipeline view for if all groups are collapsed 2018-06-13 09:17:03 +01:00
baldurk d9bab79dbc Allow clicking on labels of collapse group boxes to toggle 2018-06-13 09:17:03 +01:00
tuxerr 9b33a73631 bugfixes and gl driver removal of context data record on delete 2018-06-11 19:18:02 +01:00
tuxerr cc9d50cf2e moving per-thread records to the TLS-context 2018-06-11 19:18:02 +01:00